<?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>147818</bug_id>
          
          <creation_ts>2015-08-09 14:59:47 -0700</creation_ts>
          <short_desc>Regression(r188105): Seems to have caused crashes during PLT on some iPads</short_desc>
          <delta_ts>2015-08-09 20:24:16 -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>JavaScriptCore</component>
          <version>528+ (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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147480</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1116125</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 14:59:47 -0700</bug_when>
    <thetext>r188105 seems to have caused crashes during PLT on some iPads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116126</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:00:24 -0700</bug_when>
    <thetext>rdar://problem/22205881</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116127</commentid>
    <comment_count>2</comment_count>
      <attachid>258597</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:02:26 -0700</bug_when>
    <thetext>Created attachment 258597
Roll out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116128</commentid>
    <comment_count>3</comment_count>
      <attachid>258597</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:04:03 -0700</bug_when>
    <thetext>Comment on attachment 258597
Roll out

Need to tweak the change logs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116129</commentid>
    <comment_count>4</comment_count>
      <attachid>258598</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:06:55 -0700</bug_when>
    <thetext>Created attachment 258598
Roll out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116131</commentid>
    <comment_count>5</comment_count>
      <attachid>258598</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-09 15:17:13 -0700</bug_when>
    <thetext>Comment on attachment 258598
Roll out

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116134</commentid>
    <comment_count>6</comment_count>
      <attachid>258599</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:49:30 -0700</bug_when>
    <thetext>Created attachment 258599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116135</commentid>
    <comment_count>7</comment_count>
      <attachid>258599</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-09 15:53:47 -0700</bug_when>
    <thetext>Comment on attachment 258599
Patch

Rejecting attachment 258599 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 258599, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/JavaScriptCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/35839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116136</commentid>
    <comment_count>8</comment_count>
      <attachid>258600</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:55:39 -0700</bug_when>
    <thetext>Created attachment 258600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116137</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 15:56:11 -0700</bug_when>
    <thetext>Committed r188201: &lt;http://trac.webkit.org/changeset/188201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116169</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-09 20:24:16 -0700</bug_when>
    <thetext>Looks like the roll out did fix crashes on the 32bit iPads cold PLT bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258597</attachid>
            <date>2015-08-09 15:02:26 -0700</date>
            <delta_ts>2015-08-09 15:06:55 -0700</delta_ts>
            <desc>Roll out</desc>
            <filename>147818_revert.patch</filename>
            <type>text/plain</type>
            <size>146924</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYmJjMTRmLi40YmJlMzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC00ODksODYgKzQ4OSw2IEBACiAKICAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKIAotMjAxNS0wOC0wNiAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KLQotICAgICAgICBJbnRyb2R1Y2Ug
Z2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRfYnlfdmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMg
U3RyaW5nIG9yIFN5bWJvbAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ3NDgwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCi0KLSAg
ICAgICAgQWRkIHN5bnRoZXRpYyBiZW5jaG1hcmtzIHRoYXQgcmVwbGFjZXMgbm9ybWFsIHByb3Bl
cnR5IGxvYWQgd2l0aCBzeW1ib2wvc3RyaW5nIGtleWVkIGxvYWQuCi0KLSAgICAgICAgKiBqcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5odG1sOiBBZGRlZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBBZGRlZC4K
LSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10
cnktYmxvY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbDogQWRkZWQuCi0gICAg
ICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDogQWRk
ZWQuCi0gICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9y
LXNlbGYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sOiBBZGRlZC4KLSAgICAgICAgKiBqcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIGpzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dDogQWRkZWQuCi0g
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8u
aHRtbDogQWRkZWQuCi0gICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
LSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDogQWRkZWQuCi0gICAgICAgICog
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uaHRtbDogQWRkZWQuCi0gICAgICAgICoganMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dDogQWRkZWQu
Ci0gICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20t
dHJ5LWJsb2NrLmh0bWw6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmh0bWw6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dDogQWRkZWQuCi0g
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYu
aHRtbDogQWRkZWQuCi0gICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sOiBBZGRl
ZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1w
cm90by1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWw6IEFkZGVkLgotICAgICAgICAqIGpzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgotICAgICAgICAqIGpzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qczogQWRkZWQuCi0gICAgICAgICoganMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5q
czogQWRkZWQuCi0gICAgICAgIChBKToKLSAgICAgICAgKEIpOgotICAgICAgICAoQyk6Ci0gICAg
ICAgIChEKToKLSAgICAgICAgKEUpOgotICAgICAgICAoRik6Ci0gICAgICAgIChHKToKLSAgICAg
ICAgKGZvbyk6Ci0gICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgotICAgICAg
ICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8t
b3Itc2VsZi5qczogQWRkZWQuCi0gICAgICAgIChmb28pOgotICAgICAgICAoYmFyKToKLSAgICAg
ICAgKEZvbyk6Ci0gICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LmpzOiBBZGRlZC4KLSAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanM6IEFkZGVkLgotICAgICAgICAoZm9vKToKLSAg
ICAgICAgKGJhcik6Ci0gICAgICAgIChGb28pOgotICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuanM6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qczogQWRkZWQuCi0gICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qczogQWRkZWQuCi0g
ICAgICAgIChBKToKLSAgICAgICAgKEIpOgotICAgICAgICAoQyk6Ci0gICAgICAgIChEKToKLSAg
ICAgICAgKEUpOgotICAgICAgICAoRik6Ci0gICAgICAgIChHKToKLSAgICAgICAgKGZvbyk6Ci0g
ICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IEFkZGVkLgotICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qczog
QWRkZWQuCi0gICAgICAgIChmb28pOgotICAgICAgICAoYmFyKToKLSAgICAgICAgKEZvbyk6Ci0g
ICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1x
dWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzOiBBZGRlZC4K
LSAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXNlbGYtb3ItcHJvdG8uanM6IEFkZGVkLgotICAgICAgICAoZm9vKToKLSAgICAgICAgKGJhcik6
Ci0gICAgICAgIChGb28pOgotCiAyMDE1LTA4LTA2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRoZSBKU09OUCBwYXJzZXIgaW5jb3JyZWN0bHkgcGFy
c2VzIC0wIGFzICswLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2NmNDNhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjM3YzUwLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDQ4MmM0NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGU5ZWYxNDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJs
b2NrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE2YTY2Ny4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10
cnktYmxvY2sKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0
aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2Yzk2M2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2Nr
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlYzBmYzcuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8g
ZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM2ZjU4ZC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiAr
MCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2Vs
Zi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlZjkyYzkuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBA
QAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9y
LXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1wcm90by1vci1zZWxmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2YWI2
MTEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXByb3RvLW9yLXNlbGYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAK
LTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliMWFhNTcuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQzNzUxYjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVh
ZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MjE3MTMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYt
b3ItcHJvdG8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNS
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90bwotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8u
aHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxm
LW9yLXByb3RvLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwNGE2YjkuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXNlbGYtb3ItcHJvdG8uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctc2VsZi1vci1wcm90by5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQxMDBjNWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24g
dGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzOTBlZDkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDgyYzQ1Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTll
ZjE0MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1j
aGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzU0YmIwLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRy
eS1ibG9jay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jawotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZy
b20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzk3NWY5OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2su
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDMxNDk0YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3du
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWJmYWNhLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE1ZDI2Mi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTU4MTVjZS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3It
c2VsZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1w
cm90by1vci1zZWxmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjQ2MDVjMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCAr
MCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjVjZTQ2Mi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVh
ZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc2NjkxMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmY1ZjNkNy4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9y
LXByb3RvLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5MjU4OWYxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCww
IEBACi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSAnYScsIGwgPSAnbCc7Ci0gICAgdmFyIG8g
PSB7W2FdOjF9OwotICAgIHZhciBwID0ge1thXToyLCBbbF06MTN9OwotICAgIHZhciByZXN1bHQg
PSAwOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIHJl
c3VsdCBePSBvW2FdOwotICAgICAgICB2YXIgdG1wID0gbzsKLSAgICAgICAgbyA9IHA7Ci0gICAg
ICAgIHAgPSB0bXA7Ci0gICAgfQotICAgIGlmIChyZXN1bHQgIT0gMCkKLSAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGI1OTQwMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0g
ICAgdmFyIGEgPSAnYScsIGIgPSAnYicsIGMgPSAnYycsIGQgPSAnZCcsIGUgPSAnZScsIGYgPSAn
ZicsIGcgPSAnZycsIGggPSAnaCcsIGkgPSAnaScsIGogPSAnaicsIGsgPSAnaycsIGwgPSAnbCc7
Ci0gICAgdmFyIG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06Niwg
W2ddOjcsIFtoXTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9OwotICAgIHZhciBwID0ge1thXToy
LCBbYl06MywgW2NdOjQsIFtkXTo1LCBbZV06NiwgW2ZdOjcsIFtnXTo4LCBbaF06OSwgW2ldOjEw
LCBbal06MTEsIFtrXToxMiwgW2xdOjEzfTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3Ig
KHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkgewotICAgICAgICByZXN1
bHQgKz0gb1thXSBeIG9bYl0gXiBvW2NdIF4gb1tkXSBeIG9bZV0gXiBvW2ZdIF4gb1tnXSBeIG9b
aF0gXiBvW2ldIF4gb1tqXSBeIG9ba107Ci0gICAgICAgIHZhciB0bXAgPSBvOwotICAgICAgICBv
ID0gcDsKLSAgICAgICAgcCA9IHRtcDsKLSAgICB9Ci0gICAgaWYgKHJlc3VsdCAhPSA2NTAwMDAw
KQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnkt
YmxvY2suanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmOTcwZmUuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ5ICsw
LDAgQEAKLXZhciBmID0gJ2YnOwotCi1mdW5jdGlvbiBBKCkgeyB9Ci0KLUEucHJvdG90eXBlID0g
e1tmXTo0Mn07Ci0KLWZ1bmN0aW9uIEIoKSB7IH0KLQotQi5wcm90b3R5cGUgPSBuZXcgQSgpOwot
Ci1mdW5jdGlvbiBDKCkgeyB9Ci0KLUMucHJvdG90eXBlID0gbmV3IEIoKTsKLQotZnVuY3Rpb24g
RCgpIHsgfQotCi1ELnByb3RvdHlwZSA9IG5ldyBDKCk7Ci0KLWZ1bmN0aW9uIEUoKSB7IH0KLQot
RS5wcm90b3R5cGUgPSBuZXcgRCgpOwotCi1mdW5jdGlvbiBGKCkgeyB9Ci0KLUYucHJvdG90eXBl
ID0gbmV3IEUoKTsKLQotZnVuY3Rpb24gRygpIHsgfQotCi1HLnByb3RvdHlwZSA9IG5ldyBGKCk7
Ci0KLWZ1bmN0aW9uIGZvbyhvKSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IDA7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQotICAgICAgICAgICAgcmVz
dWx0ICs9IG9bZl07Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICByZXR1cm4gNTI7Ci0gICAgfQotfQotCi12YXIgcmVzdWx0ID0gMDsKLQotZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCi0gICAgcmVzdWx0ICs9IGZvbyhuZXcgRygpKTsKLQot
aWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpz
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJiODhhYTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAg
ICB2YXIgYSA9ICdhJywgYiA9ICdiJywgYyA9ICdjJywgZCA9ICdkJywgZSA9ICdlJywgZiA9ICdm
JywgZyA9ICdnJywgaCA9ICdoJywgaSA9ICdpJywgaiA9ICdqJywgayA9ICdrJzsKLSAgICB2YXIg
byA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hd
OjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9y
ICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpCi0gICAgICAgIHJlc3Vs
dCArPSBvW2FdIF4gb1tiXSB8IG9bY10gXiBvW2RdICYgb1tlXSBeIG9bZl0gfCBvW2ddIF4gb1to
XSAmIG9baV0gXiBvW2pdIHwgb1trXTsKLSAgICBpZiAocmVzdWx0ICE9IDE1MDAwMDAwKQotICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1wcm90by1vci1zZWxmLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlZjc0OTNiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2Vs
Zi5qcworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXZhciBmID0gJ2YnOwotCi1mdW5j
dGlvbiBmb28obykgewotICAgIHJldHVybiBvW2ZdOwotfQotCi1mdW5jdGlvbiBiYXIoYSkgewot
ICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsgKytp
KSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsraikKLSAgICAgICAg
ICAgIHJlc3VsdCArPSBmb28oYVtqXSk7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LWZ1bmN0aW9uIEZvbygpIHsKLX0KLQotRm9vLnByb3RvdHlwZVtmXSA9IDQyOwotCi12YXIgcmVz
dWx0ID0gYmFyKFtuZXcgRm9vKCksIHtbZl06MjR9XSk7Ci0KLWlmIChyZXN1bHQgIT0gMTMyMDAw
MDAwKQotICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTFkY2UzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcworKysgL2Rldi9udWxs
CkBAIC0xLDIyICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAgICB2YXIgYSA9ICdhJzsKLSAgICB2
YXIgbCA9ICdsJzsKLSAgICB2YXIgYiA9ICdiJzsKLSAgICB2YXIgYyA9ICdjJzsKLQotICAgIHZh
ciBvID0ge1thXToxfTsKLSAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKLSAgICB2YXIgcSA9
IHtbYV06MywgW2JdOjN9OwotICAgIHZhciByID0ge1thXTo0LCBbY106NX07Ci0gICAgdmFyIHJl
c3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKLSAgICAg
ICAgcmVzdWx0IF49IG9bYV07Ci0gICAgICAgIHZhciB0bXAgPSBvOwotICAgICAgICBvID0gcDsK
LSAgICAgICAgcCA9IHE7Ci0gICAgICAgIHEgPSByOwotICAgICAgICByID0gdG1wOwotICAgIH0K
LSAgICBpZiAocmVzdWx0ICE9IDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNl
bGYtb3ItcHJvdG8uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliZWMxMDcuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAs
MCBAQAotdmFyIGYgPSAnZic7Ci0KLWZ1bmN0aW9uIGZvbyhvKSB7Ci0gICAgcmV0dXJuIG9bZl07
Ci19Ci0KLWZ1bmN0aW9uIGJhcihhKSB7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGog
PCBhLmxlbmd0aDsgKytqKQotICAgICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsKLSAgICB9
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gRm9vKCkgewotfQotCi1Gb28ucHJv
dG90eXBlW2ZdID0gNDI7Ci0KLXZhciByZXN1bHQgPSBiYXIoW3tbZl06MjR9LCBuZXcgRm9vKCld
KTsKLQotaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCi0gICAgdGhyb3cgIkVycm9yIGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg1ZDMyYS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAg
IHZhciBhID0gU3ltYm9sKCksIGwgPSBTeW1ib2woKTsKLSAgICB2YXIgbyA9IHtbYV06MX07Ci0g
ICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKLSAgICAgICAgcmVzdWx0IF49IG9bYV07
Ci0gICAgICAgIHZhciB0bXAgPSBvOwotICAgICAgICBvID0gcDsKLSAgICAgICAgcCA9IHRtcDsK
LSAgICB9Ci0gICAgaWYgKHJlc3VsdCAhPSAwKQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmJlOTcxLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAgICB2YXIgYSA9IFN5
bWJvbCgpLCBiID0gU3ltYm9sKCksIGMgPSBTeW1ib2woKSwgZCA9IFN5bWJvbCgpLCBlID0gU3lt
Ym9sKCksIGYgPSBTeW1ib2woKSwgZyA9IFN5bWJvbCgpLCBoID0gU3ltYm9sKCksIGkgPSBTeW1i
b2woKSwgaiA9IFN5bWJvbCgpLCBrID0gU3ltYm9sKCksIGwgPSBTeW1ib2woKTsKLSAgICB2YXIg
byA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hd
OjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07Ci0gICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBb
Y106NCwgW2RdOjUsIFtlXTo2LCBbZl06NywgW2ddOjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwg
W2tdOjEyLCBbbF06IDEzfTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBpbmRl
eCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkgewotICAgICAgICByZXN1bHQgKz0gb1th
XSBeIG9bYl0gXiBvW2NdIF4gb1tkXSBeIG9bZV0gXiBvW2ZdIF4gb1tnXSBeIG9baF0gXiBvW2ld
IF4gb1tqXSBeIG9ba107Ci0gICAgICAgIHZhciB0bXAgPSBvOwotICAgICAgICBvID0gcDsKLSAg
ICAgICAgcCA9IHRtcDsKLSAgICB9Ci0gICAgaWYgKHJlc3VsdCAhPSA2NTAwMDAwKQotICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmOGFjNzguLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1j
aGFpbi1mcm9tLXRyeS1ibG9jay5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLXZh
ciBmID0gU3ltYm9sKCJDb2NvYSIpOwotCi1mdW5jdGlvbiBBKCkgeyB9Ci0KLUEucHJvdG90eXBl
ID0ge1tmXTo0Mn07Ci0KLWZ1bmN0aW9uIEIoKSB7IH0KLQotQi5wcm90b3R5cGUgPSBuZXcgQSgp
OwotCi1mdW5jdGlvbiBDKCkgeyB9Ci0KLUMucHJvdG90eXBlID0gbmV3IEIoKTsKLQotZnVuY3Rp
b24gRCgpIHsgfQotCi1ELnByb3RvdHlwZSA9IG5ldyBDKCk7Ci0KLWZ1bmN0aW9uIEUoKSB7IH0K
LQotRS5wcm90b3R5cGUgPSBuZXcgRCgpOwotCi1mdW5jdGlvbiBGKCkgeyB9Ci0KLUYucHJvdG90
eXBlID0gbmV3IEUoKTsKLQotZnVuY3Rpb24gRygpIHsgfQotCi1HLnByb3RvdHlwZSA9IG5ldyBG
KCk7Ci0KLWZ1bmN0aW9uIGZvbyhvKSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIHJlc3VsdCA9
IDA7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKQotICAgICAgICAgICAg
cmVzdWx0ICs9IG9bZl07Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfSBjYXRjaCAoZSkg
ewotICAgICAgICByZXR1cm4gNTI7Ci0gICAgfQotfQotCi12YXIgcmVzdWx0ID0gMDsKLQotZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCi0gICAgcmVzdWx0ICs9IGZvbyhuZXcgRygpKTsK
LQotaWYgKHJlc3VsdCAhPSA0MjAwMDAwMCkKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDlkNTlmZDguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLShmdW5jdGlvbigpIHsK
LSAgICB2YXIgYSA9IFN5bWJvbCgpLCBiID0gU3ltYm9sKCksIGMgPSBTeW1ib2woKSwgZCA9IFN5
bWJvbCgpLCBlID0gU3ltYm9sKCksIGYgPSBTeW1ib2woKSwgZyA9IFN5bWJvbCgpLCBoID0gU3lt
Ym9sKCksIGkgPSBTeW1ib2woKSwgaiA9IFN5bWJvbCgpLCBrID0gU3ltYm9sKCk7Ci0gICAgdmFy
IG8gPSB7W2FdOjEsIFtiXToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2ddOjcsIFto
XTo4LCBbaV06OSwgW2pdOjEwLCBba106MTF9OwotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZv
ciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KQotICAgICAgICByZXN1
bHQgKz0gb1thXSBeIG9bYl0gfCBvW2NdIF4gb1tkXSAmIG9bZV0gXiBvW2ZdIHwgb1tnXSBeIG9b
aF0gJiBvW2ldIF4gb1tqXSB8IG9ba107Ci0gICAgaWYgKHJlc3VsdCAhPSAxNTAwMDAwMCkKLSAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTJmODJhYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNl
bGYuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi12YXIgZiA9IFN5bWJvbCgiQ29j
b2EiKTsKLQotZnVuY3Rpb24gZm9vKG8pIHsKLSAgICByZXR1cm4gb1tmXTsKLX0KLQotZnVuY3Rp
b24gYmFyKGEpIHsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDIwMDAwMDA7ICsraSkgewotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyAr
K2opCi0gICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOwotICAgIH0KLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1mdW5jdGlvbiBGb28oKSB7Ci19Ci0KLUZvby5wcm90b3R5cGVbZl0gPSA0
MjsKLQotdmFyIHJlc3VsdCA9IGJhcihbbmV3IEZvbygpLCB7W2ZdOjI0fV0pOwotCi1pZiAocmVz
dWx0ICE9IDEzMjAwMDAwMCkKLSAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTU4MzYyYS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEg
PSBTeW1ib2woIkNvY29hIik7Ci0gICAgdmFyIGwgPSBTeW1ib2woKTsKLSAgICB2YXIgYiA9IFN5
bWJvbCgpOwotICAgIHZhciBjID0gU3ltYm9sKCk7Ci0KLSAgICB2YXIgbyA9IHtbYV06MX07Ci0g
ICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307Ci0gICAgdmFyIHEgPSB7W2FdOjMsIFtiXTozfTsK
LSAgICB2YXIgciA9IHtbYV06NCwgW2NdOjV9OwotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCBePSBvW2Fd
OwotICAgICAgICB2YXIgdG1wID0gbzsKLSAgICAgICAgbyA9IHA7Ci0gICAgICAgIHAgPSBxOwot
ICAgICAgICBxID0gcjsKLSAgICAgICAgciA9IHRtcDsKLSAgICB9Ci0gICAgaWYgKHJlc3VsdCAh
PSAwKQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDA4YzM2Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2Vs
Zi1vci1wcm90by5qcworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXZhciBmID0gU3lt
Ym9sKCdDb2NvYScpOwotCi1mdW5jdGlvbiBmb28obykgewotICAgIHJldHVybiBvW2ZdOwotfQot
Ci1mdW5jdGlvbiBiYXIoYSkgewotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMjAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5s
ZW5ndGg7ICsraikKLSAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7Ci0gICAgfQotICAg
IHJldHVybiByZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIEZvbygpIHsKLX0KLQotRm9vLnByb3RvdHlw
ZVtmXSA9IDQyOwotCi12YXIgcmVzdWx0ID0gYmFyKFt7W2ZdOjI0fSwgbmV3IEZvbygpXSk7Ci0K
LWlmIChyZXN1bHQgIT0gMTMyMDAwMDAwKQotICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggN2JiNjcyYS4uYzM0OWQ4MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xNjYsMTY1ICsxNjYsNiBAQAogICAgICAgICAq
IGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CiAgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9n
ZXRfYnlfdmFsKToKIAotMjAxNS0wOC0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KLQotICAgICAgICBJbnRyb2R1Y2UgZ2V0X2J5X2lkIGxpa2UgSUMgaW50byBnZXRf
YnlfdmFsIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgU3RyaW5nIG9yIFN5bWJvbAotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NDgwCi0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCi0KLSAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGdldF9i
eV9pZCBJQyB0byBnZXRfYnlfdmFsIG9wZXJhdGlvbiBieSBjYWNoaW5nIHRoZSBzdHJpbmcgLyBz
eW1ib2wgaWQuCi0gICAgICAgIFRoZSBJQyBzaXRlIG9ubHkgY2FjaGVzIG9uZSBpZC4gQWZ0ZXIg
Y2hlY2tpbmcgdGhhdCB0aGUgZ2l2ZW4gaWQgaXMgdGhlIHNhbWUgdG8gdGhlCi0gICAgICAgIGNh
Y2hlZCBvbmUsIHdlIHBlcmZvcm0gdGhlIGdldF9ieV9pZCBJQyBvbnRvIGl0LgotICAgICAgICBB
bmQgYnkgY29sbGVjdGluZyBJQyBTdHJ1Y3R1cmVTdHViSW5mbyBpbmZvcm1hdGlvbiwgd2UgcGFz
cyBpdCB0byB0aGUgREZHIGFuZCBERkcKLSAgICAgICAgY29tcGlsZXMgZ2V0X2J5X3ZhbCBvcCBj
b2RlIGludG8gQ2hlY2tJZGVudCAod2l0aCBlZGdlIHR5cGUgY2hlY2spIGFuZCBHZXRCeUlkIHJl
bGF0ZWQKLSAgICAgICAgb3BlcmF0aW9ucyB3aGVuIHRoZSBnaXZlbiBnZXRfYnlfdmFsIGxldmVy
YWdlcyB0aGUgcHJvcGVydHkgbG9hZCB3aXRoIHRoZSBjYWNoZWQgaWQuCi0KLSAgICAgICAgVG8g
ZW5zdXJlIHRoZSBpbmNvbWluZyB2YWx1ZSBpcyB0aGUgZXhwZWN0ZWQgaWQsIGluIERGRyBsYXll
ciwgd2UgdXNlIFN5bWJvbFVzZSBhbmQKLSAgICAgICAgU3RyaW5nSWRlbnRVc2UgdG8gZW5mb3Jj
ZSB0aGUgdHlwZS4gVG8gdXNlIGl0LCB0aGlzIHBhdGNoIGltcGxlbWVudHMgU3ltYm9sVXNlLgot
ICAgICAgICBUaGlzIGNhbiBiZSBsZXZlcmFnZWQgdG8gb3B0aW1pemUgc3ltYm9sIG9wZXJhdGlv
bnMgaW4gREZHLgotCi0gICAgICAgIEFuZCBzaW5jZSBieVZhbEluZm8gaXMgZnJlcXVlbnRseSB1
c2VkLCB3ZSBhbGlnbiB0aGUgYnlWYWxJbmZvIGRlc2lnbiB0byB0aGUgc3R1YkluZm8gbGlrZSBv
bmUuCi0gICAgICAgIEFsbG9jYXRlZCBieSB0aGUgQmFnIGFuZCBvcGVyYXRpb25zIHRha2UgdGhl
IHJhdyBieVZhbEluZm8gcG9pbnRlciBkaXJlY3RseSBpbnN0ZWFkIG9mIHBlcmZvcm1pbmcKLSAg
ICAgICAgYmluYXJ5IHNlYXJjaCBvbnRvIG1fYnlWYWxJbmZvcy4gQW5kIGJ5IHN0b3JpbmcgQXJy
YXlQcm9maWxlKiB1bmRlciB0aGUgQnlWYWxJbmZvLCB3ZSByZXBsYWNlZCB0aGUKLSAgICAgICAg
YXJndW1lbnQgQXJyYXlQcm9maWxlKiBpbiB0aGUgb3BlcmF0aW9ucyB3aXRoIEJ5VmFsSW5mbyou
Ci0KLSAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8uaDoKLSAgICAgICAgKEpTQzo6QnlWYWxJ
bmZvOjpCeVZhbEluZm8pOgotICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6Ci0gICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKToKLSAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjphZGRCeVZhbEluZm8pOgotICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgot
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmdldEJ5VmFsSW5mbyk6IERlbGV0ZWQuCi0gICAgICAg
IChKU0M6OkNvZGVCbG9jazo6c2V0TnVtYmVyT2ZCeVZhbEluZm9zKTogRGVsZXRlZC4KLSAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpudW1iZXJPZkJ5VmFsSW5mb3MpOiBEZWxldGVkLgotICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OmJ5VmFsSW5mbyk6IERlbGV0ZWQuCi0gICAgICAgICogYnl0ZWNv
ZGUvRXhpdEtpbmQuY3BwOgotICAgICAgICAoSlNDOjpleGl0S2luZFRvU3RyaW5nKToKLSAgICAg
ICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgotICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuY3BwOgotICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKToKLSAgICAg
ICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKToKLSAgICAgICAgKEpT
Qzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJh
Y2spOgotICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaDoKLSAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKLSAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgotICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6Ci0gICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgotICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFy
c2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxpbmVTdGFja0VudHJ5KToKLSAgICAgICAgKiBkZmcv
REZHQ2xvYmJlcml6ZS5oOgotICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgotICAgICAg
ICAqIGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHA6Ci0gICAgICAgIChKU0M6OkRGRzo6
Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZvbGRDb25zdGFudHMpOgotICAgICAgICAqIGRmZy9ERkdE
b2VzR0MuY3BwOgotICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6Ci0gICAgICAgICogZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwOgotICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9k
ZSk6Ci0gICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6b2JzZXJ2ZVVzZUtpbmRPbk5vZGUp
OgotICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Ci0gICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFz
VWlkT3BlcmFuZCk6Ci0gICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6dWlkT3BlcmFuZCk6Ci0gICAg
ICAgICogZGZnL0RGR05vZGVUeXBlLmg6Ci0gICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcDoKLSAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZTo6cHJvcGFnYXRlKToKLSAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgot
ICAgICAgICAoSlNDOjpERkc6OlNhZmVUb0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigpKToKLSAgICAg
ICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKLSAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwOgotICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hl
Y2tJZGVudCk6Ci0gICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5
bWJvbCk6Ci0gICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6Ci0g
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Ci0gICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwOgotICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKLSAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6Ci0gICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgotICAgICAgICAqIGRmZy9ERkdV
c2VLaW5kLmNwcDoKLSAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6Ci0gICAgICAgICogZGZn
L0RGR1VzZUtpbmQuaDoKLSAgICAgICAgKEpTQzo6REZHOjp0eXBlRmlsdGVyRm9yKToKLSAgICAg
ICAgKEpTQzo6REZHOjppc0NlbGwpOgotICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6Ci0gICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6Ci0gICAgICAgIChK
U0M6OkZUTDo6Y2FuQ29tcGlsZSk6Ci0gICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cDoKLSAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6
Ci0gICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNrSWRl
bnQpOgotICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06Omxvd1N5bWJvbCk6
Ci0gICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlKToKLSAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjppc05vdFN5bWJvbCk6Ci0gICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlU3ltYm9sKToKLSAg
ICAgICAgKiBqaXQvSklULmNwcDoKLSAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZSk6
Ci0gICAgICAgICogaml0L0pJVC5oOgotICAgICAgICAoSlNDOjpCeVZhbENvbXBpbGF0aW9uSW5m
bzo6QnlWYWxDb21waWxhdGlvbkluZm8pOgotICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVHZXRC
eVZhbFdpdGhDYWNoZWRJZCk6Ci0gICAgICAgICogaml0L0pJVElubGluZXMuaDoKLSAgICAgICAg
KEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKLSAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6
Ci0gICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eSk6Ci0gICAg
ICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgotICAgICAg
ICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgotICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkpOgotICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2hh
c19pbmRleGVkX3Byb3BlcnR5KToKLSAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6Ci0g
ICAgICAgIChKU0M6OmdldEJ5VmFsKToKLSAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgot
ICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6Ci0gICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9nZXRfYnlfdmFsKToKLSAgICAgICAgKEpTQzo6SklUOjplbWl0R2V0QnlWYWxXaXRo
Q2FjaGVkSWQpOgotICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgot
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6Ci0gICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbCk6Ci0gICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNv
bXBpbGVHZXRCeVZhbCk6Ci0gICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZh
bFdpdGhDYWNoZWRJZCk6Ci0gICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3Bw
OgotICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6Ci0gICAgICAgIChKU0M6
OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKToKLSAgICAgICAgKEpTQzo6SklUOjplbWl0
U2xvd19vcF9nZXRfYnlfdmFsKToKLSAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV92
YWwpOgotICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgotICAgICAg
ICAqIHJ1bnRpbWUvU3ltYm9sLmg6Ci0gICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctY29uc3RydWN0b3IuanM6IEFkZGVkLgotICAgICAgICAoSGVsbG8pOgotICAg
ICAgICAoZ2V0IEhlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSk6Ci0gICAgICAgIChvayk6Ci0gICAg
ICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZXhpdC5qczogQWRkZWQu
Ci0gICAgICAgIChzaG91bGRCZSk6Ci0gICAgICAgIChnZXRCeVZhbCk6Ci0gICAgICAgIChnZXRT
dHIxKToKLSAgICAgICAgKGdldFN0cjIpOgotICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qczogQWRkZWQuCi0gICAgICAgIChzaG91bGRCZSk6
Ci0gICAgICAgIChnZXRCeVZhbCk6Ci0gICAgICAgIChnZXRTdHIxKToKLSAgICAgICAgKGdldFN0
cjIpOgotICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdldHRl
ci5qczogQWRkZWQuCi0gICAgICAgIChvYmplY3QuZ2V0IGhlbGxvKToKLSAgICAgICAgKG9rKToK
LSAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qczogQWRkZWQu
Ci0gICAgICAgIChzaG91bGRCZSk6Ci0gICAgICAgIChnZXRCeVZhbCk6Ci0gICAgICAgIChnZXRT
dHIxKToKLSAgICAgICAgKGdldFN0cjIpOgotICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzOiBBZGRlZC4KLSAgICAgICAgKEhlbGxvKToK
LSAgICAgICAgKGdldCBIZWxsby5wcm90b3R5cGUuZ2VuZXJhdGUpOgotICAgICAgICAob2spOgot
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanM6IEFk
ZGVkLgotICAgICAgICAoc2hvdWxkQmUpOgotICAgICAgICAoZ2V0QnlWYWwpOgotICAgICAgICAo
Z2V0U3ltMSk6Ci0gICAgICAgIChnZXRTeW0yKToKLSAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanM6IEFkZGVkLgotICAgICAgICAob2JqZWN0Lmdl
dCBoZWxsbyk6Ci0gICAgICAgICguZ2V0IG9rKToKLSAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC5qczogQWRkZWQuCi0gICAgICAgIChzaG91bGRCZSk6Ci0gICAg
ICAgIChnZXRCeVZhbCk6Ci0gICAgICAgIChnZXRTeW0xKToKLSAgICAgICAgKGdldFN5bTIpOgot
CiAyMDE1LTA4LTA2ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgog
CiAgICAgICAgIFBhcnNlIHRoZSBlbnRpcmUgV2ViQXNzZW1ibHkgbW9kdWxlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCmluZGV4IDY3NTQxZmQuLmQ5ODg1MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI2LDE4
ICsyNiwxNiBAQAogI2lmbmRlZiBCeVZhbEluZm9faAogI2RlZmluZSBCeVZhbEluZm9faAogCisj
aWYgRU5BQkxFKEpJVCkKKwogI2luY2x1ZGUgIkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVM
b2NhdGlvbi5oIgotI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRlICJJbmRleGluZ1R5
cGUuaCIKICNpbmNsdWRlICJKSVRTdHViUm91dGluZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5o
IgotI2luY2x1ZGUgIlN0cnVjdHVyZVN0dWJJbmZvLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi0j
aWYgRU5BQkxFKEpJVCkKLQogZW51bSBKSVRBcnJheU1vZGUgewogICAgIEpJVEludDMyLAogICAg
IEpJVERvdWJsZSwKQEAgLTIwMywzMyArMjAxLDI0IEBAIGlubGluZSBKSVRBcnJheU1vZGUgaml0
QXJyYXlNb2RlRm9yU3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0dXJlKQogCiBzdHJ1Y3QgQnlW
YWxJbmZvIHsKICAgICBCeVZhbEluZm8oKSB7IH0KLQotICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBi
eXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9u
SnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgQXJyYXlQcm9maWxlKiBh
cnJheVByb2ZpbGUsIGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRk
cmVzc1RvU2xvd1BhdGgpCisgICAgCisgICAgQnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5k
ZXgsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUs
IGludDE2X3QgYmFkVHlwZUp1bXBUb0RvbmUsIGludDE2X3QgcmV0dXJuQWRkcmVzc1RvU2xvd1Bh
dGgpCiAgICAgICAgIDogYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQotICAgICAgICAsIG5v
dEluZGV4SnVtcChub3RJbmRleEp1bXApCiAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1
bXApCiAgICAgICAgICwgYXJyYXlNb2RlKGFycmF5TW9kZSkKLSAgICAgICAgLCBhcnJheVByb2Zp
bGUoYXJyYXlQcm9maWxlKQogICAgICAgICAsIGJhZFR5cGVKdW1wVG9Eb25lKGJhZFR5cGVKdW1w
VG9Eb25lKQogICAgICAgICAsIHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKHJldHVybkFkZHJlc3NU
b1Nsb3dQYXRoKQogICAgICAgICAsIHNsb3dQYXRoQ291bnQoMCkKLSAgICAgICAgLCBzdHViSW5m
byhudWxscHRyKQotICAgICAgICAsIHRvb2tTbG93UGF0aChmYWxzZSkKICAgICB7CiAgICAgfQot
CisgICAgCiAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsKLSAgICBDb2RlTG9jYXRpb25KdW1w
IG5vdEluZGV4SnVtcDsKICAgICBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wOwogICAgIEpJ
VEFycmF5TW9kZSBhcnJheU1vZGU7IC8vIFRoZSBhcnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGlu
dG8gdGhlIGlubGluZSBKSVQgY29kZS4KLSAgICBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZTsK
ICAgICBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lOwogICAgIGludDE2X3QgcmV0dXJuQWRkcmVz
c1RvU2xvd1BhdGg7CiAgICAgdW5zaWduZWQgc2xvd1BhdGhDb3VudDsKICAgICBSZWZQdHI8SklU
U3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwotICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7Ci0gICAg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvOwotICAgIGJvb2wgdG9va1Nsb3dQYXRoOwogfTsK
IAogaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBp
bmZvKQpAQCAtMjM3LDE1ICsyMjYsOSBAQCBpbmxpbmUgdW5zaWduZWQgZ2V0QnlWYWxJbmZvQnl0
ZWNvZGVJbmRleChCeVZhbEluZm8qIGluZm8pCiAgICAgcmV0dXJuIGluZm8tPmJ5dGVjb2RlSW5k
ZXg7CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBCeVZhbEluZm8qLCBDb2RlT3Jp
Z2luQXBwcm94aW1hdGVIYXNoPiBCeVZhbEluZm9NYXA7Ci0KLSNlbHNlIC8vIEVOQUJMRShKSVQp
Ci0KLXR5cGVkZWYgSGFzaE1hcDxpbnQsIHZvaWQqPiBCeVZhbEluZm9NYXA7Cit9IC8vIG5hbWVz
cGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKLX0gLy8gbmFtZXNwYWNlIEpTQwot
CiAjZW5kaWYgLy8gQnlWYWxJbmZvX2gKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAppbmRleCBjOTMzMWY3Li5hMzYxZDZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMjY3MiwyMiArMjY3Miw2IEBA
IHZvaWQgQ29kZUJsb2NrOjpnZXRDYWxsTGlua0luZm9NYXAoQ2FsbExpbmtJbmZvTWFwJiByZXN1
bHQpCiAgICAgZ2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKIH0KIAotdm9pZCBD
b2RlQmxvY2s6OmdldEJ5VmFsSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQnlW
YWxJbmZvTWFwJiByZXN1bHQpCi17Ci0jaWYgRU5BQkxFKEpJVCkKLSAgICBmb3IgKGF1dG8qIGJ5
VmFsSW5mbyA6IG1fYnlWYWxJbmZvcykKLSAgICAgICAgcmVzdWx0LmFkZChDb2RlT3JpZ2luKGJ5
VmFsSW5mby0+Ynl0ZWNvZGVJbmRleCksIGJ5VmFsSW5mbyk7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShyZXN1bHQpOwotI2VuZGlmCi19Ci0KLXZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbEluZm9N
YXAoQnlWYWxJbmZvTWFwJiByZXN1bHQpCi17Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKLSAgICBnZXRCeVZhbEluZm9NYXAobG9ja2VyLCByZXN1bHQpOwotfQotCiAj
aWYgRU5BQkxFKEpJVCkKIFN0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmZv
KCkKIHsKQEAgLTI3MDQsMTIgKzI2ODgsNiBAQCBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2Nr
OjpmaW5kU3R1YkluZm8oQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQogICAgIHJldHVybiBudWxscHRy
OwogfQogCi1CeVZhbEluZm8qIENvZGVCbG9jazo6YWRkQnlWYWxJbmZvKCkKLXsKLSAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBtX2J5VmFsSW5mb3Mu
YWRkKCk7Ci19Ci0KIENhbGxMaW5rSW5mbyogQ29kZUJsb2NrOjphZGRDYWxsTGlua0luZm8oKQog
ewogICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggOTYwNzkxZC4uNmMzYTExNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtMjAwLDkgKzIw
MCw2IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvTWFwJiByZXN1bHQpOwogICAgIHZvaWQg
Z2V0Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKLQotICAgIHZvaWQg
Z2V0QnlWYWxJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBCeVZhbEluZm9NYXAm
IHJlc3VsdCk7Ci0gICAgdm9pZCBnZXRCeVZhbEluZm9NYXAoQnlWYWxJbmZvTWFwJiByZXN1bHQp
OwogICAgIAogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0dWJJ
bmZvKCk7CkBAIC0yMTQsOCArMjExLDExIEBAIHB1YmxpYzoKICAgICBTdHJ1Y3R1cmVTdHViSW5m
byogZmluZFN0dWJJbmZvKENvZGVPcmlnaW4pOwogCiAgICAgdm9pZCByZXNldFN0dWIoU3RydWN0
dXJlU3R1YkluZm8mKTsKLQotICAgIEJ5VmFsSW5mbyogYWRkQnlWYWxJbmZvKCk7CisgICAgCisg
ICAgQnlWYWxJbmZvJiBnZXRCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKKyAgICB7
CisgICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxCeVZhbEluZm8sIHVuc2lnbmVkPihtX2J5
VmFsSW5mb3MsIG1fYnlWYWxJbmZvcy5zaXplKCksIGJ5dGVjb2RlSW5kZXgsIGdldEJ5VmFsSW5m
b0J5dGVjb2RlSW5kZXgpKTsKKyAgICB9CiAKICAgICBDYWxsTGlua0luZm8qIGFkZENhbGxMaW5r
SW5mbygpOwogICAgIEJhZzxDYWxsTGlua0luZm8+OjppdGVyYXRvciBjYWxsTGlua0luZm9zQmVn
aW4oKSB7IHJldHVybiBtX2NhbGxMaW5rSW5mb3MuYmVnaW4oKTsgfQpAQCAtMzY3LDYgKzM2Nywx
MiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbmFtZUZvclJlZ2lzdGVyKFZpcnR1YWxSZWdpc3Rl
cik7CiAKKyNpZiBFTkFCTEUoSklUKQorICAgIHZvaWQgc2V0TnVtYmVyT2ZCeVZhbEluZm9zKHNp
emVfdCBzaXplKSB7IG1fYnlWYWxJbmZvcy5yZXNpemVUb0ZpdChzaXplKTsgfQorICAgIHNpemVf
dCBudW1iZXJPZkJ5VmFsSW5mb3MoKSBjb25zdCB7IHJldHVybiBtX2J5VmFsSW5mb3Muc2l6ZSgp
OyB9CisgICAgQnlWYWxJbmZvJiBieVZhbEluZm8oc2l6ZV90IGluZGV4KSB7IHJldHVybiBtX2J5
VmFsSW5mb3NbaW5kZXhdOyB9CisjZW5kaWYKKwogICAgIHVuc2lnbmVkIG51bWJlck9mQXJndW1l
bnRWYWx1ZVByb2ZpbGVzKCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX251bVBhcmFtZXRlcnMg
Pj0gMCk7CkBAIC0xMDEwLDcgKzEwMTYsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxKSVRDb2Rl
PiBtX2ppdENvZGU7CiAjaWYgRU5BQkxFKEpJVCkKICAgICBCYWc8U3RydWN0dXJlU3R1YkluZm8+
IG1fc3R1YkluZm9zOwotICAgIEJhZzxCeVZhbEluZm8+IG1fYnlWYWxJbmZvczsKKyAgICBWZWN0
b3I8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7CiAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9jYWxs
TGlua0luZm9zOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxDYWxsTGlua0luZm8sIEJhc2ljUmF3
U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdDYWxsczsKICAgICBTZW50aW5l
bExpbmtlZExpc3Q8UG9seW1vcnBoaWNDYWxsTm9kZSwgQmFzaWNSYXdTZW50aW5lbE5vZGU8UG9s
eW1vcnBoaWNDYWxsTm9kZT4+IG1faW5jb21pbmdQb2x5bW9ycGhpY0NhbGxzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKaW5kZXggMjUyNDMwMC4uNGY3OWYy
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCkBAIC00
MCw4ICs0MCw2IEBAIGNvbnN0IGNoYXIqIGV4aXRLaW5kVG9TdHJpbmcoRXhpdEtpbmQga2luZCkK
ICAgICAgICAgcmV0dXJuICJCYWRUeXBlIjsKICAgICBjYXNlIEJhZENlbGw6CiAgICAgICAgIHJl
dHVybiAiQmFkQ2VsbCI7Ci0gICAgY2FzZSBCYWRJZGVudDoKLSAgICAgICAgcmV0dXJuICJCYWRJ
ZGVudCI7CiAgICAgY2FzZSBCYWRFeGVjdXRhYmxlOgogICAgICAgICByZXR1cm4gIkJhZEV4ZWN1
dGFibGUiOwogICAgIGNhc2UgQmFkQ2FjaGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5oCmluZGV4IDZmOGM1MTIuLjU5Y2JiZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zMiw3ICszMiw2IEBAIGVudW0gRXhpdEtpbmQg
OiB1aW50OF90IHsKICAgICBFeGl0S2luZFVuc2V0LAogICAgIEJhZFR5cGUsIC8vIFdlIGV4aXRl
ZCBiZWNhdXNlIGEgdHlwZSBwcmVkaWN0aW9uIHdhcyB3cm9uZy4KICAgICBCYWRDZWxsLCAvLyBX
ZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBhc3N1bXB0aW9uIGFib3V0IHdo
YXQgY2VsbCB3ZSB3b3VsZCBzZWUuIFVzdWFsbHkgdXNlZCBmb3IgZnVuY3Rpb24gY2hlY2tzLgot
ICAgIEJhZElkZW50LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29ycmVjdCBh
c3N1bXB0aW9uIGFib3V0IHdoYXQgaWRlbnRpZmllciB3ZSB3b3VsZCBzZWUuIFVzdWFsbHkgdXNl
ZCBmb3IgY2FjaGVkIElkIGNoZWNrIGluIGdldF9ieV92YWwuCiAgICAgQmFkRXhlY3V0YWJsZSwg
Ly8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91
dCB3aGF0IGV4ZWN1dGFibGUgd2Ugd291bGQgc2VlLgogICAgIEJhZENhY2hlLCAvLyBXZSBleGl0
ZWQgYmVjYXVzZSBhbiBpbmxpbmUgY2FjaGUgd2FzIHdyb25nLgogICAgIEJhZENvbnN0YW50Q2Fj
aGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEgY2FjaGUgb24gYSB3ZWFrIGNvbnN0YW50ICh1c3Vh
bGx5IGEgcHJvdG90eXBlKSB3YXMgd3JvbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggODllNTAzNS4uMWQ5N2M5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAt
OTgsNyArOTgsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29k
ZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgIEdldEJ5SWRTdGF0dXMg
cmVzdWx0OwogCiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0
dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCisgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0
dWJJbmZvKAogICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIG1hcC5nZXQoQ29kZU9yaWdp
bihieXRlY29kZUluZGV4KSksIHVpZCwKICAgICAgICAgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVF
eGl0U2l0ZURhdGEobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KSk7CiAgICAg
CkBAIC0xMTYsMjAgKzExNiw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZvTWFwJiBtCiB9CiAKICNpZiBF
TkFCTEUoSklUKQotR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1Yklu
Zm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVk
QmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
LCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQotewotICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0ID0g
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2so
Ci0gICAgICAgIGxvY2tlciwgcHJvZmlsZWRCbG9jaywgc3R1YkluZm8sIHVpZCwKLSAgICAgICAg
Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVFeGl0U2l0ZURhdGEobG9ja2VyLCBwcm9maWxlZEJsb2Nr
LCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKTsKLQotICAgIGlmICghcmVzdWx0LnRha2VzU2xv
d1BhdGgoKSAmJiBHZXRCeUlkU3RhdHVzOjpoYXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxv
Y2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBHZXRCeUlkU3Rh
dHVzKHJlc3VsdC5tYWtlc0NhbGxzKCkgPyBHZXRCeUlkU3RhdHVzOjpNYWtlc0NhbGxzIDogR2V0
QnlJZFN0YXR1czo6VGFrZXNTbG93UGF0aCwgdHJ1ZSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LSNlbmRpZiAvLyBFTkFCTEUoSklUKQotCi0jaWYgRU5BQkxFKEpJVCkKLUdldEJ5SWRTdGF0dXMg
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2so
CitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbygKICAgICBj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9j
aywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkLAog
ICAgIENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRlRGF0YSkKIHsKQEAg
LTI1NSw3ICsyNDIsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3Io
CiAgICAgICAgIEdldEJ5SWRTdGF0dXMgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAg
IHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorICAg
ICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvKAogICAgICAgICAgICAgICAgIGxv
Y2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCwgZXhpdFNpdGVEYXRh
KTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvR2V0QnlJZFN0YXR1cy5oCmluZGV4IGQ3ZjBhZTQuLjMyMzcyY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaApAQCAtNzEsMTEgKzcxLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoY29uc3QgU3Ry
dWN0dXJlU2V0JiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgCiAgICAgc3RhdGljIEdl
dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9j
ayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01h
cCwgQ29kZU9yaWdpbiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCk7Ci0KLSNpZiBFTkFCTEUoSklU
KQotICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25j
dXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwotI2VuZGlmCi0KKyAg
ICAKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICAKICAg
ICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9ybWF0aW9uOyB9
CkBAIC05OSw3ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaGFzRXhpdFNpdGUo
Y29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2Rl
SW5kZXgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEpJVCkKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1
cyBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKKyAgICBzdGF0aWMg
R2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oCiAgICAgICAgIGNvbnN0IENvbmN1cnJl
bnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZv
KiwKICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwgQ2FsbExpbmtTdGF0dXM6OkV4aXRT
aXRlRGF0YSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAyMjkwODdkLi4zNzM0Yzc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCkBAIC0yMTYzLDMyICsyMTYzLDYgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBDaGVja0lkZW50
OiB7Ci0gICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEo
KSk7Ci0gICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7
Ci0gICAgICAgIEFTU0VSVCh1aWQtPmlzU3ltYm9sKCkgPyAhKHZhbHVlLm1fdHlwZSAmIH5TcGVj
U3ltYm9sKSA6ICEodmFsdWUubV90eXBlICYgflNwZWNTdHJpbmdJZGVudCkpOyAvLyBFZGdlIGZp
bHRlcmluZyBzaG91bGQgaGF2ZSBhbHJlYWR5IGVuc3VyZWQgdGhpcy4KLQotICAgICAgICBKU1Zh
bHVlIGNoaWxkQ29uc3RhbnQgPSB2YWx1ZS52YWx1ZSgpOwotICAgICAgICBpZiAoY2hpbGRDb25z
dGFudCkgewotICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAgICAgICAg
ICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3ltYm9sKCkpOwotICAgICAgICAgICAgICAgIGlm
IChhc1N5bWJvbChjaGlsZENvbnN0YW50KS0+cHJpdmF0ZU5hbWUoKS51aWQoKSA9PSB1aWQpIHsK
LSAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5pc1N0cmluZygp
KTsKLSAgICAgICAgICAgICAgICBpZiAoYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPnRyeUdldFZh
bHVlSW1wbCgpID09IHVpZCkgewotICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5k
Q29uc3RhbnRzKHRydWUpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBmaWx0ZXIodmFsdWUs
IHVpZC0+aXNTeW1ib2woKSA/IFNwZWNTeW1ib2wgOiBTcGVjU3RyaW5nSWRlbnQpOwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0KICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6IHsKICAgICAgICAgSlNW
YWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNW
YWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDI2OGE3NTcu
LjU2NDIyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCkBAIC05NjksNyArOTY5LDYgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAg
IENhbGxMaW5rSW5mb01hcCBtX2NhbGxMaW5rSW5mb3M7CiAgICAgICAgIFN0dWJJbmZvTWFwIG1f
c3R1YkluZm9zOwotICAgICAgICBCeVZhbEluZm9NYXAgbV9ieVZhbEluZm9zOwogICAgICAgICAK
ICAgICAgICAgLy8gRGlkIHdlIHNlZSBhbnkgcmV0dXJucz8gV2UgbmVlZCB0byBoYW5kbGUgdGhl
ICh1bmNvbW1vbiBidXQgbmVjZXNzYXJ5KQogICAgICAgICAvLyBjYXNlIHdoZXJlIGEgcHJvY2Vk
dXJlIHRoYXQgZG9lcyBub3QgcmV0dXJuIHdhcyBpbmxpbmVkLgpAQCAtMzM5OCwzNSArMzM5Nywx
MiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogCiAg
ICAgICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDogewogICAgICAgICAgICAgU3BlY3VsYXRlZFR5cGUg
cHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb25XaXRob3V0T1NSRXhpdCgpOwotCisgICAgICAgICAg
ICAKICAgICAgICAgICAgIE5vZGUqIGJhc2UgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1v
ZGUgPSBnZXRBcnJheU1vZGUoY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlLCBB
cnJheTo6UmVhZCk7CiAgICAgICAgICAgICBOb2RlKiBwcm9wZXJ0eSA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgYm9v
bCBjb21waWxlZEFzR2V0QnlJZCA9IGZhbHNlOwotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmls
ZWRCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9
IG1faW5saW5lU3RhY2tUb3AtPm1fYnlWYWxJbmZvcy5nZXQoQ29kZU9yaWdpbihjdXJyZW50Q29k
ZU9yaWdpbigpLmJ5dGVjb2RlSW5kZXgpKTsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hl
biB0aGUgYnl0ZWNvZGUgaXMgbm90IGNvbXBpbGVkIGluIHRoZSBiYXNlbGluZSBKSVQsIGJ5VmFs
SW5mbyBiZWNvbWVzIG51bGwuCi0gICAgICAgICAgICAgICAgLy8gQXQgdGhhdCB0aW1lLCB0aGVy
ZSBpcyBubyBpbmZvcm1hdGlvbi4KLSAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvICYmIGJ5
VmFsSW5mby0+c3R1YkluZm8gJiYgIWJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoICYmICFtX2lubGlu
ZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRJ
ZGVudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY29tcGlsZWRBc0dldEJ5SWQgPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5p
ZGVudGlmaWVycygpLmVuc3VyZShieVZhbEluZm8tPmNhY2hlZElkLmltcGwoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJz
KClbaWRlbnRpZmllck51bWJlcl07Ci0KLSAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChD
aGVja0lkZW50LCBPcEluZm8odWlkKSwgcHJvcGVydHkpOwotCi0gICAgICAgICAgICAgICAgICAg
IEdldEJ5SWRTdGF0dXMgZ2V0QnlJZFN0YXR1cyA9IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JT
dHViSW5mbygKLSAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tlciwgbV9pbmxpbmVTdGFja1Rv
cC0+bV9wcm9maWxlZEJsb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5z
dHViSW5mbywgY3VycmVudENvZGVPcmlnaW4oKSwgdWlkKTsKLQotICAgICAgICAgICAgICAgICAg
ICBoYW5kbGVHZXRCeUlkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHByZWRpY3Rp
b24sIGJhc2UsIGlkZW50aWZpZXJOdW1iZXIsIGdldEJ5SWRTdGF0dXMpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFjb21waWxlZEFzR2V0QnlJ
ZCkgewotICAgICAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBnZXRBcnJheU1vZGUo
Y3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlLCBBcnJheTo6UmVhZCk7Ci0gICAg
ICAgICAgICAgICAgTm9kZSogZ2V0QnlWYWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcEluZm8o
YXJyYXlNb2RlLmFzV29yZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlLCBwcm9wZXJ0eSk7
Ci0gICAgICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgTm9k
ZSogZ2V0QnlWYWwgPSBhZGRUb0dyYXBoKEdldEJ5VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29y
ZCgpKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlLCBwcm9wZXJ0eSk7CisgICAgICAgICAgICBz
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBnZXRC
eVZhbCk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dldF9ieV92YWwpOwogICAgICAg
ICB9CkBAIC00MzI5LDcgKzQzMDUsNiBAQCBCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRy
eTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAgaWYgKG1fcHJvZmlsZWRCbG9jay0+aGFzQmFz
ZWxpbmVKSVRQcm9maWxpbmcoKSkgewogICAgICAgICAgICAgbV9wcm9maWxlZEJsb2NrLT5nZXRT
dHViSW5mb01hcChsb2NrZXIsIG1fc3R1YkluZm9zKTsKICAgICAgICAgICAgIG1fcHJvZmlsZWRC
bG9jay0+Z2V0Q2FsbExpbmtJbmZvTWFwKGxvY2tlciwgbV9jYWxsTGlua0luZm9zKTsKLSAgICAg
ICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0QnlWYWxJbmZvTWFwKGxvY2tlciwgbV9ieVZhbElu
Zm9zKTsKICAgICAgICAgfQogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmgKaW5kZXggNDZmNWZlNC4uMjk2NzQ5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTI2OCwxMCArMjY4LDYgQEAgdm9pZCBjbG9i
YmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQs
IGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja05vdEVtcHR5LCBBZGph
Y2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSkpKTsKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgY2FzZSBDaGVja0lkZW50OgotICAgICAgICBkZWYoUHVyZVZhbHVl
KENoZWNrSWRlbnQsIEFkamFjZW5jeUxpc3QoQWRqYWNlbmN5TGlzdDo6Rml4ZWQsIG5vZGUtPmNo
aWxkMSgpKSwgbm9kZS0+dWlkT3BlcmFuZCgpKSk7Ci0gICAgICAgIHJldHVybjsKLQogICAgIGNh
c2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBu
b2RlLT5zdG9yYWdlUG9pbnRlcigpKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXgg
M2Q4NWNhYS4uYmE0YzAzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAKQEAgLTIwOCwzMyArMjA4LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
Y2FzZSBDaGVja0lkZW50OiB7Ci0gICAgICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVp
ZCA9IG5vZGUtPnVpZE9wZXJhbmQoKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlIGNoaWxkQ29u
c3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7Ci0gICAgICAg
ICAgICAgICAgY29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqIGNvbnN0YW50VWlkID0gbnVsbHB0cjsK
LSAgICAgICAgICAgICAgICBpZiAoY2hpbGRDb25zdGFudCkgewotICAgICAgICAgICAgICAgICAg
ICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hp
bGRDb25zdGFudC5pc1N5bWJvbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
YW50VWlkID0gYXNTeW1ib2woY2hpbGRDb25zdGFudCktPnByaXZhdGVOYW1lKCkudWlkKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
Y2hpbGRDb25zdGFudC5pc1N0cmluZygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gU2luY2Ugd2UgYWxyZWFkeSBmaWx0ZXJlZCB0aGUgdmFsdWUgd2l0aCBTdHJpbmdJZGVudFVz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgaGVsZCBpbXBsIGlzIGFsd2F5
cyBhdG9taWMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0IGF1dG8qIGlt
cGwgPSBhc1N0cmluZyhjaGlsZENvbnN0YW50KS0+dHJ5R2V0VmFsdWVJbXBsKCkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGltcGwtPmlzQXRvbWljKCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudFVpZCA9IHN0YXRpY19jYXN0PGNv
bnN0IFVuaXF1ZWRTdHJpbmdJbXBsKj4oaW1wbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50VWlkID09IHVp
ZCkgewotICAgICAgICAgICAgICAgICAgICBub2RlLT5yZW1vdmUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgZWxpbWluYXRlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAgICBjYXNlIENoZWNrSW5Cb3Vu
ZHM6IHsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIGxlZnQgPSBtX3N0YXRlLmZvck5vZGUobm9k
ZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSByaWdodCA9IG1f
c3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCBlNDcwYjhkLi4wOGZmYjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xMDcsNyArMTA3LDYgQEAgYm9vbCBkb2Vz
R0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hw
b2ludDoKICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICBjYXNlIENoZWNrTm90RW1wdHk6Ci0gICAg
Y2FzZSBDaGVja0lkZW50OgogICAgIGNhc2UgUmVnRXhwRXhlYzoKICAgICBjYXNlIFJlZ0V4cFRl
c3Q6CiAgICAgY2FzZSBDb21wYXJlTGVzczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCmluZGV4IGQ2YTk3OTAuLmM0NDIzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTAxMiwxNSArMTAxMiw2IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBDaGVja0lkZW50OiB7
Ci0gICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgp
OwotICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkKLSAgICAgICAgICAgICAgICBmaXhF
ZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nSWRlbnRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJh
eWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CkBAIC0xNzY5LDcgKzE3
NjAsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEZ1bmN0aW9uVXNlOgogICAgICAgICBjYXNl
IFN0cmluZ1VzZToKICAgICAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKLSAgICAgICAgY2FzZSBT
eW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFN0
cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgaWYgKGFsd2F5c1VuYm94U2ltcGxl
UHJpbWl0aXZlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IDgzZmNmNWMu
LjI4Y2FiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xMzI4LDE3ICsx
MzI4LDYgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4obV9vcEluZm8pOwogICAgIH0KIAotICAgIGJvb2wgaGFzVWlkT3BlcmFuZCgpCi0gICAg
ewotICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja0lkZW50OwotICAgIH0KLQotICAgIFVuaXF1
ZWRTdHJpbmdJbXBsKiB1aWRPcGVyYW5kKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChoYXNVaWRP
cGVyYW5kKCkpOwotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxVbmlxdWVkU3RyaW5n
SW1wbCo+KG1fb3BJbmZvKTsKLSAgICB9Ci0KICAgICBib29sIGhhc1RyYW5zaXRpb24oKQogICAg
IHsKICAgICAgICAgc3dpdGNoIChvcCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKaW5kZXggZTliZjcyNy4uNjJlN2NhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaApAQCAtMjA5LDcgKzIwOSw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVja05vdEVtcHR5LCBOb2RlTXVzdEdlbmVyYXRlKSBc
CiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8o
Q2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKENoZWNrSWRlbnQs
IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBcCiAgICAgLyogT3B0aW1pemF0aW9ucyBmb3IgYXJy
YXkgbXV0YXRpb24uICovXAogICAgIG1hY3JvKEFycmF5UHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9k
ZU11c3RHZW5lcmF0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCAzNmYyZGY3Li43NmFm
NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNjQ5LDcgKzY0OSw2IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgog
ICAgICAgICBjYXNlIENoZWNrTm90RW1wdHk6Ci0gICAgICAgIGNhc2UgQ2hlY2tJZGVudDoKICAg
ICAgICAgY2FzZSBDaGVja0JhZENlbGw6CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAg
ICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGIyZDA3ZDUuLjBjMGEyNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw3ICs1OSw2
IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBjYXNl
IFN0cmluZ0lkZW50VXNlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKLSAgICAgICAgY2FzZSBT
eW1ib2xVc2U6CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFN0
cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNlIE5vdFN0cmluZ1ZhclVzZToKQEAg
LTE4OSw3ICsxODgsNiBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0
YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAg
Y2FzZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgotICAgIGNhc2UgQ2hl
Y2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0OgogICAg
IGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwCmluZGV4IDA1MzczNjMuLmYzZjhhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC00NTc2LDMxICs0NTc2
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUqIG5v
ZGUpCiAgICAgfSB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50
KE5vZGUqIG5vZGUpCi17Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7Ci0gICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9w
ZXJhbmQoKTsKLSAgICBpZiAodWlkLT5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIHNwZWN1bGF0ZVN5
bWJvbChub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7Ci0gICAgICAgIHNwZWN1bGF0aW9u
Q2hlY2soCi0gICAgICAgICAgICBCYWRJZGVudCwgSlNWYWx1ZVNvdXJjZSgpLCBudWxscHRyLAot
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoUHRyKAotICAgICAgICAgICAgICAgIEpJVENvbXBpbGVy
OjpOb3RFcXVhbCwKLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhvcGVyYW5k
LmdwcigpLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksCi0gICAgICAgICAgICAgICAg
VHJ1c3RlZEltbVB0cih1aWQpKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nKG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKLSAgICAgICAgc3BlY3VsYXRlU3Ry
aW5nSWRlbnQobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOwotICAgICAgICBzcGVjdWxh
dGlvbkNoZWNrKAotICAgICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0
ciwKLSAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKLSAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6Tm90RXF1YWwsCi0gICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3Bl
cmFuZC5ncHIoKSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksCi0gICAgICAgICAgICAgICAg
VHJ1c3RlZEltbVB0cih1aWQpKSk7Ci0gICAgfQotICAgIG5vUmVzdWx0KG5vZGUpOwotfQotCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb24oTm9kZSogbm9kZSkKIHsKICAg
ICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBzY29wZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CkBAIC01
NzU2LDIwICs1NzMxLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlTm90U3RyaW5n
VmFyKEVkZ2UgZWRnZSkKICAgICBub3RDZWxsLmxpbmsoJm1faml0KTsKIH0KIAotdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCi17Ci0g
ICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2Us
IFNwZWNTeW1ib2wsIG1faml0LmJyYW5jaElmTm90U3ltYm9sKGNlbGwpKTsKLX0KLQotdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKLXsKLSAgICBpZiAoIW5l
ZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTeW1ib2wpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOwotICAgIHNwZWN1bGF0ZVN5
bWJvbChlZGdlLCBvcGVyYW5kLmdwcigpKTsKLX0KLQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3Bl
Y3VsYXRlTm90Q2VsbChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdl
LCB+U3BlY0NlbGwpKQpAQCAtNTg4MSw5ICs1ODQyLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAg
IHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTeW1ib2xV
c2U6Ci0gICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKLSAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdChlZGdl
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmgKaW5kZXggNTQ1ZmYyYS4uYTVjNDQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjE5MSw4ICsyMTkxLDYgQEAgcHVi
bGljOgogICAgIHZvaWQgY29tcGlsZVNraXBTY29wZShOb2RlKik7CiAKICAgICB2b2lkIGNvbXBp
bGVHZXRBcnJheUxlbmd0aChOb2RlKik7Ci0KLSAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5v
ZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlRG91YmxlUmVwKE5vZGUqKTsKQEAgLTI0MDgsOCArMjQwNiw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlLCBHUFJSZWcpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlU3RyaW5nT2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JTdHJp
bmdPYmplY3QoRWRnZSk7Ci0gICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSwgR1BSUmVnIGNl
bGwpOwotICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRl
Tm90Q2VsbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU90aGVyKEVkZ2UpOwogICAgIHZvaWQg
c3BlY3VsYXRlTWlzYyhFZGdlLCBKU1ZhbHVlUmVncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAxMmFiOGQwLi41
MDQyOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAKQEAgLTM4MjAsMTAgKzM4MjAsNiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNh
c2UgQ2hlY2tJZGVudDoKLSAgICAgICAgY29tcGlsZUNoZWNrSWRlbnQobm9kZSk7Ci0gICAgICAg
IGJyZWFrOwotCiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOiB7CiAgICAgICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGZ1bmN0aW9uKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTNjN2M4Ny4uNzcw
YmRhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC0zODUwLDEwICszODUwLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIENoZWNr
SWRlbnQ6Ci0gICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5vZGUpOwotICAgICAgICBicmVhazsK
LQogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1VzZUtpbmQuY3BwCmluZGV4IDkzNmVmNTUuLmVmYTEwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmNwcApAQCAtOTcsOSArOTcsNiBAQCB2b2lkIHByaW50SW50ZXJu
YWwoUHJpbnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgS25vd25TdHJp
bmdVc2U6CiAgICAgICAgIG91dC5wcmludCgiS25vd25TdHJpbmciKTsKICAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgU3ltYm9sVXNlOgotICAgICAgICBvdXQucHJpbnQoIlN5bWJvbCIpOwotICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIG91dC5wcmlu
dCgiU3RyaW5nT2JqZWN0Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmgKaW5kZXggMjg5Yjc4My4uZWJmOTlkYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTU3LDcgKzU3LDYgQEAgZW51bSBVc2VLaW5kIHsKICAg
ICBTdHJpbmdJZGVudFVzZSwKICAgICBTdHJpbmdVc2UsCiAgICAgS25vd25TdHJpbmdVc2UsCi0g
ICAgU3ltYm9sVXNlLAogICAgIFN0cmluZ09iamVjdFVzZSwKICAgICBTdHJpbmdPclN0cmluZ09i
amVjdFVzZSwKICAgICBOb3RTdHJpbmdWYXJVc2UsCkBAIC0xMTgsOCArMTE3LDYgQEAgaW5saW5l
IFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2Ug
U3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgIHJldHVybiBTcGVj
U3RyaW5nOwotICAgIGNhc2UgU3ltYm9sVXNlOgotICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsK
ICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmdPYmpl
Y3Q7CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKQEAgLTE5OSw3ICsxOTYsNiBA
QCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5nSWRlbnRV
c2U6CiAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgY2FzZSBLbm93blN0cmluZ1VzZToKLSAgICBj
YXNlIFN5bWJvbFVzZToKICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIFN0cmlu
Z09yU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKaW5kZXgg
NTgxZjRjYi4uOTEyNzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAgLTg3LDggKzg3LDcgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV9jbGFzc0luZm8sIFN0
cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpIFwKICAgICBtYWNybyhTdHJ1Y3R1cmVfZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSBcCiAgICAgbWFjcm8oU3Ry
dWN0dXJlX3Byb3RvdHlwZSwgU3RydWN0dXJlOjpwcm90b3R5cGVPZmZzZXQoKSkgXAotICAgIG1h
Y3JvKFN0cnVjdHVyZV9zdHJ1Y3R1cmVJRCwgU3RydWN0dXJlOjpzdHJ1Y3R1cmVJRE9mZnNldCgp
KSBcCi0gICAgbWFjcm8oU3ltYm9sX3ByaXZhdGVOYW1lLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0
ZU5hbWUoKSkKKyAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3Ry
dWN0dXJlSURPZmZzZXQoKSkKIAogI2RlZmluZSBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hF
QVAobWFjcm8pIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgRGlyZWN0QXJn
dW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBiNDkzZjMw
Li42MjcyOGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCkBAIC0xMTgsNyArMTE4LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja0JhZENl
bGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgotICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBj
YXNlIFN0cmluZ0NoYXJDb2RlQXQ6CiAgICAgY2FzZSBBbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToK
ICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CkBAIC00MTYsNyArNDE1LDYgQEAg
Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAg
IGNhc2UgS25vd25TdHJpbmdVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RV
c2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKLSAgICAg
ICAgICAgICAgICBjYXNlIFN5bWJvbFVzZToKICAgICAgICAgICAgICAgICBjYXNlIEZpbmFsT2Jq
ZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgTm90Q2VsbFVzZToKICAgICAgICAgICAgICAg
ICBjYXNlIE90aGVyVXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcAppbmRleCBhMWIxOWJmLi41ZmI0ZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNTMyLDkgKzUzMiw2IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICAgICAgY29tcGls
ZUNoZWNrQmFkQ2VsbCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ2hlY2tJ
ZGVudDoKLSAgICAgICAgICAgIGNvbXBpbGVDaGVja0lkZW50KCk7Ci0gICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgICAgICAgICAgY29tcGlsZUdldEV4
ZWN1dGFibGUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjAzMiwyMCArMjAyOSw2IEBAIHBy
aXZhdGU6CiAgICAgICAgIHNwZWN1bGF0ZShURFpGYWlsdXJlLCBub1ZhbHVlKCksIG51bGxwdHIs
IG1fb3V0LmlzWmVybzY0KGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSkpKTsKICAgICB9CiAK
LSAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KCkKLSAgICB7Ci0gICAgICAgIFVuaXF1ZWRTdHJp
bmdJbXBsKiB1aWQgPSBtX25vZGUtPnVpZE9wZXJhbmQoKTsKLSAgICAgICAgaWYgKHVpZC0+aXNT
eW1ib2woKSkgewotICAgICAgICAgICAgTFZhbHVlIHN5bWJvbCA9IGxvd1N5bWJvbChtX25vZGUt
PmNoaWxkMSgpKTsKLSAgICAgICAgICAgIExWYWx1ZSBzdHJpbmdJbXBsID0gbV9vdXQubG9hZFB0
cihzeW1ib2wsIG1faGVhcHMuU3ltYm9sX3ByaXZhdGVOYW1lKTsKLSAgICAgICAgICAgIHNwZWN1
bGF0ZShCYWRJZGVudCwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5ub3RFcXVhbChzdHJpbmdJ
bXBsLCBtX291dC5jb25zdEludFB0cih1aWQpKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBMVmFsdWUgc3RyaW5nID0gbG93U3RyaW5nSWRlbnQobV9ub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3RyaW5nLCBtX2hl
YXBzLkpTU3RyaW5nX3ZhbHVlKTsKLSAgICAgICAgICAgIHNwZWN1bGF0ZShCYWRJZGVudCwgbm9W
YWx1ZSgpLCBudWxscHRyLCBtX291dC5ub3RFcXVhbChzdHJpbmdJbXBsLCBtX291dC5jb25zdElu
dFB0cih1aWQpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICB2b2lkIGNvbXBpbGVHZXRFeGVj
dXRhYmxlKCkKICAgICB7CiAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKQEAgLTcwMzcsMTYgKzcwMjAsNyBAQCBwcml2YXRlOgogICAgICAgICBzcGVjdWxh
dGVTdHJpbmdJZGVudChlZGdlLCBzdHJpbmcsIHN0cmluZ0ltcGwpOwogICAgICAgICByZXR1cm4g
c3RyaW5nSW1wbDsKICAgICB9Ci0KLSAgICBMVmFsdWUgbG93U3ltYm9sKEVkZ2UgZWRnZSwgT3Bl
cmFuZFNwZWN1bGF0aW9uTW9kZSBtb2RlID0gQXV0b21hdGljT3BlcmFuZFNwZWN1bGF0aW9uKQot
ICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChtb2RlLCBtb2RlID09IE1hbnVhbE9wZXJhbmRT
cGVjdWxhdGlvbiB8fCBlZGdlLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpOwotCi0gICAgICAgIExW
YWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UsIG1vZGUpOwotICAgICAgICBzcGVjdWxhdGVTeW1i
b2woZWRnZSwgcmVzdWx0KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KKyAgICAK
ICAgICBMVmFsdWUgbG93Tm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlv
bk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlvbikKICAgICB7CiAgICAgICAg
IEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwg
ZWRnZS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKTsKQEAgLTc0NDMsOSArNzQxNyw2IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVT
dHJpbmdJZGVudChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFN5bWJv
bFVzZToKLSAgICAgICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlKTsKLSAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0
ZVN0cmluZ09iamVjdChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzU0MiwxNiArNzUx
Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5sb2FkMzIoY2VsbCwgbV9oZWFwcy5K
U0NlbGxfc3RydWN0dXJlSUQpLAogICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMih2bSgpLnN0
cmluZ1N0cnVjdHVyZS0+aWQoKSkpOwogICAgIH0KLQotICAgIExWYWx1ZSBpc05vdFN5bWJvbChM
VmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxsVG9wKQotICAgIHsKLSAg
ICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5cGUgJiBTcGVjQ2VsbCwg
flNwZWNTeW1ib2wpKQotICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKLSAgICAgICAgcmV0dXJu
IG1fb3V0Lm5vdEVxdWFsKAotICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVhcHMu
SlNDZWxsX3N0cnVjdHVyZUlEKSwKLSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodm0oKS5z
eW1ib2xTdHJ1Y3R1cmUtPmlkKCkpKTsKLSAgICB9Ci0KKyAgICAKICAgICBMVmFsdWUgaXNBcnJh
eVR5cGUoTFZhbHVlIGNlbGwsIEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgewogICAgICAgICBz
d2l0Y2ggKGFycmF5TW9kZS50eXBlKCkpIHsKQEAgLTc3NzQsMTcgKzc3MzYsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAg
ICBtX291dC5ub3RFcXVhbChzdHJ1Y3R1cmVJRCwgd2Vha1N0cnVjdHVyZUlEKHN0cmluZ09iamVj
dFN0cnVjdHVyZSkpKTsKICAgICB9Ci0KLSAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlIGVk
Z2UsIExWYWx1ZSBjZWxsKQotICAgIHsKLSAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZh
bHVlKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9sIHwgflNwZWNDZWxsLCBpc05vdFN5bWJvbChjZWxs
KSk7Ci0gICAgfQotCi0gICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlKQotICAgIHsK
LSAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwotICAgIH0KLQor
ICAgIAogICAgIHZvaWQgc3BlY3VsYXRlTm9uTnVsbE9iamVjdChFZGdlIGVkZ2UsIExWYWx1ZSBj
ZWxsKQogICAgIHsKICAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBl
ZGdlLCBTcGVjT2JqZWN0LCBpc05vdE9iamVjdChjZWxsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAKaW5kZXggYzUwNWFmMC4uNTgyM2QwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cApAQCAtNjU3LDIyICs2NTcsMTcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29t
cGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
bV9wdXRCeUlkcy5zaXplKCk7IGktLTspCiAgICAgICAgIG1fcHV0QnlJZHNbaV0uZmluYWxpemUo
cGF0Y2hCdWZmZXIpOwogCi0gICAgZm9yIChjb25zdCBhdXRvJiBieVZhbENvbXBpbGF0aW9uSW5m
byA6IG1fYnlWYWxDb21waWxhdGlvbkluZm8pIHsKLSAgICAgICAgUGF0Y2hhYmxlSnVtcCBwYXRj
aGFibGVOb3RJbmRleEp1bXAgPSBieVZhbENvbXBpbGF0aW9uSW5mby5ub3RJbmRleEp1bXA7Ci0g
ICAgICAgIENvZGVMb2NhdGlvbkp1bXAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVtcCgp
OwotICAgICAgICBpZiAoSnVtcChwYXRjaGFibGVOb3RJbmRleEp1bXApLmlzU2V0KCkpCi0gICAg
ICAgICAgICBub3RJbmRleEp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0
aW9uT2YocGF0Y2hhYmxlTm90SW5kZXhKdW1wKSk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkp1bXAg
YmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlW
YWxDb21waWxhdGlvbkluZm8uYmFkVHlwZUp1bXApKTsKLSAgICAgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgZG9uZVRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbklu
Zm8uZG9uZVRhcmdldCk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIHNsb3dQYXRoVGFyZ2V0
ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihieVZhbENvbXBpbGF0aW9uSW5mby5zbG93UGF0aFRh
cmdldCk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkNhbGwgcmV0dXJuQWRkcmVzcyA9IHBhdGNoQnVm
ZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbkluZm8ucmV0dXJuQWRkcmVzcyk7Ci0KLSAg
ICAgICAgKmJ5VmFsQ29tcGlsYXRpb25JbmZvLmJ5VmFsSW5mbyA9IEJ5VmFsSW5mbygKLSAgICAg
ICAgICAgIGJ5VmFsQ29tcGlsYXRpb25JbmZvLmJ5dGVjb2RlSW5kZXgsCi0gICAgICAgICAgICBu
b3RJbmRleEp1bXAsCisgICAgbV9jb2RlQmxvY2stPnNldE51bWJlck9mQnlWYWxJbmZvcyhtX2J5
VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fYnlWYWxDb21waWxhdGlvbkluZm8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgQ29kZUxvY2F0
aW9uSnVtcCBiYWRUeXBlSnVtcCA9IENvZGVMb2NhdGlvbkp1bXAocGF0Y2hCdWZmZXIubG9jYXRp
b25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJhZFR5cGVKdW1wKSk7CisgICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKG1fYnlW
YWxDb21waWxhdGlvbkluZm9baV0uZG9uZVRhcmdldCk7CisgICAgICAgIENvZGVMb2NhdGlvbkxh
YmVsIHNsb3dQYXRoVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGls
YXRpb25JbmZvW2ldLnNsb3dQYXRoVGFyZ2V0KTsKKyAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCBy
ZXR1cm5BZGRyZXNzID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25J
bmZvW2ldLnJldHVybkFkZHJlc3MpOworICAgICAgICAKKyAgICAgICAgbV9jb2RlQmxvY2stPmJ5
VmFsSW5mbyhpKSA9IEJ5VmFsSW5mbygKKyAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm9baV0uYnl0ZWNvZGVJbmRleCwKICAgICAgICAgICAgIGJhZFR5cGVKdW1wLAotICAgICAgICAg
ICAgYnlWYWxDb21waWxhdGlvbkluZm8uYXJyYXlNb2RlLAotICAgICAgICAgICAgYnlWYWxDb21w
aWxhdGlvbkluZm8uYXJyYXlQcm9maWxlLAorICAgICAgICAgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mb1tpXS5hcnJheU1vZGUsCiAgICAgICAgICAgICBkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIo
YmFkVHlwZUp1bXAsIGRvbmVUYXJnZXQpLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5D
b2RlUHRyKHJldHVybkFkZHJlc3MsIHNsb3dQYXRoVGFyZ2V0KSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKaW5kZXggOTAxMDhhZi4uMTAyMzgyMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCkBAIC0xNDksMjMgKzE0OSwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBzdHJ1Y3QgQnlW
YWxDb21waWxhdGlvbkluZm8gewogICAgICAgICBCeVZhbENvbXBpbGF0aW9uSW5mbygpIHsgfQog
ICAgICAgICAKLSAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8oQnlWYWxJbmZvKiBieVZhbElu
Zm8sIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1w
IG5vdEluZGV4SnVtcCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAs
IEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBNYWNy
b0Fzc2VtYmxlcjo6TGFiZWwgZG9uZVRhcmdldCkKLSAgICAgICAgICAgIDogYnlWYWxJbmZvKGJ5
VmFsSW5mbykKLSAgICAgICAgICAgICwgYnl0ZWNvZGVJbmRleChieXRlY29kZUluZGV4KQotICAg
ICAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQorICAgICAgICBCeVZhbENvbXBp
bGF0aW9uSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hh
YmxlSnVtcCBiYWRUeXBlSnVtcCwgSklUQXJyYXlNb2RlIGFycmF5TW9kZSwgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIGRvbmVUYXJnZXQpCisgICAgICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoYnl0ZWNv
ZGVJbmRleCkKICAgICAgICAgICAgICwgYmFkVHlwZUp1bXAoYmFkVHlwZUp1bXApCiAgICAgICAg
ICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCi0gICAgICAgICAgICAsIGFycmF5UHJvZmlsZShh
cnJheVByb2ZpbGUpCiAgICAgICAgICAgICAsIGRvbmVUYXJnZXQoZG9uZVRhcmdldCkKICAgICAg
ICAgewogICAgICAgICB9Ci0KLSAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm87CisgICAgICAg
IAogICAgICAgICB1bnNpZ25lZCBieXRlY29kZUluZGV4OwotICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXA7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpQ
YXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wOwogICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2Rl
OwotICAgICAgICBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQ7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBz
bG93UGF0aFRhcmdldDsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgcmV0dXJuQWRkcmVz
czsKQEAgLTIxMCwxMyArMjA0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBqaXQu
cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIGFycmF5TW9k
ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlR2V0QnlWYWxXaXRo
Q2FjaGVkSWQoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICBKSVQgaml0KHZtLCBjb2RlQmxvY2sp
OwotICAgICAgICAgICAgaml0Lm1fYnl0ZWNvZGVPZmZzZXQgPSBieVZhbEluZm8tPmJ5dGVjb2Rl
SW5kZXg7Ci0gICAgICAgICAgICBqaXQucHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJ
ZChieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIH0KLQog
ICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlUHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRk
cmVzcywgSklUQXJyYXlNb2RlIGFycmF5TW9kZSkKICAgICAgICAgewogICAgICAgICAgICAgSklU
IGppdCh2bSwgY29kZUJsb2NrKTsKQEAgLTI1OSw3ICsyNDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgQ29tcGlsYXRpb25SZXN1bHQgcHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25F
ZmZvcnQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5
VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7Ci0gICAgICAgIHZvaWQg
cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdpdGhDYWNoZWRJZChCeVZhbEluZm8qLCBSZXR1cm5BZGRy
ZXNzUHRyLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVQ
dXRCeVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwogCiAg
ICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVIYXNJbmRleGVkUHJvcGVydHkoQnlWYWxJbmZvKiwg
UmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKQEAgLTM4NSw5ICszNzEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgSnVtcExpc3QgZW1pdEFycmF5U3RvcmFnZVB1dEJ5VmFsKElu
c3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVt
aXRJbnRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRU
eXBlLCBUeXBlZEFycmF5VHlwZSk7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRGbG9hdFR5cGVkQXJy
YXlQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUsIFR5cGVkQXJy
YXlUeXBlKTsKLQotICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGVtaXRHZXRCeVZhbFdpdGhD
YWNoZWRJZChJbnN0cnVjdGlvbiosIGNvbnN0IElkZW50aWZpZXImLCBKdW1wTGlzdCYgZG9uZUNh
c2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKTsKLQorICAgICAgICAKICAgICAgICAgZW51bSBGaW5h
bE9iamVjdE1vZGUgeyBNYXlCZUZpbmFsLCBLbm93bk5vdEZpbmFsIH07CiAKICAgICAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IEp1bXAgYnJhbmNoU3RydWN0dXJlKFJlbGF0aW9uYWxDb25kaXRp
b24sIFQgbGVmdEhhbmRTaWRlLCBTdHJ1Y3R1cmUqKTsKQEAgLTcxOCw3ICs3MDIsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkosIGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBB
cnJheVByb2ZpbGUqKTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRp
b25fRUpzYywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSnNjQywgaW50LCBHUFJSZWcsIEpTQ2VsbCopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2Na
LCBHUFJSZWcsIGludDMyX3QpOwpAQCAtNzYzLDcgKzc0Niw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
I2VuZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUpKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpK
SkFwLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBBcnJheVByb2ZpbGUqKTsK
LSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FSkpKQnksIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEJ5VmFsSW5mbyop
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VKWkosIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWiwgUmVnaXN0
ZXJJRCwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRVBjLCBJbnN0cnVjdGlvbiopOwpAQCAtNzgwLDcgKzc2Miw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBjb25zdCBJZGVu
dGlmaWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUq
KTsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5m
byopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3Bl
cmF0aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oU19KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNf
SklUT3BlcmF0aW9uX0VKSiwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVn
aXN0ZXJJRCk7CkBAIC03ODgsNyArNzY5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUosIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwgUmVn
aXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBCeVZh
bEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKWkos
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQp
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VaSiwgaW50MzJfdCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IDVkNjg2OTAuLmQwOGQ3M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC00MTEsMTIgKzQxMSw2IEBAIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5IG9wZXJhdGlvbiwgUmVnaXN0ZXJJ
RCByZWdPcDEsIFJlZ2lzdGVySUQgcmVnT3AyLCBSZWdpc3RlcklEIHJlZ09wMywgQnlWYWxJbmZv
KiBieVZhbEluZm8pCi17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwg
cmVnT3AyLCByZWdPcDMsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7Ci0gICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKLX0KLQogQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZykKIHsKICAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGRzdCksIGFyZyk7CkBAIC00NjUsMTIgKzQ1OSw2
IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAotQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIs
IEJ5VmFsSW5mbyogYnlWYWxJbmZvKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOwotICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7
Ci19Ci0KIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBh
cmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsKQEAgLTYxMiwx
MiArNjAwLDYgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAgb3BlcmEKICAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQog
Ci1BTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcxVGFnLCBH
UFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQsIEJ5
VmFsSW5mbyogYnlWYWxJbmZvKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShF
QUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklUX0RVTU1Z
X0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cihieVZhbEluZm8pKTsKLSAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3Bl
cmF0aW9uLCBkc3QpOwotfQotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbihKSVQ6OldpdGhQcm9maWxlVGFnLCBKX0pJVE9wZXJhdGlvbl9FSkog
b3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBH
UFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogewogICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywg
U0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CkBAIC02ODQsMTIgKzY2
Niw2IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCBvcGVyCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5IG9wZXJh
dGlvbiwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9hZCwgUmVn
aXN0ZXJJRCByZWdPcDJUYWcsIFJlZ2lzdGVySUQgcmVnT3AyUGF5bG9hZCwgUmVnaXN0ZXJJRCBy
ZWdPcDNUYWcsIFJlZ2lzdGVySUQgcmVnT3AzUGF5bG9hZCwgQnlWYWxJbmZvKiBieVZhbEluZm8p
Ci17Ci0gICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJH
IHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyByZWdPcDJQYXls
b2FkLCByZWdPcDJUYWcsIHJlZ09wM1BheWxvYWQsIHJlZ09wM1RhZywgVHJ1c3RlZEltbVB0cihi
eVZhbEluZm8pKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVy
YXRpb24pOwotfQotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWkogb3BlcmF0aW9uLCBpbnQgZHN0LCBSZWdpc3Rl
cklEIHJlZ09wMVRhZywgUmVnaXN0ZXJJRCByZWdPcDFQYXlsb2FkKQogewogICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIoZHN0KSwgcmVnT3AxUGF5bG9hZCwgcmVn
T3AxVGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDhj
OGJlNzguLmQzY2YwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cApAQCAtMTA2Nyw3ICsxMDY3LDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJv
cGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgQnlWYWxJbmZvKiBieVZh
bEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7CiAKQEAgLTEwOTks
NyArMTA5OCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdp
c3Rlcihkc3QpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFs
Q29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVt
cCgpLCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0
aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTExMDcsNyArMTEwNiw3IEBAIHZvaWQgSklU
OjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAg
QnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0
cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CisgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwogICAgIAogICAgIGxpbmtTbG93Q2Fz
ZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTExMTgsNyArMTExNyw3IEBAIHZv
aWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihi
YXNlLCByZWdUMCk7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwgcmVnVDEp
OwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3Bl
cnR5RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIGJ5VmFsSW5mbyk7CisgICAgQ2FsbCBjYWxs
ID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3Qs
IHJlZ1QwLCByZWdUMSwgcHJvZmlsZSk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21f
YnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJl
c3MgPSBjYWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQu
Y3BwCmluZGV4IDI1NzhlNWIuLjQzZTAyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEwNjcsNyArMTA2Nyw2IEBAIHZvaWQgSklUOjpl
bWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJy
YXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxl
OwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygp
OwogICAgIAogICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlLCByZWdUMCk7CiAgICAgZW1pdEp1bXBT
bG93Q2FzZUlmTm90SlNDZWxsKGJhc2UpOwpAQCAtMTEwMCw3ICsxMDk5LDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICAKICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwogICAgIAotICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5m
bywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBwcm9m
aWxlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21w
aWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQog
CiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRl
cikKQEAgLTExMDgsNyArMTEwNyw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNfaW5kZXhl
ZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAgICAgaW50
IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJl
bnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87
CisgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJy
YXlQcm9maWxlOwogICAgIAogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2Up
OyAvLyBiYXNlIGNlbGwgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJy
YXkgY2hlY2sKQEAgLTExMTksNyArMTExOCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9oYXNf
aW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0CiAg
ICAgCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0TG9hZChwcm9w
ZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywg
cmVnVDIsIGJ5VmFsSW5mbyk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJl
Z1QyLCBwcm9maWxlKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3Ry
dWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBp
bGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCA3YWU0
M2YwLi5iNTkxMzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKQEAgLTQ3OCw3ICs0NzgsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVh
bGxvY2F0ZVN0b3JhZ2VBbmRGaW5pc2hQdXQoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgIGJh
c2UtPnB1dERpcmVjdCh2bSwgb2Zmc2V0LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpKTsKIH0KIAot
c3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZh
bHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQnlWYWxJbmZvKiBieVZhbElu
Zm8pCitzdGF0aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBi
YXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBBcnJheVByb2ZpbGUq
IGFycmF5UHJvZmlsZSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgaWYg
KExJS0VMWShzdWJzY3JpcHQuaXNVSW50MzIoKSkpIHsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBzdGF0
aWMgdm9pZCBwdXRCeVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUs
IEpTVmFsdWUgc3Vic2NyaXB0LAogICAgICAgICAgICAgaWYgKG9iamVjdC0+Y2FuU2V0SW5kZXhR
dWlja2x5KGkpKQogICAgICAgICAgICAgICAgIG9iamVjdC0+c2V0SW5kZXhRdWlja2x5KGNhbGxG
cmFtZS0+dm0oKSwgaSwgdmFsdWUpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAgICAg
ICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICAgICAgICAgIG9i
amVjdC0+bWV0aG9kVGFibGUodm0pLT5wdXRCeUluZGV4KG9iamVjdCwgY2FsbEZyYW1lLCBpLCB2
YWx1ZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UKQEAgLTUwMiw3ICs1MDIsNyBAQCBzdGF0aWMgdm9pZCBwdXRC
eVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vi
c2NyaXB0LAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNW
YWx1ZSB2YWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCitzdGF0aWMgdm9pZCBkaXJlY3RQdXRC
eVZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEpTVmFsdWUg
c3Vic2NyaXB0LCBKU1ZhbHVlIHZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsK
ICAgICBib29sIGlzU3RyaWN0TW9kZSA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0
TW9kZSgpOwogICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC01MTQs
NyArNTE0LDcgQEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHMKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJv
dW5kcygpOworICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAg
IGJhc2VPYmplY3QtPnB1dERpcmVjdEluZGV4KGNhbGxGcmFtZSwgaW5kZXgsIHZhbHVlLCAwLCBp
c1N0cmljdE1vZGUgPyBQdXREaXJlY3RJbmRleFNob3VsZFRocm93IDogUHV0RGlyZWN0SW5kZXhT
aG91bGROb3RUaHJvdyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NDAsNyArNTQwLDcg
QEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2Jq
ZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVlIHMKICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0
KGNhbGxGcmFtZS0+dm0oKSwgcHJvcGVydHksIHZhbHVlLCBzbG90KTsKICAgICB9CiB9Ci12b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQordm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmls
ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNl
ciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTU1NCwxOSArNTU0LDIxIEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlCiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUp
OwogICAgICAgICBib29sIGRpZE9wdGltaXplID0gZmFsc2U7CiAKLSAgICAgICAgQVNTRVJUKGV4
ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICAgICAgQVNTRVJUKCFieVZhbElu
Zm8tPnN0dWJSb3V0aW5lKTsKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVj
LT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zm
c2V0KTsKKyAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+
Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgICAgIEFTU0VSVCghYnlWYWxJ
bmZvLnN0dWJSb3V0aW5lKTsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVj
dC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcoc3Ry
dWN0dXJlKSkgewogICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAg
ICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3Ry
dWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9k
ZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7CisgICAgICAgICAgICBp
ZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1vZGUpICYmIGFycmF5TW9kZSAhPSBieVZh
bEluZm8uYXJyYXlNb2RlKSB7CiAgICAgICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBleGVjLT5jb2RlQmxvY2soKTsKICAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5h
cnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihsb2NrZXIsIGNvZGVCbG9jaywg
c3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICBhcnJheVByb2ZpbGUtPmNvbXB1dGVVcGRhdGVk
UHJlZGljdGlvbihsb2NrZXIsIGNvZGVCbG9jaywgc3RydWN0dXJlKTsKIAotICAgICAgICAgICAg
ICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFsKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksIGJ5VmFsSW5m
bywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOworICAg
ICAgICAgICAgICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFsKCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCks
ICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlN
b2RlKTsKICAgICAgICAgICAgICAgICBkaWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTU3Nyw3ICs1NzksNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQog
ICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2
ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3
ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJh
dGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNl
cnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAgICAg
aWYgKCsrYnlWYWxJbmZvLT5zbG93UGF0aENvdW50ID49IDEwCisgICAgICAgICAgICBpZiAoKyti
eVZhbEluZm8uc2xvd1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+
c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBEb24n
dCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJl
dHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVS
Tl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKSk7CkBAIC01
ODUsMTAgKzU4NywxMCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICB9CiAgICAg
fQogCi0gICAgcHV0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZhbHVlLCBieVZh
bEluZm8pOworICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwg
YXJyYXlQcm9maWxlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAg
IFZNJiB2bSA9IGNhbGxGcmFtZS0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgY2FsbEZyYW1lKTsKQEAgLTYwMSwyMCArNjAzLDIyIEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2Rl
ZEpTVmFsdWUKICAgICBpZiAoc3Vic2NyaXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUg
aWYgaXQncyB3b3J0aCBvcHRpbWl6aW5nIGF0IGFsbC4KICAgICAgICAgYm9vbCBkaWRPcHRpbWl6
ZSA9IGZhbHNlOwotCi0gICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPmxvY2F0aW9uQXNCeXRlY29k
ZU9mZnNldCgpKTsKLSAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKKyAg
ICAgICAgCisgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gY2FsbEZyYW1lLT5sb2Nh
dGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsK
KyAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5n
ZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKKyAgICAgICAgQVNTRVJUKCFieVZhbElu
Zm8uc3R1YlJvdXRpbmUpOwogCiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gb2JqZWN0
LT5zdHJ1Y3R1cmUodm0pOwogICAgICAgICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhzdHJ1
Y3R1cmUpKSB7CiAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAg
ICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShzdHJ1
Y3R1cmUpOwotICAgICAgICAgICAgaWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2Rl
KSAmJiBhcnJheU1vZGUgIT0gYnlWYWxJbmZvLT5hcnJheU1vZGUpIHsKKyAgICAgICAgICAgIGlm
IChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFs
SW5mby5hcnJheU1vZGUpIHsKICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGJ5VmFsSW5m
by0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxv
Y2ssIHN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRlVXBk
YXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAg
ICAgICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCksIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBh
cnJheU1vZGUpOworICAgICAgICAgICAgICAgIEpJVDo6Y29tcGlsZURpcmVjdFB1dEJ5VmFsKCZ2
bSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihP
VVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOwogICAgICAgICAgICAgICAgIGRpZE9wdGlt
aXplID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNjI1LDE3ICs2MjksMTcg
QEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSog
Y2FsbEZyYW1lLCBFbmNvZGVkSlNWYWx1ZQogICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRz
IGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNh
c2VzCiAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBv
YmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8v
IG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJl
IHBvbHltb3JwaGljLgotICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLT5zbG93UGF0aENvdW50
ID49IDEwCisgICAgICAgICAgICBpZiAoKytieVZhbEluZm8uc2xvd1BhdGhDb3VudCA+PSAxMAog
ICAgICAgICAgICAgICAgIHx8IG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkp
IHsKICAgICAgICAgICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAg
ICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihv
cGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KLSAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2NyaXB0
LCB2YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVj
dCwgc3Vic2NyaXB0LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCit2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJv
ZmlsZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTY0NCwxMSArNjQ4LDExIEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvCiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwogCi0gICAgcHV0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIHZh
bHVlLCBieVZhbEluZm8pOworICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0
LCB2YWx1ZSwgYXJyYXlQcm9maWxlKTsKIH0KIAogCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK3ZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEFycmF5UHJvZmlsZSogYXJyYXlQ
cm9maWxlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtNjU3LDcgKzY2MSw3IEBAIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFN1YnNjcmlwdCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKLSAg
ICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZh
bHVlLCBieVZhbEluZm8pOworICAgIGRpcmVjdFB1dEJ5VmFsKGV4ZWMsIGFzT2JqZWN0KGJhc2VW
YWx1ZSksIHN1YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBFeGVj
U3RhdGUqIGV4ZWNDYWxsZWUpCkBAIC0xNDEwLDQxICsxNDE0LDM0IEBAIHN0YXRpYyBib29sIGNh
bkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KEpTT2JqZWN0JiBvYmplY3QsIHVpbnQzMl90IGlu
ZGV4KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEJ5VmFs
SW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCitzdGF0aWMg
SlNWYWx1ZSBnZXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1Zh
bHVlIHN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUsIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuQWRkcmVzcykKIHsKICAgICBpZiAoTElLRUxZKGJhc2VWYWx1ZS5pc0NlbGwoKSAm
JiBzdWJzY3JpcHQuaXNTdHJpbmcoKSkpIHsKICAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICAgICAgU3RydWN0dXJlJiBzdHJ1Y3R1cmUgPSAqYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1
Y3R1cmUodm0pOwogICAgICAgICBpZiAoSlNDZWxsOjpjYW5Vc2VGYXN0R2V0T3duUHJvcGVydHko
c3RydWN0dXJlKSkgewogICAgICAgICAgICAgaWYgKFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiBl
eGlzdGluZ0F0b21pY1N0cmluZyA9IGFzU3RyaW5nKHN1YnNjcmlwdCktPnRvRXhpc3RpbmdBdG9t
aWNTdHJpbmcoZXhlYykpIHsKLSAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSByZXN1bHQgPSBi
YXNlVmFsdWUuYXNDZWxsKCktPmZhc3RHZXRPd25Qcm9wZXJ0eSh2bSwgc3RydWN0dXJlLCBleGlz
dGluZ0F0b21pY1N0cmluZy5nZXQoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGV4
ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgYnlWYWxJbmZvLT5jYWNoZWRJZC5pbXBsKCkgIT0gZXhp
c3RpbmdBdG9taWNTdHJpbmcpCi0gICAgICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPnRv
b2tTbG93UGF0aCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0g
YmFzZVZhbHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVyZSwgZXhp
c3RpbmdBdG9taWNTdHJpbmcuZ2V0KCkpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChzdWJzY3JpcHQuaXNVSW50MzIoKSkgewotICAgICAgICBBU1NFUlQoZXhlYy0+
bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkpOwotICAgICAgICBieVZhbEluZm8tPnRvb2tTbG93
UGF0aCA9IHRydWU7Ci0KICAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigp
OwogICAgICAgICBpZiAoaXNKU1N0cmluZyhiYXNlVmFsdWUpKSB7CiAgICAgICAgICAgICBpZiAo
YXNTdHJpbmcoYmFzZVZhbHVlKS0+Y2FuR2V0SW5kZXgoaSkpIHsKICAgICAgICAgICAgICAgICBj
dGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIHJldHVybkFkZHJl
c3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGFzU3RyaW5nKGJhc2VWYWx1ZSktPmdldEluZGV4KGV4ZWMsIGkpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91
bmRzKCk7CisgICAgICAgICAgICBhcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0KCkpIHsKICAgICAgICAgICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgICAgICAgICAgaWYgKG9iamVj
dC0+Y2FuR2V0SW5kZXhRdWlja2x5KGkpKQogICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Qt
PmdldEluZGV4UXVpY2tseShpKTsKIAogICAgICAgICAgICAgaWYgKCFjYW5BY2Nlc3NBcmd1bWVu
dEluZGV4UXVpY2tseSgqb2JqZWN0LCBpKSkKLSAgICAgICAgICAgICAgICBieVZhbEluZm8tPmFy
cmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgICAgICAgICBhcnJheVByb2Zp
bGUtPnNldE91dE9mQm91bmRzKCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gYmFzZVZh
bHVlLmdldChleGVjLCBpKTsKQEAgLTE0NTYsOTEgKzE0NTMsNzQgQEAgc3RhdGljIEpTVmFsdWUg
Z2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJz
Y3JpcHQsIEIKICAgICBhdXRvIHByb3BlcnR5ID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZXhl
Yyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLQotICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7
Ci0gICAgaWYgKGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgYnlWYWxJbmZvLT5jYWNoZWRJZCAhPSBw
cm9wZXJ0eSkKLSAgICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwotCiAgICAg
cmV0dXJuIGJhc2VWYWx1ZS5nZXQoZXhlYywgcHJvcGVydHkpOwogfQogCiBleHRlcm4gIkMiIHsK
ICAgICAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5l
cmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAg
ICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAg
IEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwog
Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlw
dCwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOworICAg
IEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGFy
cmF5UHJvZmlsZSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBC
eVZhbEluZm8qIGJ5VmFsSW5mbykKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqIGFy
cmF5UHJvZmlsZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSBzdWJzY3JpcHQgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7Ci0KKyAgICAKICAgICBpZiAoYmFzZVZhbHVl
LmlzT2JqZWN0KCkgJiYgc3Vic2NyaXB0LmlzSW50MzIoKSkgewogICAgICAgICAvLyBTZWUgaWYg
aXQncyB3b3J0aCBvcHRpbWl6aW5nIHRoaXMgYXQgYWxsLgogICAgICAgICBKU09iamVjdCogb2Jq
ZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZh
bHNlOwogCi0gICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7
Ci0gICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7Ci0KKyAgICAgICAgdW5z
aWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsK
KyAgICAgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0KTsKKyAgICAgICAgQnlWYWxJbmZvJiBieVZh
bEluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0g
MSk7CisgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKKyAgICAgICAgCiAg
ICAgICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKHZtKSkp
IHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgICAgIEpJ
VEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJl
KTsKLSAgICAgICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLT5hcnJheU1vZGUpIHsK
KyAgICAgICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewogICAg
ICAgICAgICAgICAgIC8vIElmIHdlIHJlYWNoZWQgdGhpcyBjYXNlLCB3ZSBnb3QgYW4gaW50ZXJl
c3RpbmcgYXJyYXkgbW9kZSB3ZSBkaWQgbm90IGV4cGVjdCB3aGVuIHdlIGNvbXBpbGVkLgogICAg
ICAgICAgICAgICAgIC8vIExldCdzIHVwZGF0ZSB0aGUgcHJvZmlsZSB0byBkbyBiZXR0ZXIgbmV4
dCB0aW1lLgogICAgICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29k
ZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29k
ZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxl
LT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7
CisgICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24o
bG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNv
bXBpbGVHZXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFk
ZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAg
ICBKSVQ6OmNvbXBpbGVHZXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZv
LCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CiAgICAg
ICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9
Ci0KKyAgICAgICAgCiAgICAgICAgIGlmICghZGlkT3B0aW1pemUpIHsKICAgICAgICAgICAgIC8v
IElmIHdlIHRha2Ugc2xvdyBwYXRoIG1vcmUgdGhhbiAxMCB0aW1lcyB3aXRob3V0IHBhdGNoaW5n
IHRoZW4gbWFrZSBzdXJlIHdlCiAgICAgICAgICAgICAvLyBuZXZlciBtYWtlIHRoYXQgbWlzdGFr
ZSBhZ2Fpbi4gT3IsIGlmIHdlIGZhaWxlZCB0byBwYXRjaCBhbmQgd2UgaGF2ZSBzb21lIG9iamVj
dAogICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0
IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgICAgICAvLyB3aGVy
ZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBvYmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0
ZXJhdGlvbnMgd29ydGggb2YKICAgICAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZvciB1cyB0byBv
YnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgotICAgICAgICAg
ICAgaWYgKCsrYnlWYWxJbmZvLT5zbG93UGF0aENvdW50ID49IDEwCisgICAgICAgICAgICBpZiAo
KytieVZhbEluZm8uc2xvd1BhdGhDb3VudCA+PSAxMAogICAgICAgICAgICAgICAgIHx8IG9iamVj
dC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgICAgICAvLyBE
b24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KICAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxC
eVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JF
VFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoYmFzZVZhbHVlLmlzT2Jq
ZWN0KCkgJiYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpIHx8IHN1YnNjcmlwdC5pc1N0cmluZygpKSkg
ewotICAgICAgICBjb25zdCBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1By
b3BlcnR5S2V5KGV4ZWMpOwotCi0gICAgICAgIGlmICghc3Vic2NyaXB0LmlzU3RyaW5nKCkgfHwg
IXBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgewotICAgICAgICAgICAgQVNTRVJUKGV4ZWMtPmxv
Y2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZv
LT5zdHViUm91dGluZSk7Ci0gICAgICAgICAgICBKSVQ6OmNvbXBpbGVHZXRCeVZhbFdpdGhDYWNo
ZWRJZCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIo
T1VSX1JFVFVSTl9BRERSRVNTKSwgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgfQotCi0gICAgICAg
IFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7Ci0gICAgICAgIGJvb2wgaGFzUmVzdWx0ID0g
YmFzZVZhbHVlLmdldFByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhhc1Jlc3VsdCA/IHNsb3QuZ2V0VmFsdWUoZXhl
YywgcHJvcGVydHlOYW1lKSA6IGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAgIEpTVmFsdWUg
cmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3JpcHQsIGJ5VmFsSW5mbywg
UmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKKyAgICAKKyAgICBKU1ZhbHVl
IHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBhcnJheVByb2Zp
bGUsIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQotCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKiBieVZhbEluZm8pCisgICAgCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC0xNTUzLDE0
ICsxNTMzLDE2IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5k
ZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgSlNPYmplY3QqIG9iamVj
dCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwog
Ci0gICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICBBU1NF
UlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOworICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0
ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgQVNTRVJUKGJ5dGVjb2Rl
T2Zmc2V0KTsKKyAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5n
ZXRCeVZhbEluZm8oYnl0ZWNvZGVPZmZzZXQgLSAxKTsKKyAgICBBU1NFUlQoIWJ5VmFsSW5mby5z
dHViUm91dGluZSk7CiAgICAgCiAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcob2JqZWN0
LT5zdHJ1Y3R1cmUodm0pKSkgewogICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAg
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKG9i
amVjdC0+c3RydWN0dXJlKHZtKSk7Ci0gICAgICAgIGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZv
LT5hcnJheU1vZGUpIHsKLSAgICAgICAgICAgIEpJVDo6Y29tcGlsZUhhc0luZGV4ZWRQcm9wZXJ0
eSgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgaWYgKGFycmF5TW9kZSAhPSBi
eVZhbEluZm8uYXJyYXlNb2RlKSB7CisgICAgICAgICAgICBKSVQ6OmNvbXBpbGVIYXNJbmRleGVk
UHJvcGVydHkoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOwogICAgICAgICAgICAgZGlkT3B0
aW1pemUgPSB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTU3MSwxMCArMTU1MywxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURl
ZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgICAgICAvLyB0aGF0IGludGVyY2VwdHMgaW5kZXhl
ZCBnZXQsIHRoZW4gZG9uJ3QgZXZlbiB3YWl0IHVudGlsIDEwIHRpbWVzLiBGb3IgY2FzZXMKICAg
ICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhp
cyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgIC8vIG9wcG9ydHVuaXR5IGZv
ciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJlIHBvbHltb3JwaGljLgot
ICAgICAgICBpZiAoKytieVZhbEluZm8tPnNsb3dQYXRoQ291bnQgPj0gMTAKKyAgICAgICAgaWYg
KCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgIHx8IG9iamVjdC0+
c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpIHsKICAgICAgICAgICAgIC8vIERvbid0IGV2
ZXIgdHJ5IHRvIG9wdGltaXplLgotICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRy
ZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVT
UyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMpKTsKKyAg
ICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwg
UmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRp
b25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKSk7IAogICAgICAgICB9CiAgICAgfQogCkBAIC0x
NTgzLDExICsxNTY1LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqIGV4ZWMsCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsKIAogICAgIGlmICgh
Y2FuQWNjZXNzQXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgpKQotICAgICAgICBi
eVZhbEluZm8tPmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgYXJyYXlQ
cm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgaW5kZXgpKSk7CiB9CiAgICAgCi1FbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVy
aWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwg
ZXhlYyk7CkBAIC0xNjAzLDExICsxNTg1LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShKU1ZhbHVlOjpKU1RydWUpKTsK
IAogICAgIGlmICghY2FuQWNjZXNzQXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaW5kZXgp
KQotICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAg
ICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKG9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgc3Vic2NyaXB0LmFz
VUludDMyKCkpKSk7CiB9CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJ
bmZvKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmlu
ZyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTYyMiw4ICsxNjA0
LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJp
bmcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWCiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgcmVzdWx0ID0gYmFzZVZhbHVlLmdldChleGVjLCBpKTsKICAgICAgICAgICAgIGlmICghaXNK
U1N0cmluZyhiYXNlVmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0
aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICAgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJl
dHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVS
Tl9BRERSRVNTKSwgRnVuY3Rpb25QdHIoYnlWYWxJbmZvLT5zdHViUm91dGluZSA/IG9wZXJhdGlv
bkdldEJ5VmFsR2VuZXJpYyA6IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpKTsKKyAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29k
ZU9mZnNldCgpOworICAgICAgICAgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAg
ICAgICAgICAgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+Z2V0
QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgICAgICAgICAgICAgY3RpUGF0Y2hD
YWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9V
Ul9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKGJ5VmFsSW5mby5zdHViUm91dGluZSA/IG9w
ZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyA6IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDNkODNmNTkuLjJlZjJhNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC01OCw3ICs1OCw2IEBAIGV4dGVy
biAiQyIgewogICAgIEE6IEpTQXJyYXkqCiAgICAgQWFwOiBBcnJheUFsbG9jYXRpb25Qcm9maWxl
KgogICAgIEFwOiBBcnJheVByb2ZpbGUqCi0gICAgQnk6IEJ5VmFsSW5mbyoKICAgICBDOiBKU0Nl
bGwqCiAgICAgQ2I6IENvZGVCbG9jayoKICAgICBDbGk6IENhbGxMaW5rSW5mbyoKQEAgLTExNCw3
ICsxMTMsNiBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSkkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKUwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpJZGMpKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gKCpKX0pJVE9wZXJhdGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKLXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1opKEV4ZWNTdGF0ZSosIEpTU3Ry
aW5nKiwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FSlApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7CiB0
eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FUCko
RXhlY1N0YXRlKiwgdm9pZCopOwpAQCAtMTk3LDcgKzE5NSw2IEBAIHR5cGVkZWYgdm9pZCBKSVRf
T1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpJZEopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBJCiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRK
SikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9w
ZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVy
YXRpb25fRUpKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKLXR5cGVkZWYgdm9pZCBKSVRfT1BFUkFU
SU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgdm9p
ZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpQUCkoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIHZvaWQqLCB2b2lkKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VKWkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBF
bmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VKWikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwpAQCAtMjYyLDEw
ICsyNTksMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RC
dWlsZExpc3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkkKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdEJ1aWxkTGlzdChFeGVjU3Rh
dGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFM
Owogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNo
UHV0KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgU3RydWN0dXJlKiwgUHJvcGVydHlPZmZzZXQsIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLXZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikg
V1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFs
R2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwordm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdU
Rl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0
ZSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTGlua0NhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvKikgV1RGX0lOVEVSTkFMOwogY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rUG9seW1vcnBoaWNDYWxsKEV4ZWNTdGF0ZSos
IENhbGxMaW5rSW5mbyopIFdURl9JTlRFUk5BTDsKQEAgLTMxMiwxMSArMzA5LDExIEBAIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZf
SU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENhbGwoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdU
Rl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tI
YXNJbnN0YW5jZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYmFz
ZVZhbCkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJO
QUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJp
YyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbElu
Zm8qKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlW
YWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQpIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5k
ZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikgV1RGX0lO
VEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVk
UHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJO
QUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlbGV0ZUJ5SWQoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSwgY29uc3QgSWRlbnRpZmllciopIFdURl9JTlRF
Uk5BTDsKIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRQTmFtZXMoRXhlY1N0YXRl
KiwgSlNPYmplY3QqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkluc3RhbmNlT2YoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIHByb3RvKSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IGEwMGNjYjIuLjRlZjA2ZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC05OCwx
NCArOTgsOSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUu
YXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFk
ZEJ5VmFsSW5mbygpOwotCisgICAgCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwg
cmVnVDAsIHByb3BlcnR5LCByZWdUMSk7Ci0KLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0Nl
bGwocmVnVDAsIGJhc2UpOwotCi0gICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IGVtaXRQYXRj
aGFibGVKdW1wSWZOb3RJbW1lZGlhdGVJbnRlZ2VyKHJlZ1QxKTsKLSAgICBhZGRTbG93Q2FzZShu
b3RJbmRleCk7CisgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdU
MSk7CiAKICAgICAvLyBUaGlzIGlzIHRlY2huaWNhbGx5IGluY29ycmVjdCAtIHdlJ3JlIHplcm8t
ZXh0ZW5kaW5nIGFuIGludDMyLiAgT24gdGhlIGhvdCBwYXRoIHRoaXMgZG9lc24ndCBtYXR0ZXIu
CiAgICAgLy8gV2UgY2hlY2sgdGhlIHZhbHVlIGFzIGlmIGl0IHdhcyBhIHVpbnQzMiBhZ2FpbnN0
IHRoZSBtX3ZlY3Rvckxlbmd0aCAtIHdoaWNoIHdpbGwgYWx3YXlzIGZhaWwgaWYKQEAgLTExNSw2
ICsxMTAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgLy8gZXh0ZW5kaW5nIHNpbmNlIGl0IG1ha2VzIGl0IGVhc2ll
ciB0byByZS10YWcgdGhlIHZhbHVlIGluIHRoZSBzbG93IGNhc2UuCiAgICAgemVyb0V4dGVuZDMy
VG9QdHIocmVnVDEsIHJlZ1QxKTsKIAorICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChy
ZWdUMCwgYmFzZSk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCBy
ZWdUMiwgcHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNr
KSwgcmVnVDIpOwogCkBAIC0xNTMsOCArMTQ5LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiAgICAgZW1pdFZhbHVlUHJv
ZmlsaW5nU2l0ZSgpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKLQotICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5m
bywgbV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRv
bmUpKTsKKyAgICAKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBp
bGF0aW9uSW5mbyhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAK
IEpJVDo6SnVtcExpc3QgSklUOjplbWl0RG91YmxlTG9hZChJbnN0cnVjdGlvbiosIFBhdGNoYWJs
ZUp1bXAmIGJhZFR5cGUpCkBAIC0xOTksNTIgKzE5NSwxNSBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6
ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBl
KQogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9CiAKLUpJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjpl
bWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1w
TGlzdCYgc2xvd0Nhc2VzKQotewotICAgIC8vIGJhc2U6IHJlZ1QwCi0gICAgLy8gcHJvcGVydHk6
IHJlZ1QxCi0gICAgLy8gc2NyYXRjaDogcmVnVDMKLQotICAgIGludCBkc3QgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotCi0gICAgc2xvd0Nhc2VzLmFwcGVuZChlbWl0SnVtcElm
Tm90SlNDZWxsKHJlZ1QxKSk7Ci0gICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0g
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNz
KHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1
cmUuZ2V0KCkpKTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBTeW1ib2w6Om9mZnNl
dE9mUHJpdmF0ZU5hbWUoKSksIHJlZ1QzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxs
OjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7Ci0g
ICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSks
IHJlZ1QzKTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJl
Z1QzKSk7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEFkZHJl
c3MocmVnVDMsIFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5n
SW1wbDo6ZmxhZ0lzQXRvbWljKCkpKSk7Ci0gICAgfQotICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJh
bmNoUHRyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgp
KSkpOwotCi0gICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2Nr
LCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lz
dGVycygpLAotICAgICAgICBKU1ZhbHVlUmVncyhyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwg
RG9udFNwaWxsKTsKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7Ci0KLSAgICBkb25l
Q2FzZXMuYXBwZW5kKGp1bXAoKSk7Ci0KLSAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwo
KTsKLSAgICBnZW4uc2xvd1BhdGhKdW1wKCkubGluayh0aGlzKTsKLQotICAgIENhbGwgY2FsbCA9
IGNhbGxPcGVyYXRpb24oV2l0aFByb2ZpbGUsIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSwgZHN0
LCBnZW4uc3R1YkluZm8oKSwgcmVnVDAsIHByb3BlcnR5TmFtZS5pbXBsKCkpOwotICAgIGdlbi5y
ZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7Ci0gICAgZG9uZUNhc2VzLmFw
cGVuZChqdW1wKCkpOwotCi0gICAgcmV0dXJuIGdlbjsKLX0KLQogdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fYnlWYWxDb21waWxhdGlv
bkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLmJ5VmFsSW5mbzsKKyAgICBBcnJheVByb2Zp
bGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CiAgICAg
Ci0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBj
aGVjawogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKKyAg
ICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNr
CiAgICAgSnVtcCBub25DZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8g
YmFzZSBhcnJheSBjaGVjawogICAgIEp1bXAgbm90U3RyaW5nID0gYnJhbmNoU3RydWN0dXJlKE5v
dEVxdWFsLCAKQEAgLTI2NSw3ICsyMjQsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAg
IAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZSwgcmVnVDApOwogICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDAsIHJlZ1QxLCBieVZh
bEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxP
cHRpbWl6ZSwgZHN0LCByZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogCiAgICAgbV9ieVZhbENvbXBp
bGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93
UGF0aDsKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4
XS5yZXR1cm5BZGRyZXNzID0gY2FsbDsKQEAgLTMwNCw3ICsyNjMsNiBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50
IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0
eSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBw
cm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFs
SW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogCiAgICAgZW1p
dEdldFZpcnR1YWxSZWdpc3RlcnMoYmFzZSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMSk7CiAgICAg
ZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7CkBAIC0zNDEsNyAr
Mjk5LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFs
SW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBw
cm9maWxlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxD
b21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwor
CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjplbWl0R2VuZXJpY0NvbnRpZ3VvdXNQdXRCeVZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBJ
bmRleGluZ1R5cGUgaW5kZXhpbmdTaGFwZSkKQEAgLTQ0MCw3ICszOTksNiBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0NhcwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5h
cnJheVByb2ZpbGU7Ci0gICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRp
b25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CiAKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlSWZO
b3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawpAQCAtNDY2LDcgKzQyNCw3
IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihw
cm9wZXJ0eSwgcmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1Qy
KTsKICAgICBib29sIGlzRGlyZWN0ID0gbV9pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VycmVu
dEluc3RydWN0aW9uLT51Lm9wY29kZSkgPT0gb3BfcHV0X2J5X3ZhbF9kaXJlY3Q7Ci0gICAgQ2Fs
bCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFs
IDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QwLCByZWdUMSwgcmVnVDIsIGJ5VmFsSW5mbyk7Cisg
ICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QwLCByZWdUMSwgcmVnVDIsIHByb2ZpbGUp
OwogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0u
c2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21f
YnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRyZXNzID0gY2FsbDsKQEAgLTEwNDEsMzYg
Kzk5OSw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKEJ5VmFsSW5mbyogYnlW
YWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkCiAgICAgcmVwYXRjaEJ1ZmZlci5yZWxp
bmtDYWxsZXJUb0Z1bmN0aW9uKHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOwogfQogCi12b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbFdp
dGhDYWNoZWRJZChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5B
ZGRyZXNzLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi17Ci0gICAgSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwotCi0gICAgSnVtcExpc3QgZG9uZUNhc2Vz
OwotICAgIEp1bXBMaXN0IHNsb3dDYXNlczsKLQotICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2Vu
ID0gZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKGN1cnJlbnRJbnN0cnVjdGlvbiwgcHJvcGVydHlO
YW1lLCBkb25lQ2FzZXMsIHNsb3dDYXNlcyk7Ci0KLSAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKLSAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCpt
X3ZtLCAqdGhpcywgbV9jb2RlQmxvY2spOwotICAgIHBhdGNoQnVmZmVyLmxpbmsoc2xvd0Nhc2Vz
LCBDb2RlTG9jYXRpb25MYWJlbChNYWNyb0Fzc2VtYmxlckNvZGVQdHI6OmNyZWF0ZUZyb21FeGVj
dXRhYmxlQWRkcmVzcyhyZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS5sYWJlbEF0T2Zmc2V0KGJ5VmFs
SW5mby0+cmV0dXJuQWRkcmVzc1RvU2xvd1BhdGgpKTsKLSAgICBwYXRjaEJ1ZmZlci5saW5rKGRv
bmVDYXNlcywgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5mby0+
YmFkVHlwZUp1bXBUb0RvbmUpKTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNhbGxTaXRlIDogbV9j
YWxscykgewotICAgICAgICBpZiAoY2FsbFNpdGUudG8pCi0gICAgICAgICAgICBwYXRjaEJ1ZmZl
ci5saW5rKGNhbGxTaXRlLmZyb20sIEZ1bmN0aW9uUHRyKGNhbGxTaXRlLnRvKSk7Ci0gICAgfQot
ICAgIGdlbi5maW5hbGl6ZShwYXRjaEJ1ZmZlcik7Ci0KLSAgICBieVZhbEluZm8tPnN0dWJSb3V0
aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgbV9jb2RlQmxvY2ssIHBhdGNo
QnVmZmVyLAotICAgICAgICAoIkJhc2VsaW5lIGdldF9ieV92YWwgd2l0aCBjYWNoZWQgcHJvcGVy
dHkgbmFtZSAnJXMnIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCBwcm9wZXJ0eU5hbWUu
aW1wbCgpLT51dGY4KCkuZGF0YSgpLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5kYXRhKCksIHJl
dHVybkFkZHJlc3MudmFsdWUoKSkpOwotICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBwcm9wZXJ0
eU5hbWU7Ci0gICAgYnlWYWxJbmZvLT5zdHViSW5mbyA9IGdlbi5zdHViSW5mbygpOwotCi0gICAg
UmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKG1fY29kZUJsb2NrKTsKLSAgICByZXBhdGNoQnVm
ZmVyLnJlbGluayhieVZhbEluZm8tPm5vdEluZGV4SnVtcCwgQ29kZUxvY2F0aW9uTGFiZWwoYnlW
YWxJbmZvLT5zdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOwotICAgIHJlcGF0Y2hCdWZmZXIu
cmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRp
b25HZXRCeVZhbEdlbmVyaWMpKTsKLX0KLQogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlW
YWwoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywg
SklUQXJyYXlNb2RlIGFycmF5TW9kZSkKIHsKICAgICBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uID0gbV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieVZhbEluZm8t
PmJ5dGVjb2RlSW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCBhOGQ2OWFjLi42MDljYTEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAK
QEAgLTE0OSwxMyArMTQ5LDExIEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9u
WzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2Nv
ZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1Qx
LCByZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCisgICAgYWRkU2xvd0Nhc2Uo
YnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QzLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcp
KSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKLSAgICBQ
YXRjaGFibGVKdW1wIG5vdEluZGV4ID0gcGF0Y2hhYmxlQnJhbmNoMzIoTm90RXF1YWwsIHJlZ1Qz
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKLSAgICBhZGRTbG93Q2FzZShub3RJ
bmRleCk7CiAgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUMSwg
cHJvZmlsZSk7CiAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEluZGV4aW5nU2hhcGVNYXNrKSwgcmVn
VDEpOwogCkBAIC0xOTQsNyArMTkyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1Np
dGUoKTsKICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogICAgIAotICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywg
bV9ieXRlY29kZU9mZnNldCwgbm90SW5kZXgsIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUp
KTsKKyAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5m
byhtX2J5dGVjb2RlT2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVt
cExpc3QgSklUOjplbWl0Q29udGlndW91c0xvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1w
JiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgZXhwZWN0ZWRTaGFwZSkKQEAgLTIzOCw1MyArMjM2LDE2
IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0QXJyYXlTdG9yYWdlTG9hZChJbnN0cnVjdGlvbios
IFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpCiAgICAgCiAgICAgcmV0dXJuIHNsb3dDYXNlczsKIH0K
LQotSklUR2V0QnlJZEdlbmVyYXRvciBKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEp1bXBMaXN0JiBkb25lQ2FzZXMsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCi17Ci0gICAgaW50
IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7Ci0KLSAgICAvLyBiYXNlOiB0
YWcocmVnVDEpLCBwYXlsb2FkKHJlZ1QwKQotICAgIC8vIHByb3BlcnR5OiB0YWcocmVnVDMpLCBw
YXlsb2FkKHJlZ1QyKQotICAgIC8vIHNjcmF0Y2g6IHJlZ1Q0Ci0KLSAgICBzbG93Q2FzZXMuYXBw
ZW5kKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDMpKTsKLSAgICBpZiAocHJvcGVydHlOYW1lLmlz
U3ltYm9sKCkpIHsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90
RXF1YWwsIEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0t
PnN5bWJvbFN0cnVjdHVyZS5nZXQoKSkpOwotICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDIs
IFN5bWJvbDo6b2Zmc2V0T2ZQcml2YXRlTmFtZSgpKSwgcmVnVDQpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNz
KHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zdHJpbmdTdHJ1Y3R1
cmUuZ2V0KCkpKTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU1N0cmluZzo6b2Zm
c2V0T2ZWYWx1ZSgpKSwgcmVnVDQpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRl
c3RQdHIoWmVybywgcmVnVDQpKTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0
MzIoWmVybywgQWRkcmVzcyhyZWdUNCwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksIFRydXN0
ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXNBdG9taWMoKSkpKTsKLSAgICB9Ci0gICAgc2xvd0Nh
c2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1Q0LCBUcnVzdGVkSW1tUHRyKHByb3Bl
cnR5TmFtZS5pbXBsKCkpKSk7Ci0KLSAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAg
ICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZU9mZnNldCksIFJlZ2lzdGVyU2V0
OjpzcGVjaWFsUmVnaXN0ZXJzKCksCi0gICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShy
ZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIERvbnRTcGlsbCk7Ci0gICAgZ2VuLmdl
bmVyYXRlRmFzdFBhdGgoKnRoaXMpOwotCi0gICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwot
Ci0gICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7Ci0gICAgZ2VuLnNsb3dQYXRoSnVt
cCgpLmxpbmsodGhpcyk7Ci0KLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9m
aWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1Qx
LCByZWdUMCwgcHJvcGVydHlOYW1lLmltcGwoKSk7Ci0gICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2Fs
bChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKLSAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7Ci0K
LSAgICByZXR1cm4gZ2VuOwotfQotCisgICAgCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5
X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
OwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwotCi0gICAgbGlua1Nsb3dDYXNlSWZOb3RK
U0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjaworICAgIEFycmF5UHJvZmlsZSog
cHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKKyAgICAKICAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCisgICAgbGlua1Ns
b3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawogCiAgICAg
SnVtcCBub25DZWxsID0ganVtcCgpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gYmFzZSBh
cnJheSBjaGVjawpAQCAtMzA0LDcgKzI2NSw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRf
YnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAg
ICAgCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsKICAgICBlbWl0TG9hZChwcm9w
ZXJ0eSwgcmVnVDMsIHJlZ1QyKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIsIGJ5
VmFsSW5mbyk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZh
bE9wdGltaXplLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyLCBwcm9maWxlKTsKIAog
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQ
YXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFs
SW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0zMTgsNyArMjc5LDYg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsK
ICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJv
ZmlsZTsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbElu
Zm8oKTsKICAgICAKICAgICBlbWl0TG9hZDIoYmFzZSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0eSwg
cmVnVDMsIHJlZ1QyKTsKICAgICAKQEAgLTM1NCw3ICszMTQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAg
TGFiZWwgZG9uZSA9IGxhYmVsKCk7CiAgICAgCi0gICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5h
cHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8oYnlWYWxJbmZvLCBtX2J5dGVjb2RlT2Zmc2V0LCBQ
YXRjaGFibGVKdW1wKCksIGJhZFR5cGUsIG1vZGUsIHByb2ZpbGUsIGRvbmUpKTsKKyAgICBtX2J5
VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhtX2J5dGVjb2Rl
T2Zmc2V0LCBiYWRUeXBlLCBtb2RlLCBkb25lKSk7CiB9CiAKIEpJVDo6SnVtcExpc3QgSklUOjpl
bWl0R2VuZXJpY0NvbnRpZ3VvdXNQdXRCeVZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdTaGFwZSkK
QEAgLTQ1OSw3ICs0MTksNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGludCBwcm9w
ZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2Zp
bGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgQnlWYWxJbmZv
KiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbklu
ZGV4XS5ieVZhbEluZm87CiAgICAgCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0
eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAv
LyBiYXNlIGNlbGwgY2hlY2sKQEAgLTQ5OSw3ICs0NTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0NhcwogICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMCwgcmVnVDEpOwogICAgIGFkZENhbGxBcmd1
bWVudChyZWdUMSk7CiAgICAgYWRkQ2FsbEFyZ3VtZW50KHJlZ1QwKTsKLSAgICBhZGRDYWxsQXJn
dW1lbnQoVHJ1c3RlZEltbVB0cihieVZhbEluZm8pKTsKKyAgICBhZGRDYWxsQXJndW1lbnQoVHJ1
c3RlZEltbVB0cihwcm9maWxlKSk7CiAgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVjayhpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9u
UHV0QnlWYWwpOwogI2Vsc2UKICAgICAvLyBUaGUgcmVnaXN0ZXIgc2VsZWN0aW9uIGJlbG93IGlz
IGNob3NlbiB0byByZWR1Y2UgcmVnaXN0ZXIgc3dhcHBpbmcgb24gQVJNLgpAQCAtNTA3LDcgKzQ2
Niw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgZW1pdExvYWQoYmFzZSwgcmVnVDIs
IHJlZ1QxKTsKICAgICBlbWl0TG9hZChwcm9wZXJ0eSwgcmVnVDMsIHJlZ1QwKTsKICAgICBlbWl0
TG9hZCh2YWx1ZSwgcmVnVDUsIHJlZ1Q0KTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9u
KGlzRGlyZWN0ID8gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwg
cmVnVDIsIHJlZ1QxLCByZWdUMywgcmVnVDAsIHJlZ1Q1LCByZWdUNCwgYnlWYWxJbmZvKTsKKyAg
ICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKGlzRGlyZWN0ID8gb3BlcmF0aW9uRGlyZWN0UHV0
QnlWYWwgOiBvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDIsIHJlZ1QxLCByZWdUMywgcmVnVDAsIHJl
Z1Q1LCByZWdUNCwgcHJvZmlsZSk7CiAjZW5kaWYKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCmluZGV4IDgzZjVkZTIuLmU1NzkwZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbC5oCkBAIC03OSw4ICs3OSw2IEBA
IHB1YmxpYzoKICAgICBKU09iamVjdCogdG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqKSBjb25zdDsKICAgICBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlKikgY29uc3Q7CiAKLSAg
ICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mUHJpdmF0ZU5hbWUoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoU3ltYm9sLCBtX3ByaXZhdGVOYW1lKTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNvbnN0cnVjdG9yLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWNvbnN0cnVjdG9yLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzU4NTE2Li4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAg
QEAKLXZhciBzeW1ib2wgPSAiQEBzcGVjaWVzIjsKLWZ1bmN0aW9uIEhlbGxvKCkgewotfQotCi1P
YmplY3QuZGVmaW5lUHJvcGVydHkoSGVsbG8sIHN5bWJvbCwgewotICAgIGdldDogZnVuY3Rpb24g
KCkgewotICAgICAgICByZXR1cm4gdGhpczsKLSAgICB9Ci19KTsKLQotSGVsbG8ucHJvdG90eXBl
LmdlbmVyYXRlID0gZnVuY3Rpb24gKCkgewotICAgIHJldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3Rv
cltzeW1ib2xdKCk7Ci19OwotCi1mdW5jdGlvbiBvaygpIHsKLSAgICB2YXIgb2JqZWN0ID0gbmV3
IEhlbGxvKCk7Ci0gICAgaWYgKCEob2JqZWN0LmdlbmVyYXRlKCkgaW5zdGFuY2VvZiBIZWxsbykp
Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGluc3RhbmNlIik7Ci19Ci1ub0lubGluZShv
ayk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBvaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWV4aXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctZXhpdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OWFhMjYyZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctZXhpdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDM0ICsw
LDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCi17Ci0gICAg
cmV0dXJuIG9iamVjdFtuYW1lXTsKLX0KLW5vSW5saW5lKGdldEJ5VmFsKTsKLQotZnVuY3Rpb24g
Z2V0U3RyMSgpCi17Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lubGluZShnZXRTdHIxKTsK
LQotZnVuY3Rpb24gZ2V0U3RyMigpCi17Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lubGlu
ZShnZXRTdHIyKTsKLQotdmFyIG9iamVjdCA9IHsKLSAgICBoZWxsbzogNDIKLX07Ci0KLWZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCi0gICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBp
ICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKLXNob3VsZEJlKGdldEJ5
VmFsKG9iamVjdCwgeyB0b1N0cmluZygpIHsgcmV0dXJuICdoZWxsbyc7IH0gfSksIDQyKTsKLQot
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQotICAgIHNob3VsZEJlKGdldEJ5VmFsKG9i
amVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7Ci1zaG91bGRC
ZShnZXRCeVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0
Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTgxM2E3ZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2VuZXJhdGVkLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFs
LCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIGdldEJ5
VmFsKG9iamVjdCwgbmFtZSkKLXsKLSAgICByZXR1cm4gb2JqZWN0W25hbWVdOwotfQotbm9Jbmxp
bmUoZ2V0QnlWYWwpOwotCi12YXIgdmFsdWUgPSAnbG8nOwotCi1mdW5jdGlvbiBnZXRTdHIxKCkK
LXsKLSAgICByZXR1cm4gImhlbCIgKyB2YWx1ZTsKLX0KLW5vSW5saW5lKGdldFN0cjEpOwotCi1m
dW5jdGlvbiBnZXRTdHIyKCkKLXsKLSAgICByZXR1cm4gImhlbGxvIjsKLX0KLW5vSW5saW5lKGdl
dFN0cjIpOwotCi12YXIgb2JqZWN0ID0gewotICAgIGhlbGxvOiA0MiwKLSAgICB3b3JsZDogNTAK
LX07Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRC
eVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIpOwot
c2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdl
dHRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1nZXR0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1OGVj
MGEuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWdldHRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAg
QEAKLQotdmFyIG9iamVjdCA9IHsKLSAgICBnZXQgaGVsbG8oKSB7Ci0gICAgICAgIHJldHVybiA0
MjsKLSAgICB9Ci19OwotCi1mdW5jdGlvbiBvaygpIHsKLSAgICB2YXIgdmFsdWUgPSAnaGVsbG8n
OwotICAgIGlmIChvYmplY3RbdmFsdWVdICsgMjAgIT09IDYyKQotICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoKTsKLX0KLW5vSW5saW5lKG9rKTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsg
KytpKQotICAgIG9rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDZkYjMzZDkuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMzEgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkK
LXsKLSAgICByZXR1cm4gb2JqZWN0W25hbWVdOwotfQotbm9JbmxpbmUoZ2V0QnlWYWwpOwotCi1m
dW5jdGlvbiBnZXRTdHIxKCkKLXsKLSAgICByZXR1cm4gImhlbGxvIjsKLX0KLW5vSW5saW5lKGdl
dFN0cjEpOwotCi1mdW5jdGlvbiBnZXRTdHIyKCkKLXsKLSAgICByZXR1cm4gImhlbGxvIjsKLX0K
LW5vSW5saW5lKGdldFN0cjIpOwotCi12YXIgb2JqZWN0ID0gewotICAgIGhlbGxvOiA0MiwKLSAg
ICB3b3JsZDogNTAKLX07Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBz
aG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3Ry
MigpKSwgNDIpOwotc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnd29ybGQnKSwgNTApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNvbnN0cnVjdG9yLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyODk1YzI2Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLXZhciBzeW1ib2wgPSBTeW1ib2woKTsKLWZ1
bmN0aW9uIEhlbGxvKCkgewotfQotCi1PYmplY3QuZGVmaW5lUHJvcGVydHkoSGVsbG8sIHN5bWJv
bCwgewotICAgIGdldDogZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gdGhpczsKLSAgICB9
Ci19KTsKLQotSGVsbG8ucHJvdG90eXBlLmdlbmVyYXRlID0gZnVuY3Rpb24gKCkgewotICAgIHJl
dHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcltzeW1ib2xdKCk7Ci19OwotCi1mdW5jdGlvbiBvaygp
IHsKLSAgICB2YXIgb2JqZWN0ID0gbmV3IEhlbGxvKCk7Ci0gICAgaWYgKCEob2JqZWN0LmdlbmVy
YXRlKCkgaW5zdGFuY2VvZiBIZWxsbykpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGlu
c3RhbmNlIik7Ci19Ci1ub0lubGluZShvayk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
ICsraSkKLSAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBjZGNiNi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLXZhciBzeW1ib2wxID0gU3ltYm9sKCk7Ci12
YXIgc3ltYm9sMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoeyBbc3ltYm9sMV06IDQy
IH0pWzBdOwotCi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OiAnICsgYWN0dWFsKTsKLX0KLQotZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQotewot
ICAgIHJldHVybiBvYmplY3RbbmFtZV07Ci19Ci1ub0lubGluZShnZXRCeVZhbCk7Ci0KLWZ1bmN0
aW9uIGdldFN5bTEoKQotewotICAgIHJldHVybiBzeW1ib2wxOwotfQotbm9JbmxpbmUoZ2V0U3lt
MSk7Ci0KLWZ1bmN0aW9uIGdldFN5bTIoKQotewotICAgIHJldHVybiBzeW1ib2wyOwotfQotbm9J
bmxpbmUoZ2V0U3ltMik7Ci0KLXZhciBvYmplY3QgPSB7Ci0gICAgW3N5bWJvbDFdOiA0MiwKLSAg
ICBoZWxsbzogNTAKLX07Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpCi0gICAgc2hv
dWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN5bTEoKSA6IGdldFN5bTIo
KSksIDQyKTsKLXNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ2hlbGxvJyksIDUwKTsKLQotZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQotICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVj
dCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRTeW0yKCkpLCA0Mik7Ci1zaG91bGRCZShn
ZXRCeVZhbChvYmplY3QsICdoZWxsbycpLCA1MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZ2V0dGVyLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWdldHRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzAzNWU0Yi4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtZ2V0dGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotCi12YXIg
b2JqZWN0ID0gewotICAgIGdldCBoZWxsbygpIHsKLSAgICAgICAgcmV0dXJuIDQyOwotICAgIH0K
LX07Ci0KLXZhciBzeW1ib2wgPSBTeW1ib2woKTsKLQotT2JqZWN0LmRlZmluZVByb3BlcnR5KG9i
amVjdCwgc3ltYm9sLCB7Ci0gICAgZ2V0OiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJldHVybiA0
MjsKLSAgICB9Ci19KTsKLQotZnVuY3Rpb24gb2soKSB7Ci0gICAgaWYgKG9iamVjdFtzeW1ib2xd
ICsgMjAgIT09IDYyKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTsKLX0KLW5vSW5saW5lKG9r
KTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQotICAgIG9rKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjODM0ZWIuLjAw
MDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotdmFyIHN5bWJv
bDEgPSBTeW1ib2woKTsKLXZhciBzeW1ib2wyID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9s
cyh7IFtzeW1ib2wxXTogNDIgfSlbMF07Ci0KLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhw
ZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiBnZXRCeVZhbChv
YmplY3QsIG5hbWUpCi17Ci0gICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKLX0KLW5vSW5saW5lKGdl
dEJ5VmFsKTsKLQotZnVuY3Rpb24gZ2V0U3ltMSgpCi17Ci0gICAgcmV0dXJuIHN5bWJvbDE7Ci19
Ci1ub0lubGluZShnZXRTeW0xKTsKLQotZnVuY3Rpb24gZ2V0U3ltMigpCi17Ci0gICAgcmV0dXJu
IHN5bWJvbDI7Ci19Ci1ub0lubGluZShnZXRTeW0yKTsKLQotdmFyIG9iamVjdCA9IHsKLSAgICBb
c3ltYm9sMV06IDQyLAotICAgIGhlbGxvOiA1MAotfTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKQotICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBn
ZXRTeW0xKCkgOiBnZXRTeW0yKCkpLCA0Mik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmY1NmU0NS4uYWZkMGU2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA4LTA4ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRm9sbG93LXVwIG5pdCBmaXhlcyBhZnRlciBy
MTg3NjkxLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI4MDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIG1vZGVybiBmb3ItbG9vcHMgaW5zdGVhZCBvZiBleHBsaWNpdCBpdGVyYXRvcnMuCisKKyAg
ICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpzaG91bGRDb2FsZXNjZUNo
YWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVz
Y2VDaGFsbGVuZ2VzTWF0Y2hpbmcpOgorCiAyMDE1LTA4LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgTGlnaHR3ZWlnaHQgbG9ja3Mgc2hvdWxkIGJlIGFkYXB0
aXZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDE2Yjk3ZjQuLjRkMDMyN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC04NCw5ICs4NCw4IEBAIGJvb2wgQXV0aGVu
dGljYXRpb25NYW5hZ2VyOjpzaG91bGRDb2FsZXNjZUNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVu
Z2VJRCwgY29uc3QKICAgICBpZiAoIWNhbkNvYWxlc2NlQ2hhbGxlbmdlKGNoYWxsZW5nZSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gZW5kID0gIG1fY2hhbGxlbmdlcy5lbmQo
KTsKLSAgICBmb3IgKGF1dG8gaXQgPSBtX2NoYWxsZW5nZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0gICAgICAgIGlmIChpdC0+a2V5ICE9IGNoYWxsZW5nZUlEICYmIFByb3RlY3Rpb25T
cGFjZTo6Y29tcGFyZShjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGl0LT52YWx1ZS5wcm90
ZWN0aW9uU3BhY2UoKSkpCisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jaGFsbGVuZ2VzKSB7Cisg
ICAgICAgIGlmIChpdGVtLmtleSAhPSBjaGFsbGVuZ2VJRCAmJiBQcm90ZWN0aW9uU3BhY2U6OmNv
bXBhcmUoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBpdGVtLnZhbHVlLnByb3RlY3Rpb25T
cGFjZSgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xMDMsMTAgKzEwMiw5IEBAIFZlY3Rvcjx1aW50NjRfdD4gQXV0aGVudGljYXRpb25N
YW5hZ2VyOjpjb2FsZXNjZUNoYWxsZW5nZXNNYXRjaGluZyh1aW50NjRfdCBjaGFsCiAgICAgaWYg
KCFjYW5Db2FsZXNjZUNoYWxsZW5nZShjaGFsbGVuZ2UpKQogICAgICAgICByZXR1cm4gY2hhbGxl
bmdlc1RvQ29hbGVzY2U7CiAKLSAgICBhdXRvIGVuZCA9IG1fY2hhbGxlbmdlcy5lbmQoKTsKLSAg
ICBmb3IgKGF1dG8gaXQgPSBtX2NoYWxsZW5nZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
Ci0gICAgICAgIGlmIChpdC0+a2V5ICE9IGNoYWxsZW5nZUlEICYmIFByb3RlY3Rpb25TcGFjZTo6
Y29tcGFyZShjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGl0LT52YWx1ZS5wcm90ZWN0aW9u
U3BhY2UoKSkpCi0gICAgICAgICAgICBjaGFsbGVuZ2VzVG9Db2FsZXNjZS5hcHBlbmQoaXQtPmtl
eSk7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jaGFsbGVuZ2VzKSB7CisgICAgICAgIGlmIChp
dGVtLmtleSAhPSBjaGFsbGVuZ2VJRCAmJiBQcm90ZWN0aW9uU3BhY2U6OmNvbXBhcmUoY2hhbGxl
bmdlLnByb3RlY3Rpb25TcGFjZSgpLCBpdGVtLnZhbHVlLnByb3RlY3Rpb25TcGFjZSgpKSkKKyAg
ICAgICAgICAgIGNoYWxsZW5nZXNUb0NvYWxlc2NlLmFwcGVuZChpdGVtLmtleSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIGNoYWxsZW5nZXNUb0NvYWxlc2NlOwo=
</data>
<flag name="commit-queue"
          id="283770"
          type_id="3"
          status="-"
          setter="cdumez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258598</attachid>
            <date>2015-08-09 15:06:55 -0700</date>
            <delta_ts>2015-08-09 15:49:26 -0700</delta_ts>
            <desc>Roll out</desc>
            <filename>147818_revert.patch</filename>
            <type>text/plain</type>
            <size>132389</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWNjZjQzYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWIzN2M1MC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0ODJjNDUuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
OWVmMTQxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxNmE2NjcuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20t
dHJ5LWJsb2NrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpT
UmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4t
ZnJvbS10cnktYmxvY2suaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlNmM5NjNhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9j
ay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWMwZmM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNS
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJv
d24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzNmY1OGQuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZWY5MmM5Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxm
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYKLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2Vs
Zi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NmFiNjExLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1v
ci1zZWxmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXByb3RvLW9yLXNlbGYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5YjFhYTU3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEw
ICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
LXNpbXBsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzc1MWI2Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1x
dWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDIxNzEzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDRhNmI5Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3Rv
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYt
b3ItcHJvdG8uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTAw
YzVkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MzkwZWQ5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZQotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ4MmM0NS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi1zaW1wbGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZWYxNDEuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jl
c3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnkt
YmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzc1NGJiMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2sKLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWlu
LWZyb20tdHJ5LWJsb2NrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NzVm
OTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiAr
MCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQzMTQ5NGEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDliZmFjYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJv
dG8tb3Itc2VsZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGExNWQyNjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtcHJvdG8tb3Itc2VsZgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ODE1Y2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGY0NjA1YzAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZQotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBu
byBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1Y2U0NjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1w
cm90by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA3NjY5MTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
c2VsZi1vci1wcm90bwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBl
eGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1Qg
Q09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZmNWYzZDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTI1ODlmMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotKGZ1bmN0aW9u
KCkgewotICAgIHZhciBhID0gJ2EnLCBsID0gJ2wnOwotICAgIHZhciBvID0ge1thXToxfTsKLSAg
ICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgewotICAgICAgICByZXN1bHQgXj0gb1thXTsK
LSAgICAgICAgdmFyIHRtcCA9IG87Ci0gICAgICAgIG8gPSBwOwotICAgICAgICBwID0gdG1wOwot
ICAgIH0KLSAgICBpZiAocmVzdWx0ICE9IDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdDogIiArIHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNTk0MDEuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gJ2En
LCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0gJ2YnLCBnID0gJ2cnLCBo
ID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBrID0gJ2snLCBsID0gJ2wnOwotICAgIHZhciBvID0g
e1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwg
W2ldOjksIFtqXToxMCwgW2tdOjExfTsKLSAgICB2YXIgcCA9IHtbYV06MiwgW2JdOjMsIFtjXTo0
LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwgW2hdOjksIFtpXToxMCwgW2pdOjExLCBba106
MTIsIFtsXToxM307Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaW5kZXggPSAw
OyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpIHsKLSAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBv
W2JdIF4gb1tjXSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9bZ10gXiBvW2hdIF4gb1tpXSBeIG9b
al0gXiBvW2tdOwotICAgICAgICB2YXIgdG1wID0gbzsKLSAgICAgICAgbyA9IHA7Ci0gICAgICAg
IHAgPSB0bXA7Ci0gICAgfQotICAgIGlmIChyZXN1bHQgIT0gNjUwMDAwMCkKLSAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
Y2hhaW4tZnJvbS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjk3MGZlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4t
ZnJvbS10cnktYmxvY2suanMKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi12YXIgZiA9
ICdmJzsKLQotZnVuY3Rpb24gQSgpIHsgfQotCi1BLnByb3RvdHlwZSA9IHtbZl06NDJ9OwotCi1m
dW5jdGlvbiBCKCkgeyB9Ci0KLUIucHJvdG90eXBlID0gbmV3IEEoKTsKLQotZnVuY3Rpb24gQygp
IHsgfQotCi1DLnByb3RvdHlwZSA9IG5ldyBCKCk7Ci0KLWZ1bmN0aW9uIEQoKSB7IH0KLQotRC5w
cm90b3R5cGUgPSBuZXcgQygpOwotCi1mdW5jdGlvbiBFKCkgeyB9Ci0KLUUucHJvdG90eXBlID0g
bmV3IEQoKTsKLQotZnVuY3Rpb24gRigpIHsgfQotCi1GLnByb3RvdHlwZSA9IG5ldyBFKCk7Ci0K
LWZ1bmN0aW9uIEcoKSB7IH0KLQotRy5wcm90b3R5cGUgPSBuZXcgRigpOwotCi1mdW5jdGlvbiBm
b28obykgewotICAgIHRyeSB7Ci0gICAgICAgIHZhciByZXN1bHQgPSAwOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKLSAgICAgICAgICAgIHJlc3VsdCArPSBvW2ZdOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgcmV0dXJu
IDUyOwotICAgIH0KLX0KLQotdmFyIHJlc3VsdCA9IDA7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDsgKytpKQotICAgIHJlc3VsdCArPSBmb28obmV3IEcoKSk7Ci0KLWlmIChyZXN1bHQgIT0g
NDIwMDAwMDApCi0gICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjg4
YWE1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSAnYScs
IGIgPSAnYicsIGMgPSAnYycsIGQgPSAnZCcsIGUgPSAnZScsIGYgPSAnZicsIGcgPSAnZycsIGgg
PSAnaCcsIGkgPSAnaScsIGogPSAnaicsIGsgPSAnayc7Ci0gICAgdmFyIG8gPSB7W2FdOjEsIFti
XToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2ddOjcsIFtoXTo4LCBbaV06OSwgW2pd
OjEwLCBba106MTF9OwotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAodmFyIGluZGV4ID0g
MDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KQotICAgICAgICByZXN1bHQgKz0gb1thXSBeIG9b
Yl0gfCBvW2NdIF4gb1tkXSAmIG9bZV0gXiBvW2ZdIHwgb1tnXSBeIG9baF0gJiBvW2ldIF4gb1tq
XSB8IG9ba107Ci0gICAgaWYgKHJlc3VsdCAhPSAxNTAwMDAwMCkKLSAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8t
b3Itc2VsZi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZWY3NDkzYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwyNCArMCwwIEBACi12YXIgZiA9ICdmJzsKLQotZnVuY3Rpb24gZm9vKG8pIHsK
LSAgICByZXR1cm4gb1tmXTsKLX0KLQotZnVuY3Rpb24gYmFyKGEpIHsKLSAgICB2YXIgcmVzdWx0
ID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgewotICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCi0gICAgICAgICAgICByZXN1bHQgKz0g
Zm9vKGFbal0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1mdW5jdGlvbiBGb28o
KSB7Ci19Ci0KLUZvby5wcm90b3R5cGVbZl0gPSA0MjsKLQotdmFyIHJlc3VsdCA9IGJhcihbbmV3
IEZvbygpLCB7W2ZdOjI0fV0pOwotCi1pZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKLSAgICB0aHJv
dyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTkxZGNlMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCww
IEBACi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSAnYSc7Ci0gICAgdmFyIGwgPSAnbCc7Ci0g
ICAgdmFyIGIgPSAnYic7Ci0gICAgdmFyIGMgPSAnYyc7Ci0KLSAgICB2YXIgbyA9IHtbYV06MX07
Ci0gICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307Ci0gICAgdmFyIHEgPSB7W2FdOjMsIFtiXToz
fTsKLSAgICB2YXIgciA9IHtbYV06NCwgW2NdOjV9OwotICAgIHZhciByZXN1bHQgPSAwOwotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCBePSBv
W2FdOwotICAgICAgICB2YXIgdG1wID0gbzsKLSAgICAgICAgbyA9IHA7Ci0gICAgICAgIHAgPSBx
OwotICAgICAgICBxID0gcjsKLSAgICAgICAgciA9IHRtcDsKLSAgICB9Ci0gICAgaWYgKHJlc3Vs
dCAhPSAwKQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19
KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YmVjMTA3Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
c2VsZi1vci1wcm90by5qcworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXZhciBmID0g
J2YnOwotCi1mdW5jdGlvbiBmb28obykgewotICAgIHJldHVybiBvW2ZdOwotfQotCi1mdW5jdGlv
biBiYXIoYSkgewotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MjAwMDAwMDsgKytpKSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsr
aikKLSAgICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7Ci0gICAgfQotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIEZvbygpIHsKLX0KLQotRm9vLnByb3RvdHlwZVtmXSA9IDQy
OwotCi12YXIgcmVzdWx0ID0gYmFyKFt7W2ZdOjI0fSwgbmV3IEZvbygpXSk7Ci0KLWlmIChyZXN1
bHQgIT0gMTMyMDAwMDAwKQotICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4NWQzMmEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcworKysgL2Rl
di9udWxsCkBAIC0xLDE0ICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAgICB2YXIgYSA9IFN5bWJv
bCgpLCBsID0gU3ltYm9sKCk7Ci0gICAgdmFyIG8gPSB7W2FdOjF9OwotICAgIHZhciBwID0ge1th
XToyLCBbbF06MTN9OwotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwMDsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCBePSBvW2FdOwotICAgICAgICB2YXIg
dG1wID0gbzsKLSAgICAgICAgbyA9IHA7Ci0gICAgICAgIHAgPSB0bXA7Ci0gICAgfQotICAgIGlm
IChyZXN1bHQgIT0gMCkKLSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJiZTk3MS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxNCArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSBTeW1ib2woKSwgYiA9IFN5
bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBTeW1ib2woKSwgZSA9IFN5bWJvbCgpLCBmID0gU3lt
Ym9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5bWJvbCgpLCBpID0gU3ltYm9sKCksIGogPSBTeW1i
b2woKSwgayA9IFN5bWJvbCgpLCBsID0gU3ltYm9sKCk7Ci0gICAgdmFyIG8gPSB7W2FdOjEsIFti
XToyLCBbY106MywgW2RdOjQsIFtlXTo1LCBbZl06NiwgW2ddOjcsIFtoXTo4LCBbaV06OSwgW2pd
OjEwLCBba106MTF9OwotICAgIHZhciBwID0ge1thXToyLCBbYl06MywgW2NdOjQsIFtkXTo1LCBb
ZV06NiwgW2ZdOjcsIFtnXTo4LCBbaF06OSwgW2ldOjEwLCBbal06MTEsIFtrXToxMiwgW2xdOiAx
M307Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8
IDEwMDAwMDA7ICsraW5kZXgpIHsKLSAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIF4gb1tj
XSBeIG9bZF0gXiBvW2VdIF4gb1tmXSBeIG9bZ10gXiBvW2hdIF4gb1tpXSBeIG9bal0gXiBvW2td
OwotICAgICAgICB2YXIgdG1wID0gbzsKLSAgICAgICAgbyA9IHA7Ci0gICAgICAgIHAgPSB0bXA7
Ci0gICAgfQotICAgIGlmIChyZXN1bHQgIT0gNjUwMDAwMCkKLSAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJv
bS10cnktYmxvY2suanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzZjhhYzc4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnkt
YmxvY2suanMKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi12YXIgZiA9IFN5bWJvbCgi
Q29jb2EiKTsKLQotZnVuY3Rpb24gQSgpIHsgfQotCi1BLnByb3RvdHlwZSA9IHtbZl06NDJ9Owot
Ci1mdW5jdGlvbiBCKCkgeyB9Ci0KLUIucHJvdG90eXBlID0gbmV3IEEoKTsKLQotZnVuY3Rpb24g
QygpIHsgfQotCi1DLnByb3RvdHlwZSA9IG5ldyBCKCk7Ci0KLWZ1bmN0aW9uIEQoKSB7IH0KLQot
RC5wcm90b3R5cGUgPSBuZXcgQygpOwotCi1mdW5jdGlvbiBFKCkgeyB9Ci0KLUUucHJvdG90eXBl
ID0gbmV3IEQoKTsKLQotZnVuY3Rpb24gRigpIHsgfQotCi1GLnByb3RvdHlwZSA9IG5ldyBFKCk7
Ci0KLWZ1bmN0aW9uIEcoKSB7IH0KLQotRy5wcm90b3R5cGUgPSBuZXcgRigpOwotCi1mdW5jdGlv
biBmb28obykgewotICAgIHRyeSB7Ci0gICAgICAgIHZhciByZXN1bHQgPSAwOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKLSAgICAgICAgICAgIHJlc3VsdCArPSBvW2Zd
OwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgcmV0
dXJuIDUyOwotICAgIH0KLX0KLQotdmFyIHJlc3VsdCA9IDA7Ci0KLWZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDsgKytpKQotICAgIHJlc3VsdCArPSBmb28obmV3IEcoKSk7Ci0KLWlmIChyZXN1bHQg
IT0gNDIwMDAwMDApCi0gICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
ZDU5ZmQ4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFyIGEgPSBT
eW1ib2woKSwgYiA9IFN5bWJvbCgpLCBjID0gU3ltYm9sKCksIGQgPSBTeW1ib2woKSwgZSA9IFN5
bWJvbCgpLCBmID0gU3ltYm9sKCksIGcgPSBTeW1ib2woKSwgaCA9IFN5bWJvbCgpLCBpID0gU3lt
Ym9sKCksIGogPSBTeW1ib2woKSwgayA9IFN5bWJvbCgpOwotICAgIHZhciBvID0ge1thXToxLCBb
Yl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtq
XToxMCwgW2tdOjExfTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBpbmRleCA9
IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRleCkKLSAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBv
W2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9b
al0gfCBvW2tdOwotICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCi0gICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3Rv
LW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGUyZjgyYWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMjQgKzAsMCBAQAotdmFyIGYgPSBTeW1ib2woIkNvY29hIik7Ci0KLWZ1bmN0
aW9uIGZvbyhvKSB7Ci0gICAgcmV0dXJuIG9bZl07Ci19Ci0KLWZ1bmN0aW9uIGJhcihhKSB7Ci0g
ICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kp
IHsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQotICAgICAgICAg
ICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot
ZnVuY3Rpb24gRm9vKCkgewotfQotCi1Gb28ucHJvdG90eXBlW2ZdID0gNDI7Ci0KLXZhciByZXN1
bHQgPSBiYXIoW25ldyBGb28oKSwge1tmXToyNH1dKTsKLQotaWYgKHJlc3VsdCAhPSAxMzIwMDAw
MDApCi0gICAgdGhyb3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1ODM2MmEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMjIgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gU3ltYm9sKCJDb2Nv
YSIpOwotICAgIHZhciBsID0gU3ltYm9sKCk7Ci0gICAgdmFyIGIgPSBTeW1ib2woKTsKLSAgICB2
YXIgYyA9IFN5bWJvbCgpOwotCi0gICAgdmFyIG8gPSB7W2FdOjF9OwotICAgIHZhciBwID0ge1th
XToyLCBbbF06MTN9OwotICAgIHZhciBxID0ge1thXTozLCBbYl06M307Ci0gICAgdmFyIHIgPSB7
W2FdOjQsIFtjXTo1fTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDA7ICsraSkgewotICAgICAgICByZXN1bHQgXj0gb1thXTsKLSAgICAgICAgdmFy
IHRtcCA9IG87Ci0gICAgICAgIG8gPSBwOwotICAgICAgICBwID0gcTsKLSAgICAgICAgcSA9IHI7
Ci0gICAgICAgIHIgPSB0bXA7Ci0gICAgfQotICAgIGlmIChyZXN1bHQgIT0gMCkKLSAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtc2VsZi1vci1wcm90by5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzAwOGMzNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMK
KysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi12YXIgZiA9IFN5bWJvbCgnQ29jb2EnKTsK
LQotZnVuY3Rpb24gZm9vKG8pIHsKLSAgICByZXR1cm4gb1tmXTsKLX0KLQotZnVuY3Rpb24gYmFy
KGEpIHsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDAw
MDA7ICsraSkgewotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyArK2opCi0g
ICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1mdW5jdGlvbiBGb28oKSB7Ci19Ci0KLUZvby5wcm90b3R5cGVbZl0gPSA0MjsKLQot
dmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOwotCi1pZiAocmVzdWx0ICE9
IDEzMjAwMDAwMCkKLSAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCA2NzU0MWZkLi5k
OTg4NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJ
bmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCkBA
IC0yNiwxOCArMjYsMTYgQEAKICNpZm5kZWYgQnlWYWxJbmZvX2gKICNkZWZpbmUgQnlWYWxJbmZv
X2gKIAorI2lmIEVOQUJMRShKSVQpCisKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRl
ICJDb2RlTG9jYXRpb24uaCIKLSNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSW5k
ZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiSklUU3R1YlJvdXRpbmUuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAotI2lmIEVOQUJMRShKSVQpCi0KIGVudW0gSklUQXJyYXlNb2RlIHsKICAgICBKSVRJbnQz
MiwKICAgICBKSVREb3VibGUsCkBAIC0yMDMsMzMgKzIwMSwyNCBAQCBpbmxpbmUgSklUQXJyYXlN
b2RlIGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIAogc3Ry
dWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZvKCkgeyB9Ci0KLSAgICBCeVZhbEluZm8odW5z
aWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAsIENvZGVM
b2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIEFycmF5UHJv
ZmlsZSogYXJyYXlQcm9maWxlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJl
dHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorICAgIAorICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJy
YXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NU
b1Nsb3dQYXRoKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKLSAgICAg
ICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAgICAsIGJhZFR5cGVKdW1wKGJh
ZFR5cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCi0gICAgICAgICwgYXJy
YXlQcm9maWxlKGFycmF5UHJvZmlsZSkKICAgICAgICAgLCBiYWRUeXBlSnVtcFRvRG9uZShiYWRU
eXBlSnVtcFRvRG9uZSkKICAgICAgICAgLCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aChyZXR1cm5B
ZGRyZXNzVG9TbG93UGF0aCkKICAgICAgICAgLCBzbG93UGF0aENvdW50KDApCi0gICAgICAgICwg
c3R1YkluZm8obnVsbHB0cikKLSAgICAgICAgLCB0b29rU2xvd1BhdGgoZmFsc2UpCiAgICAgewog
ICAgIH0KLQorICAgIAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7Ci0gICAgQ29kZUxvY2F0
aW9uSnVtcCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcDsK
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJyYXkgbW9kZSB0aGF0IHdhcyBi
YWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCi0gICAgQXJyYXlQcm9maWxlKiBhcnJheVBy
b2ZpbGU7CiAgICAgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsKICAgICBpbnQxNl90IHJldHVy
bkFkZHJlc3NUb1Nsb3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQYXRoQ291bnQ7CiAgICAgUmVm
UHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKLSAgICBJZGVudGlmaWVyIGNhY2hlZElk
OwotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbzsKLSAgICBib29sIHRvb2tTbG93UGF0
aDsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFs
SW5mbyogaW5mbykKQEAgLTIzNywxNSArMjI2LDkgQEAgaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFs
SW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQogICAgIHJldHVybiBpbmZvLT5ieXRl
Y29kZUluZGV4OwogfQogCi10eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQnlWYWxJbmZvKiwg
Q29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOwotCi0jZWxzZSAvLyBFTkFC
TEUoSklUKQotCi10eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlWYWxJbmZvTWFwOworfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCi19IC8vIG5hbWVzcGFj
ZSBKU0MKLQogI2VuZGlmIC8vIEJ5VmFsSW5mb19oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggYzkzMzFmNy4uYTM2MWQ2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTI2NzIsMjIgKzI2
NzIsNiBAQCB2b2lkIENvZGVCbG9jazo6Z2V0Q2FsbExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01h
cCYgcmVzdWx0KQogICAgIGdldENhbGxMaW5rSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAK
LXZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tl
ciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KQotewotI2lmIEVOQUJMRShKSVQpCi0gICAgZm9yIChh
dXRvKiBieVZhbEluZm8gOiBtX2J5VmFsSW5mb3MpCi0gICAgICAgIHJlc3VsdC5hZGQoQ29kZU9y
aWdpbihieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXgpLCBieVZhbEluZm8pOwotI2Vsc2UKLSAgICBV
TlVTRURfUEFSQU0ocmVzdWx0KTsKLSNlbmRpZgotfQotCi12b2lkIENvZGVCbG9jazo6Z2V0QnlW
YWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KQotewotICAgIENvbmN1cnJlbnRKSVRMb2Nr
ZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgZ2V0QnlWYWxJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsK
LX0KLQogI2lmIEVOQUJMRShKSVQpCiBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRT
dHViSW5mbygpCiB7CkBAIC0yNzA0LDEyICsyNjg4LDYgQEAgU3RydWN0dXJlU3R1YkluZm8qIENv
ZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotQnlWYWxJbmZvKiBDb2RlQmxvY2s6OmFkZEJ5VmFsSW5mbygpCi17Ci0g
ICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICByZXR1cm4gbV9ieVZh
bEluZm9zLmFkZCgpOwotfQotCiBDYWxsTGlua0luZm8qIENvZGVCbG9jazo6YWRkQ2FsbExpbmtJ
bmZvKCkKIHsKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IDk2MDc5MWQuLjZjM2Ex
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTIw
MCw5ICsyMDAsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBnZXRDYWxsTGlua0luZm9NYXAo
Y29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKICAg
ICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7Ci0KLSAg
ICB2b2lkIGdldEJ5VmFsSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQnlWYWxJ
bmZvTWFwJiByZXN1bHQpOwotICAgIHZvaWQgZ2V0QnlWYWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYg
cmVzdWx0KTsKICAgICAKICNpZiBFTkFCTEUoSklUKQogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBh
ZGRTdHViSW5mbygpOwpAQCAtMjE0LDggKzIxMSwxMSBAQCBwdWJsaWM6CiAgICAgU3RydWN0dXJl
U3R1YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKIAogICAgIHZvaWQgcmVzZXRTdHVi
KFN0cnVjdHVyZVN0dWJJbmZvJik7Ci0KLSAgICBCeVZhbEluZm8qIGFkZEJ5VmFsSW5mbygpOwor
ICAgIAorICAgIEJ5VmFsSW5mbyYgZ2V0QnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgp
CisgICAgeworICAgICAgICByZXR1cm4gKihiaW5hcnlTZWFyY2g8QnlWYWxJbmZvLCB1bnNpZ25l
ZD4obV9ieVZhbEluZm9zLCBtX2J5VmFsSW5mb3Muc2l6ZSgpLCBieXRlY29kZUluZGV4LCBnZXRC
eVZhbEluZm9CeXRlY29kZUluZGV4KSk7CisgICAgfQogCiAgICAgQ2FsbExpbmtJbmZvKiBhZGRD
YWxsTGlua0luZm8oKTsKICAgICBCYWc8Q2FsbExpbmtJbmZvPjo6aXRlcmF0b3IgY2FsbExpbmtJ
bmZvc0JlZ2luKCkgeyByZXR1cm4gbV9jYWxsTGlua0luZm9zLmJlZ2luKCk7IH0KQEAgLTM2Nyw2
ICszNjcsMTIgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIG5hbWVGb3JSZWdpc3RlcihWaXJ0dWFs
UmVnaXN0ZXIpOwogCisjaWYgRU5BQkxFKEpJVCkKKyAgICB2b2lkIHNldE51bWJlck9mQnlWYWxJ
bmZvcyhzaXplX3Qgc2l6ZSkgeyBtX2J5VmFsSW5mb3MucmVzaXplVG9GaXQoc2l6ZSk7IH0KKyAg
ICBzaXplX3QgbnVtYmVyT2ZCeVZhbEluZm9zKCkgY29uc3QgeyByZXR1cm4gbV9ieVZhbEluZm9z
LnNpemUoKTsgfQorICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvKHNpemVfdCBpbmRleCkgeyByZXR1
cm4gbV9ieVZhbEluZm9zW2luZGV4XTsgfQorI2VuZGlmCisKICAgICB1bnNpZ25lZCBudW1iZXJP
ZkFyZ3VtZW50VmFsdWVQcm9maWxlcygpCiAgICAgewogICAgICAgICBBU1NFUlQobV9udW1QYXJh
bWV0ZXJzID49IDApOwpAQCAtMTAxMCw3ICsxMDE2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
SklUQ29kZT4gbV9qaXRDb2RlOwogI2lmIEVOQUJMRShKSVQpCiAgICAgQmFnPFN0cnVjdHVyZVN0
dWJJbmZvPiBtX3N0dWJJbmZvczsKLSAgICBCYWc8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7Cisg
ICAgVmVjdG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwogICAgIEJhZzxDYWxsTGlua0luZm8+
IG1fY2FsbExpbmtJbmZvczsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZvLCBC
YXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CiAgICAg
U2VudGluZWxMaW5rZWRMaXN0PFBvbHltb3JwaGljQ2FsbE5vZGUsIEJhc2ljUmF3U2VudGluZWxO
b2RlPFBvbHltb3JwaGljQ2FsbE5vZGU+PiBtX2luY29taW5nUG9seW1vcnBoaWNDYWxsczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCmluZGV4IDI1MjQzMDAu
LjRmNzlmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
S2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNw
cApAQCAtNDAsOCArNDAsNiBAQCBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5k
IGtpbmQpCiAgICAgICAgIHJldHVybiAiQmFkVHlwZSI7CiAgICAgY2FzZSBCYWRDZWxsOgogICAg
ICAgICByZXR1cm4gIkJhZENlbGwiOwotICAgIGNhc2UgQmFkSWRlbnQ6Ci0gICAgICAgIHJldHVy
biAiQmFkSWRlbnQiOwogICAgIGNhc2UgQmFkRXhlY3V0YWJsZToKICAgICAgICAgcmV0dXJuICJC
YWRFeGVjdXRhYmxlIjsKICAgICBjYXNlIEJhZENhY2hlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuaAppbmRleCA2ZjhjNTEyLi41OWNiYmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtMzIsNyArMzIsNiBAQCBlbnVtIEV4
aXRLaW5kIDogdWludDhfdCB7CiAgICAgRXhpdEtpbmRVbnNldCwKICAgICBCYWRUeXBlLCAvLyBX
ZSBleGl0ZWQgYmVjYXVzZSBhIHR5cGUgcHJlZGljdGlvbiB3YXMgd3JvbmcuCiAgICAgQmFkQ2Vs
bCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBh
Ym91dCB3aGF0IGNlbGwgd2Ugd291bGQgc2VlLiBVc3VhbGx5IHVzZWQgZm9yIGZ1bmN0aW9uIGNo
ZWNrcy4KLSAgICBCYWRJZGVudCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNv
cnJlY3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IGlkZW50aWZpZXIgd2Ugd291bGQgc2VlLiBVc3Vh
bGx5IHVzZWQgZm9yIGNhY2hlZCBJZCBjaGVjayBpbiBnZXRfYnlfdmFsLgogICAgIEJhZEV4ZWN1
dGFibGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRp
b24gYWJvdXQgd2hhdCBleGVjdXRhYmxlIHdlIHdvdWxkIHNlZS4KICAgICBCYWRDYWNoZSwgLy8g
V2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5saW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBCYWRDb25z
dGFudENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNhY2hlIG9uIGEgd2VhayBjb25zdGFu
dCAodXN1YWxseSBhIHByb3RvdHlwZSkgd2FzIHdyb25nLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCmluZGV4IDg5ZTUwMzUuLjFkOTdjOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAKQEAgLTk4LDcgKzk4LDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRl
Rm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KICAgICBHZXRCeUlk
U3RhdHVzIHJlc3VsdDsKIAogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHJlc3VsdCA9IGNvbXB1
dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorICAgIHJlc3VsdCA9IGNvbXB1
dGVGb3JTdHViSW5mbygKICAgICAgICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBtYXAuZ2V0KENv
ZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpLCB1aWQsCiAgICAgICAgIENhbGxMaW5rU3RhdHVzOjpj
b21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkp
OwogICAgIApAQCAtMTE2LDIwICsxMTYsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogfQog
CiAjaWYgRU5BQkxFKEpJVCkKLUdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZv
clN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBw
cm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKLXsKLSAgICBHZXRCeUlkU3RhdHVzIHJl
c3VsdCA9IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZl
ZWRiYWNrKAotICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1aWQsCi0g
ICAgICAgIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmls
ZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7Ci0KLSAgICBpZiAoIXJlc3VsdC50
YWtlc1Nsb3dQYXRoKCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUobG9ja2VyLCBwcm9m
aWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4gR2V0
QnlJZFN0YXR1cyhyZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJZFN0YXR1czo6TWFrZXNDYWxs
cyA6IEdldEJ5SWRTdGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUpOwotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQotI2lmIEVOQUJMRShKSVQpCi1HZXRCeUlk
U3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZl
ZWRiYWNrKAorR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8o
CiAgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2Zp
bGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgVW5pcXVlZFN0cmluZ0ltcGwq
IHVpZCwKICAgICBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhIGNhbGxFeGl0U2l0ZURhdGEp
CiB7CkBAIC0yNTUsNyArMjQyLDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yKAogICAgICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKICAgICAgICAgewogICAgICAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQmxvY2stPm1fbG9jayk7Ci0gICAg
ICAgICAgICByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
aygKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbygKICAgICAgICAgICAg
ICAgICBsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQsIGV4aXRT
aXRlRGF0YSk7CiAgICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAppbmRleCBkN2YwYWU0Li4zMjM3MmNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKQEAgLTcxLDEx
ICs3MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKGNv
bnN0IFN0cnVjdHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwogICAgIAogICAgIHN0
YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBD
b2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFw
JiBkZmdNYXAsIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwotCi0jaWYgRU5B
QkxFKEpJVCkKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgU3RydWN0
dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKTsKLSNlbmRp
ZgotCisgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAg
ICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0gTm9JbmZvcm1h
dGlvbjsgfQpAQCAtOTksNyArOTUsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGhhc0V4
aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4KTsKICNlbmRpZgogI2lmIEVOQUJMRShKSVQpCi0gICAgc3RhdGljIEdldEJ5
SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCisgICAg
c3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKAogICAgICAgICBjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVT
dHViSW5mbyosCiAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIENhbGxMaW5rU3RhdHVz
OjpFeGl0U2l0ZURhdGEpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMjI5MDg3ZC4u
MzczNGM3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjE2MywzMiArMjE2Myw2IEBAIGJvb2wg
QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVu
c2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgQ2hl
Y2tJZGVudDogewotICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IGZvck5vZGUobm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+dWlkT3Bl
cmFuZCgpOwotICAgICAgICBBU1NFUlQodWlkLT5pc1N5bWJvbCgpID8gISh2YWx1ZS5tX3R5cGUg
JiB+U3BlY1N5bWJvbCkgOiAhKHZhbHVlLm1fdHlwZSAmIH5TcGVjU3RyaW5nSWRlbnQpKTsgLy8g
RWRnZSBmaWx0ZXJpbmcgc2hvdWxkIGhhdmUgYWxyZWFkeSBlbnN1cmVkIHRoaXMuCi0KLSAgICAg
ICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gdmFsdWUudmFsdWUoKTsKLSAgICAgICAgaWYgKGNo
aWxkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5pc1N5bWJvbCgpKTsKLSAgICAgICAgICAg
ICAgICBpZiAoYXNTeW1ib2woY2hpbGRDb25zdGFudCktPnByaXZhdGVOYW1lKCkudWlkKCkgPT0g
dWlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGNoaWxkQ29uc3RhbnQuaXNT
dHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50
cnlHZXRWYWx1ZUltcGwoKSA9PSB1aWQpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZmlsdGVy
KHZhbHVlLCB1aWQtPmlzU3ltYm9sKCkgPyBTcGVjU3ltYm9sIDogU3BlY1N0cmluZ0lkZW50KTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBDaGVja0luQm91bmRzOiB7CiAgICAg
ICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAg
ICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAy
NjhhNzU3Li41NjQyMmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcApAQCAtOTY5LDcgKzk2OSw2IEBAIHByaXZhdGU6CiAgICAgICAgIAog
ICAgICAgICBDYWxsTGlua0luZm9NYXAgbV9jYWxsTGlua0luZm9zOwogICAgICAgICBTdHViSW5m
b01hcCBtX3N0dWJJbmZvczsKLSAgICAgICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJbmZvczsKICAg
ICAgICAgCiAgICAgICAgIC8vIERpZCB3ZSBzZWUgYW55IHJldHVybnM/IFdlIG5lZWQgdG8gaGFu
ZGxlIHRoZSAodW5jb21tb24gYnV0IG5lY2Vzc2FyeSkKICAgICAgICAgLy8gY2FzZSB3aGVyZSBh
IHByb2NlZHVyZSB0aGF0IGRvZXMgbm90IHJldHVybiB3YXMgaW5saW5lZC4KQEAgLTMzOTgsMzUg
KzMzOTcsMTIgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1p
dCkKIAogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKICAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uV2l0aG91dE9TUkV4aXQoKTsKLQorICAg
ICAgICAgICAgCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBBcnJheU1vZGUg
YXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJv
ZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAgICAgICAg
ICAgIGJvb2wgY29tcGlsZWRBc0dldEJ5SWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2lubGluZVN0YWNrVG9wLT5t
X3Byb2ZpbGVkQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZh
bEluZm8gPSBtX2lubGluZVN0YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3Vy
cmVudENvZGVPcmlnaW4oKS5ieXRlY29kZUluZGV4KSk7Ci0gICAgICAgICAgICAgICAgLy8gRklY
TUU6IFdoZW4gdGhlIGJ5dGVjb2RlIGlzIG5vdCBjb21waWxlZCBpbiB0aGUgYmFzZWxpbmUgSklU
LCBieVZhbEluZm8gYmVjb21lcyBudWxsLgotICAgICAgICAgICAgICAgIC8vIEF0IHRoYXQgdGlt
ZSwgdGhlcmUgaXMgbm8gaW5mb3JtYXRpb24uCi0gICAgICAgICAgICAgICAgaWYgKGJ5VmFsSW5m
byAmJiBieVZhbEluZm8tPnN0dWJJbmZvICYmICFieVZhbEluZm8tPnRvb2tTbG93UGF0aCAmJiAh
bV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRl
eCwgQmFkSWRlbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBpbGVkQXNHZXRCeUlkID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1f
Z3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNoZWRJZC5pbXBsKCkpOwot
ICAgICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVu
dGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwotCi0gICAgICAgICAgICAgICAgICAgIGFkZFRv
R3JhcGgoQ2hlY2tJZGVudCwgT3BJbmZvKHVpZCksIHByb3BlcnR5KTsKLQotICAgICAgICAgICAg
ICAgICAgICBHZXRCeUlkU3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yU3R1YkluZm8oCi0gICAgICAgICAgICAgICAgICAgICAgICBsb2NrZXIsIG1faW5saW5l
U3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ5VmFs
SW5mby0+c3R1YkluZm8sIGN1cnJlbnRDb2RlT3JpZ2luKCksIHVpZCk7Ci0KLSAgICAgICAgICAg
ICAgICAgICAgaGFuZGxlR2V0QnlJZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBw
cmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghY29tcGlsZWRB
c0dldEJ5SWQpIHsKLSAgICAgICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJy
YXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQp
OwotICAgICAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwg
T3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJv
cGVydHkpOwotICAgICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCksIGdldEJ5VmFsKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9k
ZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOworICAgICAg
ICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
KSwgZ2V0QnlWYWwpOwogCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlfdmFsKTsK
ICAgICAgICAgfQpAQCAtNDMyOSw3ICs0MzA1LDYgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0
YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkoCiAgICAgICAgIGlmIChtX3Byb2ZpbGVkQmxvY2st
Pmhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkpIHsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9j
ay0+Z2V0U3R1YkluZm9NYXAobG9ja2VyLCBtX3N0dWJJbmZvcyk7CiAgICAgICAgICAgICBtX3By
b2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5mb01hcChsb2NrZXIsIG1fY2FsbExpbmtJbmZvcyk7
Ci0gICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldEJ5VmFsSW5mb01hcChsb2NrZXIsIG1f
YnlWYWxJbmZvcyk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDQ2ZjVmZTQuLjI5Njc0OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0yNjgsMTAgKzI2OCw2IEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9y
JiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hlY2tOb3RFbXB0
eSwgQWRqYWNlbmN5TGlzdChBZGphY2VuY3lMaXN0OjpGaXhlZCwgbm9kZS0+Y2hpbGQxKCkpKSk7
CiAgICAgICAgIHJldHVybjsKIAotICAgIGNhc2UgQ2hlY2tJZGVudDoKLSAgICAgICAgZGVmKFB1
cmVWYWx1ZShDaGVja0lkZW50LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBu
b2RlLT5jaGlsZDEoKSksIG5vZGUtPnVpZE9wZXJhbmQoKSkpOwotICAgICAgICByZXR1cm47Ci0K
ICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBvaW50ZXI6CiAgICAgICAgIGRlZihQdXJlVmFsdWUo
bm9kZSwgbm9kZS0+c3RvcmFnZVBvaW50ZXIoKSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
CmluZGV4IDNkODVjYWEuLmJhNGMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0yMDgsMzMgKzIwOCw2IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGNhc2UgQ2hlY2tJZGVudDogewotICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJ
bXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBj
aGlsZENvbnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwot
ICAgICAgICAgICAgICAgIGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBsKiBjb25zdGFudFVpZCA9IG51
bGxwdHI7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGNoaWxkQ29uc3RhbnQuaXNTeW1ib2woKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdGFudFVpZCA9IGFzU3ltYm9sKGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVp
ZCgpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFNpbmNlIHdlIGFscmVhZHkgZmlsdGVyZWQgdGhlIHZhbHVlIHdpdGggU3RyaW5n
SWRlbnRVc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGhlbGQgaW1wbCBp
cyBhbHdheXMgYXRvbWljLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25zdCBh
dXRvKiBpbXBsID0gYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPnRyeUdldFZhbHVlSW1wbCgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChpbXBsLT5pc0F0b21pYygp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBzdGF0aWNf
Y2FzdDxjb25zdCBVbmlxdWVkU3RyaW5nSW1wbCo+KGltcGwpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChjb25zdGFudFVp
ZCA9PSB1aWQpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKCk7Ci0gICAgICAg
ICAgICAgICAgICAgIGVsaW1pbmF0ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgY2FzZSBDaGVj
a0luQm91bmRzOiB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBsZWZ0ID0gbV9zdGF0ZS5mb3JO
b2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcmln
aHQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggZTQ3MGI4ZC4uMDhmZmIyYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTA3LDcgKzEwNyw2IEBAIGJv
b2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFZhckluamVjdGlv
bldhdGNocG9pbnQ6CiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5
OgotICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBS
ZWdFeHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBkNmE5NzkwLi5jNDQyMzEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwMTIsMTUgKzEwMTIs
NiBAQCBwcml2YXRlOgogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCi0gICAgICAgIGNhc2UgQ2hlY2tJ
ZGVudDogewotICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9w
ZXJhbmQoKTsKLSAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpCi0gICAgICAgICAgICAg
ICAgZml4RWRnZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgQXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZTogewpAQCAtMTc2
OSw3ICsxNzYwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBGdW5jdGlvblVzZToKICAgICAg
ICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6Ci0gICAgICAg
IGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAg
Y2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIGlmIChhbHdheXNVbmJv
eFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCA4
M2ZjZjVjLi4yOGNhYjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTMy
OCwxNyArMTMyOCw2IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9CiAKLSAgICBib29sIGhhc1VpZE9wZXJhbmQo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tJZGVudDsKLSAgICB9Ci0KLSAg
ICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFuZCgpCi0gICAgewotICAgICAgICBBU1NFUlQo
aGFzVWlkT3BlcmFuZCgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVl
ZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7Ci0gICAgfQotCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9u
KCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCmluZGV4IGU5YmY3MjcuLjYyZTdjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTIwOSw3ICsyMDksNiBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5l
cmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAg
IG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhDaGVj
a0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMg
Zm9yIGFycmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRK
UyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggMzZmMmRm
Ny4uNzZhZjZhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw3ICs2NDksNiBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNr
Q2VsbDoKICAgICAgICAgY2FzZSBDaGVja05vdEVtcHR5OgotICAgICAgICBjYXNlIENoZWNrSWRl
bnQ6CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgICAgICBjYXNlIFB1dFN0cnVjdHVy
ZToKICAgICAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBvaW50OgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBiMmQwN2Q1Li4wYzBhMjc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTks
NyArNTksNiBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAg
ICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6Ci0gICAgICAg
IGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAg
Y2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBOb3RTdHJpbmdWYXJV
c2U6CkBAIC0xODksNyArMTg4LDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVU
eXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxs
OgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKLSAgICBj
YXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVz
dDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAwNTM3MzYzLi5mM2Y4YWY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDU3Niwz
MSArNDU3Niw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aChO
b2RlKiBub2RlKQogICAgIH0gfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hl
Y2tJZGVudChOb2RlKiBub2RlKQotewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2Rl
LT51aWRPcGVyYW5kKCk7Ci0gICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAgICBzcGVj
dWxhdGVTeW1ib2wobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOwotICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVs
bHB0ciwKLSAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKLSAgICAgICAgICAgICAgICBKSVRD
b21waWxlcjo6Tm90RXF1YWwsCi0gICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mo
b3BlcmFuZC5ncHIoKSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLAotICAgICAgICAg
ICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNwZWN1
bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7Ci0gICAgICAgIHNwZWN1
bGF0ZVN0cmluZ0lkZW50KG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKLSAgICAgICAg
c3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIEJhZElkZW50LCBKU1ZhbHVlU291cmNlKCks
IG51bGxwdHIsCi0gICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCi0gICAgICAgICAgICAgICAg
SklUQ29tcGlsZXI6Ok5vdEVxdWFsLAotICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRy
ZXNzKG9wZXJhbmQuZ3ByKCksIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLAotICAgICAgICAg
ICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOwotICAgIH0KLSAgICBub1Jlc3VsdChub2RlKTsK
LX0KLQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uKE5vZGUqIG5vZGUp
CiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc2NvcGUodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OwpAQCAtNTc1NiwyMCArNTczMSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5v
dFN0cmluZ1ZhcihFZGdlIGVkZ2UpCiAgICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7CiB9CiAKLXZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxs
KQotewotICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwp
LCBlZGdlLCBTcGVjU3ltYm9sLCBtX2ppdC5icmFuY2hJZk5vdFN5bWJvbChjZWxsKSk7Ci19Ci0K
LXZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCi17Ci0gICAg
aWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjU3ltYm9sKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKLSAgICBzcGVj
dWxhdGVTeW1ib2woZWRnZSwgb3BlcmFuZC5ncHIoKSk7Ci19Ci0KIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU5vdENlbGwoRWRnZSBlZGdlKQogewogICAgIGlmICghbmVlZHNUeXBlQ2hl
Y2soZWRnZSwgflNwZWNDZWxsKSkKQEAgLTU4ODEsOSArNTg0Miw2IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU3RyaW5nVXNlOgog
ICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
U3ltYm9sVXNlOgotICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7Ci0gICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmpl
Y3QoZWRnZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDU0NWZmMmEuLmE1YzQ0NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTIxOTEsOCArMjE5MSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVTa2lwU2NvcGUoTm9kZSopOwogCiAgICAgdm9p
ZCBjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOwotCi0gICAgdm9pZCBjb21waWxlQ2hlY2tJ
ZGVudChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVSZXAoTm9kZSopOwogICAg
IHZvaWQgY29tcGlsZURvdWJsZVJlcChOb2RlKik7CkBAIC0yNDA4LDggKzI0MDYsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSwgR1BSUmVnKTsKICAgICB2
b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmlu
Z09yU3RyaW5nT2JqZWN0KEVkZ2UpOwotICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UsIEdQ
UlJlZyBjZWxsKTsKLSAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlKTsKICAgICB2b2lkIHNw
ZWN1bGF0ZU5vdENlbGwoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVPdGhlcihFZGdlKTsKICAg
ICB2b2lkIHNwZWN1bGF0ZU1pc2MoRWRnZSwgSlNWYWx1ZVJlZ3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMTJh
YjhkMC4uNTA0MjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zODIwLDEwICszODIwLDYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAK
LSAgICBjYXNlIENoZWNrSWRlbnQ6Ci0gICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5vZGUpOwot
ICAgICAgICBicmVhazsKLQogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDEzYzdj
ODcuLjc3MGJkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcApAQCAtMzg1MCwxMCArMzg1MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2Fz
ZSBDaGVja0lkZW50OgotICAgICAgICBjb21waWxlQ2hlY2tJZGVudChub2RlKTsKLSAgICAgICAg
YnJlYWs7Ci0KICAgICBjYXNlIEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBmdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCA5MzZlZjU1Li5lZmExMDRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTk3LDkgKzk3LDYgQEAgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIEtu
b3duU3RyaW5nVXNlOgogICAgICAgICBvdXQucHJpbnQoIktub3duU3RyaW5nIik7CiAgICAgICAg
IHJldHVybjsKLSAgICBjYXNlIFN5bWJvbFVzZToKLSAgICAgICAgb3V0LnByaW50KCJTeW1ib2wi
KTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBv
dXQucHJpbnQoIlN0cmluZ09iamVjdCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVXNlS2luZC5oCmluZGV4IDI4OWI3ODMuLmViZjk5ZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC01Nyw3ICs1Nyw2IEBAIGVudW0gVXNlS2lu
ZCB7CiAgICAgU3RyaW5nSWRlbnRVc2UsCiAgICAgU3RyaW5nVXNlLAogICAgIEtub3duU3RyaW5n
VXNlLAotICAgIFN5bWJvbFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JT
dHJpbmdPYmplY3RVc2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAtMTE4LDggKzExNyw2IEBA
IGlubGluZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAg
ICBjYXNlIFN0cmluZ1VzZToKICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICByZXR1
cm4gU3BlY1N0cmluZzsKLSAgICBjYXNlIFN5bWJvbFVzZToKLSAgICAgICAgcmV0dXJuIFNwZWNT
eW1ib2w7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3Ry
aW5nT2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CkBAIC0xOTksNyAr
MTk2LDYgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBjYXNlIFN0cmlu
Z0lkZW50VXNlOgogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6
Ci0gICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgY2Fz
ZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
CmluZGV4IDU4MWY0Y2IuLjkxMjc1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC04Nyw4ICs4Nyw3IEBAIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfY2xhc3NJ
bmZvLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJl
X2dsb2JhbE9iamVjdCwgU3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSkgXAogICAgIG1h
Y3JvKFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwK
LSAgICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURP
ZmZzZXQoKSkgXAotICAgIG1hY3JvKFN5bWJvbF9wcml2YXRlTmFtZSwgU3ltYm9sOjpvZmZzZXRP
ZlByaXZhdGVOYW1lKCkpCisgICAgbWFjcm8oU3RydWN0dXJlX3N0cnVjdHVyZUlELCBTdHJ1Y3R1
cmU6OnN0cnVjdHVyZUlET2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNU
UkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2UsIERp
cmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXgg
YjQ5M2YzMC4uNjI3MjhjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcApAQCAtMTE4LDcgKzExOCw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwg
Y2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hl
Y2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKLSAgICBjYXNlIENoZWNrSWRlbnQ6
CiAgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgpAQCAtNDE2LDcgKzQx
NSw2IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAg
ICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5n
T2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6
Ci0gICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBG
aW5hbE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE5vdENlbGxVc2U6CiAgICAgICAg
ICAgICAgICAgY2FzZSBPdGhlclVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggYTFiMTliZi4uNWZiNGUyNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTUzMiw5ICs1
MzIsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKICAgICAgICAgICAg
IGNvbXBpbGVDaGVja0JhZENlbGwoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IENoZWNrSWRlbnQ6Ci0gICAgICAgICAgICBjb21waWxlQ2hlY2tJZGVudCgpOwotICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICAgICAgICAgIGNvbXBp
bGVHZXRFeGVjdXRhYmxlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTIwMzIsMjAgKzIwMjks
NiBAQCBwcml2YXRlOgogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1ZSgpLCBu
dWxscHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAg
ICAgfQogCi0gICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCi0gICAgewotICAgICAgICBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7Ci0gICAgICAgIGlmICh1
aWQtPmlzU3ltYm9sKCkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wo
bV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0
LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Ci0gICAgICAgICAg
ICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwo
c3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQx
KCkpOwotICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmlu
ZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRl
bnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQu
Y29uc3RJbnRQdHIodWlkKSkpOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgdm9pZCBjb21waWxl
R2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9u
b2RlLT5jaGlsZDEoKSk7CkBAIC03MDM3LDE2ICs3MDIwLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
c3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSwgc3RyaW5nLCBzdHJpbmdJbXBsKTsKICAgICAgICAg
cmV0dXJuIHN0cmluZ0ltcGw7CiAgICAgfQotCi0gICAgTFZhbHVlIGxvd1N5bWJvbChFZGdlIGVk
Z2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxh
dGlvbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKTsKLQotICAg
ICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlLCBtb2RlKTsKLSAgICAgICAgc3BlY3Vs
YXRlU3ltYm9sKGVkZ2UsIHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQot
CisgICAgCiAgICAgTFZhbHVlIGxvd05vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBPcGVyYW5kU3Bl
Y3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0
aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IE9iamVjdFVzZSk7CkBAIC03NDQzLDkgKzc0MTcsNiBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICAgICAgc3Bl
Y3VsYXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBTeW1ib2xVc2U6Ci0gICAgICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7Ci0gICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICBz
cGVjdWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTc1NDIs
MTYgKzc1MTMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1f
aGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIo
dm0oKS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0KLSAgICBMVmFsdWUgaXNOb3RT
eW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKLSAg
ICB7Ci0gICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3Bl
Y0NlbGwsIH5TcGVjU3ltYm9sKSkKLSAgICAgICAgICAgIHJldHVybiBwcm92ZW47Ci0gICAgICAg
IHJldHVybiBtX291dC5ub3RFcXVhbCgKLSAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBt
X2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMy
KHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7Ci0gICAgfQotCisgICAgCiAgICAgTFZhbHVl
IGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgIHsKICAg
ICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03Nzc0LDE3ICs3NzM2LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIE5vdFN0cmluZ09iamVjdCwgbm9WYWx1ZSgpLCAwLAogICAg
ICAgICAgICAgbV9vdXQubm90RXF1YWwoc3RydWN0dXJlSUQsIHdlYWtTdHJ1Y3R1cmVJRChzdHJp
bmdPYmplY3RTdHJ1Y3R1cmUpKSk7CiAgICAgfQotCi0gICAgdm9pZCBzcGVjdWxhdGVTeW1ib2wo
RWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKLSAgICB7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKGpz
VmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1N5bWJvbCB8IH5TcGVjQ2VsbCwgaXNOb3RTeW1i
b2woY2VsbCkpOwotICAgIH0KLQotICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkK
LSAgICB7Ci0gICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKLSAg
ICB9Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBM
VmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShj
ZWxsKSwgZWRnZSwgU3BlY09iamVjdCwgaXNOb3RPYmplY3QoY2VsbCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCmluZGV4IGM1MDVhZjAuLjU4MjNkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKQEAgLTY1NywyMiArNjU3LDE3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJp
dmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgIGZvciAodW5zaWdu
ZWQgaSA9IG1fcHV0QnlJZHMuc2l6ZSgpOyBpLS07KQogICAgICAgICBtX3B1dEJ5SWRzW2ldLmZp
bmFsaXplKHBhdGNoQnVmZmVyKTsKIAotICAgIGZvciAoY29uc3QgYXV0byYgYnlWYWxDb21waWxh
dGlvbkluZm8gOiBtX2J5VmFsQ29tcGlsYXRpb25JbmZvKSB7Ci0gICAgICAgIFBhdGNoYWJsZUp1
bXAgcGF0Y2hhYmxlTm90SW5kZXhKdW1wID0gYnlWYWxDb21waWxhdGlvbkluZm8ubm90SW5kZXhK
dW1wOwotICAgICAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcCA9IENvZGVMb2NhdGlv
bkp1bXAoKTsKLSAgICAgICAgaWYgKEp1bXAocGF0Y2hhYmxlTm90SW5kZXhKdW1wKS5pc1NldCgp
KQotICAgICAgICAgICAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVtcChwYXRjaEJ1ZmZl
ci5sb2NhdGlvbk9mKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkpOwotICAgICAgICBDb2RlTG9jYXRp
b25KdW1wIGJhZFR5cGVKdW1wID0gQ29kZUxvY2F0aW9uSnVtcChwYXRjaEJ1ZmZlci5sb2NhdGlv
bk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLmJhZFR5cGVKdW1wKSk7Ci0gICAgICAgIENvZGVMb2Nh
dGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGls
YXRpb25JbmZvLmRvbmVUYXJnZXQpOwotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0
aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbkluZm8uc2xv
d1BhdGhUYXJnZXQpOwotICAgICAgICBDb2RlTG9jYXRpb25DYWxsIHJldHVybkFkZHJlc3MgPSBw
YXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLnJldHVybkFkZHJlc3Mp
OwotCi0gICAgICAgICpieVZhbENvbXBpbGF0aW9uSW5mby5ieVZhbEluZm8gPSBCeVZhbEluZm8o
Ci0gICAgICAgICAgICBieVZhbENvbXBpbGF0aW9uSW5mby5ieXRlY29kZUluZGV4LAotICAgICAg
ICAgICAgbm90SW5kZXhKdW1wLAorICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5m
b3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKTsgKytpKSB7CisgICAgICAgIENv
ZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkpOworICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25P
ZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmRvbmVUYXJnZXQpOworICAgICAgICBDb2RlTG9j
YXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZh
bENvbXBpbGF0aW9uSW5mb1tpXS5zbG93UGF0aFRhcmdldCk7CisgICAgICAgIENvZGVMb2NhdGlv
bkNhbGwgcmV0dXJuQWRkcmVzcyA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBp
bGF0aW9uSW5mb1tpXS5yZXR1cm5BZGRyZXNzKTsKKyAgICAgICAgCisgICAgICAgIG1fY29kZUJs
b2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8oCisgICAgICAgICAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCiAgICAgICAgICAgICBiYWRUeXBlSnVtcCwKLSAg
ICAgICAgICAgIGJ5VmFsQ29tcGlsYXRpb25JbmZvLmFycmF5TW9kZSwKLSAgICAgICAgICAgIGJ5
VmFsQ29tcGlsYXRpb25JbmZvLmFycmF5UHJvZmlsZSwKKyAgICAgICAgICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJldHdlZW5D
b2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKICAgICAgICAgICAgIGRpZmZlcmVuY2VC
ZXR3ZWVuQ29kZVB0cihyZXR1cm5BZGRyZXNzLCBzbG93UGF0aFRhcmdldCkpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDkwMTA4YWYuLjEwMjM4MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaApAQCAtMTQ5LDIzICsxNDksMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgc3Ry
dWN0IEJ5VmFsQ29tcGlsYXRpb25JbmZvIHsKICAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8o
KSB7IH0KICAgICAgICAgCi0gICAgICAgIEJ5VmFsQ29tcGlsYXRpb25JbmZvKEJ5VmFsSW5mbyog
YnlWYWxJbmZvLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hh
YmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5
cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmls
ZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCi0gICAgICAgICAgICA6IGJ5VmFs
SW5mbyhieVZhbEluZm8pCi0gICAgICAgICAgICAsIGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRl
eCkKLSAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVtcCkKKyAgICAgICAgQnlW
YWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6
OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3Jv
QXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQorICAgICAgICAgICAgOiBieXRlY29kZUluZGV4
KGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQog
ICAgICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQotICAgICAgICAgICAgLCBhcnJheVBy
b2ZpbGUoYXJyYXlQcm9maWxlKQogICAgICAgICAgICAgLCBkb25lVGFyZ2V0KGRvbmVUYXJnZXQp
CiAgICAgICAgIHsKICAgICAgICAgfQotCi0gICAgICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvOwor
ICAgICAgICAKICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsKLSAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcDsKICAgICAgICAgSklUQXJyYXlNb2RlIGFy
cmF5TW9kZTsKLSAgICAgICAgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGU7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
TGFiZWwgc2xvd1BhdGhUYXJnZXQ7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHJldHVy
bkFkZHJlc3M7CkBAIC0yMTAsMTMgKzIwNCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgaml0LnByaXZhdGVDb21waWxlR2V0QnlWYWwoYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBh
cnJheU1vZGUpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZUdldEJ5
VmFsV2l0aENhY2hlZElkKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyog
YnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSkKLSAgICAgICAgewotICAgICAgICAgICAgSklUIGppdCh2bSwgY29k
ZUJsb2NrKTsKLSAgICAgICAgICAgIGppdC5tX2J5dGVjb2RlT2Zmc2V0ID0gYnlWYWxJbmZvLT5i
eXRlY29kZUluZGV4OwotICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRo
Q2FjaGVkSWQoYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBwcm9wZXJ0eU5hbWUpOwotICAgICAg
ICB9Ci0KICAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZVB1dEJ5VmFsKFZNKiB2bSwgQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJl
dHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CkBAIC0yNTksNyArMjQ2LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHByaXZhdGVDb21waWxlKEpJVENvbXBp
bGF0aW9uRWZmb3J0KTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRC
eVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwotICAgICAg
ICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiwgUmV0
dXJuQWRkcmVzc1B0ciwgY29uc3QgSWRlbnRpZmllciYpOwogICAgICAgICB2b2lkIHByaXZhdGVD
b21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2Rl
KTsKIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KEJ5VmFs
SW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CkBAIC0zODUsOSArMzcxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRBcnJheVN0b3JhZ2VQdXRC
eVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUpOwogICAgICAgICBKdW1w
TGlzdCBlbWl0SW50VHlwZWRBcnJheVB1dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVt
cCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUpOwogICAgICAgICBKdW1wTGlzdCBlbWl0RmxvYXRU
eXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBU
eXBlZEFycmF5VHlwZSk7Ci0KLSAgICAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlW
YWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3Qm
IGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7Ci0KKyAgICAgICAgCiAgICAgICAgIGVu
dW0gRmluYWxPYmplY3RNb2RlIHsgTWF5QmVGaW5hbCwgS25vd25Ob3RGaW5hbCB9OwogCiAgICAg
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBKdW1wIGJyYW5jaFN0cnVjdHVyZShSZWxhdGlvbmFs
Q29uZGl0aW9uLCBUIGxlZnRIYW5kU2lkZSwgU3RydWN0dXJlKik7CkBAIC03MTgsNyArNzAyLDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpJZGMsIGludCwgR1BSUmVnLCBjb25zdCBJZGVudGlmaWVy
Kik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQ
UlJlZywgQXJyYXlQcm9maWxlKik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFs
SW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklU
T3BlcmF0aW9uX0VKc2MsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzY0MsIGludCwgR1BSUmVnLCBKU0NlbGwqKTsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihDX0pJVE9wZXJhdGlv
bl9FSnNjWiwgR1BSUmVnLCBpbnQzMl90KTsKQEAgLTc2Myw3ICs3NDYsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQp
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VKSkpBcCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgQXJyYXlQcm9m
aWxlKik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBCeVZh
bEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSlpKLCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlos
IFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VQYywgSW5zdHJ1Y3Rpb24qKTsKQEAgLTc4MCw3ICs3
NjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIEdQUlJlZywgY29u
c3QgSWRlbnRpZmllciopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJS
ZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQ
cm9maWxlKik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBC
eVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQ
X0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJlZywgR1BSUmVnLCBzaXplX3QpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKLCBSZWdpc3Rl
cklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihTX0pJVE9wZXJhdGlvbl9FSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQpOwpAQCAtNzg4LDcgKzc2OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VK
LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpK
QXAsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQsIEFycmF5UHJvZmlsZSopOwotICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpCeSwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJ
RCwgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRUpaLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90KTsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FSlpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FWkosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCA1ZDY4NjkwLi5kMDhkNzNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtNDExLDEyICs0MTEsNiBAQCBB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSkpKQXAgb3BlcgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpCeSBvcGVyYXRpb24sIFJl
Z2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMiwgUmVnaXN0ZXJJRCByZWdPcDMsIEJ5
VmFsSW5mbyogYnlWYWxJbmZvKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShy
ZWdPcDEsIHJlZ09wMiwgcmVnT3AzLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOwotICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19Ci0KIEFMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3Bl
cmF0aW9uX0VaSiBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcpCiB7CiAgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihkc3QpLCBhcmcpOwpAQCAtNDY1LDEy
ICs0NTksNiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCBvcGVyYQogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKSkJ5IG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJl
ZyBhcmcyLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cihieVZhbEluZm8pKTsKLSAgICByZXR1
cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9u
LCBkc3QpOwotfQotCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBH
UFJSZWcgYXJnMSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSk7CkBA
IC02MTIsMTIgKzYwMCw2IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhCiAgICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0
KTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJn
MVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXls
b2FkLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFNINF8zMkJJ
VF9EVU1NWV9BUkcgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZv
KSk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVz
dWx0KG9wZXJhdGlvbiwgZHN0KTsKLX0KLQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSklUOjpXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRp
b25fRUpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5
bG9hZCwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCkKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFy
ZzFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgYXJnMlBheWxvYWQsIGFyZzJUYWcpOwpAQCAtNjg0
LDEyICs2NjYsNiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKQXAgb3BlcgogICAgIHJldHVybiBhcHBlbmRD
YWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpC
eSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxVGFnLCBSZWdpc3RlcklEIHJlZ09wMVBheWxv
YWQsIFJlZ2lzdGVySUQgcmVnT3AyVGFnLCBSZWdpc3RlcklEIHJlZ09wMlBheWxvYWQsIFJlZ2lz
dGVySUQgcmVnT3AzVGFnLCBSZWdpc3RlcklEIHJlZ09wM1BheWxvYWQsIEJ5VmFsSW5mbyogYnlW
YWxJbmZvKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RV
TU1ZX0FSRyByZWdPcDFQYXlsb2FkLCByZWdPcDFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgcmVn
T3AyUGF5bG9hZCwgcmVnT3AyVGFnLCByZWdPcDNQYXlsb2FkLCByZWdPcDNUYWcsIFRydXN0ZWRJ
bW1QdHIoYnlWYWxJbmZvKSk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uKTsKLX0KLQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRVpKIG9wZXJhdGlvbiwgaW50IGRzdCwg
UmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9hZCkKIHsKICAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGRzdCksIHJlZ09wMVBheWxv
YWQsIHJlZ09wMVRhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApp
bmRleCA4YzhiZTc4Li5kM2NmMGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2Rlcy5jcHAKQEAgLTEwNjcsNyArMTA2Nyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRl
eGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJh
c2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9
IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9m
aWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5m
byogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwogCkBA
IC0xMDk5LDcgKzEwOTgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0
eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVu
ZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNo
YWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOworICAgIG1fYnlWYWxD
b21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZz
ZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hh
c19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0xMTA3LDcgKzExMDYsNyBAQCB2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
OwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOworICAgIEFycmF5UHJvZmlsZSogcHJvZmls
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBsaW5r
U2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAg
bGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCkBAIC0xMTE4LDcgKzExMTcs
NyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIoYmFzZSwgcmVnVDApOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHks
IHJlZ1QxKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4
ZWRQcm9wZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDAsIHJlZ1QxLCBieVZhbEluZm8pOworICAgIENh
bGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVs
dCwgZHN0LCByZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsK
ICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1
cm5BZGRyZXNzID0gY2FsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcAppbmRleCAyNTc4ZTViLi40M2UwMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xMDY3LDcgKzEwNjcsNiBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwog
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZh
bEluZm8oKTsKICAgICAKICAgICBlbWl0TG9hZFBheWxvYWQoYmFzZSwgcmVnVDApOwogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlKTsKQEAgLTExMDAsNyArMTA5OSw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdFN0b3JlQm9vbChkc3QsIHJlZ1QwKTsKICAgICAK
LSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9k
ZSwgcHJvZmlsZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5
VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUp
KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImIGl0ZXIpCkBAIC0xMTA4LDcgKzExMDcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFz
X2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAog
ICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBi
YXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJ
bmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlW
YWxJbmZvOworICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0
XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVy
LCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBi
YXNlIGFycmF5IGNoZWNrCkBAIC0xMTE5LDcgKzExMTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdAogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdExv
YWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3QsIHJlZ1QxLCByZWdUMCwg
cmVnVDMsIHJlZ1QyLCBieVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMSwgcmVnVDAsIHJl
Z1QzLCByZWdUMiwgcHJvZmlsZSk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlW
YWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3Mg
PSBjYWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5k
ZXggN2FlNDNmMC4uYjU5MTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCkBAIC00NzgsNyArNDc4LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoK
ICAgICBiYXNlLT5wdXREaXJlY3Qodm0sIG9mZnNldCwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSk7
CiB9CiAKLXN0YXRpYyB2b2lkIHB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVl
IGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUsIEJ5VmFsSW5mbyog
YnlWYWxJbmZvKQorc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
VmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQ
cm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwog
ICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC00ODgsNyArNDg4LDcg
QEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFz
ZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNhblNl
dEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAgICAgICBvYmplY3QtPnNldEluZGV4UXVpY2ts
eShjYWxsRnJhbWUtPnZtKCksIGksIHZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAg
ICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICAgICAgICAg
ICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+cHV0QnlJbmRleChvYmplY3QsIGNhbGxGcmFt
ZSwgaSwgdmFsdWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCkBAIC01MDIsNyArNTAyLDcgQEAgc3RhdGljIHZv
aWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1Zh
bHVlIHN1YnNjcmlwdCwKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzdWJzY3Jp
cHQsIEpTVmFsdWUgdmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorc3RhdGljIHZvaWQgZGly
ZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBK
U1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2Zp
bGUpCiB7CiAgICAgYm9vbCBpc1N0cmljdE1vZGUgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5p
c1N0cmljdE1vZGUoKTsKICAgICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJbnQzMigpKSkgewpA
QCAtNTE0LDcgKzUxNCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+c2V0
T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwog
ICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUsIGluZGV4LCB2YWx1
ZSwgMCwgaXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyA6IFB1dERpcmVj
dEluZGV4U2hvdWxkTm90VGhyb3cpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTQwLDcg
KzU0MCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1l
LCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgIGJhc2VPYmplY3QtPnB1
dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xvdCk7CiAgICAgfQog
fQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5m
bykKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJh
eVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC01NTQsMTkgKzU1NCwyMSBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFz
ZVZhbHVlKTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAgIEFT
U0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgIEFTU0VSVCgh
YnlWYWxJbmZvLT5zdHViUm91dGluZSk7CisgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0
ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgIEFTU0VSVChieXRl
Y29kZU9mZnNldCk7CisgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJs
b2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICBBU1NFUlQo
IWJ5VmFsSW5mby5zdHViUm91dGluZSk7CiAKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUg
PSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4
aW5nKHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCiAg
ICAgICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0
dXJlKHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBpZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChh
cnJheU1vZGUpICYmIGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgeworICAgICAg
ICAgICAgaWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2RlKSAmJiBhcnJheU1vZGUg
IT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIENvZGVCbG9jayogY29k
ZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGJ5VmFs
SW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2Rl
QmxvY2ssIHN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRl
VXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAg
ICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBi
eVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2Rl
KTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVC
bG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyks
IGFycmF5TW9kZSk7CiAgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC01NzcsNyArNTc5LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBk
b24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAgLy8g
d2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAx
MCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMg
dG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAg
ICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICAgICAg
aWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8fCBv
YmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAgICAg
Ly8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hD
YWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9V
Ul9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYykp
OwpAQCAtNTg1LDEwICs1ODcsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UKICAgICAgICAg
fQogICAgIH0KIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1
ZSwgYnlWYWxJbmZvKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwg
dmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK3ZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkK
IHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcigmdm0sIGNhbGxGcmFtZSk7CkBAIC02MDEsMjAgKzYwMywyMiBAQCB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRlKiBjYWxsRnJhbWUs
IEVuY29kZWRKU1ZhbHVlCiAgICAgaWYgKHN1YnNjcmlwdC5pc0ludDMyKCkpIHsKICAgICAgICAg
Ly8gU2VlIGlmIGl0J3Mgd29ydGggb3B0aW1pemluZyBhdCBhbGwuCiAgICAgICAgIGJvb2wgZGlk
T3B0aW1pemUgPSBmYWxzZTsKLQotICAgICAgICBBU1NFUlQoY2FsbEZyYW1lLT5sb2NhdGlvbkFz
Qnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGlu
ZSk7CisgICAgICAgIAorICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGNhbGxGcmFt
ZS0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgIEFTU0VSVChieXRlY29kZU9m
ZnNldCk7CisgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgICAgIEFTU0VSVCgh
YnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhp
bmcoc3RydWN0dXJlKSkgewogICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAg
ICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1
cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFy
cmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7CisgICAgICAg
ICAgICBpZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1vZGUpICYmIGFycmF5TW9kZSAh
PSBieVZhbEluZm8uYXJyYXlNb2RlKSB7CiAgICAgICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBi
eVZhbEluZm8tPmFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwg
Y29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29t
cHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0g
ICAgICAgICAgICAgICAgSklUOjpjb21waWxlRGlyZWN0UHV0QnlWYWwoJnZtLCBjYWxsRnJhbWUt
PmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERS
RVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRC
eVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAgICAgICBk
aWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYyNSwxNyAr
NjI5LDE3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVj
U3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICAgICAgICAgIC8vIHRoYXQgaW50
ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMu
IEZvciBjYXNlcwogICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNl
cHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAg
ICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFs
IG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1Bh
dGhDb3VudCA+PSAxMAorICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQg
Pj0gMTAKICAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZv
KCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90
WmVybygpKSB7CiAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUu
CiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rp
b25QdHIob3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1lLCBvYmplY3QsIHN1
YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CisgICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1l
LCBvYmplY3QsIHN1YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQor
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBh
cnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC02NDQsMTEgKzY0OCwxMSBAQCB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jbwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2Ny
aXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1
YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKIAotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCit2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUq
IGFycmF5UHJvZmlsZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTY1Nyw3ICs2NjEsNyBAQCB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdQogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVChiYXNlVmFsdWUuaXNPYmplY3Qo
KSk7Ci0gICAgZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZVZhbHVlKSwgc3Vic2Ny
aXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09iamVj
dChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhl
YywgRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQpAQCAtMTQxMCw0MSArMTQxNCwzNCBAQCBzdGF0aWMg
Ym9vbCBjYW5BY2Nlc3NBcmd1bWVudEluZGV4UXVpY2tseShKU09iamVjdCYgb2JqZWN0LCB1aW50
MzJfdCBpbmRleCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIGdldEJ5
VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0
LCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQor
c3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1
ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCiB7CiAgICAgaWYgKExJS0VMWShiYXNlVmFsdWUuaXND
ZWxsKCkgJiYgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CiAgICAgICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKmJhc2VWYWx1ZS5hc0NlbGwo
KS0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKEpTQ2VsbDo6Y2FuVXNlRmFzdEdldE93blBy
b3BlcnR5KHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8QXRvbWljU3RyaW5n
SW1wbD4gZXhpc3RpbmdBdG9taWNTdHJpbmcgPSBhc1N0cmluZyhzdWJzY3JpcHQpLT50b0V4aXN0
aW5nQXRvbWljU3RyaW5nKGV4ZWMpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVz
dWx0ID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVy
ZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcuZ2V0KCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFT
U0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgp
ICE9IGV4aXN0aW5nQXRvbWljU3RyaW5nKQotICAgICAgICAgICAgICAgICAgICAgICAgYnlWYWxJ
bmZvLT50b29rU2xvd1BhdGggPSB0cnVlOworICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHJl
c3VsdCA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blByb3BlcnR5KHZtLCBzdHJ1Y3R1
cmUsIGV4aXN0aW5nQXRvbWljU3RyaW5nLmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICBpZiAoc3Vic2NyaXB0LmlzVUludDMyKCkpIHsKLSAgICAgICAgQVNTRVJU
KGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICAgICAgYnlWYWxJbmZvLT50
b29rU2xvd1BhdGggPSB0cnVlOwotCiAgICAgICAgIHVpbnQzMl90IGkgPSBzdWJzY3JpcHQuYXNV
SW50MzIoKTsKICAgICAgICAgaWYgKGlzSlNTdHJpbmcoYmFzZVZhbHVlKSkgewogICAgICAgICAg
ICAgaWYgKGFzU3RyaW5nKGJhc2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKSB7CiAgICAgICAgICAg
ICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCByZXR1
cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbFN0cmluZykpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBhc1N0cmluZyhiYXNlVmFsdWUpLT5nZXRJbmRleChleGVjLCBpKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOworICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygp
OwogICAgICAgICB9IGVsc2UgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgICAg
ICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAgICAgIGlm
IChvYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
b2JqZWN0LT5nZXRJbmRleFF1aWNrbHkoaSk7CiAKICAgICAgICAgICAgIGlmICghY2FuQWNjZXNz
QXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaSkpCi0gICAgICAgICAgICAgICAgYnlWYWxJ
bmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAgICAgICAgICAgYXJy
YXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJu
IGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CkBAIC0xNDU2LDkxICsxNDUzLDc0IEBAIHN0YXRpYyBK
U1ZhbHVlIGdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFs
dWUgc3Vic2NyaXB0LCBCCiAgICAgYXV0byBwcm9wZXJ0eSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5
S2V5KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCkpOwotICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVk
SWQgIT0gcHJvcGVydHkpCi0gICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsK
LQogICAgIHJldHVybiBiYXNlVmFsdWUuZ2V0KGV4ZWMsIHByb3BlcnR5KTsKIH0KIAogZXh0ZXJu
ICJDIiB7CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4
ZWMpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNl
KTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2Ny
aXB0KTsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBz
dWJzY3JpcHQsIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1Mp
KTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2Ny
aXB0LCBhcnJheVByb2ZpbGUsIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9m
aWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNWYWx1ZSBiYXNlVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotCisgICAgCiAgICAgaWYgKGJh
c2VWYWx1ZS5pc09iamVjdCgpICYmIHN1YnNjcmlwdC5pc0ludDMyKCkpIHsKICAgICAgICAgLy8g
U2VlIGlmIGl0J3Mgd29ydGggb3B0aW1pemluZyB0aGlzIGF0IGFsbC4KICAgICAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgICAgIGJvb2wgZGlkT3B0aW1p
emUgPSBmYWxzZTsKIAotICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCkpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOwotCisgICAg
ICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zm
c2V0KCk7CisgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAgICAgIEJ5VmFsSW5m
byYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9m
ZnNldCAtIDEpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAg
ICAgIAogICAgICAgICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhvYmplY3QtPnN0cnVjdHVy
ZSh2bSkpKSB7CiAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAg
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKHN0
cnVjdHVyZSk7Ci0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlN
b2RlKSB7CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUp
IHsKICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIHRoaXMgY2FzZSwgd2UgZ290IGFu
IGludGVyZXN0aW5nIGFycmF5IG1vZGUgd2UgZGlkIG5vdCBleHBlY3Qgd2hlbiB3ZSBjb21waWxl
ZC4KICAgICAgICAgICAgICAgICAvLyBMZXQncyB1cGRhdGUgdGhlIHByb2ZpbGUgdG8gZG8gYmV0
dGVyIG5leHQgdGltZS4KICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4
ZWMtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBieVZhbEluZm8tPmFycmF5
UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1
Y3R1cmUpOworICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVk
aWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0gICAgICAgICAgICAgICAg
SklUOjpjb21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAg
ICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5
VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUp
OwogICAgICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQotCisgICAgICAgIAogICAgICAgICBpZiAoIWRpZE9wdGltaXplKSB7CiAgICAgICAg
ICAgICAvLyBJZiB3ZSB0YWtlIHNsb3cgcGF0aCBtb3JlIHRoYW4gMTAgdGltZXMgd2l0aG91dCBw
YXRjaGluZyB0aGVuIG1ha2Ugc3VyZSB3ZQogICAgICAgICAgICAgLy8gbmV2ZXIgbWFrZSB0aGF0
IG1pc3Rha2UgYWdhaW4uIE9yLCBpZiB3ZSBmYWlsZWQgdG8gcGF0Y2ggYW5kIHdlIGhhdmUgc29t
ZSBvYmplY3QKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhl
biBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAg
Ly8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZl
cyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3Ig
dXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAg
ICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICAg
ICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8
fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAg
ICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0
Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRy
KE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJp
YykpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotCi0gICAgaWYgKGJhc2VWYWx1
ZS5pc09iamVjdCgpICYmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJp
bmcoKSkpIHsKLSAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3Jp
cHQudG9Qcm9wZXJ0eUtleShleGVjKTsKLQotICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmlu
ZygpIHx8ICFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChl
eGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoIWJ5
VmFsSW5mby0+c3R1YlJvdXRpbmUpOwotICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxX
aXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRy
ZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOwotICAgICAgICBib29sIGhhc1Jl
c3VsdCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZh
bHVlKGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBK
U1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZh
bEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7CisgICAgCisgICAg
SlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJy
YXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KLQotRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorICAgIAorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAt
MTU1MywxNCArMTUzMywxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgIEpTT2JqZWN0
KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgIGJvb2wgZGlkT3B0aW1pemUgPSBm
YWxzZTsKIAotICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0g
ICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKKyAgICB1bnNpZ25lZCBieXRlY29k
ZU9mZnNldCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAgIEFTU0VSVChi
eXRlY29kZU9mZnNldCk7CisgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxv
Y2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgQVNTRVJUKCFieVZh
bEluZm8uc3R1YlJvdXRpbmUpOwogICAgIAogICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4aW5n
KG9iamVjdC0+c3RydWN0dXJlKHZtKSkpIHsKICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6
ZS4KICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZSA9IGppdEFycmF5TW9kZUZvclN0cnVj
dHVyZShvYmplY3QtPnN0cnVjdHVyZSh2bSkpOwotICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5
VmFsSW5mby0+YXJyYXlNb2RlKSB7Ci0gICAgICAgICAgICBKSVQ6OmNvbXBpbGVIYXNJbmRleGVk
UHJvcGVydHkoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgIGlmIChhcnJheU1v
ZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgSklUOjpjb21waWxlSGFz
SW5kZXhlZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAg
IGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTE1NzEsMTAgKzE1NTMs
MTAgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJv
cGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRz
IGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNh
c2VzCiAgICAgICAgIC8vIHdoZXJlIHdlIHNlZSBub24taW5kZXgtaW50ZXJjZXB0aW5nIG9iamVj
dHMsIHRoaXMgZ2l2ZXMgMTAgaXRlcmF0aW9ucyB3b3J0aCBvZgogICAgICAgICAvLyBvcHBvcnR1
bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9y
cGhpYy4KLSAgICAgICAgaWYgKCsrYnlWYWxJbmZvLT5zbG93UGF0aENvdW50ID49IDEwCisgICAg
ICAgIGlmICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEwCiAgICAgICAgICAgICB8fCBv
YmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAvLyBE
b24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KLSAgICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0
dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJO
X0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmlj
KSk7CisgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJs
b2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIo
b3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYykpOyAKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTU4MywxMSArMTU2NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNUcnVlKSk7CiAKICAg
ICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3QsIGluZGV4KSkKLSAg
ICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAg
IGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGluZGV4KSkpOwogfQogICAg
IAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVy
dHlHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5l
cmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cigmdm0sIGV4ZWMpOwpAQCAtMTYwMywxMSArMTU4NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBl
eGVjLAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNU
cnVlKSk7CiAKICAgICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3Qs
IGluZGV4KSkKLSAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRz
KCk7CisgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIHN1YnNj
cmlwdC5hc1VJbnQzMigpKSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8q
IGJ5VmFsSW5mbykKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlW
YWxTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTE2MjIs
OCArMTYwNCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVgogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CiAgICAgICAgICAgICBp
ZiAoIWlzSlNTdHJpbmcoYmFzZVZhbHVlKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChleGVj
LT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAgY3RpUGF0Y2hD
YWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9V
Ul9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPyBv
cGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKSk7Cisg
ICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFz
Qnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQp
OworICAgICAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2Nr
KCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICAgICAgICAgIGN0
aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVz
c1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihieVZhbEluZm8uc3R1YlJvdXRp
bmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXpl
KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAzZDgzZjU5Li4yZWYyYTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtNTgsNyArNTgsNiBA
QCBleHRlcm4gIkMiIHsKICAgICBBOiBKU0FycmF5KgogICAgIEFhcDogQXJyYXlBbGxvY2F0aW9u
UHJvZmlsZSoKICAgICBBcDogQXJyYXlQcm9maWxlKgotICAgIEJ5OiBCeVZhbEluZm8qCiAgICAg
QzogSlNDZWxsKgogICAgIENiOiBDb2RlQmxvY2sqCiAgICAgQ2xpOiBDYWxsTGlua0luZm8qCkBA
IC0xMTQsNyArMTEzLDYgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgq
Sl9KSVRPcGVyYXRpb25fRUpJKShFeGVjU3RhdGUqLCBFbmNvZGVkSlMKIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSWRjKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciopOwogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7Ci10eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3NaKShFeGVjU3RhdGUq
LCBKU1N0cmluZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICgqSl9KSVRPcGVyYXRpb25fRUpQKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgdm9p
ZCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRp
b25fRVApKEV4ZWNTdGF0ZSosIHZvaWQqKTsKQEAgLTE5Nyw3ICsxOTUsNiBAQCB0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRKKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgSQogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlv
bl9FSklkSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZf
SklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7Ci10eXBlZGVmIHZvaWQgSklU
X09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CiB0eXBl
ZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKUFApKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCB2b2lkKiwgdm9pZCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJ
T04gKCpWX0pJVE9wZXJhdGlvbl9FSlpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50
MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJ
VE9wZXJhdGlvbl9FSlopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KTsKQEAg
LTI2MiwxMCArMjU5LDEwIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkTm9u
U3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJCiB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBT
dHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RCdWlsZExpc3Qo
RXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCopIFdURl9J
TlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWFsbG9jYXRlU3RvcmFnZUFu
ZEZpbmlzaFB1dChFeGVjU3RhdGUqLCBKU09iamVjdCosIFN0cnVjdHVyZSosIFByb3BlcnR5T2Zm
c2V0LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZfSU5URVJO
QUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFs
SW5mbyopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsK
K3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2Zp
bGUqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxH
ZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKikgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChF
eGVjU3RhdGUqLCBFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyopIFdURl9JTlRFUk5B
TDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua1BvbHltb3JwaGljQ2FsbChFeGVj
U3RhdGUqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7CkBAIC0zMTIsMTEgKzMwOSwxMSBA
QCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJf
dCkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRD
YWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkNoZWNrSGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGJhc2VWYWwpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZh
bEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLUVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbElu
Zm8qKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5l
cmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2Ny
aXB0KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSop
IFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFz
SW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikgV1RG
X0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVC
eUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIGNvbnN0IElkZW50aWZpZXIqKSBX
VEZfSU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UE5hbWVzKEV4
ZWNTdGF0ZSosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBhMDBjY2IyLi40ZWYwNmQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApA
QCAtOTgsMTQgKzk4LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51LmFycmF5UHJvZmlsZTsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJs
b2NrLT5hZGRCeVZhbEluZm8oKTsKLQorICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJz
KGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwotCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKLQotICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBl
bWl0UGF0Y2hhYmxlSnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7Ci0gICAgYWRkU2xv
d0Nhc2Uobm90SW5kZXgpOworICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVn
ZXIocmVnVDEpOwogCiAgICAgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBpbmNvcnJlY3QgLSB3ZSdy
ZSB6ZXJvLWV4dGVuZGluZyBhbiBpbnQzMi4gIE9uIHRoZSBob3QgcGF0aCB0aGlzIGRvZXNuJ3Qg
bWF0dGVyLgogICAgIC8vIFdlIGNoZWNrIHRoZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1aW50MzIg
YWdhaW5zdCB0aGUgbV92ZWN0b3JMZW5ndGggLSB3aGljaCB3aWxsIGFsd2F5cyBmYWlsIGlmCkBA
IC0xMTUsNiArMTEwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIGV4dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBp
dCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1ZSBpbiB0aGUgc2xvdyBjYXNlLgogICAgIHplcm9F
eHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7CiAKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RK
U0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChy
ZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1No
YXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTUzLDggKzE0OSw4IEBAIHZvaWQgSklUOjplbWl0X29w
X2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRW
YWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7Ci0K
LSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBwcm9m
aWxlLCBkb25lKSk7CisgICAgCisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlW
YWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkp
OwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdERvdWJsZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQ
YXRjaGFibGVKdW1wJiBiYWRUeXBlKQpAQCAtMTk5LDUyICsxOTUsMTUgQEAgSklUOjpKdW1wTGlz
dCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYg
YmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nhc2VzOwogfQogCi1KSVRHZXRCeUlkR2VuZXJhdG9y
IEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNl
cywgSnVtcExpc3QmIHNsb3dDYXNlcykKLXsKLSAgICAvLyBiYXNlOiByZWdUMAotICAgIC8vIHBy
b3BlcnR5OiByZWdUMQotICAgIC8vIHNjcmF0Y2g6IHJlZ1QzCi0KLSAgICBpbnQgZHN0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLQotICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1p
dEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOwotICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2wo
KSkgewotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwg
QWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9s
U3RydWN0dXJlLmdldCgpKSk7Ci0gICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9s
OjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
c2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEs
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQo
KSkpOwotICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZh
bHVlKCkpLCByZWdUMyk7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0ciha
ZXJvLCByZWdUMykpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJv
LCBBZGRyZXNzKHJlZ1QzLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMy
KFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOwotICAgIH0KLSAgICBzbG93Q2FzZXMuYXBw
ZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1l
LmltcGwoKSkpKTsKLQotICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2Nv
ZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNp
YWxSZWdpc3RlcnMoKSwKLSAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhy
ZWdUMCksIERvbnRTcGlsbCk7Ci0gICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwotCi0g
ICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwotCi0gICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9
IGxhYmVsKCk7Ci0gICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhpcyk7Ci0KLSAgICBDYWxs
IGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1p
emUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKLSAg
ICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOwotICAgIGRvbmVD
YXNlcy5hcHBlbmQoanVtcCgpKTsKLQotICAgIHJldHVybiBnZW47Ci19Ci0KIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CisgICAgQXJy
YXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxl
OwogICAgIAotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNl
IGNlbGwgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNo
ZWNrCisgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2Vs
bCBjaGVjawogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRl
cik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFN0cnVj
dHVyZShOb3RFcXVhbCwgCkBAIC0yNjUsNyArMjI0LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXMKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2UsIHJlZ1QwKTsKICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3BlcnR5LCByZWdUMSk7Ci0gICAgQ2FsbCBjYWxsID0g
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1QwLCByZWdU
MSwgYnlWYWxJbmZvKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdl
dEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDAsIHJlZ1QxLCBwcm9maWxlKTsKIAogICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0
ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rp
b25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0zMDQsNyArMjYzLDYgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQg
cHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIEFycmF5UHJv
ZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAg
ICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKIAog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEp
OwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDEpOwpAQCAt
MzQxLDcgKzI5OSw4IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBkb25lID0gbGFiZWwoKTsKICAg
ICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5m
byhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwg
bW9kZSwgcHJvZmlsZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5k
KEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRv
bmUpKTsKKwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0
QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFk
VHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBAIC00NDAsNyArMzk5LDYgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9u
WzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogCiAgICAg
bGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKQEAgLTQ2Niw3
ICs0MjQsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVl
LCByZWdUMik7CiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXItPmdldE9wY29kZUlE
KGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9ieV92YWxfZGlyZWN0Owot
ICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJlZ1QyLCBieVZhbElu
Zm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3QgPyBvcGVyYXRpb25E
aXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJlZ1QyLCBw
cm9maWxlKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9u
SW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9u
SW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0x
MDQxLDM2ICs5OTksNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZhbElu
Zm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZAogICAgIHJlcGF0Y2hCdWZm
ZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVy
YXRpb25HZXRCeVZhbEdlbmVyaWMpKTsKIH0KIAotdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIg
cmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotewotICAgIElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25z
KCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKLQotICAgIEp1bXBMaXN0IGRv
bmVDYXNlczsKLSAgICBKdW1wTGlzdCBzbG93Q2FzZXM7Ci0KLSAgICBKSVRHZXRCeUlkR2VuZXJh
dG9yIGdlbiA9IGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChjdXJyZW50SW5zdHJ1Y3Rpb24sIHBy
b3BlcnR5TmFtZSwgZG9uZUNhc2VzLCBzbG93Q2FzZXMpOwotCi0gICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgTGlua0J1ZmZlciBwYXRjaEJ1
ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrKTsKLSAgICBwYXRjaEJ1ZmZlci5saW5rKHNs
b3dDYXNlcywgQ29kZUxvY2F0aW9uTGFiZWwoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVG
cm9tRXhlY3V0YWJsZUFkZHJlc3MocmV0dXJuQWRkcmVzcy52YWx1ZSgpKSkubGFiZWxBdE9mZnNl
dChieVZhbEluZm8tPnJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKSk7Ci0gICAgcGF0Y2hCdWZmZXIu
bGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZh
bEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBjYWxsU2l0
ZSA6IG1fY2FsbHMpIHsKLSAgICAgICAgaWYgKGNhbGxTaXRlLnRvKQotICAgICAgICAgICAgcGF0
Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9tLCBGdW5jdGlvblB0cihjYWxsU2l0ZS50bykpOwot
ICAgIH0KLSAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOwotCi0gICAgYnlWYWxJbmZvLT5z
dHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgIG1fY29kZUJsb2Nr
LCBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFsIHdpdGggY2FjaGVk
IHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgcHJvcGVy
dHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCptX2NvZGVCbG9jaykuZGF0
YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKLSAgICBieVZhbEluZm8tPmNhY2hlZElkID0g
cHJvcGVydHlOYW1lOwotICAgIGJ5VmFsSW5mby0+c3R1YkluZm8gPSBnZW4uc3R1YkluZm8oKTsK
LQotICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7Ci0gICAgcmVw
YXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxh
YmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsKLSAgICByZXBhdGNo
QnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIo
b3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Ci19Ci0KIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFk
ZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlW
YWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggYThkNjlhYy4uNjA5Y2ExMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCkBAIC0xNDksMTMgKzE0OSwxMSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZv
ID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRMb2FkMihiYXNl
LCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAgIAorICAgIGFkZFNs
b3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6Oklu
dDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7
Ci0gICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFs
LCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7Ci0gICAgYWRkU2xvd0Nh
c2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwg
cmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFz
ayksIHJlZ1QxKTsKIApAQCAtMTk0LDcgKzE5Miw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9i
eV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9m
aWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKICAgICAKLSAg
ICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZh
bEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBwcm9maWxl
LCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxh
dGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBK
SVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdENvbnRpZ3VvdXNMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hh
YmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGV4cGVjdGVkU2hhcGUpCkBAIC0yMzgsNTMg
KzIzNiwxNiBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1
Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAgIAogICAgIHJldHVybiBzbG93Q2Fz
ZXM7CiB9Ci0KLUpJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVk
SWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQotewot
ICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotCi0gICAgLy8g
YmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdUMCkKLSAgICAvLyBwcm9wZXJ0eTogdGFnKHJl
Z1QzKSwgcGF5bG9hZChyZWdUMikKLSAgICAvLyBzY3JhdGNoOiByZWdUNAotCi0gICAgc2xvd0Nh
c2VzLmFwcGVuZChlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1QzKSk7Ci0gICAgaWYgKHByb3BlcnR5
TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0
dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkp
LCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkpKTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNz
KHJlZ1QyLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUoKSksIHJlZ1Q0KTsKLSAgICB9IGVs
c2UgewotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwg
QWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5n
U3RydWN0dXJlLmdldCgpKSk7Ci0gICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgSlNTdHJp
bmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1Q0KTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChi
cmFuY2hUZXN0UHRyKFplcm8sIHJlZ1Q0KSk7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJh
bmNoVGVzdDMyKFplcm8sIEFkZHJlc3MocmVnVDQsIFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkp
LCBUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6ZmxhZ0lzQXRvbWljKCkpKSk7Ci0gICAgfQotICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUNCwgVHJ1c3RlZEltbVB0
cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOwotCi0gICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4o
Ci0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdp
c3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9h
ZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApLCBEb250U3BpbGwpOwotICAg
IGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKLQotICAgIGRvbmVDYXNlcy5hcHBlbmQoanVt
cCgpKTsKLQotICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOwotICAgIGdlbi5zbG93
UGF0aEp1bXAoKS5saW5rKHRoaXMpOwotCi0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihX
aXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygp
LCByZWdUMSwgcmVnVDAsIHByb3BlcnR5TmFtZS5pbXBsKCkpOwotICAgIGdlbi5yZXBvcnRTbG93
UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7Ci0gICAgZG9uZUNhc2VzLmFwcGVuZChqdW1w
KCkpOwotCi0gICAgcmV0dXJuIGdlbjsKLX0KLQorICAgIAogdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fYnlWYWxDb21waWxhdGlvbklu
Zm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLmJ5VmFsSW5mbzsKLQotICAgIGxpbmtTbG93Q2Fz
ZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBBcnJheVBy
b2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Cisg
ICAgCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjaworICAg
IGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sK
IAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8v
IGJhc2UgYXJyYXkgY2hlY2sKQEAgLTMwNCw3ICsyNjUsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0NhcwogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdExv
YWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJl
Z1QyLCBieVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
R2V0QnlWYWxPcHRpbWl6ZSwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgcHJvZmls
ZSk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4
XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9b
bV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpAQCAtMzE4LDcg
KzI3OSw2IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFu
ZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5h
cnJheVByb2ZpbGU7Ci0gICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRk
QnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1QxLCByZWdUMCwgcHJv
cGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCkBAIC0zNTQsNyArMzE0LDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlv
bkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9m
ZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7Cisg
ICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9i
eXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0
IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5n
U2hhcGUpCkBAIC00NTksNyArNDE5LDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBp
bnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2
YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxl
KiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5
VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1
Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8g
cHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBi
YXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCkBAIC00OTksNyArNDU4LDcgQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXMKICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDAsIHJlZ1QxKTsKICAgICBhZGRD
YWxsQXJndW1lbnQocmVnVDEpOwogICAgIGFkZENhbGxBcmd1bWVudChyZWdUMCk7Ci0gICAgYWRk
Q2FsbEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAgYWRkQ2FsbEFyZ3Vt
ZW50KFRydXN0ZWRJbW1QdHIocHJvZmlsZSkpOwogICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2soaXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9w
ZXJhdGlvblB1dEJ5VmFsKTsKICNlbHNlCiAgICAgLy8gVGhlIHJlZ2lzdGVyIHNlbGVjdGlvbiBi
ZWxvdyBpcyBjaG9zZW4gdG8gcmVkdWNlIHJlZ2lzdGVyIHN3YXBwaW5nIG9uIEFSTS4KQEAgLTUw
Nyw3ICs0NjYsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRMb2FkKGJhc2Us
IHJlZ1QyLCByZWdUMSk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMCk7CiAg
ICAgZW1pdExvYWQodmFsdWUsIHJlZ1Q1LCByZWdUNCk7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9w
ZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0
QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQsIGJ5VmFsSW5m
byk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRp
cmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJl
Z1QwLCByZWdUNSwgcmVnVDQsIHByb2ZpbGUpOwogI2VuZGlmCiAKICAgICBtX2J5VmFsQ29tcGls
YXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQ
YXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCA4M2Y1ZGUyLi5l
NTc5MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaApAQCAtNzksOCAr
NzksNiBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KikgY29uc3Q7CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0
OwogCi0gICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZlByaXZhdGVOYW1lKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKFN5bWJvbCwgbV9wcml2YXRlTmFtZSk7IH0KLQogcHJvdGVjdGVkOgogICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rv
ci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jb25zdHJ1Y3Rvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM1
ODUxNi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi12YXIgc3ltYm9sID0gIkBAc3BlY2llcyI7Ci1mdW5jdGlvbiBIZWxsbygpIHsK
LX0KLQotT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxvLCBzeW1ib2wsIHsKLSAgICBnZXQ6IGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotfSk7Ci0KLUhlbGxvLnBy
b3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsKLSAgICByZXR1cm4gbmV3IHRoaXMuY29u
c3RydWN0b3Jbc3ltYm9sXSgpOwotfTsKLQotZnVuY3Rpb24gb2soKSB7Ci0gICAgdmFyIG9iamVj
dCA9IG5ldyBIZWxsbygpOwotICAgIGlmICghKG9iamVjdC5nZW5lcmF0ZSgpIGluc3RhbmNlb2Yg
SGVsbG8pKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBpbnN0YW5jZSIpOwotfQotbm9J
bmxpbmUob2spOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgb2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1leGl0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDlhYTI2MmQuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwzNCArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZh
bHVlOiAnICsgYWN0dWFsKTsKLX0KLQotZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQot
ewotICAgIHJldHVybiBvYmplY3RbbmFtZV07Ci19Ci1ub0lubGluZShnZXRCeVZhbCk7Ci0KLWZ1
bmN0aW9uIGdldFN0cjEoKQotewotICAgIHJldHVybiAiaGVsbG8iOwotfQotbm9JbmxpbmUoZ2V0
U3RyMSk7Ci0KLWZ1bmN0aW9uIGdldFN0cjIoKQotewotICAgIHJldHVybiAiaGVsbG8iOwotfQot
bm9JbmxpbmUoZ2V0U3RyMik7Ci0KLXZhciBvYmplY3QgPSB7Ci0gICAgaGVsbG86IDQyCi19Owot
Ci1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQotICAgIHNob3VsZEJlKGdldEJ5VmFsKG9i
amVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7Ci1zaG91bGRC
ZShnZXRCeVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0
Mik7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRC
eVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIpOwot
c2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4gJ2hlbGxvJzsg
fSB9KSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4MTNhN2UuLjAwMDAwMDAKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVy
YXRlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlv
biBnZXRCeVZhbChvYmplY3QsIG5hbWUpCi17Ci0gICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKLX0K
LW5vSW5saW5lKGdldEJ5VmFsKTsKLQotdmFyIHZhbHVlID0gJ2xvJzsKLQotZnVuY3Rpb24gZ2V0
U3RyMSgpCi17Ci0gICAgcmV0dXJuICJoZWwiICsgdmFsdWU7Ci19Ci1ub0lubGluZShnZXRTdHIx
KTsKLQotZnVuY3Rpb24gZ2V0U3RyMigpCi17Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lu
bGluZShnZXRTdHIyKTsKLQotdmFyIG9iamVjdCA9IHsKLSAgICBoZWxsbzogNDIsCi0gICAgd29y
bGQ6IDUwCi19OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgc2hvdWxk
QmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSks
IDQyKTsKLXNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1nZXR0ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4NThlYzBhLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NiArMCwwIEBACi0KLXZhciBvYmplY3QgPSB7Ci0gICAgZ2V0IGhlbGxvKCkgewotICAgICAgICBy
ZXR1cm4gNDI7Ci0gICAgfQotfTsKLQotZnVuY3Rpb24gb2soKSB7Ci0gICAgdmFyIHZhbHVlID0g
J2hlbGxvJzsKLSAgICBpZiAob2JqZWN0W3ZhbHVlXSArIDIwICE9PSA2MikKLSAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCk7Ci19Ci1ub0lubGluZShvayk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkKLSAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ZGIzM2Q5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDMxICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiBnZXRCeVZhbChvYmplY3Qs
IG5hbWUpCi17Ci0gICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKLX0KLW5vSW5saW5lKGdldEJ5VmFs
KTsKLQotZnVuY3Rpb24gZ2V0U3RyMSgpCi17Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lu
bGluZShnZXRTdHIxKTsKLQotZnVuY3Rpb24gZ2V0U3RyMigpCi17Ci0gICAgcmV0dXJuICJoZWxs
byI7Ci19Ci1ub0lubGluZShnZXRTdHIyKTsKLQotdmFyIG9iamVjdCA9IHsKLSAgICBoZWxsbzog
NDIsCi0gICAgd29ybGQ6IDUwCi19OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
Ci0gICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6
IGdldFN0cjIoKSksIDQyKTsKLXNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ3dvcmxkJyksIDUw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjg5NWMyNi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0
b3IuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi12YXIgc3ltYm9sID0gU3ltYm9s
KCk7Ci1mdW5jdGlvbiBIZWxsbygpIHsKLX0KLQotT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxv
LCBzeW1ib2wsIHsKLSAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXM7
Ci0gICAgfQotfSk7Ci0KLUhlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsK
LSAgICByZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgpOwotfTsKLQotZnVuY3Rp
b24gb2soKSB7Ci0gICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOwotICAgIGlmICghKG9iamVj
dC5nZW5lcmF0ZSgpIGluc3RhbmNlb2YgSGVsbG8pKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
ImJhZCBpbnN0YW5jZSIpOwotfQotbm9JbmxpbmUob2spOwotCi1mb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpCi0gICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwY2RjYjYuLjAwMDAwMDAKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4
aXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi12YXIgc3ltYm9sMSA9IFN5bWJv
bCgpOwotdmFyIHN5bWJvbDIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHsgW3N5bWJv
bDFdOiA0MiB9KVswXTsKLQotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewot
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFt
ZSkKLXsKLSAgICByZXR1cm4gb2JqZWN0W25hbWVdOwotfQotbm9JbmxpbmUoZ2V0QnlWYWwpOwot
Ci1mdW5jdGlvbiBnZXRTeW0xKCkKLXsKLSAgICByZXR1cm4gc3ltYm9sMTsKLX0KLW5vSW5saW5l
KGdldFN5bTEpOwotCi1mdW5jdGlvbiBnZXRTeW0yKCkKLXsKLSAgICByZXR1cm4gc3ltYm9sMjsK
LX0KLW5vSW5saW5lKGdldFN5bTIpOwotCi12YXIgb2JqZWN0ID0gewotICAgIFtzeW1ib2wxXTog
NDIsCi0gICAgaGVsbG86IDUwCi19OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQot
ICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBn
ZXRTeW0yKCkpLCA0Mik7Ci1zaG91bGRCZShnZXRCeVZhbChvYmplY3QsICdoZWxsbycpLCA1MCk7
Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRCeVZh
bChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwotc2hv
dWxkQmUoZ2V0QnlWYWwob2JqZWN0LCAnaGVsbG8nKSwgNTApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRl
ci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1nZXR0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwMzVlNGIu
LjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWdldHRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAK
LQotdmFyIG9iamVjdCA9IHsKLSAgICBnZXQgaGVsbG8oKSB7Ci0gICAgICAgIHJldHVybiA0MjsK
LSAgICB9Ci19OwotCi12YXIgc3ltYm9sID0gU3ltYm9sKCk7Ci0KLU9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvYmplY3QsIHN5bWJvbCwgewotICAgIGdldDogZnVuY3Rpb24gKCkgewotICAgICAgICBy
ZXR1cm4gNDI7Ci0gICAgfQotfSk7Ci0KLWZ1bmN0aW9uIG9rKCkgewotICAgIGlmIChvYmplY3Rb
c3ltYm9sXSArIDIwICE9PSA2MikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Ci19Ci1ub0lu
bGluZShvayk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBvaygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzgz
NGViLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLXZh
ciBzeW1ib2wxID0gU3ltYm9sKCk7Ci12YXIgc3ltYm9sMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eVN5bWJvbHMoeyBbc3ltYm9sMV06IDQyIH0pWzBdOwotCi1mdW5jdGlvbiBzaG91bGRCZShhY3R1
YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRo
cm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0KLQotZnVuY3Rpb24gZ2V0
QnlWYWwob2JqZWN0LCBuYW1lKQotewotICAgIHJldHVybiBvYmplY3RbbmFtZV07Ci19Ci1ub0lu
bGluZShnZXRCeVZhbCk7Ci0KLWZ1bmN0aW9uIGdldFN5bTEoKQotewotICAgIHJldHVybiBzeW1i
b2wxOwotfQotbm9JbmxpbmUoZ2V0U3ltMSk7Ci0KLWZ1bmN0aW9uIGdldFN5bTIoKQotewotICAg
IHJldHVybiBzeW1ib2wyOwotfQotbm9JbmxpbmUoZ2V0U3ltMik7Ci0KLXZhciBvYmplY3QgPSB7
Ci0gICAgW3N5bWJvbDFdOiA0MiwKLSAgICBoZWxsbzogNTAKLX07Ci0KLWZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09
PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258599</attachid>
            <date>2015-08-09 15:49:30 -0700</date>
            <delta_ts>2015-08-09 15:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147818-20150809154917.patch</filename>
            <type>text/plain</type>
            <size>148432</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YmI2NzJhNDEyMjAyNzVhY2UyZGU3NDllOTZlZDc4ZjFlNGQ0MTA1Li42NjYyMGRmOTBiOTA4MTg4
ZGQ4ZGRmOGMwMjAxYWFmYTQ4MjgyYWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTggQEAKKzIwMTUtMDgtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBSZWdyZXNzaW9uKHIxODgxMDUpOiBTZWVtcyB0byBoYXZlIGNhdXNlZCBjcmFz
aGVzIGR1cmluZyBQTFQgb24gc29tZSBpUGFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbCBvdXQgcjE4ODEwNS4KKworICAg
ICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5oOgorICAgICAgICAoSlNDOjpCeVZhbEluZm86OkJ5
VmFsSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OmFkZEJ5VmFsSW5mbyk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvQ29k
ZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0QnlWYWxJbmZvKToKKyAgICAg
ICAgKEpTQzo6Q29kZUJsb2NrOjpzZXROdW1iZXJPZkJ5VmFsSW5mb3MpOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6Om51bWJlck9mQnlWYWxJbmZvcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
azo6YnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5jcHA6CisgICAgICAg
IChKU0M6OmV4aXRLaW5kVG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0V4
aXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHA6CisgICAgICAg
IChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IpOgorICAgICAgICAoSlNDOjpHZXRCeUlk
U3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVz
Ojpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjayk6IERlbGV0ZWQuCisg
ICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oOgorICAgICAgICAqIGRmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6IERlbGV0ZWQuCisg
ICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6
ZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6
IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6ZG9lc0dDKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpvYnNlcnZlVXNlS2luZE9uTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNV
aWRPcGVyYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjp1aWRPcGVyYW5k
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlBy
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOiBEZWxldGVkLgorICAgICAgICAq
IGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZVRvRXhlY3V0
ZUVkZ2U6Om9wZXJhdG9yKCkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4
ZWN1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0lkZW50KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlU3ltYm9s
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RG
OjpwcmludEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgor
ICAgICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6OmlzQ2VsbCk6IERlbGV0ZWQuCisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJl
cG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAg
KEpTQzo6RlRMOjpjYW5Db21waWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVOb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9M
TFZNOjpjb21waWxlQ2hlY2tJZGVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvTExWTTo6bG93U3ltYm9sKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmlzTm90U3ltYm9sKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGVTeW1ib2wpOiBEZWxl
dGVkLgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgIChKU0M6OkJ5VmFsQ29tcGls
YXRpb25JbmZvOjpCeVZhbENvbXBpbGF0aW9uSW5mbyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29t
cGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklUSW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2hh
c19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9oYXNf
aW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpOgorICAgICAgICAq
IGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6Z2V0QnlWYWwpOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9ieV92YWwpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5
X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1
dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZCk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0
cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0LmpzOiBSZW1vdmVkLgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qczogUmVt
b3ZlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmcuanM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtY29uc3RydWN0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0
cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wuanM6IFJlbW92ZWQuCisK
IDIwMTUtMDgtMDcgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlZHVjZSB1c2VzIG9mIFBhc3NSZWZQdHIgaW4gYmluZGluZ3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCA2NzU0MWZkOTM0NmFmMjJmNzIx
YjE5Yjc1ZmRlOTZmY2ZmMTBmZGY5Li5kOTg4NTE2MTMyNThhNzFiOWYwNGJhNDkwNzNmNDQwMzNl
NTcxMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJ
bmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCkBA
IC0yNiwxOCArMjYsMTYgQEAKICNpZm5kZWYgQnlWYWxJbmZvX2gKICNkZWZpbmUgQnlWYWxJbmZv
X2gKIAorI2lmIEVOQUJMRShKSVQpCisKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRl
ICJDb2RlTG9jYXRpb24uaCIKLSNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSW5k
ZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiSklUU3R1YlJvdXRpbmUuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmUuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAotI2lmIEVOQUJMRShKSVQpCi0KIGVudW0gSklUQXJyYXlNb2RlIHsKICAgICBKSVRJbnQz
MiwKICAgICBKSVREb3VibGUsCkBAIC0yMDMsMzMgKzIwMSwyNCBAQCBpbmxpbmUgSklUQXJyYXlN
b2RlIGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIAogc3Ry
dWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZvKCkgeyB9Ci0KLSAgICBCeVZhbEluZm8odW5z
aWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXAsIENvZGVM
b2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIEFycmF5UHJv
ZmlsZSogYXJyYXlQcm9maWxlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJl
dHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorICAgIAorICAgIEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJy
YXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NU
b1Nsb3dQYXRoKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKLSAgICAg
ICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAgICAsIGJhZFR5cGVKdW1wKGJh
ZFR5cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1vZGUpCi0gICAgICAgICwgYXJy
YXlQcm9maWxlKGFycmF5UHJvZmlsZSkKICAgICAgICAgLCBiYWRUeXBlSnVtcFRvRG9uZShiYWRU
eXBlSnVtcFRvRG9uZSkKICAgICAgICAgLCByZXR1cm5BZGRyZXNzVG9TbG93UGF0aChyZXR1cm5B
ZGRyZXNzVG9TbG93UGF0aCkKICAgICAgICAgLCBzbG93UGF0aENvdW50KDApCi0gICAgICAgICwg
c3R1YkluZm8obnVsbHB0cikKLSAgICAgICAgLCB0b29rU2xvd1BhdGgoZmFsc2UpCiAgICAgewog
ICAgIH0KLQorICAgIAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXg7Ci0gICAgQ29kZUxvY2F0
aW9uSnVtcCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9uSnVtcCBiYWRUeXBlSnVtcDsK
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJyYXkgbW9kZSB0aGF0IHdhcyBi
YWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCi0gICAgQXJyYXlQcm9maWxlKiBhcnJheVBy
b2ZpbGU7CiAgICAgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsKICAgICBpbnQxNl90IHJldHVy
bkFkZHJlc3NUb1Nsb3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQYXRoQ291bnQ7CiAgICAgUmVm
UHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKLSAgICBJZGVudGlmaWVyIGNhY2hlZElk
OwotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbzsKLSAgICBib29sIHRvb2tTbG93UGF0
aDsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KEJ5VmFs
SW5mbyogaW5mbykKQEAgLTIzNywxNSArMjI2LDkgQEAgaW5saW5lIHVuc2lnbmVkIGdldEJ5VmFs
SW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQogICAgIHJldHVybiBpbmZvLT5ieXRl
Y29kZUluZGV4OwogfQogCi10eXBlZGVmIEhhc2hNYXA8Q29kZU9yaWdpbiwgQnlWYWxJbmZvKiwg
Q29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFwOwotCi0jZWxzZSAvLyBFTkFC
TEUoSklUKQotCi10eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4gQnlWYWxJbmZvTWFwOworfSAv
LyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCi19IC8vIG5hbWVzcGFj
ZSBKU0MKLQogI2VuZGlmIC8vIEJ5VmFsSW5mb19oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggYzkzMzFmNzM3YWI3MzAzMTk5ZTdlNGE5YTI0
Y2NhMGQxZGJjMTk1NS4uYTM2MWQ2ZGJmMjY3MmNiMDA0Zjg4M2M3ZTcwMDAwOGE0Yzg3ODllMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTI2
NzIsMjIgKzI2NzIsNiBAQCB2b2lkIENvZGVCbG9jazo6Z2V0Q2FsbExpbmtJbmZvTWFwKENhbGxM
aW5rSW5mb01hcCYgcmVzdWx0KQogICAgIGdldENhbGxMaW5rSW5mb01hcChsb2NrZXIsIHJlc3Vs
dCk7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXAoY29uc3QgQ29uY3VycmVu
dEpJVExvY2tlciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KQotewotI2lmIEVOQUJMRShKSVQpCi0g
ICAgZm9yIChhdXRvKiBieVZhbEluZm8gOiBtX2J5VmFsSW5mb3MpCi0gICAgICAgIHJlc3VsdC5h
ZGQoQ29kZU9yaWdpbihieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXgpLCBieVZhbEluZm8pOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKLSNlbmRpZgotfQotCi12b2lkIENvZGVCbG9j
azo6Z2V0QnlWYWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KQotewotICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgZ2V0QnlWYWxJbmZvTWFwKGxvY2tlciwg
cmVzdWx0KTsKLX0KLQogI2lmIEVOQUJMRShKSVQpCiBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJs
b2NrOjphZGRTdHViSW5mbygpCiB7CkBAIC0yNzA0LDEyICsyNjg4LDYgQEAgU3RydWN0dXJlU3R1
YkluZm8qIENvZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotQnlWYWxJbmZvKiBDb2RlQmxvY2s6OmFkZEJ5VmFsSW5m
bygpCi17Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICByZXR1
cm4gbV9ieVZhbEluZm9zLmFkZCgpOwotfQotCiBDYWxsTGlua0luZm8qIENvZGVCbG9jazo6YWRk
Q2FsbExpbmtJbmZvKCkKIHsKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2sp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IDk2MDc5
MWQ3MGZiNWExN2QyYTAwMjRiOTZmNGE1N2M0MDgxM2Y1YjYuLjZjM2ExMTVmNzc1ZWVjM2FiZDIy
MDJmZWZhNTI2ZGY4MGEzZmM5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmgKQEAgLTIwMCw5ICsyMDAsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBn
ZXRDYWxsTGlua0luZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5m
b01hcCYgcmVzdWx0KTsKICAgICB2b2lkIGdldENhbGxMaW5rSW5mb01hcChDYWxsTGlua0luZm9N
YXAmIHJlc3VsdCk7Ci0KLSAgICB2b2lkIGdldEJ5VmFsSW5mb01hcChjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQnlWYWxJbmZvTWFwJiByZXN1bHQpOwotICAgIHZvaWQgZ2V0QnlWYWxJbmZv
TWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KTsKICAgICAKICNpZiBFTkFCTEUoSklUKQogICAgIFN0
cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbygpOwpAQCAtMjE0LDggKzIxMSwxMSBAQCBwdWJs
aWM6CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGZpbmRTdHViSW5mbyhDb2RlT3JpZ2luKTsKIAog
ICAgIHZvaWQgcmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJik7Ci0KLSAgICBCeVZhbEluZm8q
IGFkZEJ5VmFsSW5mbygpOworICAgIAorICAgIEJ5VmFsSW5mbyYgZ2V0QnlWYWxJbmZvKHVuc2ln
bmVkIGJ5dGVjb2RlSW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gKihiaW5hcnlTZWFyY2g8
QnlWYWxJbmZvLCB1bnNpZ25lZD4obV9ieVZhbEluZm9zLCBtX2J5VmFsSW5mb3Muc2l6ZSgpLCBi
eXRlY29kZUluZGV4LCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KSk7CisgICAgfQogCiAgICAg
Q2FsbExpbmtJbmZvKiBhZGRDYWxsTGlua0luZm8oKTsKICAgICBCYWc8Q2FsbExpbmtJbmZvPjo6
aXRlcmF0b3IgY2FsbExpbmtJbmZvc0JlZ2luKCkgeyByZXR1cm4gbV9jYWxsTGlua0luZm9zLmJl
Z2luKCk7IH0KQEAgLTM2Nyw2ICszNjcsMTIgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIG5hbWVG
b3JSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIpOwogCisjaWYgRU5BQkxFKEpJVCkKKyAgICB2b2lk
IHNldE51bWJlck9mQnlWYWxJbmZvcyhzaXplX3Qgc2l6ZSkgeyBtX2J5VmFsSW5mb3MucmVzaXpl
VG9GaXQoc2l6ZSk7IH0KKyAgICBzaXplX3QgbnVtYmVyT2ZCeVZhbEluZm9zKCkgY29uc3QgeyBy
ZXR1cm4gbV9ieVZhbEluZm9zLnNpemUoKTsgfQorICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvKHNp
emVfdCBpbmRleCkgeyByZXR1cm4gbV9ieVZhbEluZm9zW2luZGV4XTsgfQorI2VuZGlmCisKICAg
ICB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50VmFsdWVQcm9maWxlcygpCiAgICAgewogICAgICAg
ICBBU1NFUlQobV9udW1QYXJhbWV0ZXJzID49IDApOwpAQCAtMTAxMCw3ICsxMDE2LDcgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRDb2RlOwogI2lmIEVOQUJMRShKSVQpCiAg
ICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiBtX3N0dWJJbmZvczsKLSAgICBCYWc8QnlWYWxJbmZv
PiBtX2J5VmFsSW5mb3M7CisgICAgVmVjdG9yPEJ5VmFsSW5mbz4gbV9ieVZhbEluZm9zOwogICAg
IEJhZzxDYWxsTGlua0luZm8+IG1fY2FsbExpbmtJbmZvczsKICAgICBTZW50aW5lbExpbmtlZExp
c3Q8Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxsTGlua0luZm8+PiBtX2lu
Y29taW5nQ2FsbHM7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PFBvbHltb3JwaGljQ2FsbE5vZGUs
IEJhc2ljUmF3U2VudGluZWxOb2RlPFBvbHltb3JwaGljQ2FsbE5vZGU+PiBtX2luY29taW5nUG9s
eW1vcnBoaWNDYWxsczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQu
Y3BwCmluZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUwMDFkNzY2MGYzNjg1OWI2ZDg5MDYuLjRmNzlm
MmMxYzVlNGU3ZmRiZTA0M2EwNDk1MjUxMDBhZDUwZmY0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcApAQCAtNDAsOCArNDAsNiBAQCBjb25zdCBjaGFy
KiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiAiQmFkVHlw
ZSI7CiAgICAgY2FzZSBCYWRDZWxsOgogICAgICAgICByZXR1cm4gIkJhZENlbGwiOwotICAgIGNh
c2UgQmFkSWRlbnQ6Ci0gICAgICAgIHJldHVybiAiQmFkSWRlbnQiOwogICAgIGNhc2UgQmFkRXhl
Y3V0YWJsZToKICAgICAgICAgcmV0dXJuICJCYWRFeGVjdXRhYmxlIjsKICAgICBjYXNlIEJhZENh
Y2hlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5k
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAppbmRleCA2Zjhj
NTEyMDA3MDA1MDViZjkxZGVmNzQ5MDAzZTMwMDVlM2Y3MTg2Li41OWNiYmY1YTJiMzg3Nzk3ZTNl
ZTJiYTgxZjM2ZTFjNjFjMDNiOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
RXhpdEtpbmQuaApAQCAtMzIsNyArMzIsNiBAQCBlbnVtIEV4aXRLaW5kIDogdWludDhfdCB7CiAg
ICAgRXhpdEtpbmRVbnNldCwKICAgICBCYWRUeXBlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIHR5
cGUgcHJlZGljdGlvbiB3YXMgd3JvbmcuCiAgICAgQmFkQ2VsbCwgLy8gV2UgZXhpdGVkIGJlY2F1
c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IGNlbGwgd2Ugd291
bGQgc2VlLiBVc3VhbGx5IHVzZWQgZm9yIGZ1bmN0aW9uIGNoZWNrcy4KLSAgICBCYWRJZGVudCwg
Ly8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91
dCB3aGF0IGlkZW50aWZpZXIgd2Ugd291bGQgc2VlLiBVc3VhbGx5IHVzZWQgZm9yIGNhY2hlZCBJ
ZCBjaGVjayBpbiBnZXRfYnlfdmFsLgogICAgIEJhZEV4ZWN1dGFibGUsIC8vIFdlIGV4aXRlZCBi
ZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBleGVjdXRh
YmxlIHdlIHdvdWxkIHNlZS4KICAgICBCYWRDYWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYW4g
aW5saW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBCYWRDb25zdGFudENhY2hlLCAvLyBXZSBleGl0
ZWQgYmVjYXVzZSBhIGNhY2hlIG9uIGEgd2VhayBjb25zdGFudCAodXN1YWxseSBhIHByb3RvdHlw
ZSkgd2FzIHdyb25nLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5
SWRTdGF0dXMuY3BwCmluZGV4IDg5ZTUwMzVmMzBhM2YwYjc5YmIyMDgzMmExMmQ5ZDY4NDg4OGNm
MDYuLjFkOTdjOWZmZGJhNmQ5NGUzNWNiNjdjZWQzZGJlZWE1MGJjNzE5ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKQEAgLTk4LDcg
Kzk4LDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9j
ayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KICAgICBHZXRCeUlkU3RhdHVzIHJlc3Vs
dDsKIAogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5m
b1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5m
bygKICAgICAgICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0
ZWNvZGVJbmRleCkpLCB1aWQsCiAgICAgICAgIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNp
dGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkpOwogICAgIApAQCAt
MTE2LDIwICsxMTYsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3Io
Q29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogfQogCiAjaWYgRU5BQkxF
KEpJVCkKLUdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNv
bnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2Nr
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCkKLXsKLSAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IEdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAotICAg
ICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1aWQsCi0gICAgICAgIENhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgY29k
ZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7Ci0KLSAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRo
KCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBj
b2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhy
ZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJZFN0YXR1czo6TWFrZXNDYWxscyA6IEdldEJ5SWRT
dGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0jZW5k
aWYgLy8gRU5BQkxFKEpJVCkKLQotI2lmIEVOQUJMRShKSVQpCi1HZXRCeUlkU3RhdHVzIEdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorR2V0
QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oCiAgICAgY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0
cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCwKICAgICBD
YWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhIGNhbGxFeGl0U2l0ZURhdGEpCiB7CkBAIC0yNTUs
NyArMjQyLDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAg
ICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKICAgICAgICAgewogICAgICAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIoZGZnQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICByZXN1
bHQgPSBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKKyAgICAgICAg
ICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbygKICAgICAgICAgICAgICAgICBsb2NrZXIs
IGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQsIGV4aXRTaXRlRGF0YSk7CiAg
ICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvR2V0QnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRTdGF0dXMuaAppbmRleCBkN2YwYWU0OTZjYmEyZjMwZmRjZDEyODg2YjE1ZmIzYjQ4Mjhm
OTU1Li4zMjM3MmNkZGY1ZTI1YjBmMzg4ZTZjZmVkYzQ2NjIwYjJkMzhkMmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKQEAgLTcxLDExICs3
MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yKGNvbnN0
IFN0cnVjdHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwogICAgIAogICAgIHN0YXRp
YyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBiYXNlbGluZUJsb2NrLCBDb2Rl
QmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVNYXAsIFN0dWJJbmZvTWFwJiBk
ZmdNYXAsIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOwotCi0jaWYgRU5BQkxF
KEpJVCkKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3Qg
Q29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgU3RydWN0dXJl
U3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKTsKLSNlbmRpZgot
CisgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAg
CiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlv
bjsgfQpAQCAtOTksNyArOTUsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGhhc0V4aXRT
aXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4KTsKICNlbmRpZgogI2lmIEVOQUJMRShKSVQpCi0gICAgc3RhdGljIEdldEJ5SWRT
dGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCisgICAgc3Rh
dGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKAogICAgICAgICBjb25zdCBDb25j
dXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHVi
SW5mbyosCiAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQsIENhbGxMaW5rU3RhdHVzOjpF
eGl0U2l0ZURhdGEpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMjI5MDg3ZGNjNDM2
NDM5Nzk1NDgwZTNkNWMxMjk2MDNhMTZjMWI3MS4uMzczNGM3NmQxZWU4N2E4NGEwZTY2ZDU1Njc0
ZDEwYjJhZDJhYTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjE2MywzMiArMjE2Myw2IEBA
IGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZl
Y3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNh
c2UgQ2hlY2tJZGVudDogewotICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbm9kZS0+
dWlkT3BlcmFuZCgpOwotICAgICAgICBBU1NFUlQodWlkLT5pc1N5bWJvbCgpID8gISh2YWx1ZS5t
X3R5cGUgJiB+U3BlY1N5bWJvbCkgOiAhKHZhbHVlLm1fdHlwZSAmIH5TcGVjU3RyaW5nSWRlbnQp
KTsgLy8gRWRnZSBmaWx0ZXJpbmcgc2hvdWxkIGhhdmUgYWxyZWFkeSBlbnN1cmVkIHRoaXMuCi0K
LSAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gdmFsdWUudmFsdWUoKTsKLSAgICAgICAg
aWYgKGNoaWxkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5pc1N5bWJvbCgpKTsKLSAgICAg
ICAgICAgICAgICBpZiAoYXNTeW1ib2woY2hpbGRDb25zdGFudCktPnByaXZhdGVOYW1lKCkudWlk
KCkgPT0gdWlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFu
dHModHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGNoaWxkQ29uc3Rh
bnQuaXNTdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFzU3RyaW5nKGNoaWxkQ29uc3Rh
bnQpLT50cnlHZXRWYWx1ZUltcGwoKSA9PSB1aWQpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9z
dGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
ZmlsdGVyKHZhbHVlLCB1aWQtPmlzU3ltYm9sKCkgPyBTcGVjU3ltYm9sIDogU3BlY1N0cmluZ0lk
ZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBDaGVja0luQm91bmRzOiB7
CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7
CiAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApp
bmRleCAyNjhhNzU3NmJjMzY2NzI2YTA2Yzg4YjFmYzBiZTM0M2VmYzBlN2MzLi41NjQyMmIxOGEy
NDY1MDg2ZjgwNjk0MjgwZGEzNjc2MDAyZTZjNWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtOTY5LDcgKzk2OSw2IEBAIHByaXZh
dGU6CiAgICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9NYXAgbV9jYWxsTGlua0luZm9zOwog
ICAgICAgICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKLSAgICAgICAgQnlWYWxJbmZvTWFwIG1f
YnlWYWxJbmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3ZSBzZWUgYW55IHJldHVybnM/
IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5lY2Vzc2FyeSkKICAgICAgICAg
Ly8gY2FzZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90IHJldHVybiB3YXMgaW5saW5l
ZC4KQEAgLTMzOTgsMzUgKzMzOTcsMTIgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayh1bnNpZ25lZCBsaW1pdCkKIAogICAgICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKICAgICAg
ICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uV2l0aG91dE9T
UkV4aXQoKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBOb2RlKiBiYXNlID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAgICAgICAgICAgTm9kZSogcHJv
cGVydHkgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQpKTsKLSAgICAgICAgICAgIGJvb2wgY29tcGlsZWRBc0dldEJ5SWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2lu
bGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAg
QnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2lubGluZVN0YWNrVG9wLT5tX2J5VmFsSW5mb3MuZ2V0
KENvZGVPcmlnaW4oY3VycmVudENvZGVPcmlnaW4oKS5ieXRlY29kZUluZGV4KSk7Ci0gICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFdoZW4gdGhlIGJ5dGVjb2RlIGlzIG5vdCBjb21waWxlZCBpbiB0
aGUgYmFzZWxpbmUgSklULCBieVZhbEluZm8gYmVjb21lcyBudWxsLgotICAgICAgICAgICAgICAg
IC8vIEF0IHRoYXQgdGltZSwgdGhlcmUgaXMgbm8gaW5mb3JtYXRpb24uCi0gICAgICAgICAgICAg
ICAgaWYgKGJ5VmFsSW5mbyAmJiBieVZhbEluZm8tPnN0dWJJbmZvICYmICFieVZhbEluZm8tPnRv
b2tTbG93UGF0aCAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmFkSWRlbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBp
bGVkQXNHZXRCeUlkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRp
Zmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNo
ZWRJZC5pbXBsKCkpOwotICAgICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlk
ID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwotCi0gICAgICAgICAg
ICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tJZGVudCwgT3BJbmZvKHVpZCksIHByb3BlcnR5KTsK
LQotICAgICAgICAgICAgICAgICAgICBHZXRCeUlkU3RhdHVzIGdldEJ5SWRTdGF0dXMgPSBHZXRC
eUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oCi0gICAgICAgICAgICAgICAgICAgICAgICBs
b2NrZXIsIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJ5VmFsSW5mby0+c3R1YkluZm8sIGN1cnJlbnRDb2RlT3JpZ2luKCksIHVpZCk7
Ci0KLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlR2V0QnlJZChjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCBnZXRCeUlk
U3RhdHVzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGlmICghY29tcGlsZWRBc0dldEJ5SWQpIHsKLSAgICAgICAgICAgICAgICBBcnJheU1vZGUgYXJy
YXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmls
ZSwgQXJyYXk6OlJlYWQpOwotICAgICAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9H
cmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0
aW9uKSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGdldEJ5VmFsKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwg
T3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJv
cGVydHkpOworICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOwogCiAgICAgICAgICAgICBORVhUX09QQ09ERShv
cF9nZXRfYnlfdmFsKTsKICAgICAgICAgfQpAQCAtNDMyOSw3ICs0MzA1LDYgQEAgQnl0ZUNvZGVQ
YXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkoCiAgICAgICAgIGlmICht
X3Byb2ZpbGVkQmxvY2stPmhhc0Jhc2VsaW5lSklUUHJvZmlsaW5nKCkpIHsKICAgICAgICAgICAg
IG1fcHJvZmlsZWRCbG9jay0+Z2V0U3R1YkluZm9NYXAobG9ja2VyLCBtX3N0dWJJbmZvcyk7CiAg
ICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5mb01hcChsb2NrZXIsIG1f
Y2FsbExpbmtJbmZvcyk7Ci0gICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldEJ5VmFsSW5m
b01hcChsb2NrZXIsIG1fYnlWYWxJbmZvcyk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDQ2ZjVmZTQ4ZDI1YzI3
ZGQzMTk2YzU4MTI5ZGJlNTg1N2ZiZDdlMjguLjI5Njc0OWRjMzFiMjNjODk5ODQ5NGI1NmVmMTQz
MDg2NGIxMjdlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CkBAIC0yNjgsMTAgKzI2OCw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRl
ZihQdXJlVmFsdWUoQ2hlY2tOb3RFbXB0eSwgQWRqYWNlbmN5TGlzdChBZGphY2VuY3lMaXN0OjpG
aXhlZCwgbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIHJldHVybjsKIAotICAgIGNhc2UgQ2hl
Y2tJZGVudDoKLSAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja0lkZW50LCBBZGphY2VuY3lMaXN0
KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSksIG5vZGUtPnVpZE9wZXJhbmQo
KSkpOwotICAgICAgICByZXR1cm47Ci0KICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBvaW50ZXI6
CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+c3RvcmFnZVBvaW50ZXIoKSkpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDNkODVjYWFiZDYxNTczZmRkNTQ5ZDVmZTc1
YmM2NGYzZTU2NGYxZTUuLmJhNGMwMzU0OTQ2NDkyZjU5ZmRmYmQ1YTZmNjFhNWE2N2QyNTAzMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwCkBAIC0yMDgsMzMgKzIwOCw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNhc2UgQ2hlY2tJZGVudDog
ewotICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVy
YW5kKCk7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gbV9zdGF0ZS5m
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwotICAgICAgICAgICAgICAgIGNvbnN0IFVu
aXF1ZWRTdHJpbmdJbXBsKiBjb25zdGFudFVpZCA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAg
aWYgKGNoaWxkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHVpZC0+aXNTeW1i
b2woKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQuaXNTeW1i
b2woKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudFVpZCA9IGFzU3ltYm9s
KGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpOwotICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQuaXNT
dHJpbmcoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNpbmNlIHdlIGFscmVh
ZHkgZmlsdGVyZWQgdGhlIHZhbHVlIHdpdGggU3RyaW5nSWRlbnRVc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gdGhlIGhlbGQgaW1wbCBpcyBhbHdheXMgYXRvbWljLgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25zdCBhdXRvKiBpbXBsID0gYXNTdHJpbmcoY2hp
bGRDb25zdGFudCktPnRyeUdldFZhbHVlSW1wbCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEFTU0VSVChpbXBsLT5pc0F0b21pYygpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBzdGF0aWNfY2FzdDxjb25zdCBVbmlxdWVkU3RyaW5n
SW1wbCo+KGltcGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgICAgIGlmIChjb25zdGFudFVpZCA9PSB1aWQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbm9kZS0+cmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGVsaW1pbmF0ZWQg
PSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLQogICAgICAgICAgICAgY2FzZSBDaGVja0luQm91bmRzOiB7CiAgICAgICAgICAg
ICAgICAgSlNWYWx1ZSBsZWZ0ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1
ZSgpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBtX3N0YXRlLmZvck5vZGUobm9k
ZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKaW5kZXggZTQ3MGI4ZGRhYjk5NDM4ZmQ4OTAzNTJlNDVlMDkxMDI5ZjFhNjI3YS4uMDhmZmIy
YTkxMjkzODcyMTMxMWNhZDI3NzQ2NzYxYTIwNjUzYWE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTA3LDcgKzEwNyw2IEBAIGJvb2wgZG9lc0dDKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CiAg
ICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja05vdEVtcHR5OgotICAgIGNhc2UgQ2hl
Y2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2FzZSBSZWdFeHBUZXN0OgogICAg
IGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcAppbmRleCBkNmE5NzkwYjEzY2UwMDYyZDk3ODExNDBlZGNlMjIxNTJlNDAwYjg0Li5j
NDQyMzEwMTYzMjY1N2QzZTgzZjk3MWU2NmE4M2Y2MjUwNTcxNTI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwMTIsMTUgKzEwMTIsNiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCi0gICAgICAgIGNhc2UgQ2hlY2tJZGVudDog
ewotICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9IG5vZGUtPnVpZE9wZXJhbmQo
KTsKLSAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpCi0gICAgICAgICAgICAgICAgZml4
RWRnZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJy
YXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZTogewpAQCAtMTc2OSw3ICsx
NzYwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBGdW5jdGlvblVzZToKICAgICAgICAgY2Fz
ZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25TdHJpbmdVc2U6Ci0gICAgICAgIGNhc2Ug
U3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBT
dHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIGlmIChhbHdheXNVbmJveFNpbXBs
ZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCA4M2ZjZjVj
MTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwLi4yOGNhYjA1MWU1MzA5ZTM2ODg2OTRj
YmJjNDY1Mzk2NjkyZGU4MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAt
MTMyOCwxNyArMTMyOCw2IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9CiAKLSAgICBib29sIGhhc1VpZE9wZXJh
bmQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tJZGVudDsKLSAgICB9Ci0K
LSAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFuZCgpCi0gICAgewotICAgICAgICBBU1NF
UlQoaGFzVWlkT3BlcmFuZCgpKTsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5p
cXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7Ci0gICAgfQotCiAgICAgYm9vbCBoYXNUcmFuc2l0
aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGU5YmY3MjcwNGIxN2FhNjg2NzllOWJiZWEwZjRmMmFk
Y2VmOTYzYTIuLjYyZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4YmVhZjRiOWUxMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTIwOSw3ICsyMDksNiBAQCBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hlY2tOb3RFbXB0eSwg
Tm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFkQ2VsbCwgTm9kZU11c3RHZW5l
cmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAg
ICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIE9w
dGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gs
IE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
aW5kZXggMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlmMTBmZmE5OC4uNzZhZjZhMmYz
ZTQ1MmIwZjExN2FiYzNhNmJiNWRkZDJmYWFiMTk4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
QEAgLTY0OSw3ICs2NDksNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJl
OgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDaGVja05vdEVtcHR5Ogot
ICAgICAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAg
ICAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBv
aW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVj
dXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRl
eCBiMmQwN2Q1NWU1MzYyNjg0NWI1ZDNmNWM5ZmVlYTRlN2JkODRkZDkxLi4wYzBhMjc3NjA1MGVm
MWM2MzhjMjBkODhjZmVmZTMyM2M3M2E1OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTksNyArNTksNiBAQCBwdWJsaWM6CiAgICAgICAg
IGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAg
ICAgICAgY2FzZSBTdHJpbmdVc2U6Ci0gICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBj
YXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVz
ZToKICAgICAgICAgY2FzZSBOb3RTdHJpbmdWYXJVc2U6CkBAIC0xODksNyArMTg4LDYgQEAgYm9v
bCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBO
b2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgog
ICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKLSAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBS
ZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBjYXNlIENvbXBhcmVMZXNzOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRl
eCAwNTM3MzYzNGJkZTExZDY2NDYxOTEzYTIwYzVhNWJlYTk2OGZhNGQ3Li5mM2Y4YWY3YTUyZDUw
ZjlhMmU3MWM0ZjkwMTk5ODQ3YmYwNTAwZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDU3NiwzMSArNDU3Niw2IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2RlKiBub2RlKQogICAgIH0g
fQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tJZGVudChOb2RlKiBub2Rl
KQotewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwotICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7Ci0g
ICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAgICBzcGVjdWxhdGVTeW1ib2wobm9kZS0+
Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOwotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAg
ICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVsbHB0ciwKLSAgICAgICAgICAg
IG1faml0LmJyYW5jaFB0cigKLSAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6Tm90RXF1YWws
Ci0gICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mob3BlcmFuZC5ncHIoKSwgU3lt
Ym9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLAotICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1Q
dHIodWlkKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5j
aGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7Ci0gICAgICAgIHNwZWN1bGF0ZVN0cmluZ0lkZW50KG5v
ZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKLSAgICAgICAgc3BlY3VsYXRpb25DaGVjaygK
LSAgICAgICAgICAgIEJhZElkZW50LCBKU1ZhbHVlU291cmNlKCksIG51bGxwdHIsCi0gICAgICAg
ICAgICBtX2ppdC5icmFuY2hQdHIoCi0gICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6Ok5vdEVx
dWFsLAotICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKG9wZXJhbmQuZ3ByKCks
IEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLAotICAgICAgICAgICAgICAgIFRydXN0ZWRJbW1Q
dHIodWlkKSkpOwotICAgIH0KLSAgICBub1Jlc3VsdChub2RlKTsKLX0KLQogdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgc2NvcGUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwpAQCAtNTc1NiwyMCArNTcz
MSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdFN0cmluZ1ZhcihFZGdlIGVk
Z2UpCiAgICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6
OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQotewotICAgIERGR19UWVBF
X0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjU3ltYm9s
LCBtX2ppdC5icmFuY2hJZk5vdFN5bWJvbChjZWxsKSk7Ci19Ci0KLXZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCi17Ci0gICAgaWYgKCFuZWVkc1R5cGVDaGVj
ayhlZGdlLCBTcGVjU3ltYm9sKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKLSAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSwg
b3BlcmFuZC5ncHIoKSk7Ci19Ci0KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5vdENl
bGwoRWRnZSBlZGdlKQogewogICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgflNwZWNDZWxs
KSkKQEAgLTU4ODEsOSArNTg0Miw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZShO
b2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU3RyaW5nVXNlOgogICAgICAgICBzcGVjdWxhdGVT
dHJpbmcoZWRnZSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgU3ltYm9sVXNlOgotICAgICAg
ICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3RyaW5n
T2JqZWN0VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CmluZGV4IDU0NWZmMmE2ZWJkMTBlZWY4MmIxZmU3YzIyY2NlOWY3MTdlZGQxNGEuLmE1YzQ0NTQ3
ZGE2NGJjMmI2M2YwNzNhMTcxMWU2YTExODA2ZjU5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTIxOTEsOCArMjE5MSw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNvbXBpbGVTa2lwU2NvcGUoTm9kZSopOwogCiAgICAgdm9pZCBjb21waWxl
R2V0QXJyYXlMZW5ndGgoTm9kZSopOwotCi0gICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudChOb2Rl
Kik7CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVSZXAoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZURvdWJsZVJlcChOb2RlKik7CkBAIC0yNDA4LDggKzI0MDYsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSwgR1BSUmVnKTsKICAgICB2b2lkIHNwZWN1
bGF0ZVN0cmluZ09iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09yU3RyaW5n
T2JqZWN0KEVkZ2UpOwotICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UsIEdQUlJlZyBjZWxs
KTsKLSAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU5v
dENlbGwoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVPdGhlcihFZGdlKTsKICAgICB2b2lkIHNw
ZWN1bGF0ZU1pc2MoRWRnZSwgSlNWYWx1ZVJlZ3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMTJhYjhkMDg1ZDA3
MDUxMGY3NmZkNGVlNzI1NGY4OGUzMzIyYjdjOS4uNTA0MjkwNWI2MmI1MjZjOWVkYWQzZmZiYjU2
N2M0NmY2N2Y4MGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zODIwLDEwICszODIwLDYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAK
LSAgICBjYXNlIENoZWNrSWRlbnQ6Ci0gICAgICAgIGNvbXBpbGVDaGVja0lkZW50KG5vZGUpOwot
ICAgICAgICBicmVhazsKLQogICAgIGNhc2UgR2V0RXhlY3V0YWJsZTogewogICAgICAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDEzYzdj
ODdkODA2ZjdhN2E4NjczMGYwNzlhZDg4MzQ1NDI2YzdmYzIuLjc3MGJkYTU4Y2FiNTAyM2ExZmEw
YzM4ZjRjN2EwMzA4ZDQwODBhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMzg1MCwxMCArMzg1MCw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgY2FzZSBDaGVja0lkZW50OgotICAgICAgICBjb21waWxlQ2hlY2tJZGVudChub2RlKTsK
LSAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIEdldEV4ZWN1dGFibGU6IHsKICAgICAgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBmdW5jdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCA5MzZlZjU1NGFmMjRlMGI2NGZkZjQy
OGYxNjNhZThkNzg4ZTk4ZDk1Li5lZmExMDRmM2QwNzAwMGI3ZDdiYzQ3M2JjZGYyMDZkMTA1M2Zj
OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTk3LDkg
Kzk3LDYgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNl
S2luZCkKICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICBvdXQucHJpbnQoIktub3du
U3RyaW5nIik7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFN5bWJvbFVzZToKLSAgICAgICAg
b3V0LnByaW50KCJTeW1ib2wiKTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nT2Jq
ZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQoIlN0cmluZ09iamVjdCIpOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCmluZGV4IDI4OWI3ODNlNDFi
YjM2MTI5MWM4M2M4ZmFkN2IwOGE1NzhlMGE2ZjAuLmViZjk5ZGFlNjAwYzg4MjVkMjJjYmFjNjM4
MjJkMTViNTU2MDAzNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBA
IC01Nyw3ICs1Nyw2IEBAIGVudW0gVXNlS2luZCB7CiAgICAgU3RyaW5nSWRlbnRVc2UsCiAgICAg
U3RyaW5nVXNlLAogICAgIEtub3duU3RyaW5nVXNlLAotICAgIFN5bWJvbFVzZSwKICAgICBTdHJp
bmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2UsCiAgICAgTm90U3RyaW5n
VmFyVXNlLApAQCAtMTE4LDggKzExNyw2IEBAIGlubGluZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmls
dGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIFN0cmluZ1VzZToKICAgICBjYXNlIEtu
b3duU3RyaW5nVXNlOgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKLSAgICBjYXNlIFN5bWJv
bFVzZToKLSAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7CiAgICAgY2FzZSBTdHJpbmdPYmplY3RV
c2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0OwogICAgIGNhc2UgU3RyaW5nT3JT
dHJpbmdPYmplY3RVc2U6CkBAIC0xOTksNyArMTk2LDYgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVz
ZUtpbmQga2luZCkKICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgIGNhc2UgU3RyaW5nVXNl
OgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6Ci0gICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgY2Fz
ZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAg
ICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4IDU4MWY0Y2JkOWE3NjhiOWFiMmE4Mzky
MWNmMjRkMzUyNGJjODU3MTguLjkxMjc1NGRmYzQwMTUyYjBlZDI0ODM2YWM3NWI4Zjk2OTg0Mzk5
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oCkBAIC04Nyw4ICs4Nyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfY2xhc3NJbmZvLCBTdHJ1Y3R1cmU6OmNsYXNz
SW5mb09mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2dsb2JhbE9iamVjdCwgU3RydWN0
dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSkgXAogICAgIG1hY3JvKFN0cnVjdHVyZV9wcm90b3R5
cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwKLSAgICBtYWNybyhTdHJ1Y3R1cmVf
c3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZzZXQoKSkgXAotICAgIG1hY3Jv
KFN5bWJvbF9wcml2YXRlTmFtZSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpCisgICAg
bWFjcm8oU3RydWN0dXJlX3N0cnVjdHVyZUlELCBTdHJ1Y3R1cmU6OnN0cnVjdHVyZUlET2Zmc2V0
KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAg
ICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2UsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFn
ZU9mZnNldCgpLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYjQ5M2YzMDI3ZTgyY2ZjY2U5YzNj
Y2Y0ODJjMTU1ODYxZDY4Yjk0My4uNjI3MjhjNzQ2ZWY5MWQ3NGI3ODI5YmIzZjlhNDRjNmQ3ZjYx
ZDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cApAQCAtMTE4LDcgKzExOCw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgog
ICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKLSAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgY2FzZSBT
dHJpbmdDaGFyQ29kZUF0OgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAg
Y2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgpAQCAtNDE2LDcgKzQxNSw2IEBAIENhcGFi
aWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNl
IEtub3duU3RyaW5nVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgog
ICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6Ci0gICAgICAgICAg
ICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVz
ZToKICAgICAgICAgICAgICAgICBjYXNlIE5vdENlbGxVc2U6CiAgICAgICAgICAgICAgICAgY2Fz
ZSBPdGhlclVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKaW5kZXggYTFiMTliZmU4ODY3ODlmMTMyZWVkY2Y2N2MzZDc4OWMyMDYzNWQ2OC4u
NWZiNGUyNDEyYTI1OTM0ZjJkYmVmYjk5NzFiMDQ1ZWE4MTkyMWM4YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTUzMiw5ICs1MzIs
NiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKICAgICAgICAgICAgIGNv
bXBpbGVDaGVja0JhZENlbGwoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENo
ZWNrSWRlbnQ6Ci0gICAgICAgICAgICBjb21waWxlQ2hlY2tJZGVudCgpOwotICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICAgICAgICAgIGNvbXBpbGVH
ZXRFeGVjdXRhYmxlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTIwMzIsMjAgKzIwMjksNiBA
QCBwcml2YXRlOgogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVyZSwgbm9WYWx1ZSgpLCBudWxs
cHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAg
fQogCi0gICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCi0gICAgewotICAgICAgICBVbmlxdWVk
U3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7Ci0gICAgICAgIGlmICh1aWQt
PmlzU3ltYm9sKCkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBzeW1ib2wgPSBsb3dTeW1ib2wobV9u
b2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgc3RyaW5nSW1wbCA9IG1fb3V0Lmxv
YWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFtZSk7Ci0gICAgICAgICAgICBz
cGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3Ry
aW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50KG1fbm9kZS0+Y2hpbGQxKCkp
OwotICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywg
bV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQs
IG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29u
c3RJbnRQdHIodWlkKSkpOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgdm9pZCBjb21waWxlR2V0
RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSk7CkBAIC03MDM3LDE2ICs3MDIwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgc3Bl
Y3VsYXRlU3RyaW5nSWRlbnQoZWRnZSwgc3RyaW5nLCBzdHJpbmdJbXBsKTsKICAgICAgICAgcmV0
dXJuIHN0cmluZ0ltcGw7CiAgICAgfQotCi0gICAgTFZhbHVlIGxvd1N5bWJvbChFZGdlIGVkZ2Us
IE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRpY09wZXJhbmRTcGVjdWxhdGlv
bikKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwgbW9kZSA9PSBNYW51YWxPcGVy
YW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gU3ltYm9sVXNlKTsKLQotICAgICAg
ICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlLCBtb2RlKTsKLSAgICAgICAgc3BlY3VsYXRl
U3ltYm9sKGVkZ2UsIHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCisg
ICAgCiAgICAgTFZhbHVlIGxvd05vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBPcGVyYW5kU3BlY3Vs
YXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3VsYXRpb24pCiAgICAgewogICAg
ICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9u
IHx8IGVkZ2UudXNlS2luZCgpID09IE9iamVjdFVzZSk7CkBAIC03NDQzLDkgKzc0MTcsNiBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICAgICAgc3BlY3Vs
YXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBT
eW1ib2xVc2U6Ci0gICAgICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7Ci0gICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgICAgICBzcGVj
dWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTc1NDIsMTYg
Kzc1MTMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQubG9hZDMyKGNlbGwsIG1faGVh
cHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIodm0o
KS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0KLSAgICBMVmFsdWUgaXNOb3RTeW1i
b2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKLSAgICB7
Ci0gICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0Nl
bGwsIH5TcGVjU3ltYm9sKSkKLSAgICAgICAgICAgIHJldHVybiBwcm92ZW47Ci0gICAgICAgIHJl
dHVybiBtX291dC5ub3RFcXVhbCgKLSAgICAgICAgICAgIG1fb3V0LmxvYWQzMihjZWxsLCBtX2hl
YXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCi0gICAgICAgICAgICBtX291dC5jb25zdEludDMyKHZt
KCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7Ci0gICAgfQotCisgICAgCiAgICAgTFZhbHVlIGlz
QXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlNb2RlKQogICAgIHsKICAgICAg
ICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03Nzc0LDE3ICs3NzM2LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIE5vdFN0cmluZ09iamVjdCwgbm9WYWx1ZSgpLCAwLAogICAgICAg
ICAgICAgbV9vdXQubm90RXF1YWwoc3RydWN0dXJlSUQsIHdlYWtTdHJ1Y3R1cmVJRChzdHJpbmdP
YmplY3RTdHJ1Y3R1cmUpKSk7CiAgICAgfQotCi0gICAgdm9pZCBzcGVjdWxhdGVTeW1ib2woRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKLSAgICB7Ci0gICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFs
dWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1N5bWJvbCB8IH5TcGVjQ2VsbCwgaXNOb3RTeW1ib2wo
Y2VsbCkpOwotICAgIH0KLQotICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9sKEVkZ2UgZWRnZSkKLSAg
ICB7Ci0gICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKLSAgICB9
Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmplY3QoRWRnZSBlZGdlLCBMVmFs
dWUgY2VsbCkKICAgICB7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxs
KSwgZWRnZSwgU3BlY09iamVjdCwgaXNOb3RPYmplY3QoY2VsbCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCmluZGV4IGM1MDVhZjBlYTc4OGQyZDg3Yjk3MTkwOWU3MDZhMzRmOGQ2NmQ1Yjku
LjU4MjNkMDEwOWY4ODViOGIxZmIxZjY3MDE2YjMzYzAzMDIzYjZlYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAKQEAgLTY1NywyMiArNjU3LDE3IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJ
VDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQgZWZmb3J0KQogICAgIGZvciAo
dW5zaWduZWQgaSA9IG1fcHV0QnlJZHMuc2l6ZSgpOyBpLS07KQogICAgICAgICBtX3B1dEJ5SWRz
W2ldLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsKIAotICAgIGZvciAoY29uc3QgYXV0byYgYnlWYWxD
b21waWxhdGlvbkluZm8gOiBtX2J5VmFsQ29tcGlsYXRpb25JbmZvKSB7Ci0gICAgICAgIFBhdGNo
YWJsZUp1bXAgcGF0Y2hhYmxlTm90SW5kZXhKdW1wID0gYnlWYWxDb21waWxhdGlvbkluZm8ubm90
SW5kZXhKdW1wOwotICAgICAgICBDb2RlTG9jYXRpb25KdW1wIG5vdEluZGV4SnVtcCA9IENvZGVM
b2NhdGlvbkp1bXAoKTsKLSAgICAgICAgaWYgKEp1bXAocGF0Y2hhYmxlTm90SW5kZXhKdW1wKS5p
c1NldCgpKQotICAgICAgICAgICAgbm90SW5kZXhKdW1wID0gQ29kZUxvY2F0aW9uSnVtcChwYXRj
aEJ1ZmZlci5sb2NhdGlvbk9mKHBhdGNoYWJsZU5vdEluZGV4SnVtcCkpOwotICAgICAgICBDb2Rl
TG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wID0gQ29kZUxvY2F0aW9uSnVtcChwYXRjaEJ1ZmZlci5s
b2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLmJhZFR5cGVKdW1wKSk7Ci0gICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFs
Q29tcGlsYXRpb25JbmZvLmRvbmVUYXJnZXQpOwotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBz
bG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YoYnlWYWxDb21waWxhdGlvbklu
Zm8uc2xvd1BhdGhUYXJnZXQpOwotICAgICAgICBDb2RlTG9jYXRpb25DYWxsIHJldHVybkFkZHJl
c3MgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLnJldHVybkFk
ZHJlc3MpOwotCi0gICAgICAgICpieVZhbENvbXBpbGF0aW9uSW5mby5ieVZhbEluZm8gPSBCeVZh
bEluZm8oCi0gICAgICAgICAgICBieVZhbENvbXBpbGF0aW9uSW5mby5ieXRlY29kZUluZGV4LAot
ICAgICAgICAgICAgbm90SW5kZXhKdW1wLAorICAgIG1fY29kZUJsb2NrLT5zZXROdW1iZXJPZkJ5
VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkpOworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2RlTG9jYXRpb25KdW1wKHBhdGNo
QnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5iYWRUeXBlSnVtcCkp
OworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0ID0gcGF0Y2hCdWZmZXIubG9j
YXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmRvbmVUYXJnZXQpOworICAgICAgICBD
b2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2Yo
bV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5zbG93UGF0aFRhcmdldCk7CisgICAgICAgIENvZGVM
b2NhdGlvbkNhbGwgcmV0dXJuQWRkcmVzcyA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZh
bENvbXBpbGF0aW9uSW5mb1tpXS5yZXR1cm5BZGRyZXNzKTsKKyAgICAgICAgCisgICAgICAgIG1f
Y29kZUJsb2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8oCisgICAgICAgICAgICBtX2J5VmFs
Q29tcGlsYXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCiAgICAgICAgICAgICBiYWRUeXBlSnVt
cCwKLSAgICAgICAgICAgIGJ5VmFsQ29tcGlsYXRpb25JbmZvLmFycmF5TW9kZSwKLSAgICAgICAg
ICAgIGJ5VmFsQ29tcGlsYXRpb25JbmZvLmFycmF5UHJvZmlsZSwKKyAgICAgICAgICAgIG1fYnlW
YWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAogICAgICAgICAgICAgZGlmZmVyZW5jZUJl
dHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwKICAgICAgICAgICAgIGRpZmZl
cmVuY2VCZXR3ZWVuQ29kZVB0cihyZXR1cm5BZGRyZXNzLCBzbG93UGF0aFRhcmdldCkpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDkwMTA4YWYxNWRlYjdkMDZhM2I0Yjc1YzNl
ZjllMWYxYmE5ZDVhOWQuLjEwMjM4MjBjNTYxMWMyMDExNjM0Y2FjYzBmZjgwNGY4ZDMyYzFhMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDIzICsxNDksMTcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgc3RydWN0IEJ5VmFsQ29tcGlsYXRpb25JbmZvIHsKICAgICAgICAgQnlWYWxD
b21waWxhdGlvbkluZm8oKSB7IH0KICAgICAgICAgCi0gICAgICAgIEJ5VmFsQ29tcGlsYXRpb25J
bmZvKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBNYWNyb0Fz
c2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1hY3JvQXNzZW1ibGVyOjpQYXRj
aGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBBcnJheVByb2Zp
bGUqIGFycmF5UHJvZmlsZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGRvbmVUYXJnZXQpCi0gICAg
ICAgICAgICA6IGJ5VmFsSW5mbyhieVZhbEluZm8pCi0gICAgICAgICAgICAsIGJ5dGVjb2RlSW5k
ZXgoYnl0ZWNvZGVJbmRleCkKLSAgICAgICAgICAgICwgbm90SW5kZXhKdW1wKG5vdEluZGV4SnVt
cCkKKyAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwg
TWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBh
cnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0KQorICAgICAgICAgICAg
OiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgICAgICAsIGJhZFR5cGVKdW1w
KGJhZFR5cGVKdW1wKQogICAgICAgICAgICAgLCBhcnJheU1vZGUoYXJyYXlNb2RlKQotICAgICAg
ICAgICAgLCBhcnJheVByb2ZpbGUoYXJyYXlQcm9maWxlKQogICAgICAgICAgICAgLCBkb25lVGFy
Z2V0KGRvbmVUYXJnZXQpCiAgICAgICAgIHsKICAgICAgICAgfQotCi0gICAgICAgIEJ5VmFsSW5m
byogYnlWYWxJbmZvOworICAgICAgICAKICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsK
LSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbm90SW5kZXhKdW1wOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRUeXBlSnVtcDsKICAgICAgICAg
SklUQXJyYXlNb2RlIGFycmF5TW9kZTsKLSAgICAgICAgQXJyYXlQcm9maWxlKiBhcnJheVByb2Zp
bGU7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFyZ2V0OwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6TGFiZWwgc2xvd1BhdGhUYXJnZXQ7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIHJldHVybkFkZHJlc3M7CkBAIC0yMTAsMTMgKzIwNCw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxlR2V0QnlWYWwoYnlWYWxJbmZvLCBy
ZXR1cm5BZGRyZXNzLCBhcnJheU1vZGUpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZv
aWQgY29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3Ms
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLSAgICAgICAgewotICAgICAgICAgICAg
SklUIGppdCh2bSwgY29kZUJsb2NrKTsKLSAgICAgICAgICAgIGppdC5tX2J5dGVjb2RlT2Zmc2V0
ID0gYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwotICAgICAgICAgICAgaml0LnByaXZhdGVDb21w
aWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBwcm9wZXJ0
eU5hbWUpOwotICAgICAgICB9Ci0KICAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZVB1dEJ5VmFs
KFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1
cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9jayk7CkBAIC0yNTksNyArMjQ2
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHByaXZhdGVD
b21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0KTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcHJp
dmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZhbEluZm8qLCBSZXR1cm5BZGRyZXNzUHRyLCBKSVRBcnJh
eU1vZGUpOwotICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQo
QnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgY29uc3QgSWRlbnRpZmllciYpOwogICAgICAg
ICB2b2lkIHByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0
ciwgSklUQXJyYXlNb2RlKTsKIAogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlSGFzSW5kZXhl
ZFByb3BlcnR5KEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIsIEpJVEFycmF5TW9kZSk7CkBA
IC0zODUsOSArMzcxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEp1bXBMaXN0IGVtaXRB
cnJheVN0b3JhZ2VQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNoYWJsZUp1bXAmIGJhZFR5cGUp
OwogICAgICAgICBKdW1wTGlzdCBlbWl0SW50VHlwZWRBcnJheVB1dEJ5VmFsKEluc3RydWN0aW9u
KiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5cGUpOwogICAgICAgICBKdW1w
TGlzdCBlbWl0RmxvYXRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVK
dW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5VHlwZSk7Ci0KLSAgICAgICAgSklUR2V0QnlJZEdlbmVy
YXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qLCBjb25zdCBJZGVudGlm
aWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcyk7Ci0KKyAgICAg
ICAgCiAgICAgICAgIGVudW0gRmluYWxPYmplY3RNb2RlIHsgTWF5QmVGaW5hbCwgS25vd25Ob3RG
aW5hbCB9OwogCiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBKdW1wIGJyYW5jaFN0cnVj
dHVyZShSZWxhdGlvbmFsQ29uZGl0aW9uLCBUIGxlZnRIYW5kU2lkZSwgU3RydWN0dXJlKik7CkBA
IC03MTgsNyArNzAyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpJZGMsIGludCwgR1BSUmVnLCBj
b25zdCBJZGVudGlmaWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwg
aW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7Ci0gICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVn
LCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2MsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzY0MsIGludCwgR1BS
UmVnLCBKU0NlbGwqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihDX0pJVE9wZXJhdGlvbl9FSnNjWiwgR1BSUmVnLCBpbnQzMl90KTsKQEAgLTc2Myw3ICs3NDYs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCwgQXJyYXlQcm9maWxlKik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBS
ZWdpc3RlcklELCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlpKLCBSZWdpc3RlcklELCBpbnQzMl90LCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VQYywgSW5zdHJ1Y3Rpb24q
KTsKQEAgLTc4MCw3ICs3NjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJS
ZWcsIEdQUlJlZywgY29uc3QgSWRlbnRpZmllciopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJl
ZywgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcs
IEdQUlJlZywgQXJyYXlQcm9maWxlKik7Ci0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQ
UlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJlZywgR1BSUmVnLCBzaXplX3Qp
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0
aW9uX0VKLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkosIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpAQCAtNzg4LDcgKzc2OSw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKLCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdp
c3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSkpKQXAsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEFycmF5UHJvZmlsZSopOwotICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpC
eSwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCwgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaLCBSZWdpc3RlcklELCBSZWdpc3Rl
cklELCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FSlpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90LCBS
ZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWkosIGludDMyX3QsIFJlZ2lzdGVySUQsIFJlZ2lz
dGVySUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCA1ZDY4Njkw
MDgxYzk5NmQ3ZTMzYmYzYmQyNWRjYzU4YjAzMGY3ZDZjLi5kMDhkNzNlYWQ3NDBhZGY4ZGE5NjZm
M2FkMjg4NDg2MzNkNjRiNjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMu
aApAQCAtNDExLDEyICs0MTEsNiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKQXAgb3BlcgogICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0
aW9uX0VKSkpCeSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09w
MiwgUmVnaXN0ZXJJRCByZWdPcDMsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQotewotICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwgcmVnT3AzLCBUcnVzdGVkSW1t
UHRyKGJ5VmFsSW5mbykpOwotICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
KG9wZXJhdGlvbik7Ci19Ci0KIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaSiBvcGVyYXRpb24sIGludCBkc3QsIEdQ
UlJlZyBhcmcpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0z
Mihkc3QpLCBhcmcpOwpAQCAtNDY1LDEyICs0NTksNiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCBvcGVy
YQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3Vs
dChvcGVyYXRpb24sIGRzdCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5IG9wZXJhdGlvbiwgaW50
IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKLXsK
LSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0
cihieVZhbEluZm8pKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1Nl
dEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwotfQotCiBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRP
cGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSkKIHsKICAgICBzZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoYXJnMSk7CkBAIC02MTIsMTIgKzYwMCw2IEBAIEFMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SkFwIG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1Zh
bHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAotQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmF0
aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcg
YXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKLXsKLSAg
ICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBh
eWxvYWQsIGFyZzFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgYXJnMlBheWxvYWQsIGFyZzJUYWcs
IFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKLX0KLQogQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSklUOjpXaXRo
UHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVn
IGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcy
UGF5bG9hZCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9E
VU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgYXJnMlBh
eWxvYWQsIGFyZzJUYWcpOwpAQCAtNjg0LDEyICs2NjYsNiBAQCBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKQXAg
b3BlcgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7
CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0
aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpCeSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxVGFn
LCBSZWdpc3RlcklEIHJlZ09wMVBheWxvYWQsIFJlZ2lzdGVySUQgcmVnT3AyVGFnLCBSZWdpc3Rl
cklEIHJlZ09wMlBheWxvYWQsIFJlZ2lzdGVySUQgcmVnT3AzVGFnLCBSZWdpc3RlcklEIHJlZ09w
M1BheWxvYWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyByZWdPcDFQYXlsb2FkLCByZWdPcDFUYWcs
IFNINF8zMkJJVF9EVU1NWV9BUkcgcmVnT3AyUGF5bG9hZCwgcmVnT3AyVGFnLCByZWdPcDNQYXls
b2FkLCByZWdPcDNUYWcsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7Ci0gICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKLX0KLQogQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgUmVnaXN0ZXJJRCByZWdPcDFUYWcsIFJlZ2lzdGVySUQg
cmVnT3AxUGF5bG9hZCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbTMyKGRzdCksIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA4YzhiZTc4MDkwYjk2OGYwYWVlNzA3YTVlMDNi
YWFiNGM0ZTY3NDQ2Li5kM2NmMGRmZGY3ZTE1MGQ5ZDMxMDYyYjI5ZDhhNmY1ODNmNmEwMDY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTEwNjcsNyArMTA2
Nyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9u
WzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxv
Y2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJh
c2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwogCkBAIC0xMDk5LDcgKzEwOTgsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKICAgICAK
LSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhi
eVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9k
ZSwgcHJvZmlsZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5
VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUp
KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImIGl0ZXIpCkBAIC0xMTA3LDcgKzExMDYsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFz
X2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAog
ICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBi
YXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJ
bmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlW
YWxJbmZvOworICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0
XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVy
LCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBi
YXNlIGFycmF5IGNoZWNrCkBAIC0xMTE4LDcgKzExMTcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdAogICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZSwgcmVnVDApOwogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKLSAgICBDYWxsIGNhbGwg
PSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQsIGRzdCwg
cmVnVDAsIHJlZ1QxLCBieVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMCwgcmVnVDEsIHBy
b2ZpbGUpOwogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25J
bmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBtX2J5VmFsQ29tcGlsYXRpb25J
bmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRyZXNzID0gY2FsbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCAyNTc4ZTVi
NTg0YWUxN2RhN2E1NzBkYzY5N2ExZGY1MTI5ZjJiNTczLi40M2UwMmVlODUxZjdlN2ZjZDc2Zjhk
NTMyYWNjMTI4MjBlYzM0ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzMzJfNjQuY3BwCkBAIC0xMDY3LDcgKzEwNjcsNiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9o
YXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJv
cGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmls
ZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAgICBC
eVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKICAgICAK
ICAgICBlbWl0TG9hZFBheWxvYWQoYmFzZSwgcmVnVDApOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJ
Zk5vdEpTQ2VsbChiYXNlKTsKQEAgLTExMDAsNyArMTA5OSw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgCiAgICAgZW1pdFN0b3JlQm9vbChkc3QsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29t
cGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0
ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9u
ZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25J
bmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogdm9pZCBK
SVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0x
MTA4LDcgKzExMDcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVy
dHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIGludCBkc3QgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOworICAgIEFy
cmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmls
ZTsKICAgICAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFz
ZSBjZWxsIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNr
CkBAIC0xMTE5LDcgKzExMTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRf
cHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIAogICAg
IGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJl
Z1QzLCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyLCBi
eVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5k
ZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgcHJv
ZmlsZSk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbklu
ZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbklu
Zm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggN2FlNDNmMGEwYTlh
NWVhNzEyYzliYjA0YzkyZDI2MDkyM2JkNzM1NC4uYjU5MTM0ZWFmNzVmZTgwOTJlYTJhMmNiNWVj
Y2U0ZTVmNGY3MTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCkBAIC00NzgsNyArNDc4LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJl
YWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoKICAgICBi
YXNlLT5wdXREaXJlY3Qodm0sIG9mZnNldCwgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSk7CiB9CiAK
LXN0YXRpYyB2b2lkIHB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJ
bmZvKQorc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUg
YmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxl
KiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZyYW1lLT52bSgpOwogICAgIGlm
IChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC00ODgsNyArNDg4LDcgQEAgc3Rh
dGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVl
LCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICAgICAgICAgIGlmIChvYmplY3QtPmNhblNldEluZGV4
UXVpY2tseShpKSkKICAgICAgICAgICAgICAgICBvYmplY3QtPnNldEluZGV4UXVpY2tseShjYWxs
RnJhbWUtPnZtKCksIGksIHZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAg
ICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICAgICAgICAgICAgICBv
YmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+cHV0QnlJbmRleChvYmplY3QsIGNhbGxGcmFtZSwgaSwg
dmFsdWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSBlbHNlCkBAIC01MDIsNyArNTAyLDcgQEAgc3RhdGljIHZvaWQgcHV0
QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1
YnNjcmlwdCwKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpT
VmFsdWUgdmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorc3RhdGljIHZvaWQgZGlyZWN0UHV0
QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBKU1ZhbHVl
IHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7
CiAgICAgYm9vbCBpc1N0cmljdE1vZGUgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pc1N0cmlj
dE1vZGUoKTsKICAgICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJbnQzMigpKSkgewpAQCAtNTE0
LDcgKzUxNCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIAotICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+c2V0T3V0T2ZC
b3VuZHMoKTsKKyAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAg
ICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUsIGluZGV4LCB2YWx1ZSwgMCwg
aXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyA6IFB1dERpcmVjdEluZGV4
U2hvdWxkTm90VGhyb3cpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTQwLDcgKzU0MCw3
IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09i
amVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVj
dChjYWxsRnJhbWUtPnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xvdCk7CiAgICAgfQogfQotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK3Zv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2Zp
bGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFj
ZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC01NTQsMTkgKzU1NCwyMSBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZQogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVl
KTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwogCi0gICAgICAgIEFTU0VSVChl
eGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgIEFTU0VSVCghYnlWYWxJ
bmZvLT5zdHViUm91dGluZSk7CisgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhl
Yy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgIEFTU0VSVChieXRlY29kZU9m
ZnNldCk7CisgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCkt
PmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICBBU1NFUlQoIWJ5VmFs
SW5mby5zdHViUm91dGluZSk7CiAKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmpl
Y3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4aW5nKHN0
cnVjdHVyZSkpIHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gb3B0aW1pemUuCiAgICAgICAg
ICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKHN0
cnVjdHVyZSk7Ci0gICAgICAgICAgICBpZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1v
ZGUpICYmIGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9kZSkgeworICAgICAgICAgICAg
aWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2RlKSAmJiBhcnJheU1vZGUgIT0gYnlW
YWxJbmZvLmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+
YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ss
IHN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRl
ZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgICAg
ICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygpLCBieVZhbElu
Zm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAg
ICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNvZGVCbG9jaygp
LCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5
TW9kZSk7CiAgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0cnVlOwogICAgICAgICAgICAg
fQogICAgICAgICB9CkBAIC01NzcsNyArNTc5LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UK
ICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBl
dmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAgLy8gd2hlcmUg
d2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVy
YXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2Jz
ZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgICAg
IGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICAgICAgaWYgKCsr
YnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8fCBvYmplY3Qt
PnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAgICAgLy8gRG9u
J3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlS
ZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRV
Uk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYykpOwpAQCAt
NTg1LDEwICs1ODcsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UKICAgICAgICAgfQogICAg
IH0KIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlW
YWxJbmZvKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUs
IGFycmF5UHJvZmlsZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAg
ICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGNhbGxGcmFtZSk7CkBAIC02MDEsMjAgKzYwMywyMiBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRlKiBjYWxsRnJhbWUsIEVuY29k
ZWRKU1ZhbHVlCiAgICAgaWYgKHN1YnNjcmlwdC5pc0ludDMyKCkpIHsKICAgICAgICAgLy8gU2Vl
IGlmIGl0J3Mgd29ydGggb3B0aW1pemluZyBhdCBhbGwuCiAgICAgICAgIGJvb2wgZGlkT3B0aW1p
emUgPSBmYWxzZTsKLQotICAgICAgICBBU1NFUlQoY2FsbEZyYW1lLT5sb2NhdGlvbkFzQnl0ZWNv
ZGVPZmZzZXQoKSk7Ci0gICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7Cisg
ICAgICAgIAorICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCA9IGNhbGxGcmFtZS0+bG9j
YXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7
CisgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+
Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgICAgIEFTU0VSVCghYnlWYWxJ
bmZvLnN0dWJSb3V0aW5lKTsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG9iamVj
dC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKGhhc09wdGltaXphYmxlSW5kZXhpbmcoc3Ry
dWN0dXJlKSkgewogICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAgICAgICAg
ICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUoc3Ry
dWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQZXJtaXRzUHV0KGFycmF5TW9k
ZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7CisgICAgICAgICAgICBp
ZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1vZGUpICYmIGFycmF5TW9kZSAhPSBieVZh
bEluZm8uYXJyYXlNb2RlKSB7CiAgICAgICAgICAgICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sg
PSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBieVZhbElu
Zm8tPmFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJs
b2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVw
ZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0gICAgICAg
ICAgICAgICAgSklUOjpjb21waWxlRGlyZWN0UHV0QnlWYWwoJnZtLCBjYWxsRnJhbWUtPmNvZGVC
bG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwg
YXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgm
dm0sIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIo
T1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAgICAgICBkaWRPcHRp
bWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYyNSwxNyArNjI5LDE3
IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUq
IGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0
cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBj
YXNlcwogICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcg
b2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAv
LyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBi
ZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3Vu
dCA+PSAxMAorICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAK
ICAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygp
KSB7CiAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAg
ICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIo
b3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9Ci0gICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1lLCBvYmplY3QsIHN1YnNjcmlw
dCwgdmFsdWUsIGJ5VmFsSW5mbyk7CisgICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1lLCBvYmpl
Y3QsIHN1YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQordm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVBy
b2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC02NDQsMTEgKzY0OCwxMSBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jbwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCB2
YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlw
dCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCit2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFycmF5
UHJvZmlsZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTY1Nyw3ICs2NjEsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdQogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVChiYXNlVmFsdWUuaXNPYmplY3QoKSk7Ci0g
ICAgZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZVZhbHVlKSwgc3Vic2NyaXB0LCB2
YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09iamVjdChiYXNl
VmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUpOwogfQogCiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlYywgRXhl
Y1N0YXRlKiBleGVjQ2FsbGVlKQpAQCAtMTQxMCw0MSArMTQxNCwzNCBAQCBzdGF0aWMgYm9vbCBj
YW5BY2Nlc3NBcmd1bWVudEluZGV4UXVpY2tseShKU09iamVjdCYgb2JqZWN0LCB1aW50MzJfdCBp
bmRleCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIGdldEJ5VmFsKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBCeVZh
bEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQorc3RhdGlj
IEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNW
YWx1ZSBzdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MpCiB7CiAgICAgaWYgKExJS0VMWShiYXNlVmFsdWUuaXNDZWxsKCkg
JiYgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CiAgICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKmJhc2VWYWx1ZS5hc0NlbGwoKS0+c3Ry
dWN0dXJlKHZtKTsKICAgICAgICAgaWYgKEpTQ2VsbDo6Y2FuVXNlRmFzdEdldE93blByb3BlcnR5
KHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4g
ZXhpc3RpbmdBdG9taWNTdHJpbmcgPSBhc1N0cmluZyhzdWJzY3JpcHQpLT50b0V4aXN0aW5nQXRv
bWljU3RyaW5nKGV4ZWMpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVzdWx0ID0g
YmFzZVZhbHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVyZSwgZXhp
c3RpbmdBdG9taWNTdHJpbmcuZ2V0KCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChl
eGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpICE9IGV4
aXN0aW5nQXRvbWljU3RyaW5nKQotICAgICAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT50
b29rU2xvd1BhdGggPSB0cnVlOworICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIHJlc3VsdCA9
IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blByb3BlcnR5KHZtLCBzdHJ1Y3R1cmUsIGV4
aXN0aW5nQXRvbWljU3RyaW5nLmdldCgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAKICAgICBpZiAoc3Vic2NyaXB0LmlzVUludDMyKCkpIHsKLSAgICAgICAgQVNTRVJUKGV4ZWMt
PmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICAgICAgYnlWYWxJbmZvLT50b29rU2xv
d1BhdGggPSB0cnVlOwotCiAgICAgICAgIHVpbnQzMl90IGkgPSBzdWJzY3JpcHQuYXNVSW50MzIo
KTsKICAgICAgICAgaWYgKGlzSlNTdHJpbmcoYmFzZVZhbHVlKSkgewogICAgICAgICAgICAgaWYg
KGFzU3RyaW5nKGJhc2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKSB7CiAgICAgICAgICAgICAgICAg
Y3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCByZXR1cm5BZGRy
ZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbFN0cmluZykpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBhc1N0cmluZyhiYXNlVmFsdWUpLT5nZXRJbmRleChleGVjLCBpKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJv
dW5kcygpOworICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAg
ICAgICB9IGVsc2UgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgICAgICBKU09i
amVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAgICAgIGlmIChvYmpl
Y3QtPmNhbkdldEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0
LT5nZXRJbmRleFF1aWNrbHkoaSk7CiAKICAgICAgICAgICAgIGlmICghY2FuQWNjZXNzQXJndW1l
bnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaSkpCi0gICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5h
cnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAgICAgICAgICAgYXJyYXlQcm9m
aWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIGJhc2VW
YWx1ZS5nZXQoZXhlYywgaSk7CkBAIC0xNDU2LDkxICsxNDUzLDc0IEBAIHN0YXRpYyBKU1ZhbHVl
IGdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vi
c2NyaXB0LCBCCiAgICAgYXV0byBwcm9wZXJ0eSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGV4
ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0KLSAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkp
OwotICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2FjaGVkSWQgIT0g
cHJvcGVydHkpCi0gICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKLQogICAg
IHJldHVybiBiYXNlVmFsdWUuZ2V0KGV4ZWMsIHByb3BlcnR5KTsKIH0KIAogZXh0ZXJuICJDIiB7
CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2Vu
ZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwog
ICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKICAg
ICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkU3Vic2NyaXB0KTsK
IAotICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywgYmFzZVZhbHVlLCBzdWJzY3Jp
cHQsIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpKTsKKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBh
cnJheVByb2ZpbGUsIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKiBieVZhbEluZm8pCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKiBh
cnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotCisgICAgCiAgICAgaWYgKGJhc2VWYWx1
ZS5pc09iamVjdCgpICYmIHN1YnNjcmlwdC5pc0ludDMyKCkpIHsKICAgICAgICAgLy8gU2VlIGlm
IGl0J3Mgd29ydGggb3B0aW1pemluZyB0aGlzIGF0IGFsbC4KICAgICAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgICAgIGJvb2wgZGlkT3B0aW1pemUgPSBm
YWxzZTsKIAotICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCkp
OwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOwotCisgICAgICAgIHVu
c2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7
CisgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAgICAgIEJ5VmFsSW5mbyYgYnlW
YWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAt
IDEpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAgICAgIAog
ICAgICAgICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhvYmplY3QtPnN0cnVjdHVyZSh2bSkp
KSB7CiAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXplLgogICAgICAgICAgICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgICAgICBK
SVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9yU3RydWN0dXJlKHN0cnVjdHVy
ZSk7Ci0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7
CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsKICAg
ICAgICAgICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIHRoaXMgY2FzZSwgd2UgZ290IGFuIGludGVy
ZXN0aW5nIGFycmF5IG1vZGUgd2UgZGlkIG5vdCBleHBlY3Qgd2hlbiB3ZSBjb21waWxlZC4KICAg
ICAgICAgICAgICAgICAvLyBMZXQncyB1cGRhdGUgdGhlIHByb2ZpbGUgdG8gZG8gYmV0dGVyIG5l
eHQgdGltZS4KICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNv
ZGVCbG9jaygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNv
ZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmls
ZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUp
OworICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9u
KGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0gICAgICAgICAgICAgICAgSklUOjpj
b21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5B
ZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgICAgICAg
ICAgSklUOjpjb21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgJmJ5VmFsSW5m
bywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBhcnJheU1vZGUpOwogICAg
ICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQotCisgICAgICAgIAogICAgICAgICBpZiAoIWRpZE9wdGltaXplKSB7CiAgICAgICAgICAgICAv
LyBJZiB3ZSB0YWtlIHNsb3cgcGF0aCBtb3JlIHRoYW4gMTAgdGltZXMgd2l0aG91dCBwYXRjaGlu
ZyB0aGVuIG1ha2Ugc3VyZSB3ZQogICAgICAgICAgICAgLy8gbmV2ZXIgbWFrZSB0aGF0IG1pc3Rh
a2UgYWdhaW4uIE9yLCBpZiB3ZSBmYWlsZWQgdG8gcGF0Y2ggYW5kIHdlIGhhdmUgc29tZSBvYmpl
Y3QKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24n
dCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAgLy8gd2hl
cmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBp
dGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8g
b2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAg
ICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICAgICAgaWYg
KCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8fCBvYmpl
Y3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAgICAgLy8g
RG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxs
QnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9S
RVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYykpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotCi0gICAgaWYgKGJhc2VWYWx1ZS5pc09i
amVjdCgpICYmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCBzdWJzY3JpcHQuaXNTdHJpbmcoKSkp
IHsKLSAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Q
cm9wZXJ0eUtleShleGVjKTsKLQotICAgICAgICBpZiAoIXN1YnNjcmlwdC5pc1N0cmluZygpIHx8
ICFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChleGVjLT5s
b2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5m
by0+c3R1YlJvdXRpbmUpOwotICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWxXaXRoQ2Fj
aGVkSWQoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRy
KE9VUl9SRVRVUk5fQUREUkVTUyksIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOwotICAgICAgICBib29sIGhhc1Jlc3VsdCA9
IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShoYXNSZXN1bHQgPyBzbG90LmdldFZhbHVlKGV4
ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpKTsKLSAgICB9Ci0KLSAgICBKU1ZhbHVl
IHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vic2NyaXB0LCBieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7CisgICAgCisgICAgSlNWYWx1
ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNjcmlwdCwgYXJyYXlQcm9m
aWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUykpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KLQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorICAgIAorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTU1Mywx
NCArMTUzMywxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0lu
ZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgIEpTT2JqZWN0KiBvYmpl
Y3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgIGJvb2wgZGlkT3B0aW1pemUgPSBmYWxzZTsK
IAotICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgQVNT
RVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKKyAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNl
dCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAgIEFTU0VSVChieXRlY29k
ZU9mZnNldCk7CisgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBleGVjLT5jb2RlQmxvY2soKS0+
Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAgQVNTRVJUKCFieVZhbEluZm8u
c3R1YlJvdXRpbmUpOwogICAgIAogICAgIGlmIChoYXNPcHRpbWl6YWJsZUluZGV4aW5nKG9iamVj
dC0+c3RydWN0dXJlKHZtKSkpIHsKICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KICAg
ICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZSA9IGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShv
YmplY3QtPnN0cnVjdHVyZSh2bSkpOwotICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5m
by0+YXJyYXlNb2RlKSB7Ci0gICAgICAgICAgICBKSVQ6OmNvbXBpbGVIYXNJbmRleGVkUHJvcGVy
dHkoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9V
Ul9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAgIGlmIChhcnJheU1vZGUgIT0g
YnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgSklUOjpjb21waWxlSGFzSW5kZXhl
ZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJl
c3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAgICAgICAgIGRpZE9w
dGltaXplID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTE1NzEsMTAgKzE1NTMsMTAgQEAg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlE
ZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRzIGluZGV4
ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNhc2VzCiAg
ICAgICAgIC8vIHdoZXJlIHdlIHNlZSBub24taW5kZXgtaW50ZXJjZXB0aW5nIG9iamVjdHMsIHRo
aXMgZ2l2ZXMgMTAgaXRlcmF0aW9ucyB3b3J0aCBvZgogICAgICAgICAvLyBvcHBvcnR1bml0eSBm
b3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4K
LSAgICAgICAgaWYgKCsrYnlWYWxJbmZvLT5zbG93UGF0aENvdW50ID49IDEwCisgICAgICAgIGlm
ICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEwCiAgICAgICAgICAgICB8fCBvYmplY3Qt
PnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAvLyBEb24ndCBl
dmVyIHRyeSB0byBvcHRpbWl6ZS4KLSAgICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRk
cmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJF
U1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKSk7Cisg
ICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoZXhlYy0+Y29kZUJsb2NrKCks
IFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0
aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYykpOyAKICAgICAgICAgfQogICAgIH0KIApAQCAt
MTU4MywxMSArMTU2NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNUcnVlKSk7CiAKICAgICBpZiAo
IWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3QsIGluZGV4KSkKLSAgICAgICAg
YnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAgIGFycmF5
UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGluZGV4KSkpOwogfQogICAgIAotRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5l
cmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0s
IGV4ZWMpOwpAQCAtMTYwMywxMSArMTU4NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLAog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNUcnVlKSk7
CiAKICAgICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3QsIGluZGV4
KSkKLSAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7Cisg
ICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIHN1YnNjcmlwdC5h
c1VJbnQzMigpKSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFs
SW5mbykKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJp
bmcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAg
IE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTE2MjIsOCArMTYw
NCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVgogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CiAgICAgICAgICAgICBpZiAoIWlz
SlNTdHJpbmcoYmFzZVZhbHVlKSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChleGVjLT5sb2Nh
dGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlS
ZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRV
Uk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUgPyBvcGVyYXRp
b25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKSk7CisgICAgICAg
ICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVjLT5sb2NhdGlvbkFzQnl0ZWNv
ZGVPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQpOworICAg
ICAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdl
dEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICAgICAgICAgIGN0aVBhdGNo
Q2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0cihP
VVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihieVZhbEluZm8uc3R1YlJvdXRpbmUgPyBv
cGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAzZDgzZjU5MGRjZjkxODAzYTM0NDhiYTA4M2Iy
ZjkyYmNiZTg0ZjliLi4yZWYyYTU2OTlmN2YzYWQwZTc3MGY0Nzg4ZTk0M2YwN2Y4MTBiYWQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtNTgsNyArNTgs
NiBAQCBleHRlcm4gIkMiIHsKICAgICBBOiBKU0FycmF5KgogICAgIEFhcDogQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSoKICAgICBBcDogQXJyYXlQcm9maWxlKgotICAgIEJ5OiBCeVZhbEluZm8qCiAg
ICAgQzogSlNDZWxsKgogICAgIENiOiBDb2RlQmxvY2sqCiAgICAgQ2xpOiBDYWxsTGlua0luZm8q
CkBAIC0xMTQsNyArMTEzLDYgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpJKShFeGVjU3RhdGUqLCBFbmNvZGVkSlMKIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSWRjKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciopOwogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7Ci10eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpCeSkoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKTsKIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3NaKShFeGVjU3Rh
dGUqLCBKU1N0cmluZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpQKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
dm9pZCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVy
YXRpb25fRVApKEV4ZWNTdGF0ZSosIHZvaWQqKTsKQEAgLTE5Nyw3ICsxOTUsNiBAQCB0eXBlZGVm
IHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSWRKKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgSQogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJh
dGlvbl9FSklkSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9O
ICgqVl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAo
KlZfSklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7Ci10eXBlZGVmIHZvaWQg
SklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpCeSkoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7CiB0
eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKUFApKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKiwgdm9pZCopOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVS
QVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSlpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
aW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpW
X0pJVE9wZXJhdGlvbl9FSlopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KTsK
QEAgLTI2MiwxMCArMjU5LDEwIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlk
Tm9uU3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJCiB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdEJ1aWxkTGlzdChFeGVjU3RhdGUq
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwog
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RCdWlsZExp
c3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCopIFdU
Rl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWFsbG9jYXRlU3RvcmFn
ZUFuZEZpbmlzaFB1dChFeGVjU3RhdGUqLCBKU09iamVjdCosIFN0cnVjdHVyZSosIFByb3BlcnR5
T2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbEluZm8qKSBXVEZfSU5U
RVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5
VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJl
Y3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5B
TDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVBy
b2ZpbGUqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlW
YWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKikgV1RG
X0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZh
bChFeGVjU3RhdGUqLCBFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyopIFdURl9JTlRF
Uk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua1BvbHltb3JwaGljQ2FsbChF
eGVjU3RhdGUqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7CkBAIC0zMTIsMTEgKzMwOSwx
MSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVE
aWRDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNoZWNrSGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGJhc2VWYWwpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikg
V1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRC
eVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZh
bEluZm8qKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9J
TlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxH
ZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7CitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmls
ZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQXJyYXlQcm9maWxlKikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxl
dGVCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGJhc2UsIGNvbnN0IElkZW50aWZpZXIq
KSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UE5hbWVz
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBhMDBjY2IyNWU1Mjk3ODc5
ZDI2MzQ1M2I2NDZiYjBlMzdkNTk2YmVmLi40ZWYwNmQ5MjEzYTJiMWRiZmZiYTRjN2MzMzRkMmY2
ZjFjNDc5MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcApAQCAtOTgsMTQgKzk4LDkgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJl
bnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5m
byA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKLQorICAgIAogICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwotCi0gICAgZW1pdEp1
bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKLQotICAgIFBhdGNoYWJsZUp1bXAg
bm90SW5kZXggPSBlbWl0UGF0Y2hhYmxlSnVtcElmTm90SW1tZWRpYXRlSW50ZWdlcihyZWdUMSk7
Ci0gICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOworICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdElt
bWVkaWF0ZUludGVnZXIocmVnVDEpOwogCiAgICAgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBpbmNv
cnJlY3QgLSB3ZSdyZSB6ZXJvLWV4dGVuZGluZyBhbiBpbnQzMi4gIE9uIHRoZSBob3QgcGF0aCB0
aGlzIGRvZXNuJ3QgbWF0dGVyLgogICAgIC8vIFdlIGNoZWNrIHRoZSB2YWx1ZSBhcyBpZiBpdCB3
YXMgYSB1aW50MzIgYWdhaW5zdCB0aGUgbV92ZWN0b3JMZW5ndGggLSB3aGljaCB3aWxsIGFsd2F5
cyBmYWlsIGlmCkBAIC0xMTUsNiArMTEwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIGV4dGVuZGluZyBzaW5j
ZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1ZSBpbiB0aGUgc2xvdyBjYXNl
LgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7CiAKKyAgICBlbWl0SnVtcFNs
b3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVtaXRBcnJheVByb2ZpbGluZ1Np
dGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJbW0z
MihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTUzLDggKzE0OSw4IEBAIHZvaWQg
SklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
IAogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lz
dGVyKGRzdCk7Ci0KLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBp
bGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBl
LCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CisgICAgCisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5m
by5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwg
bW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdERvdWJsZUxvYWQoSW5z
dHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQpAQCAtMTk5LDUyICsxOTUsMTUgQEAg
SklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2FkKEluc3RydWN0aW9uKiwgUGF0
Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nhc2VzOwogfQogCi1KSVRHZXRC
eUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hlZElkKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExp
c3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKLXsKLSAgICAvLyBiYXNlOiByZWdU
MAotICAgIC8vIHByb3BlcnR5OiByZWdUMQotICAgIC8vIHNjcmF0Y2g6IHJlZ1QzCi0KLSAgICBp
bnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLQotICAgIHNsb3dDYXNl
cy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOwotICAgIGlmIChwcm9wZXJ0eU5h
bWUuaXNTeW1ib2woKSkgewotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVy
ZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwg
bV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7Ci0gICAgICAgIGxvYWRQdHIoQWRkcmVzcyhy
ZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCByZWdUMyk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1Y3R1cmUoTm90RXF1YWwsIEFk
ZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIG1fdm0tPnN0cmluZ1N0
cnVjdHVyZS5nZXQoKSkpOwotICAgICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpTU3RyaW5n
OjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMyk7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJh
bmNoVGVzdFB0cihaZXJvLCByZWdUMykpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5j
aFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QzLCBTdHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwg
VHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygpKSkpOwotICAgIH0KLSAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDMsIFRydXN0ZWRJbW1QdHIo
cHJvcGVydHlOYW1lLmltcGwoKSkpKTsKLQotICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAot
ICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0
ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAgSlNWYWx1ZVJlZ3MocmVnVDApLCBK
U1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7Ci0gICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
KnRoaXMpOwotCi0gICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwotCi0gICAgTGFiZWwgY29s
ZFBhdGhCZWdpbiA9IGxhYmVsKCk7Ci0gICAgZ2VuLnNsb3dQYXRoSnVtcCgpLmxpbmsodGhpcyk7
Ci0KLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlLCBvcGVyYXRpb25H
ZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJlZ1QwLCBwcm9wZXJ0eU5hbWUu
aW1wbCgpKTsKLSAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwp
OwotICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKLQotICAgIHJldHVybiBnZW47Ci19Ci0K
IHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAg
aW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IGJhc2Ug
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQnlWYWxJbmZvKiBieVZhbEluZm8g
PSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbElu
Zm87CisgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUu
YXJyYXlQcm9maWxlOwogICAgIAotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJh
c2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHByb3Bl
cnR5IGludDMyIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZSk7
IC8vIGJhc2UgY2VsbCBjaGVjawogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAgICBKdW1wIG5vdFN0cmluZyA9
IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgCkBAIC0yNjUsNyArMjI0LDcgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXMKICAgICAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2UsIHJl
Z1QwKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3BlcnR5LCByZWdUMSk7Ci0gICAg
Q2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3Qs
IHJlZ1QwLCByZWdUMSwgYnlWYWxJbmZvKTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDAsIHJlZ1QxLCBwcm9maWxlKTsK
IAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNs
b3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5
VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0zMDQsNyArMjYz
LDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwog
ICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5
UHJvZmlsZTsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZh
bEluZm8oKTsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9w
ZXJ0eSwgcmVnVDEpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIo
cmVnVDEpOwpAQCAtMzQxLDcgKzI5OSw4IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAKICAgICBMYWJlbCBkb25lID0g
bGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENv
bXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAo
KSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlv
bkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5
cGUsIG1vZGUsIGRvbmUpKTsKKwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWND
b250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hh
YmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBAIC00NDAsNyAr
Mzk5LDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZv
ID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJ
bmZvOwogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjawog
ICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hl
Y2sKQEAgLTQ2Niw3ICs0MjQsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKICAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKHZhbHVlLCByZWdUMik7CiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXIt
PmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9ieV92
YWxfZGlyZWN0OwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3QgPyBvcGVy
YXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJl
Z1QyLCBieVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oaXNEaXJlY3Qg
PyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVn
VDEsIHJlZ1QyLCBwcm9maWxlKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZh
bEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZh
bENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9
IGNhbGw7CkBAIC0xMDQxLDM2ICs5OTksNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRC
eVZhbChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZAogICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5j
dGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpKTsKIH0KIAotdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiBieVZhbEluZm8sIFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KQotewotICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24gPSBtX2NvZGVCbG9jay0+
aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0ZWNvZGVJbmRleDsKLQotICAg
IEp1bXBMaXN0IGRvbmVDYXNlczsKLSAgICBKdW1wTGlzdCBzbG93Q2FzZXM7Ci0KLSAgICBKSVRH
ZXRCeUlkR2VuZXJhdG9yIGdlbiA9IGVtaXRHZXRCeVZhbFdpdGhDYWNoZWRJZChjdXJyZW50SW5z
dHJ1Y3Rpb24sIHByb3BlcnR5TmFtZSwgZG9uZUNhc2VzLCBzbG93Q2FzZXMpOwotCi0gICAgQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgTGlua0J1
ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJsb2NrKTsKLSAgICBwYXRjaEJ1
ZmZlci5saW5rKHNsb3dDYXNlcywgQ29kZUxvY2F0aW9uTGFiZWwoTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyOjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MocmV0dXJuQWRkcmVzcy52YWx1ZSgpKSku
bGFiZWxBdE9mZnNldChieVZhbEluZm8tPnJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKSk7Ci0gICAg
cGF0Y2hCdWZmZXIubGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxB
dE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7Ci0gICAgZm9yIChjb25zdCBh
dXRvJiBjYWxsU2l0ZSA6IG1fY2FsbHMpIHsKLSAgICAgICAgaWYgKGNhbGxTaXRlLnRvKQotICAg
ICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9tLCBGdW5jdGlvblB0cihjYWxs
U2l0ZS50bykpOwotICAgIH0KLSAgICBnZW4uZmluYWxpemUocGF0Y2hCdWZmZXIpOwotCi0gICAg
YnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAg
IG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFs
IHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50
ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEoKSwgdG9DU3RyaW5nKCptX2Nv
ZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKLSAgICBieVZhbEluZm8t
PmNhY2hlZElkID0gcHJvcGVydHlOYW1lOwotICAgIGJ5VmFsSW5mby0+c3R1YkluZm8gPSBnZW4u
c3R1YkluZm8oKTsKLQotICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9j
ayk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5ub3RJbmRleEp1bXAsIENv
ZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUtPmNvZGUoKS5jb2RlKCkpKTsK
LSAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywg
RnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7Ci19Ci0KIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5i
ZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggYThkNjlhY2Rj
ZjY3NzQ5NGI4ZWU2MmQxZTEyYWI5MmY1ODljZTAwMC4uNjA5Y2ExMzg4MjI3ZGI1YmRhNTM5Mjc1
MzAzZGFkZDJkOGIxY2ViYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNDksMTMgKzE0OSwxMSBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBw
cm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9m
aWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAg
IEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAg
IAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVn
VDIpOwogICAgIAorICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChiYXNlLCByZWdUMSk7Ci0gICAgUGF0Y2hhYmxlSnVtcCBub3RJbmRleCA9IHBhdGNo
YWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMy
VGFnKSk7Ci0gICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAgIGVtaXRBcnJheVByb2ZpbGlu
Z1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogICAgIGFuZDMyKFRydXN0ZWRJ
bW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAtMTk0LDcgKzE5Miw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgZW1pdFN0b3JlKGRzdCwgcmVn
VDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZh
bENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIG5vdEluZGV4LCBi
YWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5m
by5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwg
bW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdENvbnRpZ3VvdXNMb2Fk
KEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGV4cGVj
dGVkU2hhcGUpCkBAIC0yMzgsNTMgKzIzNiwxNiBAQCBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEFy
cmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQogICAg
IAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0KLUpJVEdldEJ5SWRHZW5lcmF0b3IgSklUOjpl
bWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgZG9uZUNhc2VzLCBKdW1w
TGlzdCYgc2xvd0Nhc2VzKQotewotICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kOwotCi0gICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwgcGF5bG9hZChyZWdUMCkKLSAg
ICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdUMikKLSAgICAvLyBzY3JhdGNo
OiByZWdUNAotCi0gICAgc2xvd0Nhc2VzLmFwcGVuZChlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1Qz
KSk7Ci0gICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1Y3R1cmUuZ2V0KCkpKTsKLSAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBTeW1ib2w6Om9mZnNldE9mUHJpdmF0ZU5hbWUo
KSksIHJlZ1Q0KTsKLSAgICB9IGVsc2UgewotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5j
aFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9m
ZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7Ci0gICAgICAgIGxvYWRQdHIo
QWRkcmVzcyhyZWdUMiwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHJlZ1Q0KTsKLSAgICAg
ICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1Q0KSk7Ci0gICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEFkZHJlc3MocmVnVDQsIFN0cmlu
Z0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6ZmxhZ0lzQXRv
bWljKCkpKSk7Ci0gICAgfQotICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFs
LCByZWdUNCwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOwotCi0gICAgSklU
R2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1f
Ynl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAg
ICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVn
VDApLCBEb250U3BpbGwpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKCp0aGlzKTsKLQotICAg
IGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKLQotICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBs
YWJlbCgpOwotICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRoaXMpOwotCi0gICAgQ2FsbCBj
YWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXpl
LCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMSwgcmVnVDAsIHByb3BlcnR5TmFtZS5pbXBsKCkp
OwotICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7Ci0gICAg
ZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwotCi0gICAgcmV0dXJuIGdlbjsKLX0KLQorICAgIAog
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBp
bnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgYmFzZSA9
IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9
IG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLmJ5VmFsSW5m
bzsKLQotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNl
bGwgY2hlY2sKKyAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
NF0udS5hcnJheVByb2ZpbGU7CisgICAgCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9w
ZXJ0eSBpbnQzMiBjaGVjaworICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2Up
OyAvLyBiYXNlIGNlbGwgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKICAgICBs
aW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKQEAgLTMwNCw3ICsyNjUsNyBA
QCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1Qx
LCByZWdUMCk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2Fs
bCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIHJl
Z1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyLCBieVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwgZHN0LCByZWdUMSwgcmVnVDAs
IHJlZ1QzLCByZWdUMiwgcHJvZmlsZSk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21f
YnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJl
c3MgPSBjYWxsOwpAQCAtMzE4LDcgKzI3OSw2IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgYmFzZSA9IGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHByb3BlcnR5ID0gY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAgQnlWYWxJbmZvKiBieVZhbElu
Zm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAgCiAgICAgZW1pdExvYWQyKGJh
c2UsIHJlZ1QxLCByZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdUMik7CiAgICAgCkBAIC0zNTQs
NyArMzE0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUgPSBsYWJlbCgpOwogICAgIAot
ICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKGJ5
VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVtcCgpLCBiYWRUeXBlLCBtb2Rl
LCBwcm9maWxlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlW
YWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkp
OwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwg
SW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBAIC00NTksNyArNDE5LDYgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUu
YXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0
aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogICAgIAogICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKICAgICBsaW5rU2xvd0Nh
c2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCkBAIC00OTksNyAr
NDU4LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVn
VDAsIHJlZ1QxKTsKICAgICBhZGRDYWxsQXJndW1lbnQocmVnVDEpOwogICAgIGFkZENhbGxBcmd1
bWVudChyZWdUMCk7Ci0gICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZv
KSk7CisgICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIocHJvZmlsZSkpOwogICAgIENh
bGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soaXNEaXJlY3QgPyBvcGVyYXRp
b25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsKTsKICNlbHNlCiAgICAgLy8gVGhl
IHJlZ2lzdGVyIHNlbGVjdGlvbiBiZWxvdyBpcyBjaG9zZW4gdG8gcmVkdWNlIHJlZ2lzdGVyIHN3
YXBwaW5nIG9uIEFSTS4KQEAgLTUwNyw3ICs0NjYsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
cHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nh
cwogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QyLCByZWdUMSk7CiAgICAgZW1pdExvYWQocHJvcGVy
dHksIHJlZ1QzLCByZWdUMCk7CiAgICAgZW1pdExvYWQodmFsdWUsIHJlZ1Q1LCByZWdUNCk7Ci0g
ICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCBy
ZWdUNSwgcmVnVDQsIGJ5VmFsSW5mbyk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihp
c0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJl
Z1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQsIHByb2ZpbGUpOwogI2VuZGlm
CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5z
bG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2wuaAppbmRleCA4M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2MzE4MjVmZGRkYmJlLi5lNTc5
MGQ3ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TeW1ib2wuaApAQCAtNzksOCArNzksNiBAQCBwdWJsaWM6CiAgICAgSlNPYmpl
Y3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgZG91
YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCi0gICAgc3RhdGljIHNpemVfdCBvZmZz
ZXRPZlByaXZhdGVOYW1lKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFN5bWJvbCwgbV9wcml2
YXRlTmFtZSk7IH0KLQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxs
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM1ODUxNjAyZTkzNGIzMzY2OGFlZDJjZmY0ZGRj
Yjc4NzZlZTE4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctY29uc3RydWN0b3IuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi12YXIgc3lt
Ym9sID0gIkBAc3BlY2llcyI7Ci1mdW5jdGlvbiBIZWxsbygpIHsKLX0KLQotT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KEhlbGxvLCBzeW1ib2wsIHsKLSAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotfSk7Ci0KLUhlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9
IGZ1bmN0aW9uICgpIHsKLSAgICByZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgp
OwotfTsKLQotZnVuY3Rpb24gb2soKSB7Ci0gICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOwot
ICAgIGlmICghKG9iamVjdC5nZW5lcmF0ZSgpIGluc3RhbmNlb2YgSGVsbG8pKQotICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoImJhZCBpbnN0YW5jZSIpOwotfQotbm9JbmxpbmUob2spOwotCi1mb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWV4aXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhYTI2MmQ2NGE2
NjE0OTY0NjY5YWI3NGNiMmYwMWZhNGVkODAyZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCww
IEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsg
YWN0dWFsKTsKLX0KLQotZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQotewotICAgIHJl
dHVybiBvYmplY3RbbmFtZV07Ci19Ci1ub0lubGluZShnZXRCeVZhbCk7Ci0KLWZ1bmN0aW9uIGdl
dFN0cjEoKQotewotICAgIHJldHVybiAiaGVsbG8iOwotfQotbm9JbmxpbmUoZ2V0U3RyMSk7Ci0K
LWZ1bmN0aW9uIGdldFN0cjIoKQotewotICAgIHJldHVybiAiaGVsbG8iOwotfQotbm9JbmxpbmUo
Z2V0U3RyMik7Ci0KLXZhciBvYmplY3QgPSB7Ci0gICAgaGVsbG86IDQyCi19OwotCi1mb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDsgKytpKQotICAgIHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAl
IDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7Ci1zaG91bGRCZShnZXRCeVZh
bChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8nOyB9IH0pLCA0Mik7Ci0KLWZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRCeVZhbChvYmpl
Y3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigpKSwgNDIpOwotc2hvdWxkQmUo
Z2V0QnlWYWwob2JqZWN0LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4gJ2hlbGxvJzsgfSB9KSwgNDIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0ZWQuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGU4MTNhN2UxNDBkMzg2NjUzZmJjMzU0YzUwZWFkNThlMTIxOWQz
YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVy
YXRlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlv
biBnZXRCeVZhbChvYmplY3QsIG5hbWUpCi17Ci0gICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKLX0K
LW5vSW5saW5lKGdldEJ5VmFsKTsKLQotdmFyIHZhbHVlID0gJ2xvJzsKLQotZnVuY3Rpb24gZ2V0
U3RyMSgpCi17Ci0gICAgcmV0dXJuICJoZWwiICsgdmFsdWU7Ci19Ci1ub0lubGluZShnZXRTdHIx
KTsKLQotZnVuY3Rpb24gZ2V0U3RyMigpCi17Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lu
bGluZShnZXRTdHIyKTsKLQotdmFyIG9iamVjdCA9IHsKLSAgICBoZWxsbzogNDIsCi0gICAgd29y
bGQ6IDUwCi19OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgc2hvdWxk
QmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSks
IDQyKTsKLXNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1nZXR0ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4NThlYzBhODZkYjk1NGQ4NDdmNmI4Zjc2MmQyOTZiZWRjZWIxYmY1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxNiArMCwwIEBACi0KLXZhciBvYmplY3QgPSB7Ci0gICAgZ2V0IGhlbGxvKCkgewot
ICAgICAgICByZXR1cm4gNDI7Ci0gICAgfQotfTsKLQotZnVuY3Rpb24gb2soKSB7Ci0gICAgdmFy
IHZhbHVlID0gJ2hlbGxvJzsKLSAgICBpZiAob2JqZWN0W3ZhbHVlXSArIDIwICE9PSA2MikKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Ci19Ci1ub0lubGluZShvayk7Ci0KLWZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBvaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGIzM2Q5YmVjYjE0YWQyMDViODc1NWJkZmUx
Zjk1YmIzOTdiYjQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy5qcworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlv
biBnZXRCeVZhbChvYmplY3QsIG5hbWUpCi17Ci0gICAgcmV0dXJuIG9iamVjdFtuYW1lXTsKLX0K
LW5vSW5saW5lKGdldEJ5VmFsKTsKLQotZnVuY3Rpb24gZ2V0U3RyMSgpCi17Ci0gICAgcmV0dXJu
ICJoZWxsbyI7Ci19Ci1ub0lubGluZShnZXRTdHIxKTsKLQotZnVuY3Rpb24gZ2V0U3RyMigpCi17
Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lubGluZShnZXRTdHIyKTsKLQotdmFyIG9iamVj
dCA9IHsKLSAgICBoZWxsbzogNDIsCi0gICAgd29ybGQ6IDUwCi19OwotCi1mb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpCi0gICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9
PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKLXNob3VsZEJlKGdldEJ5VmFsKG9i
amVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25z
dHJ1Y3Rvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjg5NWMyNjQ1MWQyNTdh
OTdhMmRiM2VjNTg5MjliOWQ1NTM0MzI1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMyAr
MCwwIEBACi12YXIgc3ltYm9sID0gU3ltYm9sKCk7Ci1mdW5jdGlvbiBIZWxsbygpIHsKLX0KLQot
T2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxvLCBzeW1ib2wsIHsKLSAgICBnZXQ6IGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotfSk7Ci0KLUhlbGxvLnByb3RvdHlw
ZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsKLSAgICByZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0
b3Jbc3ltYm9sXSgpOwotfTsKLQotZnVuY3Rpb24gb2soKSB7Ci0gICAgdmFyIG9iamVjdCA9IG5l
dyBIZWxsbygpOwotICAgIGlmICghKG9iamVjdC5nZW5lcmF0ZSgpIGluc3RhbmNlb2YgSGVsbG8p
KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBpbnN0YW5jZSIpOwotfQotbm9JbmxpbmUo
b2spOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgb2soKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1leGl0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGMwY2RjYjY3NmQ5NGU0NmI2YzEwMWE4YTc3ZDAwYjY2NDRhOGMxMGIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi12YXIgc3ltYm9sMSA9IFN5bWJvbCgpOwotdmFyIHN5bWJvbDIgPSBP
YmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHsgW3N5bWJvbDFdOiA0MiB9KVswXTsKLQotZnVu
Y3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAgIGlmIChhY3R1YWwgIT09IGV4
cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7
Ci19Ci0KLWZ1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkKLXsKLSAgICByZXR1cm4gb2Jq
ZWN0W25hbWVdOwotfQotbm9JbmxpbmUoZ2V0QnlWYWwpOwotCi1mdW5jdGlvbiBnZXRTeW0xKCkK
LXsKLSAgICByZXR1cm4gc3ltYm9sMTsKLX0KLW5vSW5saW5lKGdldFN5bTEpOwotCi1mdW5jdGlv
biBnZXRTeW0yKCkKLXsKLSAgICByZXR1cm4gc3ltYm9sMjsKLX0KLW5vSW5saW5lKGdldFN5bTIp
OwotCi12YXIgb2JqZWN0ID0gewotICAgIFtzeW1ib2wxXTogNDIsCi0gICAgaGVsbG86IDUwCi19
OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQotICAgIHNob3VsZEJlKGdldEJ5VmFs
KG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRTeW0yKCkpLCA0Mik7Ci1zaG91
bGRCZShnZXRCeVZhbChvYmplY3QsICdoZWxsbycpLCA1MCk7Ci0KLWZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAw
ID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwotc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0
LCAnaGVsbG8nKSwgNTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwMzVlNGIwMzhhNDY1ZDQzZWJjMjhlNWNmNDgx
OWI1OWU2NjY4N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWdldHRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLQotdmFyIG9iamVj
dCA9IHsKLSAgICBnZXQgaGVsbG8oKSB7Ci0gICAgICAgIHJldHVybiA0MjsKLSAgICB9Ci19Owot
Ci12YXIgc3ltYm9sID0gU3ltYm9sKCk7Ci0KLU9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3Qs
IHN5bWJvbCwgewotICAgIGdldDogZnVuY3Rpb24gKCkgewotICAgICAgICByZXR1cm4gNDI7Ci0g
ICAgfQotfSk7Ci0KLWZ1bmN0aW9uIG9rKCkgewotICAgIGlmIChvYmplY3Rbc3ltYm9sXSArIDIw
ICE9PSA2MikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Ci19Ci1ub0lubGluZShvayk7Ci0K
LWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBvaygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzgzNGViMjZiZTMyNmUx
YzkxODQ5MWYwZTE5YjdmYTM4YmIwOTAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLXZhciBz
eW1ib2wxID0gU3ltYm9sKCk7Ci12YXIgc3ltYm9sMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5
bWJvbHMoeyBbc3ltYm9sMV06IDQyIH0pWzBdOwotCi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWws
IGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0KLQotZnVuY3Rpb24gZ2V0QnlW
YWwob2JqZWN0LCBuYW1lKQotewotICAgIHJldHVybiBvYmplY3RbbmFtZV07Ci19Ci1ub0lubGlu
ZShnZXRCeVZhbCk7Ci0KLWZ1bmN0aW9uIGdldFN5bTEoKQotewotICAgIHJldHVybiBzeW1ib2wx
OwotfQotbm9JbmxpbmUoZ2V0U3ltMSk7Ci0KLWZ1bmN0aW9uIGdldFN5bTIoKQotewotICAgIHJl
dHVybiBzeW1ib2wyOwotfQotbm9JbmxpbmUoZ2V0U3ltMik7Ci0KLXZhciBvYmplY3QgPSB7Ci0g
ICAgW3N5bWJvbDFdOiA0MiwKLSAgICBoZWxsbzogNTAKLX07Ci0KLWZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAw
ID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRiYmMxNGZhYmQ2NDM2NDAx
ZDZhMTM4OTUzNjczZGJmZWQ3MDMyOGUuLjIwNmQxODc0MGZiZGEwMWM4OTUyOGI2YzE0ZDc3ZmVi
OGJkMGJjNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxNS0wOC0wOSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3Jlc3Npb24ocjE4ODEwNSk6IFNlZW1z
IHRvIGhhdmUgY2F1c2VkIGNyYXNoZXMgZHVyaW5nIFBMVCBvbiBzb21lIGlQYWRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc4MTgKKworICAgICAg
ICBVbnJldmlld2VkLCByb2xsIG91dCByMTg4MTA1LgorCisgICAgICAgICoganMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10
cnktYmxvY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXNlbGYtb3ItcHJvdG8uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRy
eS1ibG9jay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1w
cm90by1vci1zZWxmLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtc2VsZi1vci1wcm90by5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanM6IFJl
bW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IFJlbW92ZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1v
ci1zZWxmLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanM6IFJlbW92ZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6IFJlbW92ZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1m
cm9tLXRyeS1ibG9jay5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90
by5qczogUmVtb3ZlZC4KKwogMjAxNS0wOC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIENvbXBsZXhUZXh0Q29udHJvbGxlciB3
aGVuIGxheWluZyBvdXQgb2JzY3VyZSB0ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjY2Y0M2FmYTA3ZDNjOGUw
ZjE3ODkyZWVkYTc5MjdlMjFiODE4YjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFiMzdjNTAwMDBjMGExZDFlMmYyNjI4NTdmNzliNGVjNDE0N2UwYzguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDgyYzQ1MGQ5NTVhZTk5NjRlZTI1
YmZmMmI1ZmMwY2I2NmY0NTM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTll
ZjE0MTU3NTg0Y2E2MTYwNjQ2ODc1OThjZmJkNGRiNzk3ZmVmYi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTZhNjY3Mjk3MDM2YTQ1
YzVmMzJiNzAxYzBiYzdlZmIyZmJkYTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9t
LXRyeS1ibG9jawotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNl
cHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZjOTYzYTAxMmIwMmNmMzYxNDQ1ZjY3YzZlY2Jk
OGNkMThiMGIyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJv
bS10cnktYmxvY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVjMGZj
NzBlZTdhMjQ1NTVmYjBmZDhhYmI2YTNlNDZhN2ZkNTA0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4MzZmNThkNDE1N2I1MWJiOTg1MzgyZGM4MWE2ZDk0OGZiOWRiMDI3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1w
cm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmVmOTJjOTA3OWNjMmRiZGRhYmU0Y2I2NTNiMzIzZmZmZTUzOTc0
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZhYjYxMWJkNDVkZTMwNDI2ZjZiYjU0
YmU2OTUzOTBiNzMwYTA4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJv
dG8tb3Itc2VsZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1wcm90by1vci1zZWxmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFk
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWIxYWE1N2VjYWI2YTFhMWE3ODRkYjVlODg0MmZlMmJh
ZGI4NWMyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1x
dWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDM3NTFiNjRlODIyYWIyZGVjNDdhZDlhOWY0NjY4ZTM3OWUxZjA3Ni4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXBy
b3RvLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQyMTcxMzRm
OTgyODkwNDM5NTY4MmY4ODcwNmQyYzY3YWQ4OGI0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXBy
b3RvCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0
aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctc2VsZi1vci1wcm90by5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDA0YTZiOTljNWI1ZTMwNmQ4M2I2ZjI1MzQyM2EwZmY4MTM1OGUwNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXByb3RvLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1p
bmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDEwMGM1ZDhiOGY4Y2UyODU2MWM3
YjUxMGE3ODNkNjUxMjUzYmRlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDM5MGVkOTUyY2VlZTJhMjBlZmVjNGRiMTA5MzUzYjc3M2IyOGZiYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGlt
aW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBA
QAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0ODJjNDUwZDk1NWFlOTk2NGVlMjViZmYy
YjVmYzBjYjY2ZjQ1MzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWVmMTQx
NTc1ODRjYTYxNjA2NDY4NzU5OGNmYmQ0ZGI3OTdmZWZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NTRiYjBlOGU1NjhjOGQwMjA2
ZTY0OWU1Mjk3NGIzZjllNDJhNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEw
ICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5
LWJsb2NrCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTc1Zjk5MjgwZTcyMzM1YzJiNTRkM2Q5M2YwODYxMTgz
MTk3NDQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRy
eS1ibG9jay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzE0OTRhOWI0
NTYyZjllMTY5MDQ3ODk3YWI2MDYzNWRmMTE0ODViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ5YmZhY2E3YTVlNGI3Mjg4ZWNlZDI2ZTg1MzYwZDU2ZTA2N2M3YTEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3Rv
LW9yLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMTVkMjYyY2VhNTIwNWNmNWYzY2I2MzdhNzg4ZGEzMmIwZTNhNmM0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmh0bWwgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTgxNWNlMzNlOGFjNzc1MTA2ZGFiMmMyYTdi
NDI2MTRmOTM4Y2Y1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1v
ci1zZWxmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXByb3RvLW9yLXNlbGYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmNDYwNWMwNzYxYzIwOGJlZmQ2MjllYmQyMmE0ZmRmOWZlODQ4
YzNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXF1YWRt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWNl
NDYyNDVlODg2YmUyN2Y1MTA2NmE1MTczYzQ5NTFmMmEyMGQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzY2OTEwOGJhYzFj
ZTZkMWVhODUwODAzNDQ1MzgxY2RjNWRhZjZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEw
ICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93
bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1z
ZWxmLW9yLXByb3RvLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZjVmM2Q3MDQ4MWFjY2FhZjA1YTAwMDA0YTVmZTUyOTZhMzJlYmRhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyNTg5
ZjFlYmI4YzEyZGUxY2EwM2Y4MTIyZmQ0MjI1NDMxMDE3NDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLShmdW5j
dGlvbigpIHsKLSAgICB2YXIgYSA9ICdhJywgbCA9ICdsJzsKLSAgICB2YXIgbyA9IHtbYV06MX07
Ci0gICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKLSAgICAgICAgcmVzdWx0IF49IG9b
YV07Ci0gICAgICAgIHZhciB0bXAgPSBvOwotICAgICAgICBvID0gcDsKLSAgICAgICAgcCA9IHRt
cDsKLSAgICB9Ci0gICAgaWYgKHJlc3VsdCAhPSAwKQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjU5NDAxZDdm
NTcyODQ3MTRmZTdkM2Q1ZTA0NTIxMWJkNDdjMTUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAg
ICB2YXIgYSA9ICdhJywgYiA9ICdiJywgYyA9ICdjJywgZCA9ICdkJywgZSA9ICdlJywgZiA9ICdm
JywgZyA9ICdnJywgaCA9ICdoJywgaSA9ICdpJywgaiA9ICdqJywgayA9ICdrJywgbCA9ICdsJzsK
LSAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBb
Z106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07Ci0gICAgdmFyIHAgPSB7W2FdOjIs
IFtiXTozLCBbY106NCwgW2RdOjUsIFtlXTo2LCBbZl06NywgW2ddOjgsIFtoXTo5LCBbaV06MTAs
IFtqXToxMSwgW2tdOjEyLCBbbF06MTN9OwotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAo
dmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KSB7Ci0gICAgICAgIHJlc3Vs
dCArPSBvW2FdIF4gb1tiXSBeIG9bY10gXiBvW2RdIF4gb1tlXSBeIG9bZl0gXiBvW2ddIF4gb1to
XSBeIG9baV0gXiBvW2pdIF4gb1trXTsKLSAgICAgICAgdmFyIHRtcCA9IG87Ci0gICAgICAgIG8g
PSBwOwotICAgICAgICBwID0gdG1wOwotICAgIH0KLSAgICBpZiAocmVzdWx0ICE9IDY1MDAwMDAp
Ci0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLX0pKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1i
bG9jay5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY5NzBmZWUyNGIwZWY2NTUy
OTJjYWVkYTQxYzZiZWIwMGUwZDQyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNDkgKzAsMCBAQAotdmFyIGYgPSAnZic7Ci0KLWZ1bmN0aW9uIEEoKSB7IH0KLQotQS5wcm90
b3R5cGUgPSB7W2ZdOjQyfTsKLQotZnVuY3Rpb24gQigpIHsgfQotCi1CLnByb3RvdHlwZSA9IG5l
dyBBKCk7Ci0KLWZ1bmN0aW9uIEMoKSB7IH0KLQotQy5wcm90b3R5cGUgPSBuZXcgQigpOwotCi1m
dW5jdGlvbiBEKCkgeyB9Ci0KLUQucHJvdG90eXBlID0gbmV3IEMoKTsKLQotZnVuY3Rpb24gRSgp
IHsgfQotCi1FLnByb3RvdHlwZSA9IG5ldyBEKCk7Ci0KLWZ1bmN0aW9uIEYoKSB7IH0KLQotRi5w
cm90b3R5cGUgPSBuZXcgRSgpOwotCi1mdW5jdGlvbiBHKCkgeyB9Ci0KLUcucHJvdG90eXBlID0g
bmV3IEYoKTsKLQotZnVuY3Rpb24gZm9vKG8pIHsKLSAgICB0cnkgewotICAgICAgICB2YXIgcmVz
dWx0ID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpCi0gICAgICAg
ICAgICByZXN1bHQgKz0gb1tmXTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgIHJldHVybiA1MjsKLSAgICB9Ci19Ci0KLXZhciByZXN1bHQgPSAwOwot
Ci1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKLSAgICByZXN1bHQgKz0gZm9vKG5ldyBH
KCkpOwotCi1pZiAocmVzdWx0ICE9IDQyMDAwMDAwKQotICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdDogIiArIHJlc3VsdDsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmI4OGFhNWJiYTEyZWYwMzk5ZjgxZjkwNGNmZGJlNDhkMzhkOWMy
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAot
KGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gJ2EnLCBiID0gJ2InLCBjID0gJ2MnLCBkID0gJ2Qn
LCBlID0gJ2UnLCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBpID0gJ2knLCBqID0gJ2onLCBr
ID0gJ2snOwotICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwg
W2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKLSAgICB2YXIgcmVz
dWx0ID0gMDsKLSAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgMTAwMDAwMDsgKytpbmRl
eCkKLSAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwgb1tjXSBeIG9bZF0gJiBvW2VdIF4g
b1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBvW2tdOwotICAgIGlmIChyZXN1bHQg
IT0gMTUwMDAwMDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNl
bGYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmNzQ5M2I5OGY2MTBkMWM0YWQ5
YjgzZWVjZjYxYTY3ZjllY2FhYjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAs
MCBAQAotdmFyIGYgPSAnZic7Ci0KLWZ1bmN0aW9uIGZvbyhvKSB7Ci0gICAgcmV0dXJuIG9bZl07
Ci19Ci0KLWZ1bmN0aW9uIGJhcihhKSB7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGog
PCBhLmxlbmd0aDsgKytqKQotICAgICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsKLSAgICB9
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gRm9vKCkgewotfQotCi1Gb28ucHJv
dG90eXBlW2ZdID0gNDI7Ci0KLXZhciByZXN1bHQgPSBiYXIoW25ldyBGb28oKSwge1tmXToyNH1d
KTsKLQotaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCi0gICAgdGhyb3cgIkVycm9yIGJhZCByZXN1
bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5MWRj
ZTNjMjU3ZDhkOWQ4MDRlNTQwYTgwOGY2ODRiNDk3ZjMyOTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotKGZ1
bmN0aW9uKCkgewotICAgIHZhciBhID0gJ2EnOwotICAgIHZhciBsID0gJ2wnOwotICAgIHZhciBi
ID0gJ2InOwotICAgIHZhciBjID0gJ2MnOwotCi0gICAgdmFyIG8gPSB7W2FdOjF9OwotICAgIHZh
ciBwID0ge1thXToyLCBbbF06MTN9OwotICAgIHZhciBxID0ge1thXTozLCBbYl06M307Ci0gICAg
dmFyIHIgPSB7W2FdOjQsIFtjXTo1fTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgewotICAgICAgICByZXN1bHQgXj0gb1thXTsKLSAg
ICAgICAgdmFyIHRtcCA9IG87Ci0gICAgICAgIG8gPSBwOwotICAgICAgICBwID0gcTsKLSAgICAg
ICAgcSA9IHI7Ci0gICAgICAgIHIgPSB0bXA7Ci0gICAgfQotICAgIGlmIChyZXN1bHQgIT0gMCkK
LSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwotfSkoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJlYzEwN2NhN2ZhMzgwZjFiYzk2ZWY3ZTlhZTNhZmNk
NTExNzJjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXNlbGYtb3ItcHJvdG8uanMKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi12YXIgZiA9
ICdmJzsKLQotZnVuY3Rpb24gZm9vKG8pIHsKLSAgICByZXR1cm4gb1tmXTsKLX0KLQotZnVuY3Rp
b24gYmFyKGEpIHsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDIwMDAwMDA7ICsraSkgewotICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGEubGVuZ3RoOyAr
K2opCi0gICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOwotICAgIH0KLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1mdW5jdGlvbiBGb28oKSB7Ci19Ci0KLUZvby5wcm90b3R5cGVbZl0gPSA0
MjsKLQotdmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBGb28oKV0pOwotCi1pZiAocmVz
dWx0ICE9IDEzMjAwMDAwMCkKLSAgICB0aHJvdyAiRXJyb3IgYmFkIHJlc3VsdDogIiArIHJlc3Vs
dDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1z
aW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODVkMzJhZjUwMzJjZDA0NTg1Nzg0
OTVjMzc3OTkyNTk4NWYzMDdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0oZnVuY3Rpb24oKSB7Ci0gICAgdmFy
IGEgPSBTeW1ib2woKSwgbCA9IFN5bWJvbCgpOwotICAgIHZhciBvID0ge1thXToxfTsKLSAgICB2
YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgewotICAgICAgICByZXN1bHQgXj0gb1thXTsKLSAg
ICAgICAgdmFyIHRtcCA9IG87Ci0gICAgICAgIG8gPSBwOwotICAgICAgICBwID0gdG1wOwotICAg
IH0KLSAgICBpZiAocmVzdWx0ICE9IDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiYmU5NzFiNjE2MzU5NGNl
MjA0M2UyNzk1NTAwN2U4MzBiMDViOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAgIHZhciBh
ID0gU3ltYm9sKCksIGIgPSBTeW1ib2woKSwgYyA9IFN5bWJvbCgpLCBkID0gU3ltYm9sKCksIGUg
PSBTeW1ib2woKSwgZiA9IFN5bWJvbCgpLCBnID0gU3ltYm9sKCksIGggPSBTeW1ib2woKSwgaSA9
IFN5bWJvbCgpLCBqID0gU3ltYm9sKCksIGsgPSBTeW1ib2woKSwgbCA9IFN5bWJvbCgpOwotICAg
IHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3
LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKLSAgICB2YXIgcCA9IHtbYV06MiwgW2Jd
OjMsIFtjXTo0LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwgW2hdOjksIFtpXToxMCwgW2pd
OjExLCBba106MTIsIFtsXTogMTN9OwotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAodmFy
IGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KSB7Ci0gICAgICAgIHJlc3VsdCAr
PSBvW2FdIF4gb1tiXSBeIG9bY10gXiBvW2RdIF4gb1tlXSBeIG9bZl0gXiBvW2ddIF4gb1toXSBe
IG9baV0gXiBvW2pdIF4gb1trXTsKLSAgICAgICAgdmFyIHRtcCA9IG87Ci0gICAgICAgIG8gPSBw
OwotICAgICAgICBwID0gdG1wOwotICAgIH0KLSAgICBpZiAocmVzdWx0ICE9IDY1MDAwMDApCi0g
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLX0pKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9j
ay5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y4YWM3OGE4NjA0MzBkYjY3YWNj
NGVlMzc3MGQzMjczMzgwMmUxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
NDkgKzAsMCBAQAotdmFyIGYgPSBTeW1ib2woIkNvY29hIik7Ci0KLWZ1bmN0aW9uIEEoKSB7IH0K
LQotQS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKLQotZnVuY3Rpb24gQigpIHsgfQotCi1CLnByb3Rv
dHlwZSA9IG5ldyBBKCk7Ci0KLWZ1bmN0aW9uIEMoKSB7IH0KLQotQy5wcm90b3R5cGUgPSBuZXcg
QigpOwotCi1mdW5jdGlvbiBEKCkgeyB9Ci0KLUQucHJvdG90eXBlID0gbmV3IEMoKTsKLQotZnVu
Y3Rpb24gRSgpIHsgfQotCi1FLnByb3RvdHlwZSA9IG5ldyBEKCk7Ci0KLWZ1bmN0aW9uIEYoKSB7
IH0KLQotRi5wcm90b3R5cGUgPSBuZXcgRSgpOwotCi1mdW5jdGlvbiBHKCkgeyB9Ci0KLUcucHJv
dG90eXBlID0gbmV3IEYoKTsKLQotZnVuY3Rpb24gZm9vKG8pIHsKLSAgICB0cnkgewotICAgICAg
ICB2YXIgcmVzdWx0ID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kp
Ci0gICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHJldHVybiA1MjsKLSAgICB9Ci19Ci0KLXZhciByZXN1
bHQgPSAwOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKLSAgICByZXN1bHQgKz0g
Zm9vKG5ldyBHKCkpOwotCi1pZiAocmVzdWx0ICE9IDQyMDAwMDAwKQotICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ1OWZkOGUwYmI5OTE0ZWVkNmJmNGVlZDE1NTAw
YzQ4ZjJjNDQyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDkg
KzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gU3ltYm9sKCksIGIgPSBTeW1ib2wo
KSwgYyA9IFN5bWJvbCgpLCBkID0gU3ltYm9sKCksIGUgPSBTeW1ib2woKSwgZiA9IFN5bWJvbCgp
LCBnID0gU3ltYm9sKCksIGggPSBTeW1ib2woKSwgaSA9IFN5bWJvbCgpLCBqID0gU3ltYm9sKCks
IGsgPSBTeW1ib2woKTsKLSAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06NCwg
W2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07Ci0gICAg
dmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IDEwMDAwMDA7
ICsraW5kZXgpCi0gICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSB8IG9bY10gXiBvW2RdICYg
b1tlXSBeIG9bZl0gfCBvW2ddIF4gb1toXSAmIG9baV0gXiBvW2pdIHwgb1trXTsKLSAgICBpZiAo
cmVzdWx0ICE9IDE1MDAwMDAwKQotICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzIGIvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90
by1vci1zZWxmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmY4MmFiMjY4YTcz
MjkzNzA4NTc2YmM3ODA2ZWNhNjdiNmFlYjhkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcworKysgL2Rldi9udWxsCkBAIC0x
LDI0ICswLDAgQEAKLXZhciBmID0gU3ltYm9sKCJDb2NvYSIpOwotCi1mdW5jdGlvbiBmb28obykg
ewotICAgIHJldHVybiBvW2ZdOwotfQotCi1mdW5jdGlvbiBiYXIoYSkgewotICAgIHZhciByZXN1
bHQgPSAwOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAwMDsgKytpKSB7Ci0gICAgICAg
IGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsraikKLSAgICAgICAgICAgIHJlc3VsdCAr
PSBmb28oYVtqXSk7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWZ1bmN0aW9uIEZv
bygpIHsKLX0KLQotRm9vLnByb3RvdHlwZVtmXSA9IDQyOwotCi12YXIgcmVzdWx0ID0gYmFyKFtu
ZXcgRm9vKCksIHtbZl06MjR9XSk7Ci0KLWlmIChyZXN1bHQgIT0gMTMyMDAwMDAwKQotICAgIHRo
cm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIGIvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhNTgzNjJhZGVhNzBhYjgyMDRkZTVkNTViOWU0YzU2OGMxMTBkMDc3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcworKysgL2Rldi9udWxsCkBA
IC0xLDIyICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAgICB2YXIgYSA9IFN5bWJvbCgiQ29jb2Ei
KTsKLSAgICB2YXIgbCA9IFN5bWJvbCgpOwotICAgIHZhciBiID0gU3ltYm9sKCk7Ci0gICAgdmFy
IGMgPSBTeW1ib2woKTsKLQotICAgIHZhciBvID0ge1thXToxfTsKLSAgICB2YXIgcCA9IHtbYV06
MiwgW2xdOjEzfTsKLSAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9OwotICAgIHZhciByID0ge1th
XTo0LCBbY106NX07Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDAwOyArK2kpIHsKLSAgICAgICAgcmVzdWx0IF49IG9bYV07Ci0gICAgICAgIHZhciB0
bXAgPSBvOwotICAgICAgICBvID0gcDsKLSAgICAgICAgcCA9IHE7Ci0gICAgICAgIHEgPSByOwot
ICAgICAgICByID0gdG1wOwotICAgIH0KLSAgICBpZiAocmVzdWx0ICE9IDApCi0gICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9s
LXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMwMDhjMzY0MTIwYmYyYWE0OGFkNzRhYTNiNWE2ZmM3Yjk2N2JmYmMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXBy
b3RvLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotdmFyIGYgPSBTeW1ib2woJ0Nv
Y29hJyk7Ci0KLWZ1bmN0aW9uIGZvbyhvKSB7Ci0gICAgcmV0dXJuIG9bZl07Ci19Ci0KLWZ1bmN0
aW9uIGJhcihhKSB7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAyMDAwMDAwOyArK2kpIHsKLSAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsg
KytqKQotICAgICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsKLSAgICB9Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gRm9vKCkgewotfQotCi1Gb28ucHJvdG90eXBlW2ZdID0g
NDI7Ci0KLXZhciByZXN1bHQgPSBiYXIoW3tbZl06MjR9LCBuZXcgRm9vKCldKTsKLQotaWYgKHJl
c3VsdCAhPSAxMzIwMDAwMDApCi0gICAgdGhyb3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258600</attachid>
            <date>2015-08-09 15:55:39 -0700</date>
            <delta_ts>2015-08-09 15:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147818-20150809155526.patch</filename>
            <type>text/plain</type>
            <size>148393</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YmI2NzJhNDEyMjAyNzVhY2UyZGU3NDllOTZlZDc4ZjFlNGQ0MTA1Li4wMTM3YjJhMGE2ODkyNTNl
ZjIyY2U3NDU0MTk4ODQxNWUzOGI3MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTYgQEAKKzIwMTUtMDgtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBSZWdyZXNzaW9uKHIxODgxMDUpOiBTZWVtcyB0byBoYXZlIGNhdXNlZCBjcmFz
aGVzIGR1cmluZyBQTFQgb24gc29tZSBpUGFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODE4CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbCBv
dXQgcjE4ODEwNS4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5oOgorICAgICAgICAo
SlNDOjpCeVZhbEluZm86OkJ5VmFsSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpnZXRCeVZhbEluZm9NYXApOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFkZEJ5VmFsSW5mbyk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0
QnlWYWxJbmZvKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzZXROdW1iZXJPZkJ5VmFsSW5m
b3MpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Om51bWJlck9mQnlWYWxJbmZvcyk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6YnlWYWxJbmZvKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0
S2luZC5jcHA6CisgICAgICAgIChKU0M6OmV4aXRLaW5kVG9TdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmg6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0
YXR1cy5jcHA6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IpOgorICAg
ICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAgICAgICAo
SlNDOjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVk
YmFjayk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oOgorICAg
ICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlND
OjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZm
ZWN0cyk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50
cnkpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChK
U0M6OkRGRzo6Y2xvYmJlcml6ZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFz
ZTo6Zm9sZENvbnN0YW50cyk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZH
Rml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpvYnNlcnZlVXNlS2lu
ZE9uTm9kZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpoYXNVaWRPcGVyYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpOb2RlOjp1aWRPcGVyYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOiBE
ZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDaGVja0lkZW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlU3ltYm9sKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRp
dmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1VzZUtpbmQu
Y3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBk
ZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6IERlbGV0ZWQuCisgICAgICAgICogZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tJZGVudCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6bG93U3ltYm9sKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVjdWxhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmlzTm90U3ltYm9s
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpzcGVj
dWxhdGVTeW1ib2wpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OnByaXZhdGVDb21waWxlKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAg
IChKU0M6OkJ5VmFsQ29tcGlsYXRpb25JbmZvOjpCeVZhbENvbXBpbGF0aW9uSW5mbyk6CisgICAg
ICAgIChKU0M6OkpJVDo6Y29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRp
b24pOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0U2xvd19vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eSk6CisgICAgICAgICogaml0L0pJVE9w
Y29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9w
cm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJv
cGVydHkpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6
Z2V0QnlWYWwpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0
L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2dldF9i
eV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEdldEJ5VmFs
V2l0aENhY2hlZElkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZUdldEJ5VmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZUdl
dEJ5VmFsV2l0aENhY2hlZElkKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlB
Y2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKToK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93
X29wX3B1dF9ieV92YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRHZXRCeVZhbFdpdGhDYWNo
ZWRJZCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9TeW1ib2wuaDoKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1leGl0Lmpz
OiBSZW1vdmVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWdlbmVyYXRlZC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1nZXR0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmcuanM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanM6IFJlbW92ZWQuCisgICAg
ICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtZXhpdC5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1nZXR0ZXIu
anM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wuanM6IFJlbW92ZWQuCisKIDIwMTUtMDgtMDcgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtp
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZHVjZSB1c2VzIG9mIFBhc3NSZWZQdHIgaW4gYmlu
ZGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbElu
Zm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAppbmRleCA2
NzU0MWZkOTM0NmFmMjJmNzIxYjE5Yjc1ZmRlOTZmY2ZmMTBmZGY5Li5kOTg4NTE2MTMyNThhNzFi
OWYwNGJhNDkwNzNmNDQwMzNlNTcxMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5VmFsSW5mby5oCkBAIC0yNiwxOCArMjYsMTYgQEAKICNpZm5kZWYgQnlWYWxJbmZvX2gK
ICNkZWZpbmUgQnlWYWxJbmZvX2gKIAorI2lmIEVOQUJMRShKSVQpCisKICNpbmNsdWRlICJDbGFz
c0luZm8uaCIKICNpbmNsdWRlICJDb2RlTG9jYXRpb24uaCIKLSNpbmNsdWRlICJDb2RlT3JpZ2lu
LmgiCiAjaW5jbHVkZSAiSW5kZXhpbmdUeXBlLmgiCiAjaW5jbHVkZSAiSklUU3R1YlJvdXRpbmUu
aCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVOQUJMRShKSVQpCi0KIGVudW0gSklUQXJyYXlN
b2RlIHsKICAgICBKSVRJbnQzMiwKICAgICBKSVREb3VibGUsCkBAIC0yMDMsMzMgKzIwMSwyNCBA
QCBpbmxpbmUgSklUQXJyYXlNb2RlIGppdEFycmF5TW9kZUZvclN0cnVjdHVyZShTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKIAogc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgQnlWYWxJbmZvKCkgeyB9Ci0K
LSAgICBCeVZhbEluZm8odW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgQ29kZUxvY2F0aW9uSnVtcCBu
b3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAsIEpJVEFycmF5TW9kZSBh
cnJheU1vZGUsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlLCBpbnQxNl90IGJhZFR5cGVKdW1w
VG9Eb25lLCBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQorICAgIAorICAgIEJ5VmFs
SW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4LCBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1w
LCBKSVRBcnJheU1vZGUgYXJyYXlNb2RlLCBpbnQxNl90IGJhZFR5cGVKdW1wVG9Eb25lLCBpbnQx
Nl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoKQogICAgICAgICA6IGJ5dGVjb2RlSW5kZXgoYnl0
ZWNvZGVJbmRleCkKLSAgICAgICAgLCBub3RJbmRleEp1bXAobm90SW5kZXhKdW1wKQogICAgICAg
ICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAsIGFycmF5TW9kZShhcnJheU1v
ZGUpCi0gICAgICAgICwgYXJyYXlQcm9maWxlKGFycmF5UHJvZmlsZSkKICAgICAgICAgLCBiYWRU
eXBlSnVtcFRvRG9uZShiYWRUeXBlSnVtcFRvRG9uZSkKICAgICAgICAgLCByZXR1cm5BZGRyZXNz
VG9TbG93UGF0aChyZXR1cm5BZGRyZXNzVG9TbG93UGF0aCkKICAgICAgICAgLCBzbG93UGF0aENv
dW50KDApCi0gICAgICAgICwgc3R1YkluZm8obnVsbHB0cikKLSAgICAgICAgLCB0b29rU2xvd1Bh
dGgoZmFsc2UpCiAgICAgewogICAgIH0KLQorICAgIAogICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5k
ZXg7Ci0gICAgQ29kZUxvY2F0aW9uSnVtcCBub3RJbmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9u
SnVtcCBiYWRUeXBlSnVtcDsKICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJy
YXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCi0gICAgQXJy
YXlQcm9maWxlKiBhcnJheVByb2ZpbGU7CiAgICAgaW50MTZfdCBiYWRUeXBlSnVtcFRvRG9uZTsK
ICAgICBpbnQxNl90IHJldHVybkFkZHJlc3NUb1Nsb3dQYXRoOwogICAgIHVuc2lnbmVkIHNsb3dQ
YXRoQ291bnQ7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKLSAgICBJ
ZGVudGlmaWVyIGNhY2hlZElkOwotICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbzsKLSAg
ICBib29sIHRvb2tTbG93UGF0aDsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBnZXRCeVZhbEluZm9C
eXRlY29kZUluZGV4KEJ5VmFsSW5mbyogaW5mbykKQEAgLTIzNywxNSArMjI2LDkgQEAgaW5saW5l
IHVuc2lnbmVkIGdldEJ5VmFsSW5mb0J5dGVjb2RlSW5kZXgoQnlWYWxJbmZvKiBpbmZvKQogICAg
IHJldHVybiBpbmZvLT5ieXRlY29kZUluZGV4OwogfQogCi10eXBlZGVmIEhhc2hNYXA8Q29kZU9y
aWdpbiwgQnlWYWxJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gQnlWYWxJbmZvTWFw
OwotCi0jZWxzZSAvLyBFTkFCTEUoSklUKQotCi10eXBlZGVmIEhhc2hNYXA8aW50LCB2b2lkKj4g
QnlWYWxJbmZvTWFwOworfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoSklU
KQogCi19IC8vIG5hbWVzcGFjZSBKU0MKLQogI2VuZGlmIC8vIEJ5VmFsSW5mb19oCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggYzkzMzFmNzM3
YWI3MzAzMTk5ZTdlNGE5YTI0Y2NhMGQxZGJjMTk1NS4uYTM2MWQ2ZGJmMjY3MmNiMDA0Zjg4M2M3
ZTcwMDAwOGE0Yzg3ODllMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKQEAgLTI2NzIsMjIgKzI2NzIsNiBAQCB2b2lkIENvZGVCbG9jazo6Z2V0Q2Fs
bExpbmtJbmZvTWFwKENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KQogICAgIGdldENhbGxMaW5rSW5m
b01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpnZXRCeVZhbEluZm9N
YXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIEJ5VmFsSW5mb01hcCYgcmVzdWx0KQotewot
I2lmIEVOQUJMRShKSVQpCi0gICAgZm9yIChhdXRvKiBieVZhbEluZm8gOiBtX2J5VmFsSW5mb3Mp
Ci0gICAgICAgIHJlc3VsdC5hZGQoQ29kZU9yaWdpbihieVZhbEluZm8tPmJ5dGVjb2RlSW5kZXgp
LCBieVZhbEluZm8pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKLSNlbmRpZgot
fQotCi12b2lkIENvZGVCbG9jazo6Z2V0QnlWYWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0
KQotewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgZ2V0QnlW
YWxJbmZvTWFwKGxvY2tlciwgcmVzdWx0KTsKLX0KLQogI2lmIEVOQUJMRShKSVQpCiBTdHJ1Y3R1
cmVTdHViSW5mbyogQ29kZUJsb2NrOjphZGRTdHViSW5mbygpCiB7CkBAIC0yNzA0LDEyICsyNjg4
LDYgQEAgU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6ZmluZFN0dWJJbmZvKENvZGVPcmln
aW4gY29kZU9yaWdpbikKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotQnlWYWxJbmZvKiBDb2Rl
QmxvY2s6OmFkZEJ5VmFsSW5mbygpCi17Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIo
bV9sb2NrKTsKLSAgICByZXR1cm4gbV9ieVZhbEluZm9zLmFkZCgpOwotfQotCiBDYWxsTGlua0lu
Zm8qIENvZGVCbG9jazo6YWRkQ2FsbExpbmtJbmZvKCkKIHsKICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihtX2xvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCmluZGV4IDk2MDc5MWQ3MGZiNWExN2QyYTAwMjRiOTZmNGE1N2M0MDgxM2Y1YjYuLjZj
M2ExMTVmNzc1ZWVjM2FiZDIyMDJmZWZhNTI2ZGY4MGEzZmM5MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTIwMCw5ICsyMDAsNiBAQCBwdWJsaWM6
CiAgICAgCiAgICAgdm9pZCBnZXRDYWxsTGlua0luZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYsIENhbGxMaW5rSW5mb01hcCYgcmVzdWx0KTsKICAgICB2b2lkIGdldENhbGxMaW5rSW5m
b01hcChDYWxsTGlua0luZm9NYXAmIHJlc3VsdCk7Ci0KLSAgICB2b2lkIGdldEJ5VmFsSW5mb01h
cChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQnlWYWxJbmZvTWFwJiByZXN1bHQpOwotICAg
IHZvaWQgZ2V0QnlWYWxJbmZvTWFwKEJ5VmFsSW5mb01hcCYgcmVzdWx0KTsKICAgICAKICNpZiBF
TkFCTEUoSklUKQogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbygpOwpAQCAtMjE0
LDggKzIxMSwxMSBAQCBwdWJsaWM6CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGZpbmRTdHViSW5m
byhDb2RlT3JpZ2luKTsKIAogICAgIHZvaWQgcmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJik7
Ci0KLSAgICBCeVZhbEluZm8qIGFkZEJ5VmFsSW5mbygpOworICAgIAorICAgIEJ5VmFsSW5mbyYg
Z2V0QnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCisgICAgeworICAgICAgICByZXR1
cm4gKihiaW5hcnlTZWFyY2g8QnlWYWxJbmZvLCB1bnNpZ25lZD4obV9ieVZhbEluZm9zLCBtX2J5
VmFsSW5mb3Muc2l6ZSgpLCBieXRlY29kZUluZGV4LCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4
KSk7CisgICAgfQogCiAgICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxsTGlua0luZm8oKTsKICAgICBC
YWc8Q2FsbExpbmtJbmZvPjo6aXRlcmF0b3IgY2FsbExpbmtJbmZvc0JlZ2luKCkgeyByZXR1cm4g
bV9jYWxsTGlua0luZm9zLmJlZ2luKCk7IH0KQEAgLTM2Nyw2ICszNjcsMTIgQEAgcHVibGljOgog
CiAgICAgU3RyaW5nIG5hbWVGb3JSZWdpc3RlcihWaXJ0dWFsUmVnaXN0ZXIpOwogCisjaWYgRU5B
QkxFKEpJVCkKKyAgICB2b2lkIHNldE51bWJlck9mQnlWYWxJbmZvcyhzaXplX3Qgc2l6ZSkgeyBt
X2J5VmFsSW5mb3MucmVzaXplVG9GaXQoc2l6ZSk7IH0KKyAgICBzaXplX3QgbnVtYmVyT2ZCeVZh
bEluZm9zKCkgY29uc3QgeyByZXR1cm4gbV9ieVZhbEluZm9zLnNpemUoKTsgfQorICAgIEJ5VmFs
SW5mbyYgYnlWYWxJbmZvKHNpemVfdCBpbmRleCkgeyByZXR1cm4gbV9ieVZhbEluZm9zW2luZGV4
XTsgfQorI2VuZGlmCisKICAgICB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50VmFsdWVQcm9maWxl
cygpCiAgICAgewogICAgICAgICBBU1NFUlQobV9udW1QYXJhbWV0ZXJzID49IDApOwpAQCAtMTAx
MCw3ICsxMDE2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRDb2RlOwog
I2lmIEVOQUJMRShKSVQpCiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiBtX3N0dWJJbmZvczsK
LSAgICBCYWc8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7CisgICAgVmVjdG9yPEJ5VmFsSW5mbz4g
bV9ieVZhbEluZm9zOwogICAgIEJhZzxDYWxsTGlua0luZm8+IG1fY2FsbExpbmtJbmZvczsKICAg
ICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxD
YWxsTGlua0luZm8+PiBtX2luY29taW5nQ2FsbHM7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PFBv
bHltb3JwaGljQ2FsbE5vZGUsIEJhc2ljUmF3U2VudGluZWxOb2RlPFBvbHltb3JwaGljQ2FsbE5v
ZGU+PiBtX2luY29taW5nUG9seW1vcnBoaWNDYWxsczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwCmluZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUwMDFkNzY2MGYz
Njg1OWI2ZDg5MDYuLjRmNzlmMmMxYzVlNGU3ZmRiZTA0M2EwNDk1MjUxMDBhZDUwZmY0N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcApAQCAtNDAsOCAr
NDAsNiBAQCBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAg
ICAgIHJldHVybiAiQmFkVHlwZSI7CiAgICAgY2FzZSBCYWRDZWxsOgogICAgICAgICByZXR1cm4g
IkJhZENlbGwiOwotICAgIGNhc2UgQmFkSWRlbnQ6Ci0gICAgICAgIHJldHVybiAiQmFkSWRlbnQi
OwogICAgIGNhc2UgQmFkRXhlY3V0YWJsZToKICAgICAgICAgcmV0dXJuICJCYWRFeGVjdXRhYmxl
IjsKICAgICBjYXNlIEJhZENhY2hlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhp
dEtpbmQuaAppbmRleCA2ZjhjNTEyMDA3MDA1MDViZjkxZGVmNzQ5MDAzZTMwMDVlM2Y3MTg2Li41
OWNiYmY1YTJiMzg3Nzk3ZTNlZTJiYTgxZjM2ZTFjNjFjMDNiOTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtMzIsNyArMzIsNiBAQCBlbnVtIEV4aXRL
aW5kIDogdWludDhfdCB7CiAgICAgRXhpdEtpbmRVbnNldCwKICAgICBCYWRUeXBlLCAvLyBXZSBl
eGl0ZWQgYmVjYXVzZSBhIHR5cGUgcHJlZGljdGlvbiB3YXMgd3JvbmcuCiAgICAgQmFkQ2VsbCwg
Ly8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91
dCB3aGF0IGNlbGwgd2Ugd291bGQgc2VlLiBVc3VhbGx5IHVzZWQgZm9yIGZ1bmN0aW9uIGNoZWNr
cy4KLSAgICBCYWRJZGVudCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJl
Y3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IGlkZW50aWZpZXIgd2Ugd291bGQgc2VlLiBVc3VhbGx5
IHVzZWQgZm9yIGNhY2hlZCBJZCBjaGVjayBpbiBnZXRfYnlfdmFsLgogICAgIEJhZEV4ZWN1dGFi
bGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24g
YWJvdXQgd2hhdCBleGVjdXRhYmxlIHdlIHdvdWxkIHNlZS4KICAgICBCYWRDYWNoZSwgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYW4gaW5saW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBCYWRDb25zdGFu
dENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNhY2hlIG9uIGEgd2VhayBjb25zdGFudCAo
dXN1YWxseSBhIHByb3RvdHlwZSkgd2FzIHdyb25nLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCmluZGV4IDg5ZTUwMzVmMzBhM2YwYjc5YmIy
MDgzMmExMmQ5ZDY4NDg4OGNmMDYuLjFkOTdjOWZmZGJhNmQ5NGUzNWNiNjdjZWQzZGJlZWE1MGJj
NzE5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlk
U3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0
YXR1cy5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KICAgICBH
ZXRCeUlkU3RhdHVzIHJlc3VsdDsKIAogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHJlc3VsdCA9
IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAorICAgIHJlc3VsdCA9
IGNvbXB1dGVGb3JTdHViSW5mbygKICAgICAgICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBtYXAu
Z2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpLCB1aWQsCiAgICAgICAgIENhbGxMaW5rU3Rh
dHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJ
bmRleCkpOwogICAgIApAQCAtMTE2LDIwICsxMTYsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRT
dGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYg
bQogfQogCiAjaWYgRU5BQkxFKEpJVCkKLUdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIENvZGVPcmln
aW4gY29kZU9yaWdpbiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKLXsKLSAgICBHZXRCeUlkU3Rh
dHVzIHJlc3VsdCA9IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0
U2l0ZUZlZWRiYWNrKAotICAgICAgICBsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIHN0dWJJbmZvLCB1
aWQsCi0gICAgICAgIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRXhpdFNpdGVEYXRhKGxvY2tlciwg
cHJvZmlsZWRCbG9jaywgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4KSk7Ci0KLSAgICBpZiAoIXJl
c3VsdC50YWtlc1Nsb3dQYXRoKCkgJiYgR2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUobG9ja2Vy
LCBwcm9maWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1
cm4gR2V0QnlJZFN0YXR1cyhyZXN1bHQubWFrZXNDYWxscygpID8gR2V0QnlJZFN0YXR1czo6TWFr
ZXNDYWxscyA6IEdldEJ5SWRTdGF0dXM6OlRha2VzU2xvd1BhdGgsIHRydWUpOwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQotI2lmIEVOQUJMRShKSVQpCi1H
ZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0
U2l0ZUZlZWRiYWNrKAorR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1
YkluZm8oCiAgICAgY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sq
IHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgVW5pcXVlZFN0cmlu
Z0ltcGwqIHVpZCwKICAgICBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhIGNhbGxFeGl0U2l0
ZURhdGEpCiB7CkBAIC0yNTUsNyArMjQyLDcgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVz
Ojpjb21wdXRlRm9yKAogICAgICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsKICAgICAgICAgewog
ICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQmxvY2stPm1fbG9jayk7
Ci0gICAgICAgICAgICByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVG
ZWVkYmFjaygKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbygKICAgICAg
ICAgICAgICAgICBsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQs
IGV4aXRTaXRlRGF0YSk7CiAgICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAppbmRleCBkN2YwYWU0OTZjYmEyZjMwZmRj
ZDEyODg2YjE1ZmIzYjQ4MjhmOTU1Li4zMjM3MmNkZGY1ZTI1YjBmMzg4ZTZjZmVkYzQ2NjIwYjJk
MzhkMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJ
ZFN0YXR1cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmgKQEAgLTcxLDExICs3MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR2V0QnlJZFN0YXR1
cyBjb21wdXRlRm9yKGNvbnN0IFN0cnVjdHVyZVNldCYsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQp
OwogICAgIAogICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBi
YXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVN
YXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQpOwotCi0jaWYgRU5BQkxFKEpJVCkKLSAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRl
Rm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayogYmFzZWxp
bmVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5nSW1w
bCogdWlkKTsKLSNlbmRpZgotCisgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3N0YXRlOyB9CiAgICAgCiAgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGUgIT0gTm9JbmZvcm1hdGlvbjsgfQpAQCAtOTksNyArOTUsNyBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxv
Y2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKICNlbmRpZgogI2lmIEVOQUJMRShKSVQpCi0g
ICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRl
RmVlZGJhY2soCisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKAog
ICAgICAgICBjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyosCiAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQs
IENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgK
aW5kZXggMjI5MDg3ZGNjNDM2NDM5Nzk1NDgwZTNkNWMxMjk2MDNhMTZjMWI3MS4uMzczNGM3NmQx
ZWU4N2E4NGEwZTY2ZDU1Njc0ZDEwYjJhZDJhYTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAt
MjE2MywzMiArMjE2Myw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAotICAgIGNhc2UgQ2hlY2tJZGVudDogewotICAgICAgICBBYnN0cmFjdFZhbHVl
JiB2YWx1ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkID0gbm9kZS0+dWlkT3BlcmFuZCgpOwotICAgICAgICBBU1NFUlQodWlkLT5pc1N5
bWJvbCgpID8gISh2YWx1ZS5tX3R5cGUgJiB+U3BlY1N5bWJvbCkgOiAhKHZhbHVlLm1fdHlwZSAm
IH5TcGVjU3RyaW5nSWRlbnQpKTsgLy8gRWRnZSBmaWx0ZXJpbmcgc2hvdWxkIGhhdmUgYWxyZWFk
eSBlbnN1cmVkIHRoaXMuCi0KLSAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0YW50ID0gdmFsdWUu
dmFsdWUoKTsKLSAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgIGlmICh1
aWQtPmlzU3ltYm9sKCkpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoY2hpbGRDb25zdGFudC5p
c1N5bWJvbCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoYXNTeW1ib2woY2hpbGRDb25zdGFudCkt
PnByaXZhdGVOYW1lKCkudWlkKCkgPT0gdWlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3Rh
dGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
QVNTRVJUKGNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFz
U3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSA9PSB1aWQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgZmlsdGVyKHZhbHVlLCB1aWQtPmlzU3ltYm9sKCkgPyBTcGVjU3lt
Ym9sIDogU3BlY1N0cmluZ0lkZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2Fz
ZSBDaGVja0luQm91bmRzOiB7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+
Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUt
PmNoaWxkMigpKS52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAppbmRleCAyNjhhNzU3NmJjMzY2NzI2YTA2Yzg4YjFmYzBiZTM0M2Vm
YzBlN2MzLi41NjQyMmIxOGEyNDY1MDg2ZjgwNjk0MjgwZGEzNjc2MDAyZTZjNWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtOTY5
LDcgKzk2OSw2IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBDYWxsTGlua0luZm9NYXAg
bV9jYWxsTGlua0luZm9zOwogICAgICAgICBTdHViSW5mb01hcCBtX3N0dWJJbmZvczsKLSAgICAg
ICAgQnlWYWxJbmZvTWFwIG1fYnlWYWxJbmZvczsKICAgICAgICAgCiAgICAgICAgIC8vIERpZCB3
ZSBzZWUgYW55IHJldHVybnM/IFdlIG5lZWQgdG8gaGFuZGxlIHRoZSAodW5jb21tb24gYnV0IG5l
Y2Vzc2FyeSkKICAgICAgICAgLy8gY2FzZSB3aGVyZSBhIHByb2NlZHVyZSB0aGF0IGRvZXMgbm90
IHJldHVybiB3YXMgaW5saW5lZC4KQEAgLTMzOTgsMzUgKzMzOTcsMTIgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKIAogICAgICAgICBjYXNlIG9wX2dl
dF9ieV92YWw6IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQ
cmVkaWN0aW9uV2l0aG91dE9TUkV4aXQoKTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBO
b2RlKiBiYXNlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSk7CisgICAgICAgICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2Rl
KGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwogICAg
ICAgICAgICAgTm9kZSogcHJvcGVydHkgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKLSAgICAgICAgICAgIGJvb2wgY29tcGlsZWRBc0dldEJ5
SWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPm1fbG9jayk7
Ci0gICAgICAgICAgICAgICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2lubGluZVN0YWNrVG9w
LT5tX2J5VmFsSW5mb3MuZ2V0KENvZGVPcmlnaW4oY3VycmVudENvZGVPcmlnaW4oKS5ieXRlY29k
ZUluZGV4KSk7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoZW4gdGhlIGJ5dGVjb2RlIGlz
IG5vdCBjb21waWxlZCBpbiB0aGUgYmFzZWxpbmUgSklULCBieVZhbEluZm8gYmVjb21lcyBudWxs
LgotICAgICAgICAgICAgICAgIC8vIEF0IHRoYXQgdGltZSwgdGhlcmUgaXMgbm8gaW5mb3JtYXRp
b24uCi0gICAgICAgICAgICAgICAgaWYgKGJ5VmFsSW5mbyAmJiBieVZhbEluZm8tPnN0dWJJbmZv
ICYmICFieVZhbEluZm8tPnRvb2tTbG93UGF0aCAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0
UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkSWRlbnQpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGNvbXBpbGVkQXNHZXRCeUlkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKS5lbnN1
cmUoYnlWYWxJbmZvLT5jYWNoZWRJZC5pbXBsKCkpOwotICAgICAgICAgICAgICAgICAgICBVbmlx
dWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1i
ZXJdOwotCi0gICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tJZGVudCwgT3BJbmZv
KHVpZCksIHByb3BlcnR5KTsKLQotICAgICAgICAgICAgICAgICAgICBHZXRCeUlkU3RhdHVzIGdl
dEJ5SWRTdGF0dXMgPSBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8oCi0gICAgICAg
ICAgICAgICAgICAgICAgICBsb2NrZXIsIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9j
aywKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+c3R1YkluZm8sIGN1cnJlbnRD
b2RlT3JpZ2luKCksIHVpZCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlR2V0QnlJZChj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBwcmVkaWN0aW9uLCBiYXNlLCBpZGVudGlm
aWVyTnVtYmVyLCBnZXRCeUlkU3RhdHVzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGlmICghY29tcGlsZWRBc0dldEJ5SWQpIHsKLSAgICAgICAgICAg
ICAgICBBcnJheU1vZGUgYXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51LmFycmF5UHJvZmlsZSwgQXJyYXk6OlJlYWQpOwotICAgICAgICAgICAgICAgIE5vZGUq
IGdldEJ5VmFsID0gYWRkVG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQo
KSksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOwotICAgICAgICAgICAgICAg
IHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGdl
dEJ5VmFsKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIGdldEJ5VmFsID0gYWRk
VG9HcmFwaChHZXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbyhwcmVk
aWN0aW9uKSwgYmFzZSwgcHJvcGVydHkpOworICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgZ2V0QnlWYWwpOwogCiAgICAgICAg
ICAgICBORVhUX09QQ09ERShvcF9nZXRfYnlfdmFsKTsKICAgICAgICAgfQpAQCAtNDMyOSw3ICs0
MzA1LDYgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50
cnkoCiAgICAgICAgIGlmIChtX3Byb2ZpbGVkQmxvY2stPmhhc0Jhc2VsaW5lSklUUHJvZmlsaW5n
KCkpIHsKICAgICAgICAgICAgIG1fcHJvZmlsZWRCbG9jay0+Z2V0U3R1YkluZm9NYXAobG9ja2Vy
LCBtX3N0dWJJbmZvcyk7CiAgICAgICAgICAgICBtX3Byb2ZpbGVkQmxvY2stPmdldENhbGxMaW5r
SW5mb01hcChsb2NrZXIsIG1fY2FsbExpbmtJbmZvcyk7Ci0gICAgICAgICAgICBtX3Byb2ZpbGVk
QmxvY2stPmdldEJ5VmFsSW5mb01hcChsb2NrZXIsIG1fYnlWYWxJbmZvcyk7CiAgICAgICAgIH0K
ICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmlu
ZGV4IDQ2ZjVmZTQ4ZDI1YzI3ZGQzMTk2YzU4MTI5ZGJlNTg1N2ZiZDdlMjguLjI5Njc0OWRjMzFi
MjNjODk5ODQ5NGI1NmVmMTQzMDg2NGIxMjdlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0yNjgsMTAgKzI2OCw2IEBAIHZvaWQgY2xvYmJlcml6ZShH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBX
cml0ZUZ1CiAgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hlY2tOb3RFbXB0eSwgQWRqYWNlbmN5TGlz
dChBZGphY2VuY3lMaXN0OjpGaXhlZCwgbm9kZS0+Y2hpbGQxKCkpKSk7CiAgICAgICAgIHJldHVy
bjsKIAotICAgIGNhc2UgQ2hlY2tJZGVudDoKLSAgICAgICAgZGVmKFB1cmVWYWx1ZShDaGVja0lk
ZW50LCBBZGphY2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSks
IG5vZGUtPnVpZE9wZXJhbmQoKSkpOwotICAgICAgICByZXR1cm47Ci0KICAgICBjYXNlIENvbnN0
YW50U3RvcmFnZVBvaW50ZXI6CiAgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSwgbm9kZS0+c3Rv
cmFnZVBvaW50ZXIoKSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDNkODVjYWFi
ZDYxNTczZmRkNTQ5ZDVmZTc1YmM2NGYzZTU2NGYxZTUuLmJhNGMwMzU0OTQ2NDkyZjU5ZmRmYmQ1
YTZmNjFhNWE2N2QyNTAzMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC0yMDgsMzMgKzIwOCw2IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGNhc2UgQ2hlY2tJZGVudDogewotICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1
aWQgPSBub2RlLT51aWRPcGVyYW5kKCk7Ci0gICAgICAgICAgICAgICAgSlNWYWx1ZSBjaGlsZENv
bnN0YW50ID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwotICAgICAg
ICAgICAgICAgIGNvbnN0IFVuaXF1ZWRTdHJpbmdJbXBsKiBjb25zdGFudFVpZCA9IG51bGxwdHI7
Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNo
aWxkQ29uc3RhbnQuaXNTeW1ib2woKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dGFudFVpZCA9IGFzU3ltYm9sKGNoaWxkQ29uc3RhbnQpLT5wcml2YXRlTmFtZSgpLnVpZCgpOwot
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGNoaWxkQ29uc3RhbnQuaXNTdHJpbmcoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIFNpbmNlIHdlIGFscmVhZHkgZmlsdGVyZWQgdGhlIHZhbHVlIHdpdGggU3RyaW5nSWRlbnRV
c2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGhlbGQgaW1wbCBpcyBhbHdh
eXMgYXRvbWljLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25zdCBhdXRvKiBp
bXBsID0gYXNTdHJpbmcoY2hpbGRDb25zdGFudCktPnRyeUdldFZhbHVlSW1wbCgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChpbXBsLT5pc0F0b21pYygpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRVaWQgPSBzdGF0aWNfY2FzdDxj
b25zdCBVbmlxdWVkU3RyaW5nSW1wbCo+KGltcGwpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChjb25zdGFudFVpZCA9PSB1
aWQpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIGVsaW1pbmF0ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgY2FzZSBDaGVja0luQm91
bmRzOiB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBsZWZ0ID0gbV9zdGF0ZS5mb3JOb2RlKG5v
ZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICAgICAgICAgIEpTVmFsdWUgcmlnaHQgPSBt
X3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggZTQ3MGI4ZGRhYjk5NDM4ZmQ4OTAzNTJlNDVlMDkx
MDI5ZjFhNjI3YS4uMDhmZmIyYTkxMjkzODcyMTMxMWNhZDI3NzQ2NzYxYTIwNjUzYWE1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTA3LDcgKzEwNyw2IEBA
IGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFZhckluamVj
dGlvbldhdGNocG9pbnQ6CiAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgY2FzZSBDaGVja05vdEVt
cHR5OgotICAgIGNhc2UgQ2hlY2tJZGVudDoKICAgICBjYXNlIFJlZ0V4cEV4ZWM6CiAgICAgY2Fz
ZSBSZWdFeHBUZXN0OgogICAgIGNhc2UgQ29tcGFyZUxlc3M6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBkNmE5NzkwYjEzY2UwMDYyZDk3ODExNDBl
ZGNlMjIxNTJlNDAwYjg0Li5jNDQyMzEwMTYzMjY1N2QzZTgzZjk3MWU2NmE4M2Y2MjUwNTcxNTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEw
MTIsMTUgKzEwMTIsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCi0gICAgICAg
IGNhc2UgQ2hlY2tJZGVudDogewotICAgICAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCA9
IG5vZGUtPnVpZE9wZXJhbmQoKTsKLSAgICAgICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpCi0g
ICAgICAgICAgICAgICAgZml4RWRnZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ0lkZW50VXNlPihub2Rl
LT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVy
ZTogewpAQCAtMTc2OSw3ICsxNzYwLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBGdW5jdGlv
blVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgIGNhc2UgS25vd25TdHJpbmdV
c2U6Ci0gICAgICAgIGNhc2UgU3ltYm9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVz
ZToKICAgICAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgICAgIGlm
IChhbHdheXNVbmJveFNpbXBsZVByaW1pdGl2ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAppbmRleCA4M2ZjZjVjMTAxZTBjN2M3N2E5ZWQyMDk1ZDQ1NWRhNjljNGU2YWYwLi4yOGNh
YjA1MWU1MzA5ZTM2ODg2OTRjYmJjNDY1Mzk2NjkyZGU4MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaApAQCAtMTMyOCwxNyArMTMyOCw2IEBAIHN0cnVjdCBOb2RlIHsKICAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KG1fb3BJbmZvKTsKICAgICB9CiAKLSAg
ICBib29sIGhhc1VpZE9wZXJhbmQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hl
Y2tJZGVudDsKLSAgICB9Ci0KLSAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkT3BlcmFuZCgpCi0g
ICAgewotICAgICAgICBBU1NFUlQoaGFzVWlkT3BlcmFuZCgpKTsKLSAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7Ci0gICAgfQotCiAg
ICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGU5YmY3MjcwNGIxN2Fh
Njg2NzllOWJiZWEwZjRmMmFkY2VmOTYzYTIuLjYyZTdjYTk4YTUyMTEyZDgyZDBlYjZmMGQxNzI4
YmVhZjRiOWUxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAg
LTIwOSw3ICsyMDksNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oQ2hlY2tOb3RFbXB0eSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrQmFk
Q2VsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSW5Cb3VuZHMsIE5vZGVN
dXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhDaGVja0lkZW50LCBOb2RlTXVzdEdlbmVyYXRlKSBc
CiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9uLiAqL1wKICAg
ICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAKaW5kZXggMzZmMmRmN2M3NWM1MGNhZmQwNmVjOWMyNzg1MWVlYTlm
MTBmZmE5OC4uNzZhZjZhMmYzZTQ1MmIwZjExN2FiYzNhNmJiNWRkZDJmYWFiMTk4YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAKQEAgLTY0OSw3ICs2NDksNiBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICAgICAgY2Fz
ZSBDaGVja05vdEVtcHR5OgotICAgICAgICBjYXNlIENoZWNrSWRlbnQ6CiAgICAgICAgIGNhc2Ug
Q2hlY2tCYWRDZWxsOgogICAgICAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICAgICAgY2FzZSBW
YXJJbmplY3Rpb25XYXRjaHBvaW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaAppbmRleCBiMmQwN2Q1NWU1MzYyNjg0NWI1ZDNmNWM5ZmVlYTRlN2JkODRk
ZDkxLi4wYzBhMjc3NjA1MGVmMWM2MzhjMjBkODhjZmVmZTMyM2M3M2E1OTE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTksNyArNTksNiBA
QCBwdWJsaWM6CiAgICAgICAgIGNhc2UgT2JqZWN0T3JPdGhlclVzZToKICAgICAgICAgY2FzZSBT
dHJpbmdJZGVudFVzZToKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6Ci0gICAgICAgIGNhc2UgU3lt
Ym9sVXNlOgogICAgICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBTdHJp
bmdPclN0cmluZ09iamVjdFVzZToKICAgICAgICAgY2FzZSBOb3RTdHJpbmdWYXJVc2U6CkBAIC0x
ODksNyArMTg4LDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0
ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNh
c2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKLSAgICBjYXNlIENoZWNr
SWRlbnQ6CiAgICAgY2FzZSBSZWdFeHBFeGVjOgogICAgIGNhc2UgUmVnRXhwVGVzdDoKICAgICBj
YXNlIENvbXBhcmVMZXNzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAppbmRleCAwNTM3MzYzNGJkZTExZDY2NDYxOTEzYTIwYzVhNWJlYTk2OGZh
NGQ3Li5mM2Y4YWY3YTUyZDUwZjlhMmU3MWM0ZjkwMTk5ODQ3YmYwNTAwZDVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDU3Niwz
MSArNDU3Niw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcnJheUxlbmd0aChO
b2RlKiBub2RlKQogICAgIH0gfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hl
Y2tJZGVudChOb2RlKiBub2RlKQotewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQgPSBub2Rl
LT51aWRPcGVyYW5kKCk7Ci0gICAgaWYgKHVpZC0+aXNTeW1ib2woKSkgewotICAgICAgICBzcGVj
dWxhdGVTeW1ib2wobm9kZS0+Y2hpbGQxKCksIG9wZXJhbmQuZ3ByKCkpOwotICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKAotICAgICAgICAgICAgQmFkSWRlbnQsIEpTVmFsdWVTb3VyY2UoKSwgbnVs
bHB0ciwKLSAgICAgICAgICAgIG1faml0LmJyYW5jaFB0cigKLSAgICAgICAgICAgICAgICBKSVRD
b21waWxlcjo6Tm90RXF1YWwsCi0gICAgICAgICAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3Mo
b3BlcmFuZC5ncHIoKSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLAotICAgICAgICAg
ICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNwZWN1
bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgb3BlcmFuZC5ncHIoKSk7Ci0gICAgICAgIHNwZWN1
bGF0ZVN0cmluZ0lkZW50KG5vZGUtPmNoaWxkMSgpLCBvcGVyYW5kLmdwcigpKTsKLSAgICAgICAg
c3BlY3VsYXRpb25DaGVjaygKLSAgICAgICAgICAgIEJhZElkZW50LCBKU1ZhbHVlU291cmNlKCks
IG51bGxwdHIsCi0gICAgICAgICAgICBtX2ppdC5icmFuY2hQdHIoCi0gICAgICAgICAgICAgICAg
SklUQ29tcGlsZXI6Ok5vdEVxdWFsLAotICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjpBZGRy
ZXNzKG9wZXJhbmQuZ3ByKCksIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLAotICAgICAgICAg
ICAgICAgIFRydXN0ZWRJbW1QdHIodWlkKSkpOwotICAgIH0KLSAgICBub1Jlc3VsdChub2RlKTsK
LX0KLQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uKE5vZGUqIG5vZGUp
CiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc2NvcGUodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OwpAQCAtNTc1NiwyMCArNTczMSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU5v
dFN0cmluZ1ZhcihFZGdlIGVkZ2UpCiAgICAgbm90Q2VsbC5saW5rKCZtX2ppdCk7CiB9CiAKLXZv
aWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxs
KQotewotICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwp
LCBlZGdlLCBTcGVjU3ltYm9sLCBtX2ppdC5icmFuY2hJZk5vdFN5bWJvbChjZWxsKSk7Ci19Ci0K
LXZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVN5bWJvbChFZGdlIGVkZ2UpCi17Ci0gICAg
aWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjU3ltYm9sKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKLSAgICBzcGVj
dWxhdGVTeW1ib2woZWRnZSwgb3BlcmFuZC5ncHIoKSk7Ci19Ci0KIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZU5vdENlbGwoRWRnZSBlZGdlKQogewogICAgIGlmICghbmVlZHNUeXBlQ2hl
Y2soZWRnZSwgflNwZWNDZWxsKSkKQEAgLTU4ODEsOSArNTg0Miw2IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZShOb2RlKiwgRWRnZSBlZGdlKQogICAgIGNhc2UgU3RyaW5nVXNlOgog
ICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
U3ltYm9sVXNlOgotICAgICAgICBzcGVjdWxhdGVTeW1ib2woZWRnZSk7Ci0gICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmpl
Y3QoZWRnZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDU0NWZmMmE2ZWJkMTBlZWY4MmIxZmU3YzIyY2NlOWY3
MTdlZGQxNGEuLmE1YzQ0NTQ3ZGE2NGJjMmI2M2YwNzNhMTcxMWU2YTExODA2ZjU5NWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTIxOTEs
OCArMjE5MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVTa2lwU2NvcGUoTm9kZSopOwog
CiAgICAgdm9pZCBjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOwotCi0gICAgdm9pZCBjb21w
aWxlQ2hlY2tJZGVudChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVSZXAoTm9k
ZSopOwogICAgIHZvaWQgY29tcGlsZURvdWJsZVJlcChOb2RlKik7CkBAIC0yNDA4LDggKzI0MDYs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3QoRWRnZSwgR1BSUmVn
KTsKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZ09iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1
bGF0ZVN0cmluZ09yU3RyaW5nT2JqZWN0KEVkZ2UpOwotICAgIHZvaWQgc3BlY3VsYXRlU3ltYm9s
KEVkZ2UsIEdQUlJlZyBjZWxsKTsKLSAgICB2b2lkIHNwZWN1bGF0ZVN5bWJvbChFZGdlKTsKICAg
ICB2b2lkIHNwZWN1bGF0ZU5vdENlbGwoRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVPdGhlcihF
ZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZU1pc2MoRWRnZSwgSlNWYWx1ZVJlZ3MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
aW5kZXggMTJhYjhkMDg1ZDA3MDUxMGY3NmZkNGVlNzI1NGY4OGUzMzIyYjdjOS4uNTA0MjkwNWI2
MmI1MjZjOWVkYWQzZmZiYjU2N2M0NmY2N2Y4MGVhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zODIwLDEwICsz
ODIwLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIENoZWNrSWRlbnQ6Ci0gICAgICAgIGNvbXBpbGVD
aGVja0lkZW50KG5vZGUpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgR2V0RXhlY3V0YWJs
ZTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBmdW5jdGlvbih0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGZ1bmN0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCmluZGV4IDEzYzdjODdkODA2ZjdhN2E4NjczMGYwNzlhZDg4MzQ1NDI2YzdmYzIuLjc3
MGJkYTU4Y2FiNTAyM2ExZmEwYzM4ZjRjN2EwMzA4ZDQwODBhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMzg1MCwxMCAr
Mzg1MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBDaGVja0lkZW50OgotICAgICAgICBjb21waWxl
Q2hlY2tJZGVudChub2RlKTsKLSAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIEdldEV4ZWN1dGFi
bGU6IHsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZnVuY3Rpb24odGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBmdW5j
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCA5MzZl
ZjU1NGFmMjRlMGI2NGZkZjQyOGYxNjNhZThkNzg4ZTk4ZDk1Li5lZmExMDRmM2QwNzAwMGI3ZDdi
YzQ3M2JjZGYyMDZkMTA1M2ZjOWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNl
S2luZC5jcHAKQEAgLTk3LDkgKzk3LDYgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAg
ICBvdXQucHJpbnQoIktub3duU3RyaW5nIik7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIFN5
bWJvbFVzZToKLSAgICAgICAgb3V0LnByaW50KCJTeW1ib2wiKTsKLSAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBvdXQucHJpbnQoIlN0cmluZ09iamVj
dCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5o
CmluZGV4IDI4OWI3ODNlNDFiYjM2MTI5MWM4M2M4ZmFkN2IwOGE1NzhlMGE2ZjAuLmViZjk5ZGFl
NjAwYzg4MjVkMjJjYmFjNjM4MjJkMTViNTU2MDAzNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVXNlS2luZC5oCkBAIC01Nyw3ICs1Nyw2IEBAIGVudW0gVXNlS2luZCB7CiAgICAgU3Ry
aW5nSWRlbnRVc2UsCiAgICAgU3RyaW5nVXNlLAogICAgIEtub3duU3RyaW5nVXNlLAotICAgIFN5
bWJvbFVzZSwKICAgICBTdHJpbmdPYmplY3RVc2UsCiAgICAgU3RyaW5nT3JTdHJpbmdPYmplY3RV
c2UsCiAgICAgTm90U3RyaW5nVmFyVXNlLApAQCAtMTE4LDggKzExNyw2IEBAIGlubGluZSBTcGVj
dWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9yKFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIFN0cmlu
Z1VzZToKICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICByZXR1cm4gU3BlY1N0cmlu
ZzsKLSAgICBjYXNlIFN5bWJvbFVzZToKLSAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7CiAgICAg
Y2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nT2JqZWN0Owog
ICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CkBAIC0xOTksNyArMTk2LDYgQEAgaW5s
aW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgog
ICAgIGNhc2UgU3RyaW5nVXNlOgogICAgIGNhc2UgS25vd25TdHJpbmdVc2U6Ci0gICAgY2FzZSBT
eW1ib2xVc2U6CiAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBTdHJpbmdPclN0
cmluZ09iamVjdFVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCmluZGV4IDU4MWY0
Y2JkOWE3NjhiOWFiMmE4MzkyMWNmMjRkMzUyNGJjODU3MTguLjkxMjc1NGRmYzQwMTUyYjBlZDI0
ODM2YWM3NWI4Zjk2OTg0Mzk5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC04Nyw4ICs4Nyw3IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhTdHJ1Y3R1cmVfY2xhc3NJbmZv
LCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSBcCiAgICAgbWFjcm8oU3RydWN0dXJlX2ds
b2JhbE9iamVjdCwgU3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSkgXAogICAgIG1hY3Jv
KFN0cnVjdHVyZV9wcm90b3R5cGUsIFN0cnVjdHVyZTo6cHJvdG90eXBlT2Zmc2V0KCkpIFwKLSAg
ICBtYWNybyhTdHJ1Y3R1cmVfc3RydWN0dXJlSUQsIFN0cnVjdHVyZTo6c3RydWN0dXJlSURPZmZz
ZXQoKSkgXAotICAgIG1hY3JvKFN5bWJvbF9wcml2YXRlTmFtZSwgU3ltYm9sOjpvZmZzZXRPZlBy
aXZhdGVOYW1lKCkpCisgICAgbWFjcm8oU3RydWN0dXJlX3N0cnVjdHVyZUlELCBTdHJ1Y3R1cmU6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFD
VF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2UsIERpcmVj
dEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYjQ5
M2YzMDI3ZTgyY2ZjY2U5YzNjY2Y0ODJjMTU1ODYxZDY4Yjk0My4uNjI3MjhjNzQ2ZWY5MWQ3NGI3
ODI5YmIzZjlhNDRjNmQ3ZjYxZDdiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTE4LDcgKzExOCw2IEBAIGlubGluZSBDYXBhYmlsaXR5
TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tDZWxsOgogICAgIGNh
c2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eToKLSAgICBjYXNlIENoZWNr
SWRlbnQ6CiAgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgogICAgIGNhc2UgQWxsb2NhdGVQcm9w
ZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgpAQCAtNDE2
LDcgKzQxNSw2IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAg
ICAgICAgICAgICAgICBjYXNlIEtub3duU3RyaW5nVXNlOgogICAgICAgICAgICAgICAgIGNhc2Ug
U3RyaW5nT2JqZWN0VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmpl
Y3RVc2U6Ci0gICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xVc2U6CiAgICAgICAgICAgICAgICAg
Y2FzZSBGaW5hbE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE5vdENlbGxVc2U6CiAg
ICAgICAgICAgICAgICAgY2FzZSBPdGhlclVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggYTFiMTliZmU4ODY3ODlmMTMyZWVkY2Y2
N2MzZDc4OWMyMDYzNWQ2OC4uNWZiNGUyNDEyYTI1OTM0ZjJkYmVmYjk5NzFiMDQ1ZWE4MTkyMWM4
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExW
TS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5j
cHAKQEAgLTUzMiw5ICs1MzIsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrQmFkQ2Vs
bDoKICAgICAgICAgICAgIGNvbXBpbGVDaGVja0JhZENlbGwoKTsKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIENoZWNrSWRlbnQ6Ci0gICAgICAgICAgICBjb21waWxlQ2hlY2tJZGVu
dCgpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAg
ICAgICAgICAgIGNvbXBpbGVHZXRFeGVjdXRhYmxlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTIwMzIsMjAgKzIwMjksNiBAQCBwcml2YXRlOgogICAgICAgICBzcGVjdWxhdGUoVERaRmFpbHVy
ZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC5pc1plcm82NChsb3dKU1ZhbHVlKG1fbm9kZS0+
Y2hpbGQxKCkpKSk7CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudCgpCi0gICAg
ewotICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ub2RlLT51aWRPcGVyYW5kKCk7
Ci0gICAgICAgIGlmICh1aWQtPmlzU3ltYm9sKCkpIHsKLSAgICAgICAgICAgIExWYWx1ZSBzeW1i
b2wgPSBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUgc3Ry
aW5nSW1wbCA9IG1fb3V0LmxvYWRQdHIoc3ltYm9sLCBtX2hlYXBzLlN5bWJvbF9wcml2YXRlTmFt
ZSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwg
bV9vdXQubm90RXF1YWwoc3RyaW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd1N0cmluZ0lkZW50
KG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291
dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7Ci0gICAgICAgICAgICBz
cGVjdWxhdGUoQmFkSWRlbnQsIG5vVmFsdWUoKSwgbnVsbHB0ciwgbV9vdXQubm90RXF1YWwoc3Ry
aW5nSW1wbCwgbV9vdXQuY29uc3RJbnRQdHIodWlkKSkpOwotICAgICAgICB9Ci0gICAgfQotCiAg
ICAgdm9pZCBjb21waWxlR2V0RXhlY3V0YWJsZSgpCiAgICAgewogICAgICAgICBMVmFsdWUgY2Vs
bCA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC03MDM3LDE2ICs3MDIwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSwgc3RyaW5nLCBzdHJpbmdJ
bXBsKTsKICAgICAgICAgcmV0dXJuIHN0cmluZ0ltcGw7CiAgICAgfQotCi0gICAgTFZhbHVlIGxv
d1N5bWJvbChFZGdlIGVkZ2UsIE9wZXJhbmRTcGVjdWxhdGlvbk1vZGUgbW9kZSA9IEF1dG9tYXRp
Y09wZXJhbmRTcGVjdWxhdGlvbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQobW9kZSwg
bW9kZSA9PSBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24gfHwgZWRnZS51c2VLaW5kKCkgPT0gU3lt
Ym9sVXNlKTsKLQotICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2VsbChlZGdlLCBtb2RlKTsK
LSAgICAgICAgc3BlY3VsYXRlU3ltYm9sKGVkZ2UsIHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotCisgICAgCiAgICAgTFZhbHVlIGxvd05vbk51bGxPYmplY3QoRWRnZSBl
ZGdlLCBPcGVyYW5kU3BlY3VsYXRpb25Nb2RlIG1vZGUgPSBBdXRvbWF0aWNPcGVyYW5kU3BlY3Vs
YXRpb24pCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKG1vZGUsIG1vZGUgPT0gTWFudWFs
T3BlcmFuZFNwZWN1bGF0aW9uIHx8IGVkZ2UudXNlS2luZCgpID09IE9iamVjdFVzZSk7CkBAIC03
NDQzLDkgKzc0MTcsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgog
ICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBTeW1ib2xVc2U6Ci0gICAgICAgICAgICBzcGVjdWxhdGVTeW1ib2wo
ZWRnZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6
CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTc1NDIsMTYgKzc1MTMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQu
bG9hZDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZUlEKSwKICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50MzIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUtPmlkKCkpKTsKICAgICB9Ci0KLSAg
ICBMVmFsdWUgaXNOb3RTeW1ib2woTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBT
cGVjRnVsbFRvcCkKLSAgICB7Ci0gICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5W
YWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3ltYm9sKSkKLSAgICAgICAgICAgIHJldHVybiBw
cm92ZW47Ci0gICAgICAgIHJldHVybiBtX291dC5ub3RFcXVhbCgKLSAgICAgICAgICAgIG1fb3V0
LmxvYWQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmVJRCksCi0gICAgICAgICAgICBt
X291dC5jb25zdEludDMyKHZtKCkuc3ltYm9sU3RydWN0dXJlLT5pZCgpKSk7Ci0gICAgfQotCisg
ICAgCiAgICAgTFZhbHVlIGlzQXJyYXlUeXBlKExWYWx1ZSBjZWxsLCBBcnJheU1vZGUgYXJyYXlN
b2RlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7CkBAIC03Nzc0
LDE3ICs3NzM2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIE5vdFN0cmluZ09iamVjdCwgbm9W
YWx1ZSgpLCAwLAogICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoc3RydWN0dXJlSUQsIHdlYWtT
dHJ1Y3R1cmVJRChzdHJpbmdPYmplY3RTdHJ1Y3R1cmUpKSk7CiAgICAgfQotCi0gICAgdm9pZCBz
cGVjdWxhdGVTeW1ib2woRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKLSAgICB7Ci0gICAgICAgIEZU
TF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY1N5bWJvbCB8IH5TcGVj
Q2VsbCwgaXNOb3RTeW1ib2woY2VsbCkpOwotICAgIH0KLQotICAgIHZvaWQgc3BlY3VsYXRlU3lt
Ym9sKEVkZ2UgZWRnZSkKLSAgICB7Ci0gICAgICAgIHNwZWN1bGF0ZVN5bWJvbChlZGdlLCBsb3dD
ZWxsKGVkZ2UpKTsKLSAgICB9Ci0KKyAgICAKICAgICB2b2lkIHNwZWN1bGF0ZU5vbk51bGxPYmpl
Y3QoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CiAgICAgICAgIEZUTF9UWVBFX0NIRUNL
KGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY09iamVjdCwgaXNOb3RPYmplY3QoY2VsbCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGM1MDVhZjBlYTc4OGQyZDg3Yjk3MTkw
OWU3MDZhMzRmOGQ2NmQ1YjkuLjU4MjNkMDEwOWY4ODViOGIxZmIxZjY3MDE2YjMzYzAzMDIzYjZl
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTY1NywyMiArNjU3LDE3IEBAIENv
bXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25FZmZvcnQg
ZWZmb3J0KQogICAgIGZvciAodW5zaWduZWQgaSA9IG1fcHV0QnlJZHMuc2l6ZSgpOyBpLS07KQog
ICAgICAgICBtX3B1dEJ5SWRzW2ldLmZpbmFsaXplKHBhdGNoQnVmZmVyKTsKIAotICAgIGZvciAo
Y29uc3QgYXV0byYgYnlWYWxDb21waWxhdGlvbkluZm8gOiBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
KSB7Ci0gICAgICAgIFBhdGNoYWJsZUp1bXAgcGF0Y2hhYmxlTm90SW5kZXhKdW1wID0gYnlWYWxD
b21waWxhdGlvbkluZm8ubm90SW5kZXhKdW1wOwotICAgICAgICBDb2RlTG9jYXRpb25KdW1wIG5v
dEluZGV4SnVtcCA9IENvZGVMb2NhdGlvbkp1bXAoKTsKLSAgICAgICAgaWYgKEp1bXAocGF0Y2hh
YmxlTm90SW5kZXhKdW1wKS5pc1NldCgpKQotICAgICAgICAgICAgbm90SW5kZXhKdW1wID0gQ29k
ZUxvY2F0aW9uSnVtcChwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKHBhdGNoYWJsZU5vdEluZGV4SnVt
cCkpOwotICAgICAgICBDb2RlTG9jYXRpb25KdW1wIGJhZFR5cGVKdW1wID0gQ29kZUxvY2F0aW9u
SnVtcChwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLmJhZFR5cGVK
dW1wKSk7Ci0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGRvbmVUYXJnZXQgPSBwYXRjaEJ1ZmZl
ci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGlsYXRpb25JbmZvLmRvbmVUYXJnZXQpOwotICAgICAgICBD
b2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNoQnVmZmVyLmxvY2F0aW9uT2Yo
YnlWYWxDb21waWxhdGlvbkluZm8uc2xvd1BhdGhUYXJnZXQpOwotICAgICAgICBDb2RlTG9jYXRp
b25DYWxsIHJldHVybkFkZHJlc3MgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mKGJ5VmFsQ29tcGls
YXRpb25JbmZvLnJldHVybkFkZHJlc3MpOwotCi0gICAgICAgICpieVZhbENvbXBpbGF0aW9uSW5m
by5ieVZhbEluZm8gPSBCeVZhbEluZm8oCi0gICAgICAgICAgICBieVZhbENvbXBpbGF0aW9uSW5m
by5ieXRlY29kZUluZGV4LAotICAgICAgICAgICAgbm90SW5kZXhKdW1wLAorICAgIG1fY29kZUJs
b2NrLT5zZXROdW1iZXJPZkJ5VmFsSW5mb3MobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkp
OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLnNp
emUoKTsgKytpKSB7CisgICAgICAgIENvZGVMb2NhdGlvbkp1bXAgYmFkVHlwZUp1bXAgPSBDb2Rl
TG9jYXRpb25KdW1wKHBhdGNoQnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5m
b1tpXS5iYWRUeXBlSnVtcCkpOworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBkb25lVGFyZ2V0
ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmRvbmVU
YXJnZXQpOworICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzbG93UGF0aFRhcmdldCA9IHBhdGNo
QnVmZmVyLmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5zbG93UGF0aFRhcmdl
dCk7CisgICAgICAgIENvZGVMb2NhdGlvbkNhbGwgcmV0dXJuQWRkcmVzcyA9IHBhdGNoQnVmZmVy
LmxvY2F0aW9uT2YobV9ieVZhbENvbXBpbGF0aW9uSW5mb1tpXS5yZXR1cm5BZGRyZXNzKTsKKyAg
ICAgICAgCisgICAgICAgIG1fY29kZUJsb2NrLT5ieVZhbEluZm8oaSkgPSBCeVZhbEluZm8oCisg
ICAgICAgICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW2ldLmJ5dGVjb2RlSW5kZXgsCiAgICAg
ICAgICAgICBiYWRUeXBlSnVtcCwKLSAgICAgICAgICAgIGJ5VmFsQ29tcGlsYXRpb25JbmZvLmFy
cmF5TW9kZSwKLSAgICAgICAgICAgIGJ5VmFsQ29tcGlsYXRpb25JbmZvLmFycmF5UHJvZmlsZSwK
KyAgICAgICAgICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9baV0uYXJyYXlNb2RlLAogICAgICAg
ICAgICAgZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKGJhZFR5cGVKdW1wLCBkb25lVGFyZ2V0KSwK
ICAgICAgICAgICAgIGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihyZXR1cm5BZGRyZXNzLCBzbG93
UGF0aFRhcmdldCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDkwMTA4YWYx
NWRlYjdkMDZhM2I0Yjc1YzNlZjllMWYxYmE5ZDVhOWQuLjEwMjM4MjBjNTYxMWMyMDExNjM0Y2Fj
YzBmZjgwNGY4ZDMyYzFhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMTQ5LDIzICsx
NDksMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgc3RydWN0IEJ5VmFsQ29tcGlsYXRpb25JbmZv
IHsKICAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8oKSB7IH0KICAgICAgICAgCi0gICAgICAg
IEJ5VmFsQ29tcGlsYXRpb25JbmZvKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBub3RJbmRleEp1bXAsIE1h
Y3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGJhZFR5cGVKdW1wLCBKSVRBcnJheU1vZGUgYXJy
YXlNb2RlLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVs
IGRvbmVUYXJnZXQpCi0gICAgICAgICAgICA6IGJ5VmFsSW5mbyhieVZhbEluZm8pCi0gICAgICAg
ICAgICAsIGJ5dGVjb2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkKLSAgICAgICAgICAgICwgbm90SW5k
ZXhKdW1wKG5vdEluZGV4SnVtcCkKKyAgICAgICAgQnlWYWxDb21waWxhdGlvbkluZm8odW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgYmFkVHlwZUp1
bXAsIEpJVEFycmF5TW9kZSBhcnJheU1vZGUsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25lVGFy
Z2V0KQorICAgICAgICAgICAgOiBieXRlY29kZUluZGV4KGJ5dGVjb2RlSW5kZXgpCiAgICAgICAg
ICAgICAsIGJhZFR5cGVKdW1wKGJhZFR5cGVKdW1wKQogICAgICAgICAgICAgLCBhcnJheU1vZGUo
YXJyYXlNb2RlKQotICAgICAgICAgICAgLCBhcnJheVByb2ZpbGUoYXJyYXlQcm9maWxlKQogICAg
ICAgICAgICAgLCBkb25lVGFyZ2V0KGRvbmVUYXJnZXQpCiAgICAgICAgIHsKICAgICAgICAgfQot
Ci0gICAgICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvOworICAgICAgICAKICAgICAgICAgdW5zaWdu
ZWQgYnl0ZWNvZGVJbmRleDsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAg
bm90SW5kZXhKdW1wOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBiYWRU
eXBlSnVtcDsKICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsKLSAgICAgICAgQXJyYXlQ
cm9maWxlKiBhcnJheVByb2ZpbGU7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBkb25l
VGFyZ2V0OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc2xvd1BhdGhUYXJnZXQ7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHJldHVybkFkZHJlc3M7CkBAIC0yMTAsMTMgKzIw
NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxlR2V0
QnlWYWwoYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBhcnJheU1vZGUpOwogICAgICAgICB9CiAK
LSAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZUdldEJ5VmFsV2l0aENhY2hlZElkKFZNKiB2bSwg
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJsb2NrKTsKLSAgICAgICAgICAgIGpp
dC5tX2J5dGVjb2RlT2Zmc2V0ID0gYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwotICAgICAgICAg
ICAgaml0LnByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoYnlWYWxJbmZvLCByZXR1
cm5BZGRyZXNzLCBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB9Ci0KICAgICAgICAgc3RhdGljIHZv
aWQgY29tcGlsZVB1dEJ5VmFsKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5VmFsSW5m
byogYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpJVCBqaXQodm0sIGNvZGVCbG9j
ayk7CkBAIC0yNTksNyArMjQ2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbXBpbGF0
aW9uUmVzdWx0IHByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0KTsKICAgICAgICAg
CiAgICAgICAgIHZvaWQgcHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZhbEluZm8qLCBSZXR1cm5B
ZGRyZXNzUHRyLCBKSVRBcnJheU1vZGUpOwotICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlR2V0
QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZvKiwgUmV0dXJuQWRkcmVzc1B0ciwgY29uc3QgSWRl
bnRpZmllciYpOwogICAgICAgICB2b2lkIHByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZv
KiwgUmV0dXJuQWRkcmVzc1B0ciwgSklUQXJyYXlNb2RlKTsKIAogICAgICAgICB2b2lkIHByaXZh
dGVDb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KEJ5VmFsSW5mbyosIFJldHVybkFkZHJlc3NQdHIs
IEpJVEFycmF5TW9kZSk7CkBAIC0zODUsOSArMzcxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEp1bXBMaXN0IGVtaXRBcnJheVN0b3JhZ2VQdXRCeVZhbChJbnN0cnVjdGlvbiosIFBhdGNo
YWJsZUp1bXAmIGJhZFR5cGUpOwogICAgICAgICBKdW1wTGlzdCBlbWl0SW50VHlwZWRBcnJheVB1
dEJ5VmFsKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgVHlwZWRBcnJheVR5
cGUpOwogICAgICAgICBKdW1wTGlzdCBlbWl0RmxvYXRUeXBlZEFycmF5UHV0QnlWYWwoSW5zdHJ1
Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5VHlwZSk7Ci0KLSAgICAg
ICAgSklUR2V0QnlJZEdlbmVyYXRvciBlbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rp
b24qLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNs
b3dDYXNlcyk7Ci0KKyAgICAgICAgCiAgICAgICAgIGVudW0gRmluYWxPYmplY3RNb2RlIHsgTWF5
QmVGaW5hbCwgS25vd25Ob3RGaW5hbCB9OwogCiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiBKdW1wIGJyYW5jaFN0cnVjdHVyZShSZWxhdGlvbmFsQ29uZGl0aW9uLCBUIGxlZnRIYW5kU2lk
ZSwgU3RydWN0dXJlKik7CkBAIC03MTgsNyArNzAyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpJ
ZGMsIGludCwgR1BSUmVnLCBjb25zdCBJZGVudGlmaWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywg
R1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7Ci0g
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25f
RUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2MsIEdQUlJlZyk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpzY0MsIGludCwgR1BSUmVnLCBKU0NlbGwqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihDX0pJVE9wZXJhdGlvbl9FSnNjWiwgR1BSUmVnLCBpbnQzMl90
KTsKQEAgLTc2Myw3ICs3NDYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICNlbmRpZgogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpBcCwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgQXJyYXlQcm9maWxlKik7Ci0gICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkJ5LCBSZWdpc3Rl
cklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlpKLCBSZWdpc3Rl
cklELCBpbnQzMl90LCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlosIFJlZ2lzdGVySUQsIGludDMyX3QpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9u
X0VQYywgSW5zdHJ1Y3Rpb24qKTsKQEAgLTc4MCw3ICs3NjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSklkYywgaW50LCBHUFJSZWcsIEdQUlJlZywgY29uc3QgSWRlbnRpZmllciopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwg
aW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJl
ZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7Ci0gICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwg
R1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJl
ZywgR1BSUmVnLCBzaXplX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkos
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpAQCAtNzg4
LDcgKzc2OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKLCBSZWdpc3RlcklELCBSZWdpc3RlcklE
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJh
dGlvbl9FSkpKLCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklELCBSZWdpc3RlcklE
LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpKQXAsIFJlZ2lzdGVySUQsIFJlZ2lzdGVy
SUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQsIEFycmF5
UHJvZmlsZSopOwotICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKSkpCeSwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwg
UmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCwgQnlWYWxJbmZvKik7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpaLCBS
ZWdpc3RlcklELCBSZWdpc3RlcklELCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlpKLCBSZWdpc3RlcklELCBSZWdp
c3RlcklELCBpbnQzMl90LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FWkosIGludDMyX3Qs
IFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaAppbmRleCA1ZDY4NjkwMDgxYzk5NmQ3ZTMzYmYzYmQyNWRjYzU4YjAzMGY3ZDZjLi5kMDhk
NzNlYWQ3NDBhZGY4ZGE5NjZmM2FkMjg4NDg2MzNkNjRiNjhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaApAQCAtNDExLDEyICs0MTEsNiBAQCBBTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSkpK
QXAgb3BlcgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlv
bik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpCeSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3Ax
LCBSZWdpc3RlcklEIHJlZ09wMiwgUmVnaXN0ZXJJRCByZWdPcDMsIEJ5VmFsSW5mbyogYnlWYWxJ
bmZvKQotewotICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMiwg
cmVnT3AzLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mbykpOwotICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Ci19Ci0KIEFMV0FZU19JTkxJTkUgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaSiBvcGVy
YXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKFRydXN0ZWRJbW0zMihkc3QpLCBhcmcpOwpAQCAtNDY1LDEyICs0NTksNiBAQCBBTFdB
WVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSkpBcCBvcGVyYQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKLUFMV0FZU19JTkxJTkUg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SkJ5IG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBCeVZhbElu
Zm8qIGJ5VmFsSW5mbykKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMiwgVHJ1c3RlZEltbVB0cihieVZhbEluZm8pKTsKLSAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwotfQotCiBB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5vRXhj
ZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSkKIHsK
ICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSk7CkBAIC02MTIsMTIgKzYwMCw2
IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAotQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKQnkgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFy
ZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBCeVZhbEluZm8q
IGJ5VmFsSW5mbykKLXsKLSAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJ
VF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgYXJn
MlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvKSk7Ci0gICAgcmV0dXJu
IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwg
ZHN0KTsKLX0KLQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oSklUOjpXaXRoUHJvZmlsZVRhZywgSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlv
biwgaW50IGRzdCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFy
ZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFNINF8zMkJJ
VF9EVU1NWV9BUkcgYXJnMlBheWxvYWQsIGFyZzJUYWcpOwpAQCAtNjg0LDEyICs2NjYsNiBAQCBB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJ
VE9wZXJhdGlvbl9FSkpKQXAgb3BlcgogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKLUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpCeSBvcGVyYXRpb24sIFJl
Z2lzdGVySUQgcmVnT3AxVGFnLCBSZWdpc3RlcklEIHJlZ09wMVBheWxvYWQsIFJlZ2lzdGVySUQg
cmVnT3AyVGFnLCBSZWdpc3RlcklEIHJlZ09wMlBheWxvYWQsIFJlZ2lzdGVySUQgcmVnT3AzVGFn
LCBSZWdpc3RlcklEIHJlZ09wM1BheWxvYWQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQotewotICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyByZWdPcDFQ
YXlsb2FkLCByZWdPcDFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgcmVnT3AyUGF5bG9hZCwgcmVn
T3AyVGFnLCByZWdPcDNQYXlsb2FkLCByZWdPcDNUYWcsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZv
KSk7Ci0gICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsK
LX0KLQogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b24oVl9KSVRPcGVyYXRpb25fRVpKIG9wZXJhdGlvbiwgaW50IGRzdCwgUmVnaXN0ZXJJRCByZWdP
cDFUYWcsIFJlZ2lzdGVySUQgcmVnT3AxUGF5bG9hZCkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKGRzdCksIHJlZ09wMVBheWxvYWQsIHJlZ09wMVRhZyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA4YzhiZTc4MDkw
Yjk2OGYwYWVlNzA3YTVlMDNiYWFiNGM0ZTY3NDQ2Li5kM2NmMGRmZGY3ZTE1MGQ5ZDMxMDYyYjI5
ZDhhNmY1ODNmNmEwMDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKQEAgLTEwNjcsNyArMTA2Nyw2IEBAIHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3By
b3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJl
bnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0g
Y3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlW
YWxJbmZvID0gbV9jb2RlQmxvY2stPmFkZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwogCkBAIC0xMDk5
LDcgKzEwOTgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoZHN0KTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZh
bENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1
bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJh
ZFR5cGUsIG1vZGUsIGRvbmUpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRl
eGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0xMTA3LDcgKzExMDYsNyBAQCB2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdAogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kOwogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsK
ICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAg
IEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5z
dHJ1Y3Rpb25JbmRleF0uYnlWYWxJbmZvOworICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBsaW5rU2xvd0Nh
c2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAgbGlua1Ns
b3dDYXNlKGl0ZXIpOyAvLyBiYXNlIGFycmF5IGNoZWNrCkBAIC0xMTE4LDcgKzExMTcsNyBAQCB2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdAogICAgIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
YmFzZSwgcmVnVDApOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1Qx
KTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9w
ZXJ0eURlZmF1bHQsIGRzdCwgcmVnVDAsIHJlZ1QxLCBieVZhbEluZm8pOworICAgIENhbGwgY2Fs
bCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0
LCByZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwogCiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1tt
X2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhUYXJnZXQgPSBzbG93UGF0aDsKICAgICBt
X2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRy
ZXNzID0gY2FsbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0
LmNwcAppbmRleCAyNTc4ZTViNTg0YWUxN2RhN2E1NzBkYzY5N2ExZGY1MTI5ZjJiNTczLi40M2Uw
MmVlODUxZjdlN2ZjZDc2ZjhkNTMyYWNjMTI4MjBlYzM0ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xMDY3LDcgKzEwNjcsNiBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
OwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFy
cmF5UHJvZmlsZTsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRC
eVZhbEluZm8oKTsKICAgICAKICAgICBlbWl0TG9hZFBheWxvYWQoYmFzZSwgcmVnVDApOwogICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlKTsKQEAgLTExMDAsNyArMTA5OSw3IEBA
IHZvaWQgSklUOjplbWl0X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgCiAgICAgZW1pdFN0b3JlQm9vbChkc3QsIHJlZ1QwKTsKICAg
ICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5m
byhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwg
bW9kZSwgcHJvZmlsZSwgZG9uZSkpOworICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5k
KEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRv
bmUpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2hhc19pbmRleGVkX3Byb3BlcnR5KElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCkBAIC0xMTA4LDcgKzExMDcsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
aGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dAogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGlu
dCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVy
dHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIEJ5VmFsSW5mbyogYnlW
YWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0u
YnlWYWxJbmZvOworICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51LmFycmF5UHJvZmlsZTsKICAgICAKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChp
dGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxsIGNoZWNrCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAv
LyBiYXNlIGFycmF5IGNoZWNrCkBAIC0xMTE5LDcgKzExMTgsNyBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfaGFzX2luZGV4ZWRfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgVmVjdAogICAgIAogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1p
dExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0LCBkc3QsIHJlZ1QxLCByZWdU
MCwgcmVnVDMsIHJlZ1QyLCBieVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVmYXVsdCwgZHN0LCByZWdUMSwgcmVnVDAs
IHJlZ1QzLCByZWdUMiwgcHJvZmlsZSk7CiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21f
YnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwogICAgIG1f
YnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJl
c3MgPSBjYWxsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAK
aW5kZXggN2FlNDNmMGEwYTlhNWVhNzEyYzliYjA0YzkyZDI2MDkyM2JkNzM1NC4uYjU5MTM0ZWFm
NzVmZTgwOTJlYTJhMmNiNWVjY2U0ZTVmNGY3MTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC00NzgsNyArNDc4LDcgQEAgdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmoKICAgICBiYXNlLT5wdXREaXJlY3Qodm0sIG9mZnNldCwgSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUs
IEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2
YWx1ZSwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gY2FsbEZy
YW1lLT52bSgpOwogICAgIGlmIChMSUtFTFkoc3Vic2NyaXB0LmlzVUludDMyKCkpKSB7CkBAIC00
ODgsNyArNDg4LDcgQEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICAgICAgICAgIGlmIChv
YmplY3QtPmNhblNldEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAgICAgICBvYmplY3QtPnNl
dEluZGV4UXVpY2tseShjYWxsRnJhbWUtPnZtKCksIGksIHZhbHVlKTsKICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5zZXRPdXRPZkJv
dW5kcygpOworICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsK
ICAgICAgICAgICAgICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+cHV0QnlJbmRleChvYmpl
Y3QsIGNhbGxGcmFtZSwgaSwgdmFsdWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0
TW9kZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCkBAIC01MDIsNyArNTAyLDcg
QEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFz
ZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGRpcmVj
dFB1dEJ5VmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNW
YWx1ZSBzdWJzY3JpcHQsIEpTVmFsdWUgdmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorc3Rh
dGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQXJyYXlQcm9maWxl
KiBhcnJheVByb2ZpbGUpCiB7CiAgICAgYm9vbCBpc1N0cmljdE1vZGUgPSBjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKTsKICAgICBpZiAoTElLRUxZKHN1YnNjcmlwdC5pc1VJ
bnQzMigpKSkgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFs
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBieVZhbEluZm8tPmFycmF5
UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKKyAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRP
ZkJvdW5kcygpOwogICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUs
IGluZGV4LCB2YWx1ZSwgMCwgaXNTdHJpY3RNb2RlID8gUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJv
dyA6IFB1dERpcmVjdEluZGV4U2hvdWxkTm90VGhyb3cpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtNTQwLDcgKzU0MCw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzCiAgICAgICAgIGJh
c2VPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xv
dCk7CiAgICAgfQogfQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbElu
Zm8qIGJ5VmFsSW5mbykKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJyYXlQ
cm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBO
YXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC01NTQsMTkgKzU1NCwy
MSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWwoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZQogICAgICAgICBKU09iamVjdCogb2JqZWN0ID0g
YXNPYmplY3QoYmFzZVZhbHVlKTsKICAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwog
Ci0gICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAg
ICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7CisgICAgICAgIHVuc2lnbmVkIGJ5
dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAg
IEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0g
ZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAg
ICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CiAKICAgICAgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgIGlmIChoYXNPcHRp
bWl6YWJsZUluZGV4aW5nKHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8g
b3B0aW1pemUuCiAgICAgICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlN
b2RlRm9yU3RydWN0dXJlKHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBpZiAoaml0QXJyYXlNb2Rl
UGVybWl0c1B1dChhcnJheU1vZGUpICYmIGFycmF5TW9kZSAhPSBieVZhbEluZm8tPmFycmF5TW9k
ZSkgeworICAgICAgICAgICAgaWYgKGppdEFycmF5TW9kZVBlcm1pdHNQdXQoYXJyYXlNb2RlKSAm
JiBhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgewogICAgICAgICAgICAgICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CiAgICAgICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAg
ICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQcm9maWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24o
bG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgYXJyYXlQcm9m
aWxlLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24obG9ja2VyLCBjb2RlQmxvY2ssIHN0cnVjdHVy
ZSk7CiAKLSAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0sIGV4ZWMtPmNv
ZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNT
KSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbCgmdm0s
IGV4ZWMtPmNvZGVCbG9jaygpLCAmYnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRV
Uk5fQUREUkVTUyksIGFycmF5TW9kZSk7CiAgICAgICAgICAgICAgICAgZGlkT3B0aW1pemUgPSB0
cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NzcsNyArNTc5LDcgQEAgdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVk
IGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAg
ICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywg
dGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1
bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9y
cGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAor
ICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAg
ICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAgICAg
ICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5B
ZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvblB1dEJ5
VmFsR2VuZXJpYykpOwpAQCAtNTg1LDEwICs1ODcsMTAgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UKICAgICAgICAgfQogICAgIH0KIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vi
c2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUs
IHN1YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK3ZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFt
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBBcnJheVByb2ZpbGUqIGFy
cmF5UHJvZmlsZSkKIHsKICAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGNhbGxGcmFtZSk7CkBAIC02MDEsMjAgKzYwMywy
MiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRl
KiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlCiAgICAgaWYgKHN1YnNjcmlwdC5pc0ludDMyKCkp
IHsKICAgICAgICAgLy8gU2VlIGlmIGl0J3Mgd29ydGggb3B0aW1pemluZyBhdCBhbGwuCiAgICAg
ICAgIGJvb2wgZGlkT3B0aW1pemUgPSBmYWxzZTsKLQotICAgICAgICBBU1NFUlQoY2FsbEZyYW1l
LT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgIEFTU0VSVCghYnlWYWxJbmZv
LT5zdHViUm91dGluZSk7CisgICAgICAgIAorICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNl
dCA9IGNhbGxGcmFtZS0+bG9jYXRpb25Bc0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgIEFTU0VS
VChieXRlY29kZU9mZnNldCk7CisgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gY2FsbEZy
YW1lLT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAg
ICAgIEFTU0VSVCghYnlWYWxJbmZvLnN0dWJSb3V0aW5lKTsKIAogICAgICAgICBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKGhhc09wdGlt
aXphYmxlSW5kZXhpbmcoc3RydWN0dXJlKSkgewogICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBv
cHRpbWl6ZS4KICAgICAgICAgICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGUgPSBqaXRBcnJheU1v
ZGVGb3JTdHJ1Y3R1cmUoc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGlmIChqaXRBcnJheU1vZGVQ
ZXJtaXRzUHV0KGFycmF5TW9kZSkgJiYgYXJyYXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2Rl
KSB7CisgICAgICAgICAgICBpZiAoaml0QXJyYXlNb2RlUGVybWl0c1B1dChhcnJheU1vZGUpICYm
IGFycmF5TW9kZSAhPSBieVZhbEluZm8uYXJyYXlNb2RlKSB7CiAgICAgICAgICAgICAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAg
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAg
ICAgICAgICAgICBieVZhbEluZm8tPmFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0
aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGFycmF5
UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1
Y3R1cmUpOwogCi0gICAgICAgICAgICAgICAgSklUOjpjb21waWxlRGlyZWN0UHV0QnlWYWwoJnZt
LCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VS
X1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBp
bGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksICZieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsKICAgICAg
ICAgICAgICAgICBkaWRPcHRpbWl6ZSA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTYyNSwxNyArNjI5LDE3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbChFeGVjU3RhdGUqIGNhbGxGcmFtZSwgRW5jb2RlZEpTVmFsdWUKICAgICAgICAgICAg
IC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50
aWwgMTAgdGltZXMuIEZvciBjYXNlcwogICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1p
bmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRo
IG9mCiAgICAgICAgICAgICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRo
ZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFs
SW5mby0+c2xvd1BhdGhDb3VudCA+PSAxMAorICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNs
b3dQYXRoQ291bnQgPj0gMTAKICAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2
bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybygpKSB7CiAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkg
dG8gb3B0aW1pemUuCiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNz
KGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERS
RVNTKSwgRnVuY3Rpb25QdHIob3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmljKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgZGlyZWN0UHV0QnlWYWwoY2FsbEZyYW1l
LCBvYmplY3QsIHN1YnNjcmlwdCwgdmFsdWUsIGJ5VmFsSW5mbyk7CisgICAgZGlyZWN0UHV0QnlW
YWwoY2FsbEZyYW1lLCBvYmplY3QsIHN1YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEJ5VmFsSW5mbyog
YnlWYWxJbmZvKQordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQXJy
YXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CkBAIC02NDQsMTEgKzY0
OCwxMSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jbwogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKIAotICAgIHB1dEJ5VmFsKGV4ZWMsIGJhc2VW
YWx1ZSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBwdXRCeVZhbChleGVjLCBi
YXNlVmFsdWUsIHN1YnNjcmlwdCwgdmFsdWUsIGFycmF5UHJvZmlsZSk7CiB9CiAKIAotdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgQnlWYWxJbmZvKiBieVZh
bEluZm8pCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmlj
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwog
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKQEAgLTY1Nyw3ICs2
NjEsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5lcmlj
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdQogICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKICAgICBSRUxFQVNFX0FTU0VSVChiYXNlVmFs
dWUuaXNPYmplY3QoKSk7Ci0gICAgZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmplY3QoYmFzZVZh
bHVlKSwgc3Vic2NyaXB0LCB2YWx1ZSwgYnlWYWxJbmZvKTsKKyAgICBkaXJlY3RQdXRCeVZhbChl
eGVjLCBhc09iamVjdChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlLCBhcnJheVByb2ZpbGUp
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxFdmFsKEV4
ZWNTdGF0ZSogZXhlYywgRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQpAQCAtMTQxMCw0MSArMTQxNCwz
NCBAQCBzdGF0aWMgYm9vbCBjYW5BY2Nlc3NBcmd1bWVudEluZGV4UXVpY2tseShKU09iamVjdCYg
b2JqZWN0LCB1aW50MzJfdCBpbmRleCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBK
U1ZhbHVlIGdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFs
dWUgc3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1
cm5BZGRyZXNzKQorc3RhdGljIEpTVmFsdWUgZ2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9m
aWxlLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCiB7CiAgICAgaWYgKExJS0VMWShi
YXNlVmFsdWUuaXNDZWxsKCkgJiYgc3Vic2NyaXB0LmlzU3RyaW5nKCkpKSB7CiAgICAgICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKmJhc2VW
YWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKEpTQ2VsbDo6Y2FuVXNl
RmFzdEdldE93blByb3BlcnR5KHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8
QXRvbWljU3RyaW5nSW1wbD4gZXhpc3RpbmdBdG9taWNTdHJpbmcgPSBhc1N0cmluZyhzdWJzY3Jp
cHQpLT50b0V4aXN0aW5nQXRvbWljU3RyaW5nKGV4ZWMpKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KEpTVmFsdWUgcmVzdWx0ID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHko
dm0sIHN0cnVjdHVyZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcuZ2V0KCkpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFsSW5mby0+Y2Fj
aGVkSWQuaW1wbCgpICE9IGV4aXN0aW5nQXRvbWljU3RyaW5nKQotICAgICAgICAgICAgICAgICAg
ICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOworICAgICAgICAgICAgICAgIGlm
IChKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blByb3BlcnR5
KHZtLCBzdHJ1Y3R1cmUsIGV4aXN0aW5nQXRvbWljU3RyaW5nLmdldCgpKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoc3Vic2NyaXB0LmlzVUludDMyKCkpIHsKLSAg
ICAgICAgQVNTRVJUKGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpKTsKLSAgICAgICAg
YnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwotCiAgICAgICAgIHVpbnQzMl90IGkgPSBz
dWJzY3JpcHQuYXNVSW50MzIoKTsKICAgICAgICAgaWYgKGlzSlNTdHJpbmcoYmFzZVZhbHVlKSkg
ewogICAgICAgICAgICAgaWYgKGFzU3RyaW5nKGJhc2VWYWx1ZSktPmNhbkdldEluZGV4KGkpKSB7
CiAgICAgICAgICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVC
bG9jaygpLCByZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbFN0cmlu
ZykpOwogICAgICAgICAgICAgICAgIHJldHVybiBhc1N0cmluZyhiYXNlVmFsdWUpLT5nZXRJbmRl
eChleGVjLCBpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJ5VmFsSW5mby0+YXJyYXlQ
cm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOworICAgICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRP
dXRPZkJvdW5kcygpOwogICAgICAgICB9IGVsc2UgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpKSB7
CiAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbHVlKTsKICAg
ICAgICAgICAgIGlmIChvYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gb2JqZWN0LT5nZXRJbmRleFF1aWNrbHkoaSk7CiAKICAgICAgICAgICAgIGlm
ICghY2FuQWNjZXNzQXJndW1lbnRJbmRleFF1aWNrbHkoKm9iamVjdCwgaSkpCi0gICAgICAgICAg
ICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRzKCk7CisgICAgICAg
ICAgICAgICAgYXJyYXlQcm9maWxlLT5zZXRPdXRPZkJvdW5kcygpOwogICAgICAgICB9CiAKICAg
ICAgICAgcmV0dXJuIGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CkBAIC0xNDU2LDkxICsxNDUzLDc0
IEBAIHN0YXRpYyBKU1ZhbHVlIGdldEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNl
VmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBCCiAgICAgYXV0byBwcm9wZXJ0eSA9IHN1YnNjcmlw
dC50b1Byb3BlcnR5S2V5KGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25B
c0J5dGVjb2RlT2Zmc2V0KCkpOwotICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmIGJ5VmFs
SW5mby0+Y2FjaGVkSWQgIT0gcHJvcGVydHkpCi0gICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQ
YXRoID0gdHJ1ZTsKLQogICAgIHJldHVybiBiYXNlVmFsdWUuZ2V0KGV4ZWMsIHByb3BlcnR5KTsK
IH0KIAogZXh0ZXJuICJDIiB7CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qIGJ5
VmFsSW5mbykKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxH
ZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRy
YWNlcigmdm0sIGV4ZWMpOwogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRCYXNlKTsKICAgICBKU1ZhbHVlIHN1YnNjcmlwdCA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkU3Vic2NyaXB0KTsKIAotICAgIEpTVmFsdWUgcmVzdWx0ID0gZ2V0QnlWYWwoZXhlYywg
YmFzZVZhbHVlLCBzdWJzY3JpcHQsIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVU
VVJOX0FERFJFU1MpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VW
YWx1ZSwgc3Vic2NyaXB0LCBhcnJheVByb2ZpbGUsIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVS
Tl9BRERSRVNTKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKiBieVZhbEluZm8pCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgSlNW
YWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFs
dWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwotCisgICAg
CiAgICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIHN1YnNjcmlwdC5pc0ludDMyKCkpIHsK
ICAgICAgICAgLy8gU2VlIGlmIGl0J3Mgd29ydGggb3B0aW1pemluZyB0aGlzIGF0IGFsbC4KICAg
ICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CiAgICAgICAgIGJv
b2wgZGlkT3B0aW1pemUgPSBmYWxzZTsKIAotICAgICAgICBBU1NFUlQoZXhlYy0+bG9jYXRpb25B
c0J5dGVjb2RlT2Zmc2V0KCkpOwotICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRp
bmUpOwotCisgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gZXhlYy0+bG9jYXRpb25B
c0J5dGVjb2RlT2Zmc2V0KCk7CisgICAgICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAg
ICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhlYy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5m
byhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91
dGluZSk7CisgICAgICAgIAogICAgICAgICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhvYmpl
Y3QtPnN0cnVjdHVyZSh2bSkpKSB7CiAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG9wdGltaXpl
LgogICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBvYmplY3QtPnN0cnVjdHVyZSh2
bSk7CiAgICAgICAgICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlID0gaml0QXJyYXlNb2RlRm9y
U3RydWN0dXJlKHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFs
SW5mby0+YXJyYXlNb2RlKSB7CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5m
by5hcnJheU1vZGUpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIHRoaXMgY2Fz
ZSwgd2UgZ290IGFuIGludGVyZXN0aW5nIGFycmF5IG1vZGUgd2UgZGlkIG5vdCBleHBlY3Qgd2hl
biB3ZSBjb21waWxlZC4KICAgICAgICAgICAgICAgICAvLyBMZXQncyB1cGRhdGUgdGhlIHByb2Zp
bGUgdG8gZG8gYmV0dGVyIG5leHQgdGltZS4KICAgICAgICAgICAgICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgICAgICBieVZh
bEluZm8tPmFycmF5UHJvZmlsZS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29k
ZUJsb2NrLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGFycmF5UHJvZmlsZS0+Y29tcHV0
ZVVwZGF0ZWRQcmVkaWN0aW9uKGxvY2tlciwgY29kZUJsb2NrLCBzdHJ1Y3R1cmUpOwogCi0gICAg
ICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwg
YnlWYWxJbmZvLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9k
ZSk7CisgICAgICAgICAgICAgICAgSklUOjpjb21waWxlR2V0QnlWYWwoJnZtLCBleGVjLT5jb2Rl
QmxvY2soKSwgJmJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1Mp
LCBhcnJheU1vZGUpOwogICAgICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBpZiAoIWRpZE9wdGltaXpl
KSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSB0YWtlIHNsb3cgcGF0aCBtb3JlIHRoYW4gMTAgdGlt
ZXMgd2l0aG91dCBwYXRjaGluZyB0aGVuIG1ha2Ugc3VyZSB3ZQogICAgICAgICAgICAgLy8gbmV2
ZXIgbWFrZSB0aGF0IG1pc3Rha2UgYWdhaW4uIE9yLCBpZiB3ZSBmYWlsZWQgdG8gcGF0Y2ggYW5k
IHdlIGhhdmUgc29tZSBvYmplY3QKICAgICAgICAgICAgIC8vIHRoYXQgaW50ZXJjZXB0cyBpbmRl
eGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdhaXQgdW50aWwgMTAgdGltZXMuIEZvciBjYXNlcwog
ICAgICAgICAgICAgLy8gd2hlcmUgd2Ugc2VlIG5vbi1pbmRleC1pbnRlcmNlcHRpbmcgb2JqZWN0
cywgdGhpcyBnaXZlcyAxMCBpdGVyYXRpb25zIHdvcnRoIG9mCiAgICAgICAgICAgICAvLyBvcHBv
cnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1heSBiZSBwb2x5
bW9ycGhpYy4KLSAgICAgICAgICAgIGlmICgrK2J5VmFsSW5mby0+c2xvd1BhdGhDb3VudCA+PSAx
MAorICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQgPj0gMTAKICAgICAg
ICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAg
ICAgICAgICAgICAgICAgLy8gRG9uJ3QgZXZlciB0cnkgdG8gb3B0aW1pemUuCiAgICAgICAgICAg
ICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1
cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYykpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotCi0gICAg
aWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCBzdWJz
Y3JpcHQuaXNTdHJpbmcoKSkpIHsKLSAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5h
bWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShleGVjKTsKLQotICAgICAgICBpZiAoIXN1YnNj
cmlwdC5pc1N0cmluZygpIHx8ICFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKLSAgICAgICAg
ICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAg
ICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOwotICAgICAgICAgICAgSklUOjpjb21w
aWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZv
LCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIHByb3BlcnR5TmFtZSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOwotICAgICAg
ICBib29sIGhhc1Jlc3VsdCA9IGJhc2VWYWx1ZS5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShoYXNSZXN1bHQg
PyBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSkgOiBqc1VuZGVmaW5lZCgpKTsKLSAg
ICB9Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldEJ5VmFsKGV4ZWMsIGJhc2VWYWx1ZSwgc3Vi
c2NyaXB0LCBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSk7
CisgICAgCisgICAgSlNWYWx1ZSByZXN1bHQgPSBnZXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1
YnNjcmlwdCwgYXJyYXlQcm9maWxlLCBSZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVT
UykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KLQotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQorICAgIAorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0s
IGV4ZWMpOwpAQCAtMTU1MywxNCArMTUzMywxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBleGVjLAog
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwogICAgIGJvb2wgZGlk
T3B0aW1pemUgPSBmYWxzZTsKIAotICAgIEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVP
ZmZzZXQoKSk7Ci0gICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKKyAgICB1bnNp
Z25lZCBieXRlY29kZU9mZnNldCA9IGV4ZWMtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOwor
ICAgIEFTU0VSVChieXRlY29kZU9mZnNldCk7CisgICAgQnlWYWxJbmZvJiBieVZhbEluZm8gPSBl
eGVjLT5jb2RlQmxvY2soKS0+Z2V0QnlWYWxJbmZvKGJ5dGVjb2RlT2Zmc2V0IC0gMSk7CisgICAg
QVNTRVJUKCFieVZhbEluZm8uc3R1YlJvdXRpbmUpOwogICAgIAogICAgIGlmIChoYXNPcHRpbWl6
YWJsZUluZGV4aW5nKG9iamVjdC0+c3RydWN0dXJlKHZtKSkpIHsKICAgICAgICAgLy8gQXR0ZW1w
dCB0byBvcHRpbWl6ZS4KICAgICAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZSA9IGppdEFycmF5
TW9kZUZvclN0cnVjdHVyZShvYmplY3QtPnN0cnVjdHVyZSh2bSkpOwotICAgICAgICBpZiAoYXJy
YXlNb2RlICE9IGJ5VmFsSW5mby0+YXJyYXlNb2RlKSB7Ci0gICAgICAgICAgICBKSVQ6OmNvbXBp
bGVIYXNJbmRleGVkUHJvcGVydHkoJnZtLCBleGVjLT5jb2RlQmxvY2soKSwgYnlWYWxJbmZvLCBS
ZXR1cm5BZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIGFycmF5TW9kZSk7CisgICAgICAg
IGlmIChhcnJheU1vZGUgIT0gYnlWYWxJbmZvLmFycmF5TW9kZSkgeworICAgICAgICAgICAgSklU
Ojpjb21waWxlSGFzSW5kZXhlZFByb3BlcnR5KCZ2bSwgZXhlYy0+Y29kZUJsb2NrKCksICZieVZh
bEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwgYXJyYXlNb2RlKTsK
ICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTE1
NzEsMTAgKzE1NTMsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25I
YXNJbmRleGVkUHJvcGVydHlEZWZhdWx0KEV4ZWNTdGF0ZSogZXhlYywKICAgICAgICAgLy8gdGhh
dCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0
aW1lcy4gRm9yIGNhc2VzCiAgICAgICAgIC8vIHdoZXJlIHdlIHNlZSBub24taW5kZXgtaW50ZXJj
ZXB0aW5nIG9iamVjdHMsIHRoaXMgZ2l2ZXMgMTAgaXRlcmF0aW9ucyB3b3J0aCBvZgogICAgICAg
ICAvLyBvcHBvcnR1bml0eSBmb3IgdXMgdG8gb2JzZXJ2ZSB0aGF0IHRoZSBnZXRfYnlfdmFsIG1h
eSBiZSBwb2x5bW9ycGhpYy4KLSAgICAgICAgaWYgKCsrYnlWYWxJbmZvLT5zbG93UGF0aENvdW50
ID49IDEwCisgICAgICAgIGlmICgrK2J5VmFsSW5mby5zbG93UGF0aENvdW50ID49IDEwCiAgICAg
ICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybygpKSB7CiAgICAg
ICAgICAgICAvLyBEb24ndCBldmVyIHRyeSB0byBvcHRpbWl6ZS4KLSAgICAgICAgICAgIGN0aVBh
dGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwgUmV0dXJuQWRkcmVzc1B0
cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihvcGVyYXRpb25IYXNJbmRleGVkUHJv
cGVydHlHZW5lcmljKSk7CisgICAgICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3Mo
ZXhlYy0+Y29kZUJsb2NrKCksIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9BRERSRVNTKSwg
RnVuY3Rpb25QdHIob3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYykpOyAKICAgICAg
ICAgfQogICAgIH0KIApAQCAtMTU4MywxMSArMTU2NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRlKiBl
eGVjLAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNWYWx1ZTo6SlNU
cnVlKSk7CiAKICAgICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlja2x5KCpvYmplY3Qs
IGluZGV4KSkKLSAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNldE91dE9mQm91bmRz
KCk7CisgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGluZGV4
KSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJ
bmRleGVkUHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyogYnlW
YWxJbmZvKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVk
UHJvcGVydHlHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFycmF5UHJvZmlsZSogYXJyYXlQ
cm9maWxlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTYwMywxMSArMTU4NSwxMSBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eUdlbmVyaWMo
RXhlY1N0YXRlKiBleGVjLAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
SlNWYWx1ZTo6SlNUcnVlKSk7CiAKICAgICBpZiAoIWNhbkFjY2Vzc0FyZ3VtZW50SW5kZXhRdWlj
a2x5KCpvYmplY3QsIGluZGV4KSkKLSAgICAgICAgYnlWYWxJbmZvLT5hcnJheVByb2ZpbGUtPnNl
dE91dE9mQm91bmRzKCk7CisgICAgICAgIGFycmF5UHJvZmlsZS0+c2V0T3V0T2ZCb3VuZHMoKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihvYmplY3QtPmhhc1Byb3BlcnR5
KGV4ZWMsIHN1YnNjcmlwdC5hc1VJbnQzMigpKSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0
LCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCkKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVj
KTsKQEAgLTE2MjIsOCArMTYwNCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVgogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIHJlc3VsdCA9IGJhc2VWYWx1ZS5nZXQoZXhlYywgaSk7CiAg
ICAgICAgICAgICBpZiAoIWlzSlNTdHJpbmcoYmFzZVZhbHVlKSkgewotICAgICAgICAgICAgICAg
IEFTU0VSVChleGVjLT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7Ci0gICAgICAgICAgICAg
ICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGV4ZWMtPmNvZGVCbG9jaygpLCBSZXR1cm5B
ZGRyZXNzUHRyKE9VUl9SRVRVUk5fQUREUkVTUyksIEZ1bmN0aW9uUHRyKGJ5VmFsSW5mby0+c3R1
YlJvdXRpbmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRCeVZhbE9w
dGltaXplKSk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQgPSBleGVj
LT5sb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYnl0
ZWNvZGVPZmZzZXQpOworICAgICAgICAgICAgICAgIEJ5VmFsSW5mbyYgYnlWYWxJbmZvID0gZXhl
Yy0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOworICAgICAg
ICAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhleGVjLT5jb2RlQmxvY2soKSwg
UmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0cihieVZhbElu
Zm8uc3R1YlJvdXRpbmUgPyBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25HZXRC
eVZhbE9wdGltaXplKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2Ugewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAzZDgzZjU5MGRj
ZjkxODAzYTM0NDhiYTA4M2IyZjkyYmNiZTg0ZjliLi4yZWYyYTU2OTlmN2YzYWQwZTc3MGY0Nzg4
ZTk0M2YwN2Y4MTBiYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaApAQCAtNTgsNyArNTgsNiBAQCBleHRlcm4gIkMiIHsKICAgICBBOiBKU0FycmF5KgogICAg
IEFhcDogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSoKICAgICBBcDogQXJyYXlQcm9maWxlKgotICAg
IEJ5OiBCeVZhbEluZm8qCiAgICAgQzogSlNDZWxsKgogICAgIENiOiBDb2RlQmxvY2sqCiAgICAg
Q2xpOiBDYWxsTGlua0luZm8qCkBAIC0xMTQsNyArMTEzLDYgQEAgdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpJKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlMKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0
aW9uX0VKSWRjKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciop
OwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25f
RUpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKQXApKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxlKik7
Ci10eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SkpCeSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBCeVZhbElu
Zm8qKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0
aW9uX0VKc3NaKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpOwogdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpQKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgdm9pZCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRVApKEV4ZWNTdGF0ZSosIHZvaWQqKTsKQEAgLTE5Nyw3
ICsxOTUsNiBAQCB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VK
SWRKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSQogdHlwZWRlZiB2b2lkIEpJVF9PUEVS
QVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSklkSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBJZGVudGlmaWVyKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYg
dm9pZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHZv
aWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpBcCkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQXJyYXlQcm9maWxl
Kik7Ci10eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0aW9uX0VKSkpCeSko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSwgQnlWYWxJbmZvKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElPTiAoKlZfSklUT3BlcmF0
aW9uX0VKUFApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKiwgdm9pZCopOwogdHlw
ZWRlZiB2b2lkIEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSlpKKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lk
IEpJVF9PUEVSQVRJT04gKCpWX0pJVE9wZXJhdGlvbl9FSlopKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBpbnQzMl90KTsKQEAgLTI2MiwxMCArMjU5LDEwIEBAIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0QnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVy
ZVN0dWJJCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdEJ1
aWxkTGlzdChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBs
KikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJl
Y3ROb25TdHJpY3RCdWlsZExpc3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBVbmlx
dWVkU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25SZWFsbG9jYXRlU3RvcmFnZUFuZEZpbmlzaFB1dChFeGVjU3RhdGUqLCBKU09iamVjdCosIFN0
cnVjdHVyZSosIFByb3BlcnR5T2Zmc2V0LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9J
TlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBC
eVZhbEluZm8qKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKikgV1RGX0lO
VEVSTkFMOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJv
ZmlsZSopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5B
TDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwg
QXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqLCBFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7
CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSosIENhbGxM
aW5rSW5mbyopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlu
a1BvbHltb3JwaGljQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8qKSBXVEZfSU5URVJOQUw7
CkBAIC0zMTIsMTEgKzMwOSwxMSBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2Nv
cGUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWwpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyop
IFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0
QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5RGVm
YXVsdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHlHZW5lcmljKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEFy
cmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBBcnJheVByb2ZpbGUqKSBX
VEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
VmFsU3RyaW5nKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0KSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc0luZGV4ZWRQcm9wZXJ0eURlZmF1bHQoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJz
Y3JpcHQsIEFycmF5UHJvZmlsZSopIFdURl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uSGFzSW5kZXhlZFByb3BlcnR5R2VuZXJpYyhFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCwgQXJyYXlQcm9maWxlKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25EZWxldGVCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGJhc2Us
IGNvbnN0IElkZW50aWZpZXIqKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0UE5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KikgV1RGX0lOVEVSTkFMOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykgV1RGX0lOVEVSTkFMOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRl
eCBhMDBjY2IyNWU1Mjk3ODc5ZDI2MzQ1M2I2NDZiYjBlMzdkNTk2YmVmLi40ZWYwNmQ5MjEzYTJi
MWRiZmZiYTRjN2MzMzRkMmY2ZjFjNDc5MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtOTgsMTQgKzk4LDkgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGludCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBpbnQgcHJv
cGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmls
ZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAgICBC
eVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1fY29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKLQorICAg
IAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJzKGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVn
VDEpOwotCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlKTsKLQot
ICAgIFBhdGNoYWJsZUp1bXAgbm90SW5kZXggPSBlbWl0UGF0Y2hhYmxlSnVtcElmTm90SW1tZWRp
YXRlSW50ZWdlcihyZWdUMSk7Ci0gICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOworICAgIGVtaXRK
dW1wU2xvd0Nhc2VJZk5vdEltbWVkaWF0ZUludGVnZXIocmVnVDEpOwogCiAgICAgLy8gVGhpcyBp
cyB0ZWNobmljYWxseSBpbmNvcnJlY3QgLSB3ZSdyZSB6ZXJvLWV4dGVuZGluZyBhbiBpbnQzMi4g
IE9uIHRoZSBob3QgcGF0aCB0aGlzIGRvZXNuJ3QgbWF0dGVyLgogICAgIC8vIFdlIGNoZWNrIHRo
ZSB2YWx1ZSBhcyBpZiBpdCB3YXMgYSB1aW50MzIgYWdhaW5zdCB0aGUgbV92ZWN0b3JMZW5ndGgg
LSB3aGljaCB3aWxsIGFsd2F5cyBmYWlsIGlmCkBAIC0xMTUsNiArMTEwLDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IC8vIGV4dGVuZGluZyBzaW5jZSBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmUtdGFnIHRoZSB2YWx1
ZSBpbiB0aGUgc2xvdyBjYXNlLgogICAgIHplcm9FeHRlbmQzMlRvUHRyKHJlZ1QxLCByZWdUMSk7
CiAKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDAsIGJhc2UpOwogICAgIGVt
aXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDIsIHByb2ZpbGUpOwogICAg
IGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QyKTsKIApAQCAtMTUz
LDggKzE0OSw4IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7Ci0KLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
LmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZzZXQs
IG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CisgICAgCisgICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6
ZW1pdERvdWJsZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlKQpAQCAt
MTk5LDUyICsxOTUsMTUgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRBcnJheVN0b3JhZ2VMb2Fk
KEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSkKICAgICByZXR1cm4gc2xvd0Nh
c2VzOwogfQogCi1KSVRHZXRCeUlkR2VuZXJhdG9yIEpJVDo6ZW1pdEdldEJ5VmFsV2l0aENhY2hl
ZElkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSnVtcExpc3QmIGRvbmVDYXNlcywgSnVtcExpc3QmIHNsb3dDYXNlcykKLXsK
LSAgICAvLyBiYXNlOiByZWdUMAotICAgIC8vIHByb3BlcnR5OiByZWdUMQotICAgIC8vIHNjcmF0
Y2g6IHJlZ1QzCi0KLSAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKLQotICAgIHNsb3dDYXNlcy5hcHBlbmQoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMSkpOwot
ICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBzbG93Q2FzZXMuYXBw
ZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlNDZWxsOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3ltYm9sU3RydWN0dXJlLmdldCgpKSk7Ci0gICAgICAg
IGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgU3ltYm9sOjpvZmZzZXRPZlByaXZhdGVOYW1lKCkpLCBy
ZWdUMyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hTdHJ1
Y3R1cmUoTm90RXF1YWwsIEFkZHJlc3MocmVnVDEsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQo
KSksIG1fdm0tPnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpOwotICAgICAgICBsb2FkUHRyKEFkZHJl
c3MocmVnVDEsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCByZWdUMyk7Ci0gICAgICAgIHNs
b3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMykpOwotICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihaZXJvLCBBZGRyZXNzKHJlZ1QzLCBTdHJpbmdJbXBs
OjpmbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OmZsYWdJc0F0b21pYygp
KSkpOwotICAgIH0KLSAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgcmVn
VDMsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKLQotICAgIEpJVEdldEJ5
SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVj
b2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAgSlNW
YWx1ZVJlZ3MocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIERvbnRTcGlsbCk7Ci0gICAgZ2Vu
LmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOwotCi0gICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkp
OwotCi0gICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7Ci0gICAgZ2VuLnNsb3dQYXRo
SnVtcCgpLmxpbmsodGhpcyk7Ci0KLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKFdpdGhQ
cm9maWxlLCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIGRzdCwgZ2VuLnN0dWJJbmZvKCksIHJl
Z1QwLCBwcm9wZXJ0eU5hbWUuaW1wbCgpKTsKLSAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNv
bGRQYXRoQmVnaW4sIGNhbGwpOwotICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKLQotICAg
IHJldHVybiBnZW47Ci19Ci0KIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQ7CiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAg
IGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgQnlW
YWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVj
dGlvbkluZGV4XS5ieVZhbEluZm87CisgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwogICAgIAotICAgIGxpbmtTbG93Q2FzZUlm
Tm90SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKICAgICBsaW5rU2xvd0Nh
c2UoaXRlcik7IC8vIHByb3BlcnR5IGludDMyIGNoZWNrCisgICAgbGlua1Nsb3dDYXNlSWZOb3RK
U0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawogICAgIEp1bXAgbm9uQ2VsbCA9
IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKICAg
ICBKdW1wIG5vdFN0cmluZyA9IGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgCkBAIC0yNjUsNyAr
MjI0LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICAKICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGJhc2UsIHJlZ1QwKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3Bl
cnR5LCByZWdUMSk7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRC
eVZhbE9wdGltaXplLCBkc3QsIHJlZ1QwLCByZWdUMSwgYnlWYWxJbmZvKTsKKyAgICBDYWxsIGNh
bGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgcmVnVDAs
IHJlZ1QxLCBwcm9maWxlKTsKIAogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbElu
c3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xvd1BhdGg7CiAgICAgbV9ieVZhbENv
bXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0ucmV0dXJuQWRkcmVzcyA9IGNh
bGw7CkBAIC0zMDQsNyArMjYzLDYgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGludCBiYXNlID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kOwogICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9IGN1cnJlbnRJbnN0
cnVjdGlvbls0XS51LmFycmF5UHJvZmlsZTsKLSAgICBCeVZhbEluZm8qIGJ5VmFsSW5mbyA9IG1f
Y29kZUJsb2NrLT5hZGRCeVZhbEluZm8oKTsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXJz
KGJhc2UsIHJlZ1QwLCBwcm9wZXJ0eSwgcmVnVDEpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEltbWVkaWF0ZUludGVnZXIocmVnVDEpOwpAQCAtMzQxLDcgKzI5OSw4IEBAIHZvaWQgSklUOjpl
bWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICAK
ICAgICBMYWJlbCBkb25lID0gbGFiZWwoKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25J
bmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVPZmZz
ZXQsIFBhdGNoYWJsZUp1bXAoKSwgYmFkVHlwZSwgbW9kZSwgcHJvZmlsZSwgZG9uZSkpOworICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFsQ29tcGlsYXRpb25JbmZvKG1fYnl0
ZWNvZGVPZmZzZXQsIGJhZFR5cGUsIG1vZGUsIGRvbmUpKTsKKwogfQogCiBKSVQ6Okp1bXBMaXN0
IEpJVDo6ZW1pdEdlbmVyaWNDb250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5n
U2hhcGUpCkBAIC00NDAsNyArMzk5LDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBp
bnQgcHJvcGVydHkgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2
YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxl
KiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5
VmFsSW5mbyogYnlWYWxJbmZvID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1
Y3Rpb25JbmRleF0uYnlWYWxJbmZvOwogCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBwcm9w
ZXJ0eSBpbnQzMiBjaGVjawogICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2Up
OyAvLyBiYXNlIGNlbGwgY2hlY2sKQEAgLTQ2Niw3ICs0MjQsNyBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0NhcwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvcGVydHksIHJlZ1QxKTsKICAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdUMik7CiAgICAgYm9vbCBpc0RpcmVj
dCA9IG1faW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNv
ZGUpID09IG9wX3B1dF9ieV92YWxfZGlyZWN0OwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRp
b24oaXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFs
LCByZWdUMCwgcmVnVDEsIHJlZ1QyLCBieVZhbEluZm8pOworICAgIENhbGwgY2FsbCA9IGNhbGxP
cGVyYXRpb24oaXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1
dEJ5VmFsLCByZWdUMCwgcmVnVDEsIHJlZ1QyLCBwcm9maWxlKTsKIAogICAgIG1fYnlWYWxDb21w
aWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnNsb3dQYXRoVGFyZ2V0ID0gc2xv
d1BhdGg7CiAgICAgbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRl
eF0ucmV0dXJuQWRkcmVzcyA9IGNhbGw7CkBAIC0xMDQxLDM2ICs5OTksNiBAQCB2b2lkIEpJVDo6
cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVz
c1B0ciByZXR1cm5BZAogICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihy
ZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpKTsKIH0K
IAotdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlR2V0QnlWYWxXaXRoQ2FjaGVkSWQoQnlWYWxJbmZv
KiBieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQotewotICAgIEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24gPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5VmFsSW5mby0+Ynl0
ZWNvZGVJbmRleDsKLQotICAgIEp1bXBMaXN0IGRvbmVDYXNlczsKLSAgICBKdW1wTGlzdCBzbG93
Q2FzZXM7Ci0KLSAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbiA9IGVtaXRHZXRCeVZhbFdpdGhD
YWNoZWRJZChjdXJyZW50SW5zdHJ1Y3Rpb24sIHByb3BlcnR5TmFtZSwgZG9uZUNhc2VzLCBzbG93
Q2FzZXMpOwotCi0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9jb2RlQmxvY2stPm1f
bG9jayk7Ci0gICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigqbV92bSwgKnRoaXMsIG1fY29kZUJs
b2NrKTsKLSAgICBwYXRjaEJ1ZmZlci5saW5rKHNsb3dDYXNlcywgQ29kZUxvY2F0aW9uTGFiZWwo
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpjcmVhdGVGcm9tRXhlY3V0YWJsZUFkZHJlc3MocmV0dXJu
QWRkcmVzcy52YWx1ZSgpKSkubGFiZWxBdE9mZnNldChieVZhbEluZm8tPnJldHVybkFkZHJlc3NU
b1Nsb3dQYXRoKSk7Ci0gICAgcGF0Y2hCdWZmZXIubGluayhkb25lQ2FzZXMsIGJ5VmFsSW5mby0+
YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJhZFR5cGVKdW1wVG9Eb25lKSk7
Ci0gICAgZm9yIChjb25zdCBhdXRvJiBjYWxsU2l0ZSA6IG1fY2FsbHMpIHsKLSAgICAgICAgaWYg
KGNhbGxTaXRlLnRvKQotICAgICAgICAgICAgcGF0Y2hCdWZmZXIubGluayhjYWxsU2l0ZS5mcm9t
LCBGdW5jdGlvblB0cihjYWxsU2l0ZS50bykpOwotICAgIH0KLSAgICBnZW4uZmluYWxpemUocGF0
Y2hCdWZmZXIpOwotCi0gICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVf
Rk9SX1NUVUIoCi0gICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJC
YXNlbGluZSBnZXRfYnlfdmFsIHdpdGggY2FjaGVkIHByb3BlcnR5IG5hbWUgJyVzJyBzdHViIGZv
ciAlcywgcmV0dXJuIHBvaW50ICVwIiwgcHJvcGVydHlOYW1lLmltcGwoKS0+dXRmOCgpLmRhdGEo
KSwgdG9DU3RyaW5nKCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkp
KTsKLSAgICBieVZhbEluZm8tPmNhY2hlZElkID0gcHJvcGVydHlOYW1lOwotICAgIGJ5VmFsSW5m
by0+c3R1YkluZm8gPSBnZW4uc3R1YkluZm8oKTsKLQotICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRj
aEJ1ZmZlcihtX2NvZGVCbG9jayk7Ci0gICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZv
LT5ub3RJbmRleEp1bXAsIENvZGVMb2NhdGlvbkxhYmVsKGJ5VmFsSW5mby0+c3R1YlJvdXRpbmUt
PmNvZGUoKS5jb2RlKCkpKTsKLSAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRvRnVuY3Rp
b24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIob3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKSk7
Ci19Ci0KIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJ
bmZvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEpJVEFycmF5TW9kZSBhcnJheU1v
ZGUpCiB7CiAgICAgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiA9IG1fY29kZUJsb2Nr
LT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5j
cHAKaW5kZXggYThkNjlhY2RjZjY3NzQ5NGI4ZWU2MmQxZTEyYWI5MmY1ODljZTAwMC4uNjA5Y2Ex
Mzg4MjI3ZGI1YmRhNTM5Mjc1MzAzZGFkZDJkOGIxY2ViYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xNDksMTMg
KzE0OSwxMSBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgIGludCBwcm9wZXJ0eSA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUu
YXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZvID0gbV9jb2RlQmxvY2stPmFk
ZEJ5VmFsSW5mbygpOwogICAgIAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHBy
b3BlcnR5LCByZWdUMywgcmVnVDIpOwogICAgIAorICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5v
dEVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7Ci0gICAgUGF0Y2hhYmxlSnVt
cCBub3RJbmRleCA9IHBhdGNoYWJsZUJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMywgVHJ1c3RlZElt
bTMyKEpTVmFsdWU6OkludDMyVGFnKSk7Ci0gICAgYWRkU2xvd0Nhc2Uobm90SW5kZXgpOwogICAg
IGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDEsIHByb2ZpbGUpOwog
ICAgIGFuZDMyKFRydXN0ZWRJbW0zMihJbmRleGluZ1NoYXBlTWFzayksIHJlZ1QxKTsKIApAQCAt
MTk0LDcgKzE5Miw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAg
ZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKICAgICAKLSAgICBtX2J5VmFsQ29tcGlsYXRp
b25JbmZvLmFwcGVuZChCeVZhbENvbXBpbGF0aW9uSW5mbyhieVZhbEluZm8sIG1fYnl0ZWNvZGVP
ZmZzZXQsIG5vdEluZGV4LCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CisgICAgbV9i
eVZhbENvbXBpbGF0aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29k
ZU9mZnNldCwgYmFkVHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6
ZW1pdENvbnRpZ3VvdXNMb2FkKEluc3RydWN0aW9uKiwgUGF0Y2hhYmxlSnVtcCYgYmFkVHlwZSwg
SW5kZXhpbmdUeXBlIGV4cGVjdGVkU2hhcGUpCkBAIC0yMzgsNTMgKzIzNiwxNiBAQCBKSVQ6Okp1
bXBMaXN0IEpJVDo6ZW1pdEFycmF5U3RvcmFnZUxvYWQoSW5zdHJ1Y3Rpb24qLCBQYXRjaGFibGVK
dW1wJiBiYWRUeXBlKQogICAgIAogICAgIHJldHVybiBzbG93Q2FzZXM7CiB9Ci0KLUpJVEdldEJ5
SWRHZW5lcmF0b3IgSklUOjplbWl0R2V0QnlWYWxXaXRoQ2FjaGVkSWQoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlz
dCYgZG9uZUNhc2VzLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQotewotICAgIGludCBkc3QgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotCi0gICAgLy8gYmFzZTogdGFnKHJlZ1QxKSwg
cGF5bG9hZChyZWdUMCkKLSAgICAvLyBwcm9wZXJ0eTogdGFnKHJlZ1QzKSwgcGF5bG9hZChyZWdU
MikKLSAgICAvLyBzY3JhdGNoOiByZWdUNAotCi0gICAgc2xvd0Nhc2VzLmFwcGVuZChlbWl0SnVt
cElmTm90SlNDZWxsKHJlZ1QzKSk7Ci0gICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7
Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoU3RydWN0dXJlKE5vdEVxdWFsLCBBZGRy
ZXNzKHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBtX3ZtLT5zeW1ib2xTdHJ1
Y3R1cmUuZ2V0KCkpKTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBTeW1ib2w6Om9m
ZnNldE9mUHJpdmF0ZU5hbWUoKSksIHJlZ1Q0KTsKLSAgICB9IGVsc2UgewotICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKGJyYW5jaFN0cnVjdHVyZShOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMiwgSlND
ZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgbV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSk7
Ci0gICAgICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMiwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUo
KSksIHJlZ1Q0KTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hUZXN0UHRyKFplcm8s
IHJlZ1Q0KSk7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKFplcm8sIEFk
ZHJlc3MocmVnVDQsIFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3Ry
aW5nSW1wbDo6ZmxhZ0lzQXRvbWljKCkpKSk7Ci0gICAgfQotICAgIHNsb3dDYXNlcy5hcHBlbmQo
YnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUNCwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1w
bCgpKSkpOwotCi0gICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1fY29kZUJs
b2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lhbFJl
Z2lzdGVycygpLAotICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApLCBEb250U3BpbGwpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQ
YXRoKCp0aGlzKTsKLQotICAgIGRvbmVDYXNlcy5hcHBlbmQoanVtcCgpKTsKLQotICAgIExhYmVs
IGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOwotICAgIGdlbi5zbG93UGF0aEp1bXAoKS5saW5rKHRo
aXMpOwotCi0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihXaXRoUHJvZmlsZSwgb3BlcmF0
aW9uR2V0QnlJZE9wdGltaXplLCBkc3QsIGdlbi5zdHViSW5mbygpLCByZWdUMSwgcmVnVDAsIHBy
b3BlcnR5TmFtZS5pbXBsKCkpOwotICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhC
ZWdpbiwgY2FsbCk7Ci0gICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwotCi0gICAgcmV0dXJu
IGdlbjsKLX0KLQorICAgIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAg
aW50IHByb3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICBCeVZh
bEluZm8qIGJ5VmFsSW5mbyA9IG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0
aW9uSW5kZXhdLmJ5VmFsSW5mbzsKLQotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIs
IGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKKyAgICBBcnJheVByb2ZpbGUqIHByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7CisgICAgCiAgICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBwcm9wZXJ0eSBpbnQzMiBjaGVjaworICAgIGxpbmtTbG93Q2FzZUlmTm90
SlNDZWxsKGl0ZXIsIGJhc2UpOyAvLyBiYXNlIGNlbGwgY2hlY2sKIAogICAgIEp1bXAgbm9uQ2Vs
bCA9IGp1bXAoKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sK
QEAgLTMwNCw3ICsyNjUsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIAogICAgIGVt
aXRMb2FkKGJhc2UsIHJlZ1QxLCByZWdUMCk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1Qz
LCByZWdUMik7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZh
bE9wdGltaXplLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyLCBieVZhbEluZm8pOwor
ICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwg
ZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMiwgcHJvZmlsZSk7CiAKICAgICBtX2J5VmFs
Q29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9
IHNsb3dQYXRoOwogICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9u
SW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwpAQCAtMzE4LDcgKzI3OSw2IEBAIHZvaWQgSklU
OjplbWl0X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHBy
b3BlcnR5ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBBcnJheVByb2Zp
bGUqIHByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5hcnJheVByb2ZpbGU7Ci0gICAg
QnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2NvZGVCbG9jay0+YWRkQnlWYWxJbmZvKCk7CiAgICAg
CiAgICAgZW1pdExvYWQyKGJhc2UsIHJlZ1QxLCByZWdUMCwgcHJvcGVydHksIHJlZ1QzLCByZWdU
Mik7CiAgICAgCkBAIC0zNTQsNyArMzE0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3Zh
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIAogICAgIExhYmVsIGRvbmUg
PSBsYWJlbCgpOwogICAgIAotICAgIG1fYnlWYWxDb21waWxhdGlvbkluZm8uYXBwZW5kKEJ5VmFs
Q29tcGlsYXRpb25JbmZvKGJ5VmFsSW5mbywgbV9ieXRlY29kZU9mZnNldCwgUGF0Y2hhYmxlSnVt
cCgpLCBiYWRUeXBlLCBtb2RlLCBwcm9maWxlLCBkb25lKSk7CisgICAgbV9ieVZhbENvbXBpbGF0
aW9uSW5mby5hcHBlbmQoQnlWYWxDb21waWxhdGlvbkluZm8obV9ieXRlY29kZU9mZnNldCwgYmFk
VHlwZSwgbW9kZSwgZG9uZSkpOwogfQogCiBKSVQ6Okp1bXBMaXN0IEpJVDo6ZW1pdEdlbmVyaWND
b250aWd1b3VzUHV0QnlWYWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgUGF0Y2hh
YmxlSnVtcCYgYmFkVHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nU2hhcGUpCkBAIC00NTksNyAr
NDE5LDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBpbnQgcHJvcGVydHkgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUuYXJyYXlQcm9maWxlOwotICAgIEJ5VmFsSW5mbyogYnlWYWxJbmZv
ID0gbV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uYnlWYWxJ
bmZvOwogICAgIAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hl
Y2sKICAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlKTsgLy8gYmFzZSBjZWxs
IGNoZWNrCkBAIC00OTksNyArNDU4LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92
YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBl
bWl0TG9hZCh2YWx1ZSwgcmVnVDAsIHJlZ1QxKTsKICAgICBhZGRDYWxsQXJndW1lbnQocmVnVDEp
OwogICAgIGFkZENhbGxBcmd1bWVudChyZWdUMCk7Ci0gICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0
ZWRJbW1QdHIoYnlWYWxJbmZvKSk7CisgICAgYWRkQ2FsbEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIo
cHJvZmlsZSkpOwogICAgIENhbGwgY2FsbCA9IGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
aXNEaXJlY3QgPyBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbCA6IG9wZXJhdGlvblB1dEJ5VmFsKTsK
ICNlbHNlCiAgICAgLy8gVGhlIHJlZ2lzdGVyIHNlbGVjdGlvbiBiZWxvdyBpcyBjaG9zZW4gdG8g
cmVkdWNlIHJlZ2lzdGVyIHN3YXBwaW5nIG9uIEFSTS4KQEAgLTUwNyw3ICs0NjYsNyBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1QyLCByZWdUMSk7CiAg
ICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMCk7CiAgICAgZW1pdExvYWQodmFsdWUs
IHJlZ1Q1LCByZWdUNCk7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/
IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QyLCByZWdU
MSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQsIGJ5VmFsSW5mbyk7CisgICAgQ2FsbCBjYWxs
ID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3Bl
cmF0aW9uUHV0QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMsIHJlZ1QwLCByZWdUNSwgcmVnVDQs
IHByb2ZpbGUpOwogI2VuZGlmCiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJ
bnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TeW1ib2wuaAppbmRleCA4M2Y1ZGUyNDg1MmJjMzc4ZWUwYTc3MDM5ZjQ2
MzE4MjVmZGRkYmJlLi5lNTc5MGQ3ODcyMjZiZWE3NjAyNGM5ZDFkNjZhNjc2MGY2NGRlNWEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2wuaApAQCAtNzksOCArNzksNiBAQCBw
dWJsaWM6CiAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KikgY29uc3Q7CiAgICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSopIGNvbnN0OwogCi0gICAg
c3RhdGljIHNpemVfdCBvZmZzZXRPZlByaXZhdGVOYW1lKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKFN5bWJvbCwgbV9wcml2YXRlTmFtZSk7IH0KLQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jb25zdHJ1Y3Rvci5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1j
b25zdHJ1Y3Rvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM1ODUxNjAyZTkz
NGIzMzY2OGFlZDJjZmY0ZGRjYjc4NzZlZTE4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctY29uc3RydWN0b3IuanMKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi12YXIgc3ltYm9sID0gIkBAc3BlY2llcyI7Ci1mdW5jdGlvbiBIZWxsbygpIHsK
LX0KLQotT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxvLCBzeW1ib2wsIHsKLSAgICBnZXQ6IGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotfSk7Ci0KLUhlbGxvLnBy
b3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsKLSAgICByZXR1cm4gbmV3IHRoaXMuY29u
c3RydWN0b3Jbc3ltYm9sXSgpOwotfTsKLQotZnVuY3Rpb24gb2soKSB7Ci0gICAgdmFyIG9iamVj
dCA9IG5ldyBIZWxsbygpOwotICAgIGlmICghKG9iamVjdC5nZW5lcmF0ZSgpIGluc3RhbmNlb2Yg
SGVsbG8pKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBpbnN0YW5jZSIpOwotfQotbm9J
bmxpbmUob2spOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgb2soKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1leGl0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDlhYTI2MmQ2NGE2NjE0OTY0NjY5YWI3NGNiMmYwMWZhNGVkODAyZjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWV4aXQuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwzNCArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJv
cignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0KLQotZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0
LCBuYW1lKQotewotICAgIHJldHVybiBvYmplY3RbbmFtZV07Ci19Ci1ub0lubGluZShnZXRCeVZh
bCk7Ci0KLWZ1bmN0aW9uIGdldFN0cjEoKQotewotICAgIHJldHVybiAiaGVsbG8iOwotfQotbm9J
bmxpbmUoZ2V0U3RyMSk7Ci0KLWZ1bmN0aW9uIGdldFN0cjIoKQotewotICAgIHJldHVybiAiaGVs
bG8iOwotfQotbm9JbmxpbmUoZ2V0U3RyMik7Ci0KLXZhciBvYmplY3QgPSB7Ci0gICAgaGVsbG86
IDQyCi19OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQotICAgIHNob3VsZEJlKGdl
dEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTdHIxKCkgOiBnZXRTdHIyKCkpLCA0Mik7
Ci1zaG91bGRCZShnZXRCeVZhbChvYmplY3QsIHsgdG9TdHJpbmcoKSB7IHJldHVybiAnaGVsbG8n
OyB9IH0pLCA0Mik7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91
bGRCZShnZXRCeVZhbChvYmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3RyMSgpIDogZ2V0U3RyMigp
KSwgNDIpOwotc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCB7IHRvU3RyaW5nKCkgeyByZXR1cm4g
J2hlbGxvJzsgfSB9KSwgNDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZW5lcmF0
ZWQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4MTNhN2UxNDBkMzg2NjUzZmJj
MzU0YzUwZWFkNThlMTIxOWQzYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWdlbmVyYXRlZC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAK
LWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1
YWwpOwotfQotCi1mdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCi17Ci0gICAgcmV0dXJu
IG9iamVjdFtuYW1lXTsKLX0KLW5vSW5saW5lKGdldEJ5VmFsKTsKLQotdmFyIHZhbHVlID0gJ2xv
JzsKLQotZnVuY3Rpb24gZ2V0U3RyMSgpCi17Ci0gICAgcmV0dXJuICJoZWwiICsgdmFsdWU7Ci19
Ci1ub0lubGluZShnZXRTdHIxKTsKLQotZnVuY3Rpb24gZ2V0U3RyMigpCi17Ci0gICAgcmV0dXJu
ICJoZWxsbyI7Ci19Ci1ub0lubGluZShnZXRTdHIyKTsKLQotdmFyIG9iamVjdCA9IHsKLSAgICBo
ZWxsbzogNDIsCi0gICAgd29ybGQ6IDUwCi19OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpCi0gICAgc2hvdWxkQmUoZ2V0QnlWYWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0
cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKLXNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ3dvcmxk
JyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0ZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctZ2V0dGVyLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4NThlYzBhODZkYjk1NGQ4NDdmNmI4Zjc2MmQyOTZiZWRjZWIx
YmY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1nZXR0
ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0KLXZhciBvYmplY3QgPSB7Ci0g
ICAgZ2V0IGhlbGxvKCkgewotICAgICAgICByZXR1cm4gNDI7Ci0gICAgfQotfTsKLQotZnVuY3Rp
b24gb2soKSB7Ci0gICAgdmFyIHZhbHVlID0gJ2hlbGxvJzsKLSAgICBpZiAob2JqZWN0W3ZhbHVl
XSArIDIwICE9PSA2MikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Ci19Ci1ub0lubGluZShv
ayk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBvaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGIzM2Q5YmVj
YjE0YWQyMDViODc1NWJkZmUxZjk1YmIzOTdiYjQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy5qcworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAK
LWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9
PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1
YWwpOwotfQotCi1mdW5jdGlvbiBnZXRCeVZhbChvYmplY3QsIG5hbWUpCi17Ci0gICAgcmV0dXJu
IG9iamVjdFtuYW1lXTsKLX0KLW5vSW5saW5lKGdldEJ5VmFsKTsKLQotZnVuY3Rpb24gZ2V0U3Ry
MSgpCi17Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lubGluZShnZXRTdHIxKTsKLQotZnVu
Y3Rpb24gZ2V0U3RyMigpCi17Ci0gICAgcmV0dXJuICJoZWxsbyI7Ci19Ci1ub0lubGluZShnZXRT
dHIyKTsKLQotdmFyIG9iamVjdCA9IHsKLSAgICBoZWxsbzogNDIsCi0gICAgd29ybGQ6IDUwCi19
OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgc2hvdWxkQmUoZ2V0QnlW
YWwob2JqZWN0LCBpICUgMiA9PT0gMCA/IGdldFN0cjEoKSA6IGdldFN0cjIoKSksIDQyKTsKLXNo
b3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgJ3dvcmxkJyksIDUwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jb25z
dHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1jb25zdHJ1Y3Rvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjg5NWMyNjQ1MWQyNTdhOTdhMmRiM2VjNTg5MjliOWQ1NTM0MzI1MS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY29uc3RydWN0b3IuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi12YXIgc3ltYm9sID0gU3ltYm9sKCk7Ci1mdW5jdGlv
biBIZWxsbygpIHsKLX0KLQotT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlbGxvLCBzeW1ib2wsIHsK
LSAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotfSk7
Ci0KLUhlbGxvLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uICgpIHsKLSAgICByZXR1cm4g
bmV3IHRoaXMuY29uc3RydWN0b3Jbc3ltYm9sXSgpOwotfTsKLQotZnVuY3Rpb24gb2soKSB7Ci0g
ICAgdmFyIG9iamVjdCA9IG5ldyBIZWxsbygpOwotICAgIGlmICghKG9iamVjdC5nZW5lcmF0ZSgp
IGluc3RhbmNlb2YgSGVsbG8pKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBpbnN0YW5j
ZSIpOwotfQotbm9JbmxpbmUob2spOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
Ci0gICAgb2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1leGl0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGMwY2RjYjY3NmQ5NGU0NmI2YzEwMWE4YTc3ZDAwYjY2NDRhOGMx
MGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWV4aXQu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi12YXIgc3ltYm9sMSA9IFN5bWJvbCgp
OwotdmFyIHN5bWJvbDIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHsgW3N5bWJvbDFd
OiA0MiB9KVswXTsKLQotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewotICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIGdldEJ5VmFsKG9iamVjdCwgbmFtZSkK
LXsKLSAgICByZXR1cm4gb2JqZWN0W25hbWVdOwotfQotbm9JbmxpbmUoZ2V0QnlWYWwpOwotCi1m
dW5jdGlvbiBnZXRTeW0xKCkKLXsKLSAgICByZXR1cm4gc3ltYm9sMTsKLX0KLW5vSW5saW5lKGdl
dFN5bTEpOwotCi1mdW5jdGlvbiBnZXRTeW0yKCkKLXsKLSAgICByZXR1cm4gc3ltYm9sMjsKLX0K
LW5vSW5saW5lKGdldFN5bTIpOwotCi12YXIgb2JqZWN0ID0gewotICAgIFtzeW1ib2wxXTogNDIs
Ci0gICAgaGVsbG86IDUwCi19OwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQotICAg
IHNob3VsZEJlKGdldEJ5VmFsKG9iamVjdCwgaSAlIDIgPT09IDAgPyBnZXRTeW0xKCkgOiBnZXRT
eW0yKCkpLCA0Mik7Ci1zaG91bGRCZShnZXRCeVZhbChvYmplY3QsICdoZWxsbycpLCA1MCk7Ci0K
LWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRCeVZhbChv
YmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwotc2hvdWxk
QmUoZ2V0QnlWYWwob2JqZWN0LCAnaGVsbG8nKSwgNTApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1nZXR0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwMzVlNGIwMzhh
NDY1ZDQzZWJjMjhlNWNmNDgxOWI1OWU2NjY4N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWdldHRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLQotdmFyIG9iamVjdCA9IHsKLSAgICBnZXQgaGVsbG8oKSB7Ci0gICAgICAgIHJldHVy
biA0MjsKLSAgICB9Ci19OwotCi12YXIgc3ltYm9sID0gU3ltYm9sKCk7Ci0KLU9iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmplY3QsIHN5bWJvbCwgewotICAgIGdldDogZnVuY3Rpb24gKCkgewotICAg
ICAgICByZXR1cm4gNDI7Ci0gICAgfQotfSk7Ci0KLWZ1bmN0aW9uIG9rKCkgewotICAgIGlmIChv
YmplY3Rbc3ltYm9sXSArIDIwICE9PSA2MikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Ci19
Ci1ub0lubGluZShvayk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBv
aygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyYzgzNGViMjZiZTMyNmUxYzkxODQ5MWYwZTE5YjdmYTM4YmIwOTAzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC5qcworKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLXZhciBzeW1ib2wxID0gU3ltYm9sKCk7Ci12YXIgc3ltYm9sMiA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoeyBbc3ltYm9sMV06IDQyIH0pWzBdOwotCi1mdW5jdGlv
biBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0
ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKLX0K
LQotZnVuY3Rpb24gZ2V0QnlWYWwob2JqZWN0LCBuYW1lKQotewotICAgIHJldHVybiBvYmplY3Rb
bmFtZV07Ci19Ci1ub0lubGluZShnZXRCeVZhbCk7Ci0KLWZ1bmN0aW9uIGdldFN5bTEoKQotewot
ICAgIHJldHVybiBzeW1ib2wxOwotfQotbm9JbmxpbmUoZ2V0U3ltMSk7Ci0KLWZ1bmN0aW9uIGdl
dFN5bTIoKQotewotICAgIHJldHVybiBzeW1ib2wyOwotfQotbm9JbmxpbmUoZ2V0U3ltMik7Ci0K
LXZhciBvYmplY3QgPSB7Ci0gICAgW3N5bWJvbDFdOiA0MiwKLSAgICBoZWxsbzogNTAKLX07Ci0K
LWZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKLSAgICBzaG91bGRCZShnZXRCeVZhbChv
YmplY3QsIGkgJSAyID09PSAwID8gZ2V0U3ltMSgpIDogZ2V0U3ltMigpKSwgNDIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGRiYmMxNGZhYmQ2NDM2NDAxZDZhMTM4OTUzNjczZGJmZWQ3MDMyOGUuLjIwNmQxODc0MGZiZGEw
MWM4OTUyOGI2YzE0ZDc3ZmViOGJkMGJjNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxNS0w
OC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZ3Jlc3Np
b24ocjE4ODEwNSk6IFNlZW1zIHRvIGhhdmUgY2F1c2VkIGNyYXNoZXMgZHVyaW5nIFBMVCBvbiBz
b21lIGlQYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDc4MTgKKworICAgICAgICBVbnJldmlld2VkLCByb2xsIG91dCByMTg4MTA1LgorCisgICAg
ICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9j
ay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1
cmUtZWxpbWluYXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJp
bmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2Vs
Zi1vci1wcm90by1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0
cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICoganMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2Nr
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICoganMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1i
b2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxm
LW9yLXByb3RvLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanM6IFJlbW92ZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJv
bS10cnktYmxvY2suanM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6
IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8u
anM6IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBs
ZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanM6
IFJlbW92ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanM6IFJlbW92ZWQu
CisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1z
eW1ib2wtc2VsZi1vci1wcm90by5qczogUmVtb3ZlZC4KKwogMjAxNS0wOC0wOSAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIENvbXBs
ZXhUZXh0Q29udHJvbGxlciB3aGVuIGxheWluZyBvdXQgb2JzY3VyZSB0ZXh0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGFjY2Y0M2FmYTA3ZDNjOGUwZjE3ODkyZWVkYTc5MjdlMjFiODE4YjAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5h
dGlvbgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24g
dGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3Ry
aW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiMzdjNTAwMDBjMGExZDFlMmYyNjI4NTdmNzli
NGVjNDE0N2UwYzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLXNpbXBsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDgy
YzQ1MGQ5NTVhZTk5NjRlZTI1YmZmMmI1ZmMwY2I2NmY0NTM1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNp
bXBsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1i
aW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTllZjE0MTU3NTg0Y2E2MTYwNjQ2ODc1OThjZmJkNGRiNzk3ZmVmYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4t
ZnJvbS10cnktYmxvY2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyMTZhNjY3Mjk3MDM2YTQ1YzVmMzJiNzAxYzBiYzdlZmIyZmJkYTE4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jay1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1jaGFpbi1mcm9tLXRyeS1ibG9jawotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10
cnktYmxvY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZjOTYzYTAxMmIw
MmNmMzYxNDQ1ZjY3YzZlY2JkOGNkMThiMGIyZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0
aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEy
ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10cnktYmxvY2suanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWVjMGZjNzBlZTdhMjQ1NTVmYjBmZDhhYmI2YTNlNDZhN2ZkNTA0NC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MzZmNThkNDE1N2I1MWJiOTg1MzgyZGM4MWE2ZDk0
OGZiOWRiMDI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2dldC1ieS12YWwt
d2l0aC1zdHJpbmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmVmOTJjOTA3OWNjMmRiZGRhYmU0
Y2I2NTNiMzIzZmZmZTUzOTc0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmct
cHJvdG8tb3Itc2VsZi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcHJvdG8tb3It
c2VsZi5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5n
LXByb3RvLW9yLXNlbGYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZhYjYx
MWJkNDVkZTMwNDI2ZjZiYjU0YmU2OTUzOTBiNzMwYTA4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIg
KzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZh
bC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWIxYWE1N2VjYWI2YTFh
MWE3ODRkYjVlODg0MmZlMmJhZGI4NWMyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
c2ltcGxlCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlv
biB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1z
dHJpbmctcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1s
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDM3NTFiNjRlODIyYWIyZGVjNDdhZDlhOWY0NjY4ZTM3OWUxZjA3
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctcXVhZG1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIg
KzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxmLW9yLXBy
b3RvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDQyMTcxMzRmOTgyODkwNDM5NTY4MmY4ODcwNmQyYzY3YWQ4OGI0Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRo
LXN0cmluZy1zZWxmLW9yLXByb3RvCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Q
QVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5odG1sIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA0YTZiOTljNWI1ZTMwNmQ4M2I2ZjI1MzQyM2EwZmY4
MTM1OGUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90
by5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1zZWxm
LW9yLXByb3RvLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVs
aW1pbmF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDEw
MGM1ZDhiOGY4Y2UyODU2MWM3YjUxMGE3ODNkNjUxMjUzYmRlMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1KU1JlZ3Jlc3MvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9u
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJv
d24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wt
Ymltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDM5MGVkOTUyY2VlZTJhMjBlZmVjNGRiMTA5MzUzYjc3
M2IyOGZiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmlt
b3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUKLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0ODJjNDUw
ZDk1NWFlOTk2NGVlMjViZmYyYjVmYzBjYjY2ZjQ1MzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlOWVmMTQxNTc1ODRjYTYxNjA2NDY4NzU5OGNmYmQ0ZGI3OTdmZWZiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJl
LWVsaW1pbmF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9t
LXRyeS1ibG9jay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3
NTRiYjBlOGU1NjhjOGQwMjA2ZTY0OWU1Mjk3NGIzZjllNDJhNDEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLWNoYWluLWZyb20tdHJ5LWJsb2NrCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hhaW4tZnJvbS10cnktYmxvY2suaHRtbCBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1i
bG9jay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTc1Zjk5MjgwZTcyMzM1
YzJiNTRkM2Q5M2YwODYxMTgzMTk3NDQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs
MCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0
LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1i
eS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0MzE0OTRhOWI0NTYyZjllMTY5MDQ3ODk3YWI2MDYzNWRmMTE0ODViLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24t
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdyZXNzL2dl
dC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtY2hlY2stc3Ry
dWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12
YWwtd2l0aC1zeW1ib2wtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5YmZhY2E3YTVlNGI3Mjg4ZWNlZDI2ZTg1MzYwZDU2ZTA2
N2M3YTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTVkMjYyY2VhNTIwNWNmNWYzY2I2Mzdh
Nzg4ZGEzMmIwZTNhNmM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90
by1vci1zZWxmLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpT
UmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYKLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxm
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJv
dG8tb3Itc2VsZi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTgxNWNlMzNl
OGFjNzc1MTA2ZGFiMmMyYTdiNDI2MTRmOTM4Y2Y1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCww
IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdp
dGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDYwNWMwNzYxYzIwOGJlZmQ2
MjllYmQyMmE0ZmRmOWZlODQ4YzNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFs
LXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJv
bC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2NWNlNDYyNDVlODg2YmUyN2Y1MTA2NmE1MTczYzQ5NTFmMmEyMGQ3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1
Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCww
IEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXNlbGYtb3ItcHJvdG8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNzY2OTEwOGJhYzFjZTZkMWVhODUwODAzNDQ1MzgxY2RjNWRhZjZkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLUpTUmVncmVzcy9nZXQtYnktdmFsLXdpdGgtc3lt
Ym9sLXNlbGYtb3ItcHJvdG8KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mg
bm8gZXhjZXB0aW9uIHRocm93bgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5
LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtc2VsZi1vci1wcm90by5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmZjVmM2Q3MDQ4MWFjY2FhZjA1YTAwMDA0YTVmZTUyOTZhMzJl
YmRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3It
cHJvdG8uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDkyNTg5ZjFlYmI4YzEyZGUxY2EwM2Y4MTIyZmQ0MjI1NDMxMDE3NDcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMt
Y2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5qcworKysgL2Rldi9udWxsCkBAIC0x
LDE0ICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAgICB2YXIgYSA9ICdhJywgbCA9ICdsJzsKLSAg
ICB2YXIgbyA9IHtbYV06MX07Ci0gICAgdmFyIHAgPSB7W2FdOjIsIFtsXToxM307Ci0gICAgdmFy
IHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKLSAg
ICAgICAgcmVzdWx0IF49IG9bYV07Ci0gICAgICAgIHZhciB0bXAgPSBvOwotICAgICAgICBvID0g
cDsKLSAgICAgICAgcCA9IHRtcDsKLSAgICB9Ci0gICAgaWYgKHJlc3VsdCAhPSAwKQotICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0
cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1vcnBo
aWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkYjU5NDAxZDdmNTcyODQ3MTRmZTdkM2Q1ZTA0NTIxMWJkNDdjMTUyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAK
LShmdW5jdGlvbigpIHsKLSAgICB2YXIgYSA9ICdhJywgYiA9ICdiJywgYyA9ICdjJywgZCA9ICdk
JywgZSA9ICdlJywgZiA9ICdmJywgZyA9ICdnJywgaCA9ICdoJywgaSA9ICdpJywgaiA9ICdqJywg
ayA9ICdrJywgbCA9ICdsJzsKLSAgICB2YXIgbyA9IHtbYV06MSwgW2JdOjIsIFtjXTozLCBbZF06
NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06MTAsIFtrXToxMX07Ci0g
ICAgdmFyIHAgPSB7W2FdOjIsIFtiXTozLCBbY106NCwgW2RdOjUsIFtlXTo2LCBbZl06NywgW2dd
OjgsIFtoXTo5LCBbaV06MTAsIFtqXToxMSwgW2tdOjEyLCBbbF06MTN9OwotICAgIHZhciByZXN1
bHQgPSAwOwotICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4
KSB7Ci0gICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSBeIG9bY10gXiBvW2RdIF4gb1tlXSBe
IG9bZl0gXiBvW2ddIF4gb1toXSBeIG9baV0gXiBvW2pdIF4gb1trXTsKLSAgICAgICAgdmFyIHRt
cCA9IG87Ci0gICAgICAgIG8gPSBwOwotICAgICAgICBwID0gdG1wOwotICAgIH0KLSAgICBpZiAo
cmVzdWx0ICE9IDY1MDAwMDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1jaGFpbi1mcm9tLXRyeS1ibG9jay5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGY5NzBmZWUyNGIwZWY2NTUyOTJjYWVkYTQxYzZiZWIwMGUwZDQyNC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotdmFyIGYgPSAnZic7Ci0KLWZ1bmN0aW9u
IEEoKSB7IH0KLQotQS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKLQotZnVuY3Rpb24gQigpIHsgfQot
Ci1CLnByb3RvdHlwZSA9IG5ldyBBKCk7Ci0KLWZ1bmN0aW9uIEMoKSB7IH0KLQotQy5wcm90b3R5
cGUgPSBuZXcgQigpOwotCi1mdW5jdGlvbiBEKCkgeyB9Ci0KLUQucHJvdG90eXBlID0gbmV3IEMo
KTsKLQotZnVuY3Rpb24gRSgpIHsgfQotCi1FLnByb3RvdHlwZSA9IG5ldyBEKCk7Ci0KLWZ1bmN0
aW9uIEYoKSB7IH0KLQotRi5wcm90b3R5cGUgPSBuZXcgRSgpOwotCi1mdW5jdGlvbiBHKCkgeyB9
Ci0KLUcucHJvdG90eXBlID0gbmV3IEYoKTsKLQotZnVuY3Rpb24gZm9vKG8pIHsKLSAgICB0cnkg
ewotICAgICAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwOyArK2kpCi0gICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsKLSAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHJldHVybiA1MjsKLSAgICB9Ci19Ci0K
LXZhciByZXN1bHQgPSAwOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKLSAgICBy
ZXN1bHQgKz0gZm9vKG5ldyBHKCkpOwotCi1pZiAocmVzdWx0ICE9IDQyMDAwMDAwKQotICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI4OGFhNWJiYTEyZWYwMzk5Zjgx
ZjkwNGNmZGJlNDhkMzhkOWMyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFs
LXdpdGgtc3RyaW5nLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcworKysgL2Rldi9udWxs
CkBAIC0xLDkgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gJ2EnLCBiID0gJ2In
LCBjID0gJ2MnLCBkID0gJ2QnLCBlID0gJ2UnLCBmID0gJ2YnLCBnID0gJ2cnLCBoID0gJ2gnLCBp
ID0gJ2knLCBqID0gJ2onLCBrID0gJ2snOwotICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2Nd
OjMsIFtkXTo0LCBbZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2td
OjExfTsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4
IDwgMTAwMDAwMDsgKytpbmRleCkKLSAgICAgICAgcmVzdWx0ICs9IG9bYV0gXiBvW2JdIHwgb1tj
XSBeIG9bZF0gJiBvW2VdIF4gb1tmXSB8IG9bZ10gXiBvW2hdICYgb1tpXSBeIG9bal0gfCBvW2td
OwotICAgIGlmIChyZXN1bHQgIT0gMTUwMDAwMDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXByb3RvLW9yLXNlbGYu
anMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXByb3RvLW9yLXNlbGYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVm
NzQ5M2I5OGY2MTBkMWM0YWQ5YjgzZWVjZjYxYTY3ZjllY2FhYjguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMjQgKzAsMCBAQAotdmFyIGYgPSAnZic7Ci0KLWZ1bmN0aW9uIGZvbyhvKSB7
Ci0gICAgcmV0dXJuIG9bZl07Ci19Ci0KLWZ1bmN0aW9uIGJhcihhKSB7Ci0gICAgdmFyIHJlc3Vs
dCA9IDA7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKLSAgICAgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCBhLmxlbmd0aDsgKytqKQotICAgICAgICAgICAgcmVzdWx0ICs9
IGZvbyhhW2pdKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gRm9v
KCkgewotfQotCi1Gb28ucHJvdG90eXBlW2ZdID0gNDI7Ci0KLXZhciByZXN1bHQgPSBiYXIoW25l
dyBGb28oKSwge1tmXToyNH1dKTsKLQotaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCi0gICAgdGhy
b3cgIkVycm9yIGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3Jw
aGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGlj
LWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk5MWRjZTNjMjU3ZDhkOWQ4MDRlNTQwYTgwOGY2ODRiNDk3ZjMyOTMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhp
Yy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMjIgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gJ2EnOwotICAgIHZhciBs
ID0gJ2wnOwotICAgIHZhciBiID0gJ2InOwotICAgIHZhciBjID0gJ2MnOwotCi0gICAgdmFyIG8g
PSB7W2FdOjF9OwotICAgIHZhciBwID0ge1thXToyLCBbbF06MTN9OwotICAgIHZhciBxID0ge1th
XTozLCBbYl06M307Ci0gICAgdmFyIHIgPSB7W2FdOjQsIFtjXTo1fTsKLSAgICB2YXIgcmVzdWx0
ID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgewotICAgICAgICBy
ZXN1bHQgXj0gb1thXTsKLSAgICAgICAgdmFyIHRtcCA9IG87Ci0gICAgICAgIG8gPSBwOwotICAg
ICAgICBwID0gcTsKLSAgICAgICAgcSA9IHI7Ci0gICAgICAgIHIgPSB0bXA7Ci0gICAgfQotICAg
IGlmIChyZXN1bHQgIT0gMCkKLSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OwotfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1vci1wcm90by5qcyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zdHJpbmctc2VsZi1v
ci1wcm90by5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJlYzEwN2NhN2ZhMzgw
ZjFiYzk2ZWY3ZTlhZTNhZmNkNTExNzJjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3RyaW5nLXNlbGYtb3ItcHJvdG8uanMKKysrIC9kZXYvbnVsbApAQCAtMSwy
NCArMCwwIEBACi12YXIgZiA9ICdmJzsKLQotZnVuY3Rpb24gZm9vKG8pIHsKLSAgICByZXR1cm4g
b1tmXTsKLX0KLQotZnVuY3Rpb24gYmFyKGEpIHsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDIwMDAwMDA7ICsraSkgewotICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IGEubGVuZ3RoOyArK2opCi0gICAgICAgICAgICByZXN1bHQgKz0gZm9vKGFbal0pOwot
ICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1mdW5jdGlvbiBGb28oKSB7Ci19Ci0KLUZv
by5wcm90b3R5cGVbZl0gPSA0MjsKLQotdmFyIHJlc3VsdCA9IGJhcihbe1tmXToyNH0sIG5ldyBG
b28oKV0pOwotCi1pZiAocmVzdWx0ICE9IDEzMjAwMDAwMCkKLSAgICB0aHJvdyAiRXJyb3IgYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVj
dHVyZS1lbGltaW5hdGlvbi1zaW1wbGUuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUt
ZWxpbWluYXRpb24tc2ltcGxlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODVk
MzJhZjUwMzJjZDA0NTg1Nzg0OTVjMzc3OTkyNTk4NWYzMDdlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi1zaW1wbGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0oZnVu
Y3Rpb24oKSB7Ci0gICAgdmFyIGEgPSBTeW1ib2woKSwgbCA9IFN5bWJvbCgpOwotICAgIHZhciBv
ID0ge1thXToxfTsKLSAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKLSAgICB2YXIgcmVzdWx0
ID0gMDsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgewotICAgICAgICBy
ZXN1bHQgXj0gb1thXTsKLSAgICAgICAgdmFyIHRtcCA9IG87Ci0gICAgICAgIG8gPSBwOwotICAg
ICAgICBwID0gdG1wOwotICAgIH0KLSAgICBpZiAocmVzdWx0ICE9IDApCi0gICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJp
bW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZiYmU5NzFiNjE2MzU5NGNlMjA0M2UyNzk1NTAwN2U4MzBiMDViOGUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotKGZ1bmN0
aW9uKCkgewotICAgIHZhciBhID0gU3ltYm9sKCksIGIgPSBTeW1ib2woKSwgYyA9IFN5bWJvbCgp
LCBkID0gU3ltYm9sKCksIGUgPSBTeW1ib2woKSwgZiA9IFN5bWJvbCgpLCBnID0gU3ltYm9sKCks
IGggPSBTeW1ib2woKSwgaSA9IFN5bWJvbCgpLCBqID0gU3ltYm9sKCksIGsgPSBTeW1ib2woKSwg
bCA9IFN5bWJvbCgpOwotICAgIHZhciBvID0ge1thXToxLCBbYl06MiwgW2NdOjMsIFtkXTo0LCBb
ZV06NSwgW2ZdOjYsIFtnXTo3LCBbaF06OCwgW2ldOjksIFtqXToxMCwgW2tdOjExfTsKLSAgICB2
YXIgcCA9IHtbYV06MiwgW2JdOjMsIFtjXTo0LCBbZF06NSwgW2VdOjYsIFtmXTo3LCBbZ106OCwg
W2hdOjksIFtpXToxMCwgW2pdOjExLCBba106MTIsIFtsXTogMTN9OwotICAgIHZhciByZXN1bHQg
PSAwOwotICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDAwMDAwOyArK2luZGV4KSB7
Ci0gICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1tiXSBeIG9bY10gXiBvW2RdIF4gb1tlXSBeIG9b
Zl0gXiBvW2ddIF4gb1toXSBeIG9baV0gXiBvW2pdIF4gb1trXTsKLSAgICAgICAgdmFyIHRtcCA9
IG87Ci0gICAgICAgIG8gPSBwOwotICAgICAgICBwID0gdG1wOwotICAgIH0KLSAgICBpZiAocmVz
dWx0ICE9IDY1MDAwMDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKLX0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzIGIvTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1j
aGFpbi1mcm9tLXRyeS1ibG9jay5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y4
YWM3OGE4NjA0MzBkYjY3YWNjNGVlMzc3MGQzMjczMzgwMmUxZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotdmFyIGYgPSBTeW1ib2woIkNvY29hIik7Ci0K
LWZ1bmN0aW9uIEEoKSB7IH0KLQotQS5wcm90b3R5cGUgPSB7W2ZdOjQyfTsKLQotZnVuY3Rpb24g
QigpIHsgfQotCi1CLnByb3RvdHlwZSA9IG5ldyBBKCk7Ci0KLWZ1bmN0aW9uIEMoKSB7IH0KLQot
Qy5wcm90b3R5cGUgPSBuZXcgQigpOwotCi1mdW5jdGlvbiBEKCkgeyB9Ci0KLUQucHJvdG90eXBl
ID0gbmV3IEMoKTsKLQotZnVuY3Rpb24gRSgpIHsgfQotCi1FLnByb3RvdHlwZSA9IG5ldyBEKCk7
Ci0KLWZ1bmN0aW9uIEYoKSB7IH0KLQotRi5wcm90b3R5cGUgPSBuZXcgRSgpOwotCi1mdW5jdGlv
biBHKCkgeyB9Ci0KLUcucHJvdG90eXBlID0gbmV3IEYoKTsKLQotZnVuY3Rpb24gZm9vKG8pIHsK
LSAgICB0cnkgewotICAgICAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwOyArK2kpCi0gICAgICAgICAgICByZXN1bHQgKz0gb1tmXTsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIHJldHVybiA1MjsKLSAg
ICB9Ci19Ci0KLXZhciByZXN1bHQgPSAwOwotCi1mb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsr
aSkKLSAgICByZXN1bHQgKz0gZm9vKG5ldyBHKCkpOwotCi1pZiAocmVzdWx0ICE9IDQyMDAwMDAw
KQotICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ1OWZkOGUwYmI5
OTE0ZWVkNmJmNGVlZDE1NTAwYzQ4ZjJjNDQyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9n
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi5qcworKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotKGZ1bmN0aW9uKCkgewotICAgIHZhciBhID0gU3lt
Ym9sKCksIGIgPSBTeW1ib2woKSwgYyA9IFN5bWJvbCgpLCBkID0gU3ltYm9sKCksIGUgPSBTeW1i
b2woKSwgZiA9IFN5bWJvbCgpLCBnID0gU3ltYm9sKCksIGggPSBTeW1ib2woKSwgaSA9IFN5bWJv
bCgpLCBqID0gU3ltYm9sKCksIGsgPSBTeW1ib2woKTsKLSAgICB2YXIgbyA9IHtbYV06MSwgW2Jd
OjIsIFtjXTozLCBbZF06NCwgW2VdOjUsIFtmXTo2LCBbZ106NywgW2hdOjgsIFtpXTo5LCBbal06
MTAsIFtrXToxMX07Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgZm9yICh2YXIgaW5kZXggPSAw
OyBpbmRleCA8IDEwMDAwMDA7ICsraW5kZXgpCi0gICAgICAgIHJlc3VsdCArPSBvW2FdIF4gb1ti
XSB8IG9bY10gXiBvW2RdICYgb1tlXSBeIG9bZl0gfCBvW2ddIF4gb1toXSAmIG9baV0gXiBvW2pd
IHwgb1trXTsKLSAgICBpZiAocmVzdWx0ICE9IDE1MDAwMDAwKQotICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Ci19KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1wcm90by1v
ci1zZWxmLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZh
bC13aXRoLXN5bWJvbC1wcm90by1vci1zZWxmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlMmY4MmFiMjY4YTczMjkzNzA4NTc2YmM3ODA2ZWNhNjdiNmFlYjhkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZi5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXZhciBmID0gU3ltYm9sKCJDb2NvYSIpOwot
Ci1mdW5jdGlvbiBmb28obykgewotICAgIHJldHVybiBvW2ZdOwotfQotCi1mdW5jdGlvbiBiYXIo
YSkgewotICAgIHZhciByZXN1bHQgPSAwOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjAwMDAw
MDsgKytpKSB7Ci0gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYS5sZW5ndGg7ICsraikKLSAg
ICAgICAgICAgIHJlc3VsdCArPSBmb28oYVtqXSk7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci0KLWZ1bmN0aW9uIEZvbygpIHsKLX0KLQotRm9vLnByb3RvdHlwZVtmXSA9IDQyOwotCi12
YXIgcmVzdWx0ID0gYmFyKFtuZXcgRm9vKCksIHtbZl06MjR9XSk7Ci0KLWlmIChyZXN1bHQgIT0g
MTMyMDAwMDAwKQotICAgIHRocm93ICJFcnJvciBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13
aXRoLXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
LmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTgzNjJhZGVhNzBhYjgyMDRkZTVkNTVi
OWU0YzU2OGMxMTBkMDc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2dldC1ieS12YWwtd2l0
aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLShmdW5jdGlvbigpIHsKLSAgICB2YXIg
YSA9IFN5bWJvbCgiQ29jb2EiKTsKLSAgICB2YXIgbCA9IFN5bWJvbCgpOwotICAgIHZhciBiID0g
U3ltYm9sKCk7Ci0gICAgdmFyIGMgPSBTeW1ib2woKTsKLQotICAgIHZhciBvID0ge1thXToxfTsK
LSAgICB2YXIgcCA9IHtbYV06MiwgW2xdOjEzfTsKLSAgICB2YXIgcSA9IHtbYV06MywgW2JdOjN9
OwotICAgIHZhciByID0ge1thXTo0LCBbY106NX07Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsKLSAgICAgICAgcmVzdWx0IF49IG9b
YV07Ci0gICAgICAgIHZhciB0bXAgPSBvOwotICAgICAgICBvID0gcDsKLSAgICAgICAgcCA9IHE7
Ci0gICAgICAgIHEgPSByOwotICAgICAgICByID0gdG1wOwotICAgIH0KLSAgICBpZiAocmVzdWx0
ICE9IDApCi0gICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKLX0p
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9nZXQt
YnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9nZXQtYnktdmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8uanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwMDhjMzY0MTIwYmYyYWE0OGFkNzRhYTNi
NWE2ZmM3Yjk2N2JmYmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1zZWxmLW9yLXByb3RvLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAot
dmFyIGYgPSBTeW1ib2woJ0NvY29hJyk7Ci0KLWZ1bmN0aW9uIGZvbyhvKSB7Ci0gICAgcmV0dXJu
IG9bZl07Ci19Ci0KLWZ1bmN0aW9uIGJhcihhKSB7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwMDAwOyArK2kpIHsKLSAgICAgICAgZm9yICh2YXIgaiA9
IDA7IGogPCBhLmxlbmd0aDsgKytqKQotICAgICAgICAgICAgcmVzdWx0ICs9IGZvbyhhW2pdKTsK
LSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZnVuY3Rpb24gRm9vKCkgewotfQotCi1G
b28ucHJvdG90eXBlW2ZdID0gNDI7Ci0KLXZhciByZXN1bHQgPSBiYXIoW3tbZl06MjR9LCBuZXcg
Rm9vKCldKTsKLQotaWYgKHJlc3VsdCAhPSAxMzIwMDAwMDApCi0gICAgdGhyb3cgIkVycm9yIGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>