<?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>202025</bug_id>
          
          <creation_ts>2019-09-19 20:43:39 -0700</creation_ts>
          <short_desc>Begin moving WebsiteDataStore setters to WebsiteDataStoreConfiguration</short_desc>
          <delta_ts>2019-09-20 14:46:24 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572627</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-19 20:43:39 -0700</bug_when>
    <thetext>Begin moving WebsiteDataStore setters to WebsiteDataStoreConfiguration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572628</commentid>
    <comment_count>1</comment_count>
      <attachid>379202</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-19 20:49:44 -0700</bug_when>
    <thetext>Created attachment 379202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572667</commentid>
    <comment_count>2</comment_count>
      <attachid>379213</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-19 23:24:36 -0700</bug_when>
    <thetext>Created attachment 379213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572682</commentid>
    <comment_count>3</comment_count>
      <attachid>379221</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-20 00:55:21 -0700</bug_when>
    <thetext>Created attachment 379221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572683</commentid>
    <comment_count>4</comment_count>
      <attachid>379222</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-20 00:56:34 -0700</bug_when>
    <thetext>Created attachment 379222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572875</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-20 14:01:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/r250150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572876</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-20 14:02:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/55571348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572907</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-20 14:46:24 -0700</bug_when>
    <thetext>And the tools part was committed in http://trac.webkit.org/r250156
Sorry about the probably broken tests between these two commits.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379202</attachid>
            <date>2019-09-19 20:49:44 -0700</date>
            <delta_ts>2019-09-19 23:24:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202025-20190919204943.patch</filename>
            <type>text/plain</type>
            <size>32267</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTAwODEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE5LTA5LTE5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQmVnaW4gbW92aW5n
IFdlYnNpdGVEYXRhU3RvcmUgc2V0dGVycyB0byBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDI1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdCBv
ZiB0aGVzZSB3ZXJlIG9ubHkgbmVlZGVkIGJlZm9yZSBpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3Vy
YXRpb24gZXhpc3RlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb25HZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEpOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtX
S1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGFdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHBlck9yaWdpblN0b3JhZ2VRdW90YV0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBzZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAgICgt
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRCb3Vu
ZEludGVyZmFjZUlkZW50aWZpZXI6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIGFsbG93c0NlbGx1bGFyQWNjZXNzXSk6CisgICAgICAgICgtW19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEFsbG93c0NlbGx1bGFyQWNjZXNzOl0pOgorICAg
ICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRp
b25dKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJv
eHlDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2Nv
YS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vi
c2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFNv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVy
KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Ym91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjphbGxvd3NDZWxsdWxhckFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFBlck9yaWdpblN0
b3JhZ2VRdW90YSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OnNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjphbGxvd3NDZWxsdWxhckFjY2VzcyBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRBbGxvd3NDZWxs
dWxhckFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uOjpwcm94eUNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UHJveHlDb25maWd1cmF0aW9uKToKKwogMjAxOS0w
OS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERlY3JlYXNl
IHVzZSBvZiBzZXNzaW9uSUQgaW4gV2ViTG9hZGVyU3RyYXRlZ3kKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwCShyZXZpc2lvbiAyNTAwMTkpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVm
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDMgKzExMCwxMyBAQCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRSCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJh
dGlvbiktPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoV2ViS2l0Ojp0b0ltcGwo
ZGlyZWN0b3J5KS0+c3RyaW5nKCkpOwogfQorCit1aW50NjRfdCBXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uR2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0lt
cGwoY29uZmlndXJhdGlvbiktPnBlck9yaWdpblN0b3JhZ2VRdW90YSgpOworfQorCit2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCB1aW50NjRfdCBx
dW90YSkKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFBl
ck9yaWdpblN0b3JhZ2VRdW90YShxdW90YSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvblJlZi5oCShyZXZpc2lvbiAyNTAwMTkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDEwIEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3UKIAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25Db3B5UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShXS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkoV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBX
S1N0cmluZ1JlZiBkaXJlY3RvcnkpOwotICAgIAorCitXS19FWFBPUlQgdWludDY0X3QgV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkdldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOworV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90
YShXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIHVpbnQ2
NF90IHF1b3RhKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcAkocmV2aXNpb24gMjUwMDE5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA1LDkgKzYw
NSw4IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U2VydmljZVdvcmtlclIKICAgICBXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShXZWJLaXQ6OnRvSW1wbChzZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5KS0+c3RyaW5nKCkpOwogfQogCi12b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCB1aW50NjRfdCBxdW90YSkKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3Jp
Z2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgdWludDY0X3QpCiB7Ci0gICAg
V2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNldFBlck9y
aWdpblN0b3JhZ2VRdW90YShxdW90YSk7CiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xl
YXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAkocmV2aXNpb24gMjUwMDE5KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tXZWJzaXRlRGF0YVN0b3JlUmVmX2gK
IAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNh
dGVkLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC0xMzMsNyArMTM0
LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlR2V0RmV0YwogV0tfRVhQT1JU
IFdLU3RyaW5nUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNvcHlTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogV0tfRVhQ
T1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBz
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KTsKIAotV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIHVpbnQ2NF90IHF1b3RhKTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCB1aW50NjRfdCBxdW90YSkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRQZXJPcmlnaW5T
dG9yYWdlUXVvdGEpOwogCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIFdLRGljdGlvbmFyeVJlZiBjb25maWd1cmF0aW9uKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tCShyZXZpc2lvbiAyNTAwMTkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcsNiArMzA3
LDExIEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOigKICAgICAgICAg
Y29uZmlnLT5zZXRIVFRQUHJveHkoY29uZmlndXJhdGlvbi5odHRwUHJveHkpOwogICAgIGlmIChj
b25maWd1cmF0aW9uLmh0dHBzUHJveHkpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFNQcm94eShj
b25maWd1cmF0aW9uLmh0dHBzUHJveHkpOworCisgICAgY29uZmlnLT5zZXRBbGxvd3NDZWxsdWxh
ckFjY2Vzcyhjb25maWd1cmF0aW9uLmFsbG93c0NlbGx1bGFyQWNjZXNzKTsKKyAgICBjb25maWct
PnNldFBlck9yaWdpblN0b3JhZ2VRdW90YShjb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VR
dW90YSk7CisgICAgY29uZmlnLT5zZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoY29uZmlndXJh
dGlvbi5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIpOworICAgIGNvbmZpZy0+c2V0UHJveHlDb25m
aWd1cmF0aW9uKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpW1tjb25maWd1cmF0aW9uLnByb3h5
Q29uZmlndXJhdGlvbiBjb3B5XSBhdXRvcmVsZWFzZV0pOwogICAgIGNvbmZpZy0+c2V0RGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoY29uZmlndXJhdGlvbi5kZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRW5hYmxlZCk7CiAgICAgY29uZmlnLT5zZXRBbGxMb2Fkc0Jsb2NrZWRC
eURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKGNvbmZpZ3VyYXRpb24uYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyk7CiAK
QEAgLTM2NiwxMiArMzcxLDExIEBAIC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1Z00KIAogLSAoTlNVSW50ZWdlcilfcGVyT3JpZ2luU3RvcmFnZVF1b3RhCiB7Ci0gICAgcmV0
dXJuIF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucGVyT3JpZ2luU3RvcmFn
ZVF1b3RhKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIC0gKHZvaWQpX3NldFBlck9yaWdpblN0b3Jh
Z2VRdW90YTooTlNVSW50ZWdlcilzaXplCiB7Ci0gICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNp
dGVEYXRhU3RvcmUoKS5zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoc2l6ZSk7CiB9CiAKIC0gKE5T
U3RyaW5nICopX2NhY2hlU3RvcmFnZURpcmVjdG9yeQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJp
dmF0ZS5oCShyZXZpc2lvbiAyNTAwMTkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwx
NSArNDgsMTUgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdAogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZDopIEJPT0wgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTopIEJPT0wgX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEZWJ1Z01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZXJPcmlnaW5TdG9yYWdl
UXVvdGE6KSBOU1VJbnRlZ2VyIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TU3RyaW5nKiBfY2FjaGVTdG9yYWdlRGly
ZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5OikgTlNTdHJpbmcqIF9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0KLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5n
ICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3ND
ZWxsdWxhckFjY2VzczopIEJPT0wgX2FsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRQcm94eUNvbmZpZ3VyYXRpb246KSBOU0RpY3Rpb25hcnkgKl9wcm94eUNvbmZpZ3Vy
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXI6KSBOU1N0cmluZyAqX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVu
dGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFBlck9yaWdpblN0b3JhZ2VRdW90YTopIE5TVUludGVnZXIg
X3Blck9yaWdpblN0b3JhZ2VRdW90YSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5wZXJPcmlnaW5TdG9yYWdlUXVvdGEi
LCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5T
U3RyaW5nKiBfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNhY2hlU3RvcmFnZURp
cmVjdG9yeSIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeTopIE5TU3RyaW5nKiBfc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5Iiwg
bWFjb3MoMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSk7CisKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjop
IE5TU3RyaW5nICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmJvdW5kSW50
ZXJmYWNlSWRlbnRpZmllciIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywg
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzQ2Vs
bHVsYXJBY2Nlc3M6KSBCT09MIF9hbGxvd3NDZWxsdWxhckFjY2VzcyBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5hbGxv
d3NDZWxsdWxhckFjY2VzcyIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywg
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJveHlDb25m
aWd1cmF0aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LnByb3h5Q29uZmlndXJhdGlvbiIsIG1hY29zKDEwLjE0LCBXS19NQUNfVEJBKSwgaW9zKDEyLjAs
IFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfc291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
Il9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciIsIG1hY29zKDEwLjE0LjQsIFdLX01BQ19UQkEpLCBpb3MoMTIuMiwgV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uc2V0U291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTQuNCwgV0tfTUFDX1RCQSksIGlvcygxMi4yLCBX
S19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NUTFNG
YWxsYmFjazopIEJPT0wgX2FsbG93c1RMU0ZhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgTlNVUkwgKl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTAwMTkpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMTAgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1By
b3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgcGVyT3JpZ2luU3RvcmFnZVF1b3RhIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0NlbGx1bGFyQWNjZXNzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TRGljdGlvbmFyeSAqcHJveHlDb25m
aWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIC8vIFRoZXNlIHByb3BlcnRpZXMgb25seSBtYWtlIHNlbnNlIGZvciBwZXJzaXN0
ZW50IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwogLy8gYW4gZXhjZXB0aW9uIGlmIHNldCBm
b3Igbm9uLXBlcnNpc3RlbnQgc3RvcmVzLgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5tbQkocmV2aXNpb24gMjUwMDE5KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODQsNiArMjg0LDQ2IEBAIC0gKHZvaWQpc2V0RGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0UKICAgICBfY29uZmlndXJhdGlvbi0+c2V0RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKKy0gKE5TVUludGVnZXIpcGVyT3JpZ2lu
U3RvcmFnZVF1b3RhCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5wZXJPcmlnaW5TdG9y
YWdlUXVvdGEoKTsKK30KKworLSAodm9pZClzZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6KE5TVUlu
dGVnZXIpcXVvdGEKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVyT3JpZ2luU3RvcmFnZVF1
b3RhKHF1b3RhKTsKK30KKworLSAoTlNTdHJpbmcgKilib3VuZEludGVyZmFjZUlkZW50aWZpZXIK
K3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigp
OworfQorCistICh2b2lkKXNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjooTlNTdHJpbmcgKilp
ZGVudGlmaWVyCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldEJvdW5kSW50ZXJmYWNlSWRlbnRp
ZmllcihpZGVudGlmaWVyKTsKK30KKworLSAoQk9PTClhbGxvd3NDZWxsdWxhckFjY2Vzcworewor
ICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YWxsb3dzQ2VsbHVsYXJBY2Nlc3MoKTsKK30KKwor
LSAodm9pZClzZXRBbGxvd3NDZWxsdWxhckFjY2VzczooQk9PTClhbGxvd3MKK3sKKyAgICBfY29u
ZmlndXJhdGlvbi0+c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoYWxsb3dzKTsKK30KKworLSAoTlNE
aWN0aW9uYXJ5ICopcHJveHlDb25maWd1cmF0aW9uCit7CisgICAgcmV0dXJuIChfX2JyaWRnZSBO
U0RpY3Rpb25hcnkgKilfY29uZmlndXJhdGlvbi0+cHJveHlDb25maWd1cmF0aW9uKCk7Cit9CisK
Ky0gKHZvaWQpc2V0UHJveHlDb25maWd1cmF0aW9uOihOU0RpY3Rpb25hcnkgKiljb25maWd1cmF0
aW9uCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFByb3h5Q29uZmlndXJhdGlvbigoX19icmlk
Z2UgQ0ZEaWN0aW9uYXJ5UmVmKVtjb25maWd1cmF0aW9uIGNvcHldKTsKK30KKwogLSAoQk9PTClh
bGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nCiB7
CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkocmV2
aXNpb24gMjUwMDE5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw4ICsxMDIsNiBAQCBXZWJz
aXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXCiAgICAgLCBtX2NvbmZpZ3VyYXRp
b24obV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmNvcHkoKSkKICAgICAsIG1fZGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UoRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U6OmNyZWF0ZShpc1BlcnNpc3RlbnQo
KSA/IG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5KCkg
OiBTdHJpbmcoKSkpCiAgICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiKSkKLSAgICAsIG1fc291cmNlQXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKG1fY29uZmlndXJhdGlvbi0+c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKCkpCi0gICAgLCBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciht
X2NvbmZpZ3VyYXRpb24tPnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpKQog
I2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgLCBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VV
bmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCiAjZW5kaWYKQEAgLTIwMjgsNyArMjAy
Niw3IEBAIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U291cmNlQXBwbGljYXQKIHsKICAgICBp
ZiAobV9uZXR3b3JraW5nSGFzQmVndW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3Nv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7
CisgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMjA0NCw3ICsyMDQyLDcgQEAgYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTb3VyY2VB
cHBsaWNhdAogewogICAgIGlmIChtX25ldHdvcmtpbmdIYXNCZWd1bikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gV1RGTW92
ZShpZGVudGlmaWVyKTsKKyAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0U291cmNlQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKFdURk1vdmUoaWRlbnRpZmllcikpOwogICAgIHJldHVy
biB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyNTAwMTkpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBwZXJP
cmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlv
bi0+cGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7IH0KICAgICB1aW50NjRfdCBwZXJUaGlyZFBhcnR5
T3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRQZXJPcmlnaW5TdG9yYWdl
UXVvdGEodWludDY0X3QgcXVvdGEpIHsgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFBlck9y
aWdpblN0b3JhZ2VRdW90YShxdW90YSk7IH0KICAgICBjb25zdCBTdHJpbmcmIGNhY2hlU3RvcmFn
ZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5jYWNo
ZVN0b3JhZ2VEaXJlY3RvcnkoKTsgfQogICAgIHZvaWQgc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5
KFN0cmluZyYmIGRpcmVjdG9yeSkgeyBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0Q2FjaGVT
dG9yYWdlRGlyZWN0b3J5KFdURk1vdmUoZGlyZWN0b3J5KSk7IH0KICAgICBjb25zdCBTdHJpbmcm
IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jl
c29sdmVkQ29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgp
OyB9CkBAIC0yMTAsMTMgKzIwOSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVQZW5kaW5n
Q29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgY2xlYXJQZW5kaW5nQ29v
a2llcygpOwogCi0gICAgdm9pZCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYg
aWRlbnRpZmllcikgeyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRp
Zmllcik7IH0KLSAgICBjb25zdCBTdHJpbmcmIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpIHsg
cmV0dXJuIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRCb3VuZElu
dGVyZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi0+c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKFdURk1vdmUoaWRlbnRpZmllcikp
OyB9CisgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlkZW50aWZpZXIoKSB7IHJldHVy
biBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVyKCk7IH0K
IAotICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7IH0KKyAg
ICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoKTsgfQogICAgIGJvb2wgc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKFN0cmluZyYmKTsKIAotICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25T
ZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9u
U2Vjb25kYXJ5SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0
aW9uLT5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIoKTsgfQogICAgIGJvb2wg
c2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKFN0cmluZyYmKTsKIAogICAg
IGJvb2wgYWxsb3dzVExTRmFsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2FsbG93c1RMU0ZhbGxi
YWNrOyB9CkBAIC0yMjQsMTIgKzIyMywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5ldHdvcmtp
bmdIYXNCZWd1bigpIHsgbV9uZXR3b3JraW5nSGFzQmVndW4gPSB0cnVlOyB9CiAgICAgCi0gICAg
dm9pZCBzZXRBbGxvd3NDZWxsdWxhckFjY2VzcyhBbGxvd3NDZWxsdWxhckFjY2VzcyBhbGxvd3Mp
IHsgbV9hbGxvd3NDZWxsdWxhckFjY2VzcyA9IGFsbG93czsgfQotICAgIEFsbG93c0NlbGx1bGFy
QWNjZXNzIGFsbG93c0NlbGx1bGFyQWNjZXNzKCkgeyByZXR1cm4gbV9hbGxvd3NDZWxsdWxhckFj
Y2VzczsgfQorICAgIHZvaWQgc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoQWxsb3dzQ2VsbHVsYXJB
Y2Nlc3MgYWxsb3dzKSB7IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRBbGxvd3NDZWxsdWxh
ckFjY2VzcyhhbGxvd3MgPT0gQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6Olllcyk7IH0KKyAgICBBbGxv
d3NDZWxsdWxhckFjY2VzcyBhbGxvd3NDZWxsdWxhckFjY2VzcygpIHsgcmV0dXJuIG1fcmVzb2x2
ZWRDb25maWd1cmF0aW9uLT5hbGxvd3NDZWxsdWxhckFjY2VzcygpID8gQWxsb3dzQ2VsbHVsYXJB
Y2Nlc3M6OlllcyA6IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpObzsgfQogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24oQ0ZEaWN0aW9uYXJ5UmVmIGNv
bmZpZ3VyYXRpb24pIHsgbV9wcm94eUNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOyB9Ci0g
ICAgQ0ZEaWN0aW9uYXJ5UmVmIHByb3h5Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fcHJveHlD
b25maWd1cmF0aW9uLmdldCgpOyB9CisgICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24oQ0ZE
aWN0aW9uYXJ5UmVmIGNvbmZpZ3VyYXRpb24pIHsgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNl
dFByb3h5Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKTsgfQorICAgIENGRGljdGlvbmFyeVJl
ZiBwcm94eUNvbmZpZ3VyYXRpb24oKSB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+
cHJveHlDb25maWd1cmF0aW9uKCk7IH0KICNlbmRpZgogCiAjaWYgVVNFKENVUkwpCkBAIC0zMTEs
NyArMzEwLDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBWZWN0b3I8dWlu
dDhfdD4gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKICAgICBSZXRhaW5QdHI8
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gbV9jZkNvb2tpZVN0b3JhZ2U7Ci0gICAgUmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5kaWYKIAogI2lmIFVT
RShDVVJMKQpAQCAtMzIyLDEwICszMjAsNiBAQCBwcml2YXRlOgogICAgIAogICAgIFdlYWtIYXNo
U2V0PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzZXM7CiAKLSAgICBTdHJpbmcgbV9ib3VuZElu
dGVyZmFjZUlkZW50aWZpZXI7Ci0gICAgQWxsb3dzQ2VsbHVsYXJBY2Nlc3MgbV9hbGxvd3NDZWxs
dWxhckFjY2VzcyB7IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpZZXMgfTsKLSAgICBTdHJpbmcgbV9z
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7Ci0gICAgU3RyaW5nIG1fc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGJvb2wgbV9hbGxvd3NUTFNGYWxsYmFj
ayB7IHRydWUgfTsKICAgICBib29sIG1fbmV0d29ya2luZ0hhc0JlZ3VuIHsgZmFsc2UgfTsKIApJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAkocmV2aXNpb24g
MjUwMDE5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSwxMiBA
QCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdlYnNpCiAgICAgY29weS0+bV9o
dHRwc1Byb3h5ID0gdGhpcy0+bV9odHRwc1Byb3h5OwogICAgIGNvcHktPm1fZGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSB0aGlzLT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNFbmFibGVkOwogICAgIGNvcHktPm1fYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IHRoaXMtPm1fYWxsTG9hZHNCbG9ja2VkQnlEZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKKyAgICBjb3B5LT5tX2JvdW5kSW50
ZXJmYWNlSWRlbnRpZmllciA9IHRoaXMtPm1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOworICAg
IGNvcHktPm1fYWxsb3dzQ2VsbHVsYXJBY2Nlc3MgPSB0aGlzLT5tX2FsbG93c0NlbGx1bGFyQWNj
ZXNzOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChtX3Byb3h5Q29uZmlndXJhdGlvbikK
KyAgICAgICAgY29weS0+bV9wcm94eUNvbmZpZ3VyYXRpb24gPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZUNvcHkobnVsbHB0ciwgdGhpcy0+bV9wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCkpKTsK
KyNlbmRpZgogCiAgICAgcmV0dXJuIGNvcHk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1MDAxOSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY4LDYgKzY4LDE3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGxv
Y2FsU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGlyZWN0
b3J5OyB9CiAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoU3RyaW5nJiYgZGlyZWN0
b3J5KSB7IG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gV1RGTW92ZShkaXJlY3RvcnkpOyB9CiAK
KyAgICBjb25zdCBTdHJpbmcmIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRCb3VuZEludGVy
ZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX2JvdW5kSW50ZXJmYWNlSWRl
bnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KKworICAgIGJvb2wgYWxsb3dzQ2VsbHVs
YXJBY2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0NlbGx1bGFyQWNjZXNzOyB9CisgICAg
dm9pZCBzZXRBbGxvd3NDZWxsdWxhckFjY2Vzcyhib29sIGFsbG93cykgeyBtX2FsbG93c0NlbGx1
bGFyQWNjZXNzID0gYWxsb3dzOyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBDRkRpY3Rp
b25hcnlSZWYgcHJveHlDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eUNvbmZp
Z3VyYXRpb24uZ2V0KCk7IH0KKyAgICB2b2lkIHNldFByb3h5Q29uZmlndXJhdGlvbihDRkRpY3Rp
b25hcnlSZWYgY29uZmlndXJhdGlvbikgeyBtX3Byb3h5Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3Vy
YXRpb247IH0KKyNlbmRpZgorICAgIAogICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRIYXNoU2Fs
dHNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VJZEhhc2hTYWx0c1N0
b3JhZ2VEaXJlY3Rvcnk7IH0KICAgICB2b2lkIHNldERldmljZUlkSGFzaFNhbHRzU3RvcmFnZURp
cmVjdG9yeShTdHJpbmcmJiBkaXJlY3RvcnkpIHsgbV9kZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VE
aXJlY3RvcnkgPSBXVEZNb3ZlKGRpcmVjdG9yeSk7IH0KIApAQCAtMTMyLDEwICsxNDMsMTUgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV9jb29raWVTdG9yYWdlRmlsZTsKICAgICBTdHJpbmcgbV9z
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOworICAgIFN0cmluZyBtX2JvdW5kSW50ZXJmYWNl
SWRlbnRpZmllcjsKICAgICBVUkwgbV9odHRwUHJveHk7CiAgICAgVVJMIG1faHR0cHNQcm94eTsK
ICAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlv
bnNGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsb3dzQ2VsbHVsYXJBY2Nlc3Mg
eyB0cnVlIH07CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmV0YWluUHRyPENGRGljdGlvbmFy
eVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2Nv
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9D
b2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0JKHJldmlzaW9uIDI1MDAxOSkKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2Nv
YS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE5LDExICsxMTksMTEgQEAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdAogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
IHBhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSB7
CiAgICAgICAgIG1fc2Vzc2lvbklELAotICAgICAgICBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmll
ciwKLSAgICAgICAgbV9hbGxvd3NDZWxsdWxhckFjY2VzcywKLSAgICAgICAgbV9wcm94eUNvbmZp
Z3VyYXRpb24sCi0gICAgICAgIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLAot
ICAgICAgICBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciwKKyAgICAgICAg
Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVyKCksCisgICAgICAgIGFsbG93c0NlbGx1bGFyQWNjZXNz
KCksCisgICAgICAgIHByb3h5Q29uZmlndXJhdGlvbigpLAorICAgICAgICBzb3VyY2VBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIoKSwKKyAgICAgICAgc291cmNlQXBwbGljYXRpb25TZWNvbmRh
cnlJZGVudGlmaWVyKCksCiAgICAgICAgIG1fYWxsb3dzVExTRmFsbGJhY2sgPyBBbGxvd3NUTFNG
YWxsYmFjazo6WWVzIDogQWxsb3dzVExTRmFsbGJhY2s6Ok5vLAogICAgICAgICBzaG91bGRMb2dD
b29raWVJbmZvcm1hdGlvbiwKICAgICAgICAgU2Vjb25kcyB7IFtkZWZhdWx0cyBpbnRlZ2VyRm9y
S2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWlsbGlzZWNvbmRzRGVmYXVsdHNL
ZXldIC8gMTAwMC4gfSwKQEAgLTE1NSw4ICsxNTUsOCBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJzaXRlRGF0YVN0CiAgICAgfQogCiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29r
aWVTdG9yYWdlSWRlbnRpZmllciA9IG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7
Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyID0gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7
Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRp
b25TZWNvbmRhcnlJZGVudGlmaWVyID0gbV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50
aWZpZXI7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKCk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJ
ZGVudGlmaWVyKCk7CiAKICAgICBwYXJhbWV0ZXJzLnBlbmRpbmdDb29raWVzID0gY29weVRvVmVj
dG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTAxMTgpCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wOS0xOSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEJlZ2luIG1vdmlu
ZyBXZWJzaXRlRGF0YVN0b3JlIHNldHRlcnMgdG8gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjAy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TdG9yYWdlUXVvdGEubW06CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24pOgorCiAyMDE5LTA5LTE5ICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dW01pbmlCcm93
c2VyXSBVc2UgX2NvbV9wdHJfdCBtZXRob2RzIGluc3RlYWQgb2YgY2FsbGluZyBRdWVyeUludGVy
ZmFjZSBleHBsaWN0bHkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU3RvcmFnZVF1b3RhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1tCShyZXZpc2lvbiAyNTAwMTkpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JhZ2VRdW90YS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjI1LDE1ICsyMjUsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldFZpc2li
bGUoVGVzdFdLV2ViVgogVEVTVChXZWJLaXQsIFF1b3RhRGVsZWdhdGUpCiB7CiAgICAgZG9uZSA9
IGZhbHNlOwotICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92
ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9k
aWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewor
ICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICpzdG9yZUNvbmZpZ3VyYXRpb24g
PSBbW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0gYXV0b3Jl
bGVhc2VdOworICAgIHN0b3JlQ29uZmlndXJhdGlvbi5wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSAx
MDI0ICogNDAwOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZSAqZGF0YVN0b3JlID0gW1tbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29uZmlndXJh
dGlvbl0gYXV0b3JlbGVhc2VdOworICAgIFtkYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6W1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0Rh
dGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0
cnVlOwogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAKICAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6ZGF0
YVN0b3JlXTsKIAotICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfc2V0UGVy
T3JpZ2luU3RvcmFnZVF1b3RhOiAxMDI0ICogNDAwXTsKLSAgICAKICAgICBhdXRvIG1lc3NhZ2VI
YW5kbGVyID0gYWRvcHROUyhbW1F1b3RhTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAg
ICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdl
SGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAicXQiXTsKIApAQCAtMjg2LDE0ICsy
ODgsMTYgQEAgVEVTVChXZWJLaXQsIFF1b3RhRGVsZWdhdGUpCiBURVNUKFdlYktpdCwgUXVvdGFE
ZWxlZ2F0ZVJlbG9hZCkKIHsKICAgICBkb25lID0gZmFsc2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRh
U3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBh
c3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24gKnN0b3JlQ29uZmlndXJhdGlvbiA9IFtbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgc3RvcmVDb25maWd1cmF0
aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSA9IDEwMjQgKiA0MDA7CisgICAgV0tXZWJzaXRlRGF0
YVN0b3JlICpkYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07CisgICAgW2Rh
dGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVE
YXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhh
bmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIAotICAg
IFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfc2V0UGVyT3JpZ2luU3RvcmFnZVF1
b3RhOiAxMDI0ICogNDAwXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3Jl
OmRhdGFTdG9yZV07CiAgICAgCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tR
dW90YU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVz
ZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRs
ZXIuZ2V0KCkgbmFtZTpAInF0Il07CkBAIC0zMzIsMTQgKzMzNiwxNiBAQCBURVNUKFdlYktpdCwg
UXVvdGFEZWxlZ2F0ZVJlbG9hZCkKIFRFU1QoV2ViS2l0LCBRdW90YURlbGVnYXRlTmF2aWdhdGVG
cmFnbWVudCkKIHsKICAgICBkb25lID0gZmFsc2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUg
ZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNv
bXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24gKnN0b3JlQ29uZmlndXJhdGlvbiA9IFtbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgc3RvcmVDb25maWd1cmF0aW9uLnBl
ck9yaWdpblN0b3JhZ2VRdW90YSA9IDEwMjQgKiA0MDA7CisgICAgV0tXZWJzaXRlRGF0YVN0b3Jl
ICpkYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZp
Z3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07CisgICAgW2RhdGFTdG9y
ZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlw
ZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6
XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0KLSAgICBbW2NvbmZpZ3VyYXRp
b24gd2Vic2l0ZURhdGFTdG9yZV0gX3NldFBlck9yaWdpblN0b3JhZ2VRdW90YTogMTAyNCAqIDQw
MF07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpkYXRhU3RvcmVdOwog
CiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tRdW90YU1lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInF0
Il07CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2
aXNpb24gMjUwMDE5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw2ICs1MjMsNyBAQCBXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgVGVzdENvbnRyb2xsZXI6OndlCiAgICAgICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uU2V0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5nZXQoKSwg
dG9XSyh0ZW1wb3JhcnlGb2xkZXIgKyBwYXRoU2VwYXJhdG9yICsgIkRhdGFiYXNlcyIgKyBwYXRo
U2VwYXJhdG9yICsgIldlYlNRTCIpLmdldCgpKTsKICAgICAgICAgICAgIFdLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb25TZXRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGNvbmZpZ3VyYXRp
b24uZ2V0KCksIHRvV0sodGVtcG9yYXJ5Rm9sZGVyICsgcGF0aFNlcGFyYXRvciArICJNZWRpYUtl
eXMiKS5nZXQoKSk7CiAgICAgICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
U2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShjb25maWd1cmF0aW9uLmdldCgpLCB0
b1dLKHRlbXBvcmFyeUZvbGRlciArIHBhdGhTZXBhcmF0b3IgKyAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyIpLmdldCgpKTsKKyAgICAgICAgICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b25TZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoY29uZmlndXJhdGlvbi5nZXQoKSwgNDAwICogMTAy
NCk7CiAgICAgICAgIH0KICAgICAgICAgZGF0YVN0b3JlID0gV0tXZWJzaXRlRGF0YVN0b3JlQ3Jl
YXRlV2l0aENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5nZXQoKSk7CiAgICAgfQpAQCAtNTUx
LDggKzU1Miw2IEBAIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IFRlc3QKICAg
ICAgICAgV0tDb250ZXh0VXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKG1fY29udGV4dC5nZXQoKSk7
CiAgICAgICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwobV9jb250ZXh0LmdldCgpLCBrV0tDYWNo
ZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAotICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRQ
ZXJPcmlnaW5TdG9yYWdlUXVvdGEoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwg
NDAwICogMTAyNCk7Ci0KICAgICAgICAgcGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpOwogICAg
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379213</attachid>
            <date>2019-09-19 23:24:36 -0700</date>
            <delta_ts>2019-09-20 00:55:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202025-20190919232435.patch</filename>
            <type>text/plain</type>
            <size>33586</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTAwMDkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE5LTA5LTE5ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQmVnaW4gbW92aW5n
IFdlYnNpdGVEYXRhU3RvcmUgc2V0dGVycyB0byBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDI1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdCBv
ZiB0aGVzZSB3ZXJlIG9ubHkgbmVlZGVkIGJlZm9yZSBpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3Vy
YXRpb24gZXhpc3RlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb25HZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEpOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtX
S1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGFdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHBlck9yaWdpblN0b3JhZ2VRdW90YV0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBzZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAgICgt
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRCb3Vu
ZEludGVyZmFjZUlkZW50aWZpZXI6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIGFsbG93c0NlbGx1bGFyQWNjZXNzXSk6CisgICAgICAgICgtW19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEFsbG93c0NlbGx1bGFyQWNjZXNzOl0pOgorICAg
ICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRp
b25dKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJv
eHlDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2Nv
YS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vi
c2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFNv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVy
KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Ym91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjphbGxvd3NDZWxsdWxhckFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFBlck9yaWdpblN0
b3JhZ2VRdW90YSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OnNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjphbGxvd3NDZWxsdWxhckFjY2VzcyBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRBbGxvd3NDZWxs
dWxhckFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uOjpwcm94eUNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UHJveHlDb25maWd1cmF0aW9uKToKKwogMjAxOS0w
OS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgY2Fs
bGluZyBQYWdlOjpzZXRTZXNzaW9uSUQoKSBmcm9tIFdlYktpdDIKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwCShyZXZpc2lvbiAyNTAwMDkpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVm
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDMgKzExMCwxMyBAQCB2b2lkIFdLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRSCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJh
dGlvbiktPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoV2ViS2l0Ojp0b0ltcGwo
ZGlyZWN0b3J5KS0+c3RyaW5nKCkpOwogfQorCit1aW50NjRfdCBXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uR2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0lt
cGwoY29uZmlndXJhdGlvbiktPnBlck9yaWdpblN0b3JhZ2VRdW90YSgpOworfQorCit2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCB1aW50NjRfdCBx
dW90YSkKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFBl
ck9yaWdpblN0b3JhZ2VRdW90YShxdW90YSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvblJlZi5oCShyZXZpc2lvbiAyNTAwMDkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDEwIEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3UKIAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25Db3B5UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShXS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkoV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBX
S1N0cmluZ1JlZiBkaXJlY3RvcnkpOwotICAgIAorCitXS19FWFBPUlQgdWludDY0X3QgV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkdldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOworV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90
YShXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIHVpbnQ2
NF90IHF1b3RhKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcAkocmV2aXNpb24gMjUwMDA5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA1LDkgKzYw
NSw4IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U2VydmljZVdvcmtlclIKICAgICBXZWJL
aXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShXZWJLaXQ6OnRvSW1wbChzZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5KS0+c3RyaW5nKCkpOwogfQogCi12b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCB1aW50NjRfdCBxdW90YSkKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3Jp
Z2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgdWludDY0X3QpCiB7Ci0gICAg
V2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNldFBlck9y
aWdpblN0b3JhZ2VRdW90YShxdW90YSk7CiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xl
YXJBbGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBk
YXRhU3RvcmVSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVEYXRhU3RvcmVSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAkocmV2aXNpb24gMjUwMDA5KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tXZWJzaXRlRGF0YVN0b3JlUmVmX2gK
IAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNh
dGVkLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC0xMzMsNyArMTM0
LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlR2V0RmV0YwogV0tfRVhQT1JU
IFdLU3RyaW5nUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNvcHlTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogV0tfRVhQ
T1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBz
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KTsKIAotV0tfRVhQT1JUIHZvaWQgV0tX
ZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZiBkYXRhU3RvcmVSZWYsIHVpbnQ2NF90IHF1b3RhKTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYgZGF0YVN0b3JlUmVmLCB1aW50NjRfdCBxdW90YSkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRQZXJPcmlnaW5T
dG9yYWdlUXVvdGEpOwogCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRXZWJB
dXRoZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYsIFdLRGljdGlvbmFyeVJlZiBjb25maWd1cmF0aW9uKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tCShyZXZpc2lvbiAyNTAwMDkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcsNiArMzA3
LDExIEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOigKICAgICAgICAg
Y29uZmlnLT5zZXRIVFRQUHJveHkoY29uZmlndXJhdGlvbi5odHRwUHJveHkpOwogICAgIGlmIChj
b25maWd1cmF0aW9uLmh0dHBzUHJveHkpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFNQcm94eShj
b25maWd1cmF0aW9uLmh0dHBzUHJveHkpOworCisgICAgY29uZmlnLT5zZXRBbGxvd3NDZWxsdWxh
ckFjY2Vzcyhjb25maWd1cmF0aW9uLmFsbG93c0NlbGx1bGFyQWNjZXNzKTsKKyAgICBjb25maWct
PnNldFBlck9yaWdpblN0b3JhZ2VRdW90YShjb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VR
dW90YSk7CisgICAgY29uZmlnLT5zZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoY29uZmlndXJh
dGlvbi5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIpOworICAgIGNvbmZpZy0+c2V0UHJveHlDb25m
aWd1cmF0aW9uKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpW1tjb25maWd1cmF0aW9uLnByb3h5
Q29uZmlndXJhdGlvbiBjb3B5XSBhdXRvcmVsZWFzZV0pOwogICAgIGNvbmZpZy0+c2V0RGV2aWNl
TWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoY29uZmlndXJhdGlvbi5kZXZpY2VNYW5hZ2Vt
ZW50UmVzdHJpY3Rpb25zRW5hYmxlZCk7CiAgICAgY29uZmlnLT5zZXRBbGxMb2Fkc0Jsb2NrZWRC
eURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKGNvbmZpZ3VyYXRpb24uYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyk7CiAK
QEAgLTM2NiwxMiArMzcxLDExIEBAIC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1Z00KIAogLSAoTlNVSW50ZWdlcilfcGVyT3JpZ2luU3RvcmFnZVF1b3RhCiB7Ci0gICAgcmV0
dXJuIF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucGVyT3JpZ2luU3RvcmFn
ZVF1b3RhKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIC0gKHZvaWQpX3NldFBlck9yaWdpblN0b3Jh
Z2VRdW90YTooTlNVSW50ZWdlcilzaXplCiB7Ci0gICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNp
dGVEYXRhU3RvcmUoKS5zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoc2l6ZSk7CiB9CiAKIC0gKE5T
U3RyaW5nICopX2NhY2hlU3RvcmFnZURpcmVjdG9yeQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJp
dmF0ZS5oCShyZXZpc2lvbiAyNTAwMDkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwx
NSArNDgsMTUgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdAogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZDopIEJPT0wgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTopIEJPT0wgX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEZWJ1Z01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZXJPcmlnaW5TdG9yYWdl
UXVvdGE6KSBOU1VJbnRlZ2VyIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TU3RyaW5nKiBfY2FjaGVTdG9yYWdlRGly
ZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5OikgTlNTdHJpbmcqIF9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0KLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5n
ICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3ND
ZWxsdWxhckFjY2VzczopIEJPT0wgX2FsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRQcm94eUNvbmZpZ3VyYXRpb246KSBOU0RpY3Rpb25hcnkgKl9wcm94eUNvbmZpZ3Vy
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXI6KSBOU1N0cmluZyAqX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVu
dGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFBlck9yaWdpblN0b3JhZ2VRdW90YTopIE5TVUludGVnZXIg
X3Blck9yaWdpblN0b3JhZ2VRdW90YSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5wZXJPcmlnaW5TdG9yYWdlUXVvdGEi
LCBtYWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5T
U3RyaW5nKiBfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNhY2hlU3RvcmFnZURp
cmVjdG9yeSIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeTopIE5TU3RyaW5nKiBfc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5Iiwg
bWFjb3MoMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSk7CisKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjop
IE5TU3RyaW5nICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmJvdW5kSW50
ZXJmYWNlSWRlbnRpZmllciIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywg
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzQ2Vs
bHVsYXJBY2Nlc3M6KSBCT09MIF9hbGxvd3NDZWxsdWxhckFjY2VzcyBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5hbGxv
d3NDZWxsdWxhckFjY2VzcyIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywg
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJveHlDb25m
aWd1cmF0aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LnByb3h5Q29uZmlndXJhdGlvbiIsIG1hY29zKDEwLjE0LCBXS19NQUNfVEJBKSwgaW9zKDEyLjAs
IFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfc291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
Il9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciIsIG1hY29zKDEwLjE0LjQsIFdLX01BQ19UQkEpLCBpb3MoMTIuMiwgV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uc2V0U291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTQuNCwgV0tfTUFDX1RCQSksIGlvcygxMi4yLCBX
S19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NUTFNG
YWxsYmFjazopIEJPT0wgX2FsbG93c1RMU0ZhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgTlNVUkwgKl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTAwMDkpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMTAgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxh
YmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1By
b3h5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgcGVyT3JpZ2luU3RvcmFnZVF1b3RhIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0NlbGx1bGFyQWNjZXNzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TRGljdGlvbmFyeSAqcHJveHlDb25m
aWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIC8vIFRoZXNlIHByb3BlcnRpZXMgb25seSBtYWtlIHNlbnNlIGZvciBwZXJzaXN0
ZW50IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwogLy8gYW4gZXhjZXB0aW9uIGlmIHNldCBm
b3Igbm9uLXBlcnNpc3RlbnQgc3RvcmVzLgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5tbQkocmV2aXNpb24gMjUwMDA5KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAgICAgaWYg
KCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVj
dEluV3JhcHBlcjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPihzZWxmKTsK
ICAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVyc2lzdGVudCh0cnVlKTsKIAogICAgIHJldHVybiBz
ZWxmOwpAQCAtNTMsMTEgKzU0LDE4IEBAIC0gKGluc3RhbmNldHlwZSlpbml0Tm9uUGVyc2lzdGVu
dENvbmZpZ3UKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBBUEk6
Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24+KHNlbGYpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQZXJzaXN0ZW50KGZhbHNl
KTsKIAogICAgIHJldHVybiBzZWxmOwogfQogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfY29u
ZmlndXJhdGlvbi0+fldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKCk7CisgICAgW3N1cGVy
IGRlYWxsb2NdOworfQorCiAtIChCT09MKWlzUGVyc2lzdGVudAogewogICAgIHJldHVybiBfY29u
ZmlndXJhdGlvbi0+aXNQZXJzaXN0ZW50KCk7CkBAIC0yODQsNiArMjkyLDQ2IEBAIC0gKHZvaWQp
c2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0UKICAgICBfY29uZmlndXJhdGlvbi0+c2V0
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKKy0gKE5T
VUludGVnZXIpcGVyT3JpZ2luU3RvcmFnZVF1b3RhCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0
aW9uLT5wZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKK30KKworLSAodm9pZClzZXRQZXJPcmlnaW5T
dG9yYWdlUXVvdGE6KE5TVUludGVnZXIpcXVvdGEKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0
UGVyT3JpZ2luU3RvcmFnZVF1b3RhKHF1b3RhKTsKK30KKworLSAoTlNTdHJpbmcgKilib3VuZElu
dGVyZmFjZUlkZW50aWZpZXIKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmJvdW5kSW50
ZXJmYWNlSWRlbnRpZmllcigpOworfQorCistICh2b2lkKXNldEJvdW5kSW50ZXJmYWNlSWRlbnRp
ZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldEJv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcihpZGVudGlmaWVyKTsKK30KKworLSAoQk9PTClhbGxvd3ND
ZWxsdWxhckFjY2VzcworeworICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YWxsb3dzQ2VsbHVs
YXJBY2Nlc3MoKTsKK30KKworLSAodm9pZClzZXRBbGxvd3NDZWxsdWxhckFjY2VzczooQk9PTClh
bGxvd3MKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoYWxs
b3dzKTsKK30KKworLSAoTlNEaWN0aW9uYXJ5ICopcHJveHlDb25maWd1cmF0aW9uCit7CisgICAg
cmV0dXJuIChfX2JyaWRnZSBOU0RpY3Rpb25hcnkgKilfY29uZmlndXJhdGlvbi0+cHJveHlDb25m
aWd1cmF0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0UHJveHlDb25maWd1cmF0aW9uOihOU0RpY3Rp
b25hcnkgKiljb25maWd1cmF0aW9uCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFByb3h5Q29u
ZmlndXJhdGlvbigoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKVtjb25maWd1cmF0aW9uIGNvcHld
KTsKK30KKwogLSAoQk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNGb3JUZXN0aW5nCiB7CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Js
b2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAkocmV2aXNpb24gMjUwMDA5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
Miw4ICsxMDIsNiBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXCiAg
ICAgLCBtX2NvbmZpZ3VyYXRpb24obV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmNvcHkoKSkKICAg
ICAsIG1fZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U6OmNy
ZWF0ZShpc1BlcnNpc3RlbnQoKSA/IG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2FsdHNT
dG9yYWdlRGlyZWN0b3J5KCkgOiBTdHJpbmcoKSkpCiAgICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiKSkKLSAgICAsIG1fc291
cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKG1fY29uZmlndXJhdGlvbi0+c291cmNlQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkpCi0gICAgLCBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vj
b25kYXJ5SWRlbnRpZmllcihtX2NvbmZpZ3VyYXRpb24tPnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllcigpKQogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgLCBtX2F1dGhlbnRp
Y2F0b3JNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCiAjZW5k
aWYKQEAgLTIwMjgsNyArMjAyNiw3IEBAIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U291cmNl
QXBwbGljYXQKIHsKICAgICBpZiAobV9uZXR3b3JraW5nSGFzQmVndW4pCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciA9IFdU
Rk1vdmUoaWRlbnRpZmllcik7CisgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFNvdXJj
ZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjA0NCw3ICsyMDQyLDcgQEAgYm9vbCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRTb3VyY2VBcHBsaWNhdAogewogICAgIGlmIChtX25ldHdvcmtpbmdIYXNCZWd1
bikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsKKyAgICBtX3Jlc29sdmVkQ29uZmlndXJh
dGlvbi0+c2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKFdURk1vdmUoaWRlbnRp
ZmllcikpOwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lv
biAyNTAwMDkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJsaWM6CiAK
ICAgICB1aW50NjRfdCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Jl
c29sdmVkQ29uZmlndXJhdGlvbi0+cGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7IH0KICAgICB1aW50
NjRfdCBwZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEodWludDY0X3QgcXVvdGEpIHsgbV9yZXNvbHZlZENvbmZp
Z3VyYXRpb24tPnNldFBlck9yaWdpblN0b3JhZ2VRdW90YShxdW90YSk7IH0KICAgICBjb25zdCBT
dHJpbmcmIGNhY2hlU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRD
b25maWd1cmF0aW9uLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsgfQogICAgIHZvaWQgc2V0Q2Fj
aGVTdG9yYWdlRGlyZWN0b3J5KFN0cmluZyYmIGRpcmVjdG9yeSkgeyBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KFdURk1vdmUoZGlyZWN0b3J5KSk7IH0K
ICAgICBjb25zdCBTdHJpbmcmIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeSgpOyB9CkBAIC0yMTAsMTMgKzIwOSwxMyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZW1vdmVQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZv
aWQgY2xlYXJQZW5kaW5nQ29va2llcygpOwogCi0gICAgdm9pZCBzZXRCb3VuZEludGVyZmFjZUlk
ZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmll
ciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KLSAgICBjb25zdCBTdHJpbmcmIGJvdW5kSW50ZXJm
YWNlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOyB9Cisg
ICAgdm9pZCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikg
eyBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKFdU
Rk1vdmUoaWRlbnRpZmllcikpOyB9CisgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIoKSB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Ym91bmRJbnRlcmZh
Y2VJZGVudGlmaWVyKCk7IH0KIAotICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsgfQogICAgIGJvb2wgc2V0U291cmNlQXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKFN0cmluZyYmKTsKIAotICAgIGNvbnN0IFN0cmluZyYg
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcm
IHNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZp
ZXIoKTsgfQogICAgIGJvb2wgc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
KFN0cmluZyYmKTsKIAogICAgIGJvb2wgYWxsb3dzVExTRmFsbGJhY2soKSBjb25zdCB7IHJldHVy
biBtX2FsbG93c1RMU0ZhbGxiYWNrOyB9CkBAIC0yMjQsMTIgKzIyMywxMiBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIG5ldHdvcmtpbmdIYXNCZWd1bigpIHsgbV9uZXR3b3JraW5nSGFzQmVndW4gPSB0
cnVlOyB9CiAgICAgCi0gICAgdm9pZCBzZXRBbGxvd3NDZWxsdWxhckFjY2VzcyhBbGxvd3NDZWxs
dWxhckFjY2VzcyBhbGxvd3MpIHsgbV9hbGxvd3NDZWxsdWxhckFjY2VzcyA9IGFsbG93czsgfQot
ICAgIEFsbG93c0NlbGx1bGFyQWNjZXNzIGFsbG93c0NlbGx1bGFyQWNjZXNzKCkgeyByZXR1cm4g
bV9hbGxvd3NDZWxsdWxhckFjY2VzczsgfQorICAgIHZvaWQgc2V0QWxsb3dzQ2VsbHVsYXJBY2Nl
c3MoQWxsb3dzQ2VsbHVsYXJBY2Nlc3MgYWxsb3dzKSB7IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9u
LT5zZXRBbGxvd3NDZWxsdWxhckFjY2VzcyhhbGxvd3MgPT0gQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6
Olllcyk7IH0KKyAgICBBbGxvd3NDZWxsdWxhckFjY2VzcyBhbGxvd3NDZWxsdWxhckFjY2Vzcygp
IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5hbGxvd3NDZWxsdWxhckFjY2Vzcygp
ID8gQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6OlllcyA6IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpObzsg
fQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24o
Q0ZEaWN0aW9uYXJ5UmVmIGNvbmZpZ3VyYXRpb24pIHsgbV9wcm94eUNvbmZpZ3VyYXRpb24gPSBj
b25maWd1cmF0aW9uOyB9Ci0gICAgQ0ZEaWN0aW9uYXJ5UmVmIHByb3h5Q29uZmlndXJhdGlvbigp
IHsgcmV0dXJuIG1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpOyB9CisgICAgdm9pZCBzZXRQcm94
eUNvbmZpZ3VyYXRpb24oQ0ZEaWN0aW9uYXJ5UmVmIGNvbmZpZ3VyYXRpb24pIHsgbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24tPnNldFByb3h5Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKTsgfQor
ICAgIENGRGljdGlvbmFyeVJlZiBwcm94eUNvbmZpZ3VyYXRpb24oKSB7IHJldHVybiBtX3Jlc29s
dmVkQ29uZmlndXJhdGlvbi0+cHJveHlDb25maWd1cmF0aW9uKCk7IH0KICNlbmRpZgogCiAjaWYg
VVNFKENVUkwpCkBAIC0zMTEsNyArMzEwLDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBWZWN0b3I8dWludDhfdD4gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmll
cjsKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gbV9jZkNvb2tpZVN0b3Jh
Z2U7Ci0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247
CiAjZW5kaWYKIAogI2lmIFVTRShDVVJMKQpAQCAtMzIyLDEwICszMjAsNiBAQCBwcml2YXRlOgog
ICAgIAogICAgIFdlYWtIYXNoU2V0PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzZXM7CiAKLSAg
ICBTdHJpbmcgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXI7Ci0gICAgQWxsb3dzQ2VsbHVsYXJB
Y2Nlc3MgbV9hbGxvd3NDZWxsdWxhckFjY2VzcyB7IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpZZXMg
fTsKLSAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7Ci0gICAg
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGJvb2wg
bV9hbGxvd3NUTFNGYWxsYmFjayB7IHRydWUgfTsKICAgICBib29sIG1fbmV0d29ya2luZ0hhc0Jl
Z3VuIHsgZmFsc2UgfTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmNwcAkocmV2aXNpb24gMjUwMDA5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NSw2ICs2NSwxMiBAQCBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IFdl
YnNpCiAgICAgY29weS0+bV9odHRwc1Byb3h5ID0gdGhpcy0+bV9odHRwc1Byb3h5OwogICAgIGNv
cHktPm1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSB0aGlzLT5tX2Rldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwogICAgIGNvcHktPm1fYWxsTG9hZHNCbG9j
a2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IHRoaXMtPm1fYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZzsKKyAg
ICBjb3B5LT5tX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciA9IHRoaXMtPm1fYm91bmRJbnRlcmZh
Y2VJZGVudGlmaWVyOworICAgIGNvcHktPm1fYWxsb3dzQ2VsbHVsYXJBY2Nlc3MgPSB0aGlzLT5t
X2FsbG93c0NlbGx1bGFyQWNjZXNzOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChtX3By
b3h5Q29uZmlndXJhdGlvbikKKyAgICAgICAgY29weS0+bV9wcm94eUNvbmZpZ3VyYXRpb24gPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZUNvcHkobnVsbHB0ciwgdGhpcy0+bV9wcm94eUNvbmZp
Z3VyYXRpb24uZ2V0KCkpKTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIGNvcHk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1MDAwOSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiA6IHB1YmxpYyBBUEk6
Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbik7IH0KKyAgICBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbigpOwogCiAg
ICAgUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBjb3B5KCk7CiAKQEAgLTY4LDYg
KzY5LDE3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5OyB9CiAgICAgdm9pZCBz
ZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoU3RyaW5nJiYgZGlyZWN0b3J5KSB7IG1fbG9jYWxTdG9y
YWdlRGlyZWN0b3J5ID0gV1RGTW92ZShkaXJlY3RvcnkpOyB9CiAKKyAgICBjb25zdCBTdHJpbmcm
IGJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRJbnRlcmZh
Y2VJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoU3Ry
aW5nJiYgaWRlbnRpZmllcikgeyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciA9IFdURk1vdmUo
aWRlbnRpZmllcik7IH0KKworICAgIGJvb2wgYWxsb3dzQ2VsbHVsYXJBY2Nlc3MoKSBjb25zdCB7
IHJldHVybiBtX2FsbG93c0NlbGx1bGFyQWNjZXNzOyB9CisgICAgdm9pZCBzZXRBbGxvd3NDZWxs
dWxhckFjY2Vzcyhib29sIGFsbG93cykgeyBtX2FsbG93c0NlbGx1bGFyQWNjZXNzID0gYWxsb3dz
OyB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBDRkRpY3Rpb25hcnlSZWYgcHJveHlDb25m
aWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eUNvbmZpZ3VyYXRpb24uZ2V0KCk7IH0K
KyAgICB2b2lkIHNldFByb3h5Q29uZmlndXJhdGlvbihDRkRpY3Rpb25hcnlSZWYgY29uZmlndXJh
dGlvbikgeyBtX3Byb3h5Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247IH0KKyNlbmRpZgor
ICAgIAogICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5
KCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3Rvcnk7IH0K
ICAgICB2b2lkIHNldERldmljZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeShTdHJpbmcmJiBk
aXJlY3RvcnkpIHsgbV9kZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3RvcnkgPSBXVEZNb3Zl
KGRpcmVjdG9yeSk7IH0KIApAQCAtMTA4LDggKzEyMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmco
Ym9vbCBibG9ja2VkKSB7IG1fYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJp
Y3Rpb25zRm9yVGVzdGluZyA9IGJsb2NrZWQ7IH0KIAogcHJpdmF0ZToKLSAgICBXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbigpOwotCiAgICAgYm9vbCBtX2lzUGVyc2lzdGVudCB7IGZhbHNl
IH07CiAKICAgICBTdHJpbmcgbV9jYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7CkBAIC0xMzIsMTAgKzE0
MiwxNSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2Nvb2tpZVN0b3JhZ2VGaWxlOwogICAgIFN0
cmluZyBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjsKICAgICBTdHJpbmcgbV9z
b3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CisgICAgU3RyaW5nIG1fYm91bmRJ
bnRlcmZhY2VJZGVudGlmaWVyOwogICAgIFVSTCBtX2h0dHBQcm94eTsKICAgICBVUkwgbV9odHRw
c1Byb3h5OwogICAgIGJvb2wgbV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0ZvclRlc3RpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9hbGxvd3NDZWxsdWxh
ckFjY2VzcyB7IHRydWUgfTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBtX3Byb3h5Q29uZmlndXJhdGlvbjsKKyNlbmRpZgogfTsKIAogfQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFT
dG9yZUNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQkocmV2aXNpb24gMjUwMDA5KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFT
dG9yZUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksMTEgKzExOSwxMSBAQCBXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAgV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycyA9IHsKICAgICAgICAgbV9zZXNzaW9uSUQsCi0gICAgICAgIG1fYm91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyLAotICAgICAgICBtX2FsbG93c0NlbGx1bGFyQWNjZXNzLAotICAgICAgICBtX3By
b3h5Q29uZmlndXJhdGlvbiwKLSAgICAgICAgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIsCi0gICAgICAgIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyLAor
ICAgICAgICBib3VuZEludGVyZmFjZUlkZW50aWZpZXIoKSwKKyAgICAgICAgYWxsb3dzQ2VsbHVs
YXJBY2Nlc3MoKSwKKyAgICAgICAgcHJveHlDb25maWd1cmF0aW9uKCksCisgICAgICAgIHNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLAorICAgICAgICBzb3VyY2VBcHBsaWNhdGlv
blNlY29uZGFyeUlkZW50aWZpZXIoKSwKICAgICAgICAgbV9hbGxvd3NUTFNGYWxsYmFjayA/IEFs
bG93c1RMU0ZhbGxiYWNrOjpZZXMgOiBBbGxvd3NUTFNGYWxsYmFjazo6Tm8sCiAgICAgICAgIHNo
b3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uLAogICAgICAgICBTZWNvbmRzIHsgW2RlZmF1bHRzIGlu
dGVnZXJGb3JLZXk6V2ViS2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHNE
ZWZhdWx0c0tleV0gLyAxMDAwLiB9LApAQCAtMTU1LDggKzE1NSw4IEBAIFdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3QKICAgICB9CiAKICAgICBwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRl
bnRpZmllcjsKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBtX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcjsKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zb3VyY2VB
cHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllcjsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5z
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5z
b3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBzb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXIoKTsKIAogICAgIHBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMgPSBj
b3B5VG9WZWN0b3IobV9wZW5kaW5nQ29va2llcyk7CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDExOCkKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA5LTE5ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQmVn
aW4gbW92aW5nIFdlYnNpdGVEYXRhU3RvcmUgc2V0dGVycyB0byBXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyMDI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JhZ2VRdW90YS5tbToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbik6CisKIDIwMTktMDktMTkgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbl1b
TWluaUJyb3dzZXJdIFVzZSBfY29tX3B0cl90IG1ldGhvZHMgaW5zdGVhZCBvZiBjYWxsaW5nIFF1
ZXJ5SW50ZXJmYWNlIGV4cGxpY3RseQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TdG9yYWdlUXVvdGEubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TdG9yYWdlUXVvdGEubW0JKHJldmlzaW9uIDI1MDAxOSkK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjUsMTUgKzIyNSwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0VmlzaWJsZShUZXN0V0tXZWJWCiBURVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0ZSkKIHsKICAg
ICBkb25lID0gZmFsc2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9y
ZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5
cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVy
Ol4oKSB7CisgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKnN0b3JlQ29uZmln
dXJhdGlvbiA9IFtbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSBhdXRvcmVsZWFzZV07CisgICAgc3RvcmVDb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VR
dW90YSA9IDEwMjQgKiA0MDA7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlICpkYXRhU3RvcmUgPSBb
W1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVD
b25maWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07CisgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZU
eXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2lu
Y2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAg
ZG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFT
dG9yZTpkYXRhU3RvcmVdOwogCi0gICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
IF9zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6IDEwMjQgKiA0MDBdOwotICAgIAogICAgIGF1dG8g
bWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbUXVvdGFNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlw
dE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJxdCJdOwogCkBAIC0y
ODYsMTQgKzI4OCwxNiBAQCBURVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0ZSkKIFRFU1QoV2ViS2l0
LCBRdW90YURlbGVnYXRlUmVsb2FkKQogewogICAgIGRvbmUgPSBmYWxzZTsKLSAgICBbW1dLV2Vi
c2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICBfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiAqc3RvcmVDb25maWd1cmF0aW9uID0gW1tbX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICBzdG9yZUNv
bmZpZ3VyYXRpb24ucGVyT3JpZ2luU3RvcmFnZVF1b3RhID0gMTAyNCAqIDQwMDsKKyAgICBXS1dl
YnNpdGVEYXRhU3RvcmUgKmRhdGFTdG9yZSA9IFtbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsK
KyAgICBbZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
V2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21w
bGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIAogICAgIGF1dG8gY29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0g
ICAgCi0gICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9zZXRQZXJPcmlnaW5T
dG9yYWdlUXVvdGE6IDEwMjQgKiA0MDBdOworICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVE
YXRhU3RvcmU6ZGF0YVN0b3JlXTsKICAgICAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRv
cHROUyhbW1F1b3RhTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3Vy
YXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNz
YWdlSGFuZGxlci5nZXQoKSBuYW1lOkAicXQiXTsKQEAgLTMzMiwxNCArMzM2LDE2IEBAIFRFU1Qo
V2ViS2l0LCBRdW90YURlbGVnYXRlUmVsb2FkKQogVEVTVChXZWJLaXQsIFF1b3RhRGVsZWdhdGVO
YXZpZ2F0ZUZyYWdtZW50KQogewogICAgIGRvbmUgPSBmYWxzZTsKLSAgICBbW1dLV2Vic2l0ZURh
dGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50
UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICBfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbiAqc3RvcmVDb25maWd1cmF0aW9uID0gW1tbX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICBzdG9yZUNvbmZpZ3Vy
YXRpb24ucGVyT3JpZ2luU3RvcmFnZVF1b3RhID0gMTAyNCAqIDQwMDsKKyAgICBXS1dlYnNpdGVE
YXRhU3RvcmUgKmRhdGFTdG9yZSA9IFtbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRX
aXRoQ29uZmlndXJhdGlvbjpzdG9yZUNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAgICBb
ZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0
ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9u
SGFuZGxlcjpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLQotICAgIFtbY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhOiAx
MDI0ICogNDAwXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmRhdGFT
dG9yZV07CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1F1b3RhTWVzc2Fn
ZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRD
b250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBu
YW1lOkAicXQiXTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiAyNTAwMTkpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDYgKzUyMyw3IEBAIFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBUZXN0Q29udHJvbGxlcjo6d2UKICAgICAgICAgICAgIFdLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb25TZXRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeShjb25maWd1cmF0aW9u
LmdldCgpLCB0b1dLKHRlbXBvcmFyeUZvbGRlciArIHBhdGhTZXBhcmF0b3IgKyAiRGF0YWJhc2Vz
IiArIHBhdGhTZXBhcmF0b3IgKyAiV2ViU1FMIikuZ2V0KCkpOwogICAgICAgICAgICAgV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoY29u
ZmlndXJhdGlvbi5nZXQoKSwgdG9XSyh0ZW1wb3JhcnlGb2xkZXIgKyBwYXRoU2VwYXJhdG9yICsg
Ik1lZGlhS2V5cyIpLmdldCgpKTsKICAgICAgICAgICAgIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25TZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24u
Z2V0KCksIHRvV0sodGVtcG9yYXJ5Rm9sZGVyICsgcGF0aFNlcGFyYXRvciArICJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzIikuZ2V0KCkpOworICAgICAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90YShjb25maWd1cmF0aW9uLmdldCgpLCA0
MDAgKiAxMDI0KTsKICAgICAgICAgfQogICAgICAgICBkYXRhU3RvcmUgPSBXS1dlYnNpdGVEYXRh
U3RvcmVDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLmdldCgpKTsKICAgICB9
CkBAIC01NTEsOCArNTUyLDYgQEAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4g
VGVzdAogICAgICAgICBXS0NvbnRleHRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24obV9jb250ZXh0
LmdldCgpKTsKICAgICAgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChtX2NvbnRleHQuZ2V0KCks
IGtXS0NhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXIpOwogCi0gICAgICAgIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YShUZXN0Q29udHJvbGxlcjo6d2Vic2l0ZURhdGFT
dG9yZSgpLCA0MDAgKiAxMDI0KTsKLQogICAgICAgICBwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0
KCk7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379221</attachid>
            <date>2019-09-20 00:55:21 -0700</date>
            <delta_ts>2019-09-20 00:56:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202025-20190920005520.patch</filename>
            <type>text/plain</type>
            <size>37731</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDE5LTA5LTIwICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQmVnaW4gbW92aW5n
IFdlYnNpdGVEYXRhU3RvcmUgc2V0dGVycyB0byBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDI1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdCBv
ZiB0aGVzZSB3ZXJlIG9ubHkgbmVlZGVkIGJlZm9yZSBpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3Vy
YXRpb24gZXhpc3RlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb25HZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEpOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtX
S1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGFdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHBlck9yaWdpblN0b3JhZ2VRdW90YV0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBzZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAgICgt
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRCb3Vu
ZEludGVyZmFjZUlkZW50aWZpZXI6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIGFsbG93c0NlbGx1bGFyQWNjZXNzXSk6CisgICAgICAgICgtW19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEFsbG93c0NlbGx1bGFyQWNjZXNzOl0pOgorICAg
ICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRp
b25dKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJv
eHlDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2Nv
YS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vi
c2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFNv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVy
KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Ym91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjphbGxvd3NDZWxsdWxhckFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFBlck9yaWdpblN0
b3JhZ2VRdW90YSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OnNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjphbGxvd3NDZWxsdWxhckFjY2VzcyBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRBbGxvd3NDZWxs
dWxhckFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uOjpwcm94eUNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UHJveHlDb25maWd1cmF0aW9uKToKKworMjAxOS0w
OS0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgd2FybmluZyBvbiBMaW51eCBhbmQgZG91YmxlIEhh
c2hNYXAgaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDIwMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6ZGVzdHJveVNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlKToKKwogMjAxOS0wOS0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBbRlRXLCBXaW5DYWlyb10gU3VwcG9ydCBydW5uaW5nIHRlc3RzIGluIFJl
bGVhc2UgbW9kZQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVE
YXRhU3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJzaXRlRGF0YVN0b3JlLmNwcAkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTEsNyArMTUxLDcgQEAgUmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
bwogICAgIGNvbmZpZ3VyYXRpb24tPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShkZWZhdWx0Q2Fj
aGVTdG9yYWdlRGlyZWN0b3J5KCkpOwogICAgIGNvbmZpZ3VyYXRpb24tPnNldE5ldHdvcmtDYWNo
ZURpcmVjdG9yeShkZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkpOwogICAgIGNvbmZpZ3Vy
YXRpb24tPnNldE1lZGlhQ2FjaGVEaXJlY3RvcnkoZGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3Rvcnko
KSk7Ci0KKyAgICBjb25maWd1cmF0aW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5KGRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkpOwogICAgIGNvbmZp
Z3VyYXRpb24tPnNldEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGRlZmF1bHRJbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeSgpKTsKICAgICBjb25maWd1cmF0aW9uLT5zZXRTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5KGRlZmF1bHRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5KCkpOwogICAgIGNvbmZpZ3VyYXRpb24tPnNldFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5
KGRlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDMgKzExMCwxMyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb25TZXRSCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJhdGlv
biktPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoV2ViS2l0Ojp0b0ltcGwoZGly
ZWN0b3J5KS0+c3RyaW5nKCkpOwogfQorCit1aW50NjRfdCBXS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uR2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwo
Y29uZmlndXJhdGlvbiktPnBlck9yaWdpblN0b3JhZ2VRdW90YSgpOworfQorCit2b2lkIFdLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCB1aW50NjRfdCBxdW90
YSkKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFBlck9y
aWdpblN0b3JhZ2VRdW90YShxdW90YSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvblJlZi5oCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDcgKzU2LDEwIEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3UKIAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb25Db3B5UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShXS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkoV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1N0
cmluZ1JlZiBkaXJlY3RvcnkpOwotICAgIAorCitXS19FWFBPUlQgdWludDY0X3QgV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbkdldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOworV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90YShX
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIHVpbnQ2NF90
IHF1b3RhKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmNwcAkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA1LDkgKzYwNSw4
IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U2VydmljZVdvcmtlclIKICAgICBXZWJLaXQ6
OnRvSW1wbChkYXRhU3RvcmVSZWYpLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeShXZWJLaXQ6OnRvSW1wbChzZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGlyZWN0b3J5KS0+c3RyaW5nKCkpOwogfQogCi12b2lkIFdLV2Vic2l0ZURhdGFTdG9y
ZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3Jl
UmVmLCB1aW50NjRfdCBxdW90YSkKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3JpZ2lu
U3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgdWludDY0X3QpCiB7Ci0gICAgV2Vi
S2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNldFBlck9yaWdp
blN0b3JhZ2VRdW90YShxdW90YSk7CiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJB
bGxEZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRh
U3RvcmVSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tXZWJzaXRlRGF0YVN0b3JlUmVmX2gKIAog
I2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNhdGVk
Lmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC0xMzMsNyArMTM0LDcg
QEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlR2V0RmV0YwogV0tfRVhQT1JUIFdL
U3RyaW5nUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNvcHlTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogV0tfRVhQT1JU
IHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KTsKIAotV0tfRVhQT1JUIHZvaWQgV0tXZWJz
aXRlRGF0YVN0b3JlU2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJl
ZiBkYXRhU3RvcmVSZWYsIHVpbnQ2NF90IHF1b3RhKTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVSZWYg
ZGF0YVN0b3JlUmVmLCB1aW50NjRfdCBxdW90YSkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRQZXJPcmlnaW5TdG9y
YWdlUXVvdGEpOwogCiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRXZWJBdXRo
ZW50aWNhdGlvbk1vY2tDb25maWd1cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIFdLRGljdGlvbmFyeVJlZiBjb25maWd1cmF0aW9uKTsKIApJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcsNiArMzA3LDEx
IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOigKICAgICAgICAgY29u
ZmlnLT5zZXRIVFRQUHJveHkoY29uZmlndXJhdGlvbi5odHRwUHJveHkpOwogICAgIGlmIChjb25m
aWd1cmF0aW9uLmh0dHBzUHJveHkpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFNQcm94eShjb25m
aWd1cmF0aW9uLmh0dHBzUHJveHkpOworCisgICAgY29uZmlnLT5zZXRBbGxvd3NDZWxsdWxhckFj
Y2Vzcyhjb25maWd1cmF0aW9uLmFsbG93c0NlbGx1bGFyQWNjZXNzKTsKKyAgICBjb25maWctPnNl
dFBlck9yaWdpblN0b3JhZ2VRdW90YShjb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90
YSk7CisgICAgY29uZmlnLT5zZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoY29uZmlndXJhdGlv
bi5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIpOworICAgIGNvbmZpZy0+c2V0UHJveHlDb25maWd1
cmF0aW9uKChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpW1tjb25maWd1cmF0aW9uLnByb3h5Q29u
ZmlndXJhdGlvbiBjb3B5XSBhdXRvcmVsZWFzZV0pOwogICAgIGNvbmZpZy0+c2V0RGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoY29uZmlndXJhdGlvbi5kZXZpY2VNYW5hZ2VtZW50
UmVzdHJpY3Rpb25zRW5hYmxlZCk7CiAgICAgY29uZmlnLT5zZXRBbGxMb2Fkc0Jsb2NrZWRCeURl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKGNvbmZpZ3VyYXRpb24uYWxsTG9h
ZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyk7CiAKQEAg
LTM2NiwxMiArMzcxLDExIEBAIC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1
Z00KIAogLSAoTlNVSW50ZWdlcilfcGVyT3JpZ2luU3RvcmFnZVF1b3RhCiB7Ci0gICAgcmV0dXJu
IF93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucGVyT3JpZ2luU3RvcmFnZVF1
b3RhKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIC0gKHZvaWQpX3NldFBlck9yaWdpblN0b3JhZ2VR
dW90YTooTlNVSW50ZWdlcilzaXplCiB7Ci0gICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVE
YXRhU3RvcmUoKS5zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoc2l6ZSk7CiB9CiAKIC0gKE5TU3Ry
aW5nICopX2NhY2hlU3RvcmFnZURpcmVjdG9yeQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxNSAr
NDgsMTUgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdAogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZDopIEJPT0wgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTopIEJPT0wgX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4w
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQZXJPcmlnaW5TdG9yYWdlUXVv
dGE6KSBOU1VJbnRlZ2VyIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGEgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TU3RyaW5nKiBfY2FjaGVTdG9yYWdlRGlyZWN0
b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5OikgTlNTdHJpbmcqIF9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci0KLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpf
Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NDZWxs
dWxhckFjY2VzczopIEJPT0wgX2FsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRQcm94eUNvbmZpZ3VyYXRpb246KSBOU0RpY3Rpb25hcnkgKl9wcm94eUNvbmZpZ3VyYXRp
b24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXI6KSBOU1N0cmluZyAqX3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlm
aWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFBlck9yaWdpblN0b3JhZ2VRdW90YTopIE5TVUludGVnZXIgX3Bl
ck9yaWdpblN0b3JhZ2VRdW90YSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5wZXJPcmlnaW5TdG9yYWdlUXVvdGEiLCBt
YWNvcygxMC4xMy40LCBXS19NQUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TU3Ry
aW5nKiBfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNhY2hlU3RvcmFnZURpcmVj
dG9yeSIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeTopIE5TU3RyaW5nKiBfc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IiwgbWFj
b3MoMTAuMTMuNCwgV0tfTUFDX1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSk7CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5T
U3RyaW5nICpfYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmJvdW5kSW50ZXJm
YWNlSWRlbnRpZmllciIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzQ2VsbHVs
YXJBY2Nlc3M6KSBCT09MIF9hbGxvd3NDZWxsdWxhckFjY2VzcyBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5hbGxvd3ND
ZWxsdWxhckFjY2VzcyIsIG1hY29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJveHlDb25maWd1
cmF0aW9uOikgTlNEaWN0aW9uYXJ5ICpfcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnBy
b3h5Q29uZmlndXJhdGlvbiIsIG1hY29zKDEwLjE0LCBXS19NQUNfVEJBKSwgaW9zKDEyLjAsIFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNvdXJj
ZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfc291cmNlQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllciIsIG1hY29zKDEwLjE0LjQsIFdLX01BQ19UQkEpLCBpb3MoMTIuMiwgV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRh
cnlJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTQuNCwgV0tfTUFDX1RCQSksIGlvcygxMi4yLCBXS19J
T1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NUTFNGYWxs
YmFjazopIEJPT0wgX2FsbG93c1RMU0ZhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNVUkwgKl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMTAgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMs
IG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMpIE5TVUludGVnZXIgcGVyT3JpZ2luU3RvcmFnZVF1b3RhIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TU3RyaW5nICpib3VuZEludGVyZmFjZUlkZW50
aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5TRGljdGlvbmFyeSAqcHJveHlDb25maWd1
cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIC8vIFRoZXNlIHByb3BlcnRpZXMgb25seSBtYWtlIHNlbnNlIGZvciBwZXJzaXN0ZW50
IGRhdGEgc3RvcmVzLCBhbmQgd2lsbCB0aHJvdwogLy8gYW4gZXhjZXB0aW9uIGlmIHNldCBmb3Ig
bm9uLXBlcnNpc3RlbnQgc3RvcmVzLgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5tbQkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAgICAgaWYgKCFz
ZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdElu
V3JhcHBlcjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPihzZWxmKTsKICAg
ICBfY29uZmlndXJhdGlvbi0+c2V0UGVyc2lzdGVudCh0cnVlKTsKIAogICAgIHJldHVybiBzZWxm
OwpAQCAtNTMsMTEgKzU0LDE4IEBAIC0gKGluc3RhbmNldHlwZSlpbml0Tm9uUGVyc2lzdGVudENv
bmZpZ3UKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBBUEk6Ok9i
amVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24+KHNlbGYpOwogICAgIF9jb25maWd1cmF0aW9uLT5zZXRQZXJzaXN0ZW50KGZhbHNlKTsK
IAogICAgIHJldHVybiBzZWxmOwogfQogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfY29uZmln
dXJhdGlvbi0+fldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKCk7CisgICAgW3N1cGVyIGRl
YWxsb2NdOworfQorCiAtIChCT09MKWlzUGVyc2lzdGVudAogewogICAgIHJldHVybiBfY29uZmln
dXJhdGlvbi0+aXNQZXJzaXN0ZW50KCk7CkBAIC0yODQsNiArMjkyLDQ2IEBAIC0gKHZvaWQpc2V0
RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0UKICAgICBfY29uZmlndXJhdGlvbi0+c2V0RGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKKy0gKE5TVUlu
dGVnZXIpcGVyT3JpZ2luU3RvcmFnZVF1b3RhCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9u
LT5wZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKK30KKworLSAodm9pZClzZXRQZXJPcmlnaW5TdG9y
YWdlUXVvdGE6KE5TVUludGVnZXIpcXVvdGEKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVy
T3JpZ2luU3RvcmFnZVF1b3RhKHF1b3RhKTsKK30KKworLSAoTlNTdHJpbmcgKilib3VuZEludGVy
ZmFjZUlkZW50aWZpZXIKK3sKKyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmJvdW5kSW50ZXJm
YWNlSWRlbnRpZmllcigpOworfQorCistICh2b2lkKXNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cjooTlNTdHJpbmcgKilpZGVudGlmaWVyCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldEJvdW5k
SW50ZXJmYWNlSWRlbnRpZmllcihpZGVudGlmaWVyKTsKK30KKworLSAoQk9PTClhbGxvd3NDZWxs
dWxhckFjY2VzcworeworICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+YWxsb3dzQ2VsbHVsYXJB
Y2Nlc3MoKTsKK30KKworLSAodm9pZClzZXRBbGxvd3NDZWxsdWxhckFjY2VzczooQk9PTClhbGxv
d3MKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoYWxsb3dz
KTsKK30KKworLSAoTlNEaWN0aW9uYXJ5ICopcHJveHlDb25maWd1cmF0aW9uCit7CisgICAgcmV0
dXJuIChfX2JyaWRnZSBOU0RpY3Rpb25hcnkgKilfY29uZmlndXJhdGlvbi0+cHJveHlDb25maWd1
cmF0aW9uKCk7Cit9CisKKy0gKHZvaWQpc2V0UHJveHlDb25maWd1cmF0aW9uOihOU0RpY3Rpb25h
cnkgKiljb25maWd1cmF0aW9uCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFByb3h5Q29uZmln
dXJhdGlvbigoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKVtjb25maWd1cmF0aW9uIGNvcHldKTsK
K30KKwogLSAoQk9PTClhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlv
bnNGb3JUZXN0aW5nCiB7CiAgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2Nr
ZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw4
ICsxMDIsNiBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXCiAgICAg
LCBtX2NvbmZpZ3VyYXRpb24obV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmNvcHkoKSkKICAgICAs
IG1fZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U6OmNyZWF0
ZShpc1BlcnNpc3RlbnQoKSA/IG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2FsdHNTdG9y
YWdlRGlyZWN0b3J5KCkgOiBTdHJpbmcoKSkpCiAgICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiKSkKLSAgICAsIG1fc291cmNl
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKG1fY29uZmlndXJhdGlvbi0+c291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyKCkpCi0gICAgLCBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25k
YXJ5SWRlbnRpZmllcihtX2NvbmZpZ3VyYXRpb24tPnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllcigpKQogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgLCBtX2F1dGhlbnRpY2F0
b3JNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCiAjZW5kaWYK
QEAgLTIwMjgsNyArMjAyNiw3IEBAIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U291cmNlQXBw
bGljYXQKIHsKICAgICBpZiAobV9uZXR3b3JraW5nSGFzQmVndW4pCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciA9IFdURk1v
dmUoaWRlbnRpZmllcik7CisgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFNvdXJjZUFw
cGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjA0NCw3ICsyMDQyLDcgQEAgYm9vbCBXZWJzaXRlRGF0YVN0
b3JlOjpzZXRTb3VyY2VBcHBsaWNhdAogewogICAgIGlmIChtX25ldHdvcmtpbmdIYXNCZWd1bikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsKKyAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlv
bi0+c2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKFdURk1vdmUoaWRlbnRpZmll
cikpOwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAy
NTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJsaWM6CiAKICAg
ICB1aW50NjRfdCBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc29s
dmVkQ29uZmlndXJhdGlvbi0+cGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7IH0KICAgICB1aW50NjRf
dCBwZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRQ
ZXJPcmlnaW5TdG9yYWdlUXVvdGEodWludDY0X3QgcXVvdGEpIHsgbV9yZXNvbHZlZENvbmZpZ3Vy
YXRpb24tPnNldFBlck9yaWdpblN0b3JhZ2VRdW90YShxdW90YSk7IH0KICAgICBjb25zdCBTdHJp
bmcmIGNhY2hlU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25m
aWd1cmF0aW9uLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsgfQogICAgIHZvaWQgc2V0Q2FjaGVT
dG9yYWdlRGlyZWN0b3J5KFN0cmluZyYmIGRpcmVjdG9yeSkgeyBtX3Jlc29sdmVkQ29uZmlndXJh
dGlvbi0+c2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KFdURk1vdmUoZGlyZWN0b3J5KSk7IH0KICAg
ICBjb25zdCBTdHJpbmcmIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBjb25z
dCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeSgpOyB9CkBAIC0yMTAsMTMgKzIwOSwxMyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZW1vdmVQZW5kaW5nQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQg
Y2xlYXJQZW5kaW5nQ29va2llcygpOwogCi0gICAgdm9pZCBzZXRCb3VuZEludGVyZmFjZUlkZW50
aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciA9
IFdURk1vdmUoaWRlbnRpZmllcik7IH0KLSAgICBjb25zdCBTdHJpbmcmIGJvdW5kSW50ZXJmYWNl
SWRlbnRpZmllcigpIHsgcmV0dXJuIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOyB9CisgICAg
dm9pZCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKFdURk1v
dmUoaWRlbnRpZmllcikpOyB9CisgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlkZW50
aWZpZXIoKSB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Ym91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyKCk7IH0KIAotICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zb3VyY2VB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsgfQogICAgIGJvb2wgc2V0U291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyKFN0cmluZyYmKTsKIAotICAgIGNvbnN0IFN0cmluZyYgc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLT5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIo
KTsgfQogICAgIGJvb2wgc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKFN0
cmluZyYmKTsKIAogICAgIGJvb2wgYWxsb3dzVExTRmFsbGJhY2soKSBjb25zdCB7IHJldHVybiBt
X2FsbG93c1RMU0ZhbGxiYWNrOyB9CkBAIC0yMjQsMTIgKzIyMywxMiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIG5ldHdvcmtpbmdIYXNCZWd1bigpIHsgbV9uZXR3b3JraW5nSGFzQmVndW4gPSB0cnVl
OyB9CiAgICAgCi0gICAgdm9pZCBzZXRBbGxvd3NDZWxsdWxhckFjY2VzcyhBbGxvd3NDZWxsdWxh
ckFjY2VzcyBhbGxvd3MpIHsgbV9hbGxvd3NDZWxsdWxhckFjY2VzcyA9IGFsbG93czsgfQotICAg
IEFsbG93c0NlbGx1bGFyQWNjZXNzIGFsbG93c0NlbGx1bGFyQWNjZXNzKCkgeyByZXR1cm4gbV9h
bGxvd3NDZWxsdWxhckFjY2VzczsgfQorICAgIHZvaWQgc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3Mo
QWxsb3dzQ2VsbHVsYXJBY2Nlc3MgYWxsb3dzKSB7IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5z
ZXRBbGxvd3NDZWxsdWxhckFjY2VzcyhhbGxvd3MgPT0gQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6Olll
cyk7IH0KKyAgICBBbGxvd3NDZWxsdWxhckFjY2VzcyBhbGxvd3NDZWxsdWxhckFjY2VzcygpIHsg
cmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5hbGxvd3NDZWxsdWxhckFjY2VzcygpID8g
QWxsb3dzQ2VsbHVsYXJBY2Nlc3M6OlllcyA6IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpObzsgfQog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24oQ0ZE
aWN0aW9uYXJ5UmVmIGNvbmZpZ3VyYXRpb24pIHsgbV9wcm94eUNvbmZpZ3VyYXRpb24gPSBjb25m
aWd1cmF0aW9uOyB9Ci0gICAgQ0ZEaWN0aW9uYXJ5UmVmIHByb3h5Q29uZmlndXJhdGlvbigpIHsg
cmV0dXJuIG1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpOyB9CisgICAgdm9pZCBzZXRQcm94eUNv
bmZpZ3VyYXRpb24oQ0ZEaWN0aW9uYXJ5UmVmIGNvbmZpZ3VyYXRpb24pIHsgbV9yZXNvbHZlZENv
bmZpZ3VyYXRpb24tPnNldFByb3h5Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKTsgfQorICAg
IENGRGljdGlvbmFyeVJlZiBwcm94eUNvbmZpZ3VyYXRpb24oKSB7IHJldHVybiBtX3Jlc29sdmVk
Q29uZmlndXJhdGlvbi0+cHJveHlDb25maWd1cmF0aW9uKCk7IH0KICNlbmRpZgogCiAjaWYgVVNF
KENVUkwpCkBAIC0zMTEsNyArMzEwLDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBWZWN0b3I8dWludDhfdD4gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsK
ICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gbV9jZkNvb2tpZVN0b3JhZ2U7
Ci0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAj
ZW5kaWYKIAogI2lmIFVTRShDVVJMKQpAQCAtMzIyLDEwICszMjAsNiBAQCBwcml2YXRlOgogICAg
IAogICAgIFdlYWtIYXNoU2V0PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzZXM7CiAKLSAgICBT
dHJpbmcgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXI7Ci0gICAgQWxsb3dzQ2VsbHVsYXJBY2Nl
c3MgbV9hbGxvd3NDZWxsdWxhckFjY2VzcyB7IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpZZXMgfTsK
LSAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7Ci0gICAgU3Ry
aW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGJvb2wgbV9h
bGxvd3NUTFNGYWxsYmFjayB7IHRydWUgfTsKICAgICBib29sIG1fbmV0d29ya2luZ0hhc0JlZ3Vu
IHsgZmFsc2UgfTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
LmNwcAkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCwxMCArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb246OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKCkKLSAgICA6IG1f
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeShBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRl
ZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkpCi17Ci19CitXZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbjo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKSA9IGRl
ZmF1bHQ7CiAKIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb246OmNvcHkoKQogewpAQCAtNjUsNiArNjIsMTIgQEAgUmVmPFdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiBXZWJzaQogICAgIGNvcHktPm1faHR0cHNQcm94eSA9
IHRoaXMtPm1faHR0cHNQcm94eTsKICAgICBjb3B5LT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmlj
dGlvbnNFbmFibGVkID0gdGhpcy0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxl
ZDsKICAgICBjb3B5LT5tX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0
aW9uc0ZvclRlc3RpbmcgPSB0aGlzLT5tX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0ZvclRlc3Rpbmc7CisgICAgY29weS0+bV9ib3VuZEludGVyZmFjZUlkZW50
aWZpZXIgPSB0aGlzLT5tX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjsKKyAgICBjb3B5LT5tX2Fs
bG93c0NlbGx1bGFyQWNjZXNzID0gdGhpcy0+bV9hbGxvd3NDZWxsdWxhckFjY2VzczsKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCisgICAgICAgIGNv
cHktPm1fcHJveHlDb25maWd1cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5
KG51bGxwdHIsIHRoaXMtPm1fcHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CisjZW5kaWYKIAog
ICAgIHJldHVybiBjb3B5OwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbi5oCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBl
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24pOyB9CisgICAgV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24oKTsKIAogICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbj4gY29weSgpOwogCkBAIC02OCw2ICs2OSwxNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3Rv
cmFnZURpcmVjdG9yeTsgfQogICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KFN0cmlu
ZyYmIGRpcmVjdG9yeSkgeyBtX2xvY2FsU3RvcmFnZURpcmVjdG9yeSA9IFdURk1vdmUoZGlyZWN0
b3J5KTsgfQogCisgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjsgfQorICAgIHZvaWQgc2V0
Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKFN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9ib3VuZElu
dGVyZmFjZUlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpOyB9CisKKyAgICBib29sIGFs
bG93c0NlbGx1bGFyQWNjZXNzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NDZWxsdWxhckFjY2Vz
czsgfQorICAgIHZvaWQgc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoYm9vbCBhbGxvd3MpIHsgbV9h
bGxvd3NDZWxsdWxhckFjY2VzcyA9IGFsbG93czsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgQ0ZEaWN0aW9uYXJ5UmVmIHByb3h5Q29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
cHJveHlDb25maWd1cmF0aW9uLmdldCgpOyB9CisgICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRp
b24oQ0ZEaWN0aW9uYXJ5UmVmIGNvbmZpZ3VyYXRpb24pIHsgbV9wcm94eUNvbmZpZ3VyYXRpb24g
PSBjb25maWd1cmF0aW9uOyB9CisjZW5kaWYKKyAgICAKICAgICBjb25zdCBTdHJpbmcmIGRldmlj
ZUlkSGFzaFNhbHRzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWRI
YXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5OyB9CiAgICAgdm9pZCBzZXREZXZpY2VJZEhhc2hTYWx0
c1N0b3JhZ2VEaXJlY3RvcnkoU3RyaW5nJiYgZGlyZWN0b3J5KSB7IG1fZGV2aWNlSWRIYXNoU2Fs
dHNTdG9yYWdlRGlyZWN0b3J5ID0gV1RGTW92ZShkaXJlY3RvcnkpOyB9CiAKQEAgLTEwOCw4ICsx
MjAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKGJvb2wgYmxvY2tlZCkgeyBtX2FsbExvYWRzQmxv
Y2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBibG9ja2VkOyB9
CiAKIHByaXZhdGU6Ci0gICAgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKTsKLQogICAg
IGJvb2wgbV9pc1BlcnNpc3RlbnQgeyBmYWxzZSB9OwogCiAgICAgU3RyaW5nIG1fY2FjaGVTdG9y
YWdlRGlyZWN0b3J5OwpAQCAtMTMyLDEwICsxNDIsMTUgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
bV9jb29raWVTdG9yYWdlRmlsZTsKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXI7CiAgICAgU3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVu
dGlmaWVyOworICAgIFN0cmluZyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjsKICAgICBVUkwg
bV9odHRwUHJveHk7CiAgICAgVVJMIG1faHR0cHNQcm94eTsKICAgICBib29sIG1fZGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxMb2Fk
c0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1fYWxsb3dzQ2VsbHVsYXJBY2Nlc3MgeyB0cnVlIH07CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3Vy
YXRpb247CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q29jb2EubW0JKHJldmlzaW9uIDI1MDEyMikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTE5LDExICsxMTksMTEgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURh
dGFTdAogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFy
YW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSB7CiAgICAgICAgIG1fc2Vzc2lvbklE
LAotICAgICAgICBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciwKLSAgICAgICAgbV9hbGxvd3ND
ZWxsdWxhckFjY2VzcywKLSAgICAgICAgbV9wcm94eUNvbmZpZ3VyYXRpb24sCi0gICAgICAgIG1f
c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLAotICAgICAgICBtX3NvdXJjZUFwcGxp
Y2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciwKKyAgICAgICAgYm91bmRJbnRlcmZhY2VJZGVudGlm
aWVyKCksCisgICAgICAgIGFsbG93c0NlbGx1bGFyQWNjZXNzKCksCisgICAgICAgIHByb3h5Q29u
ZmlndXJhdGlvbigpLAorICAgICAgICBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIo
KSwKKyAgICAgICAgc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCksCiAgICAg
ICAgIG1fYWxsb3dzVExTRmFsbGJhY2sgPyBBbGxvd3NUTFNGYWxsYmFjazo6WWVzIDogQWxsb3dz
VExTRmFsbGJhY2s6Ok5vLAogICAgICAgICBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiwKICAg
ICAgICAgU2Vjb25kcyB7IFtkZWZhdWx0cyBpbnRlZ2VyRm9yS2V5OldlYktpdE5ldHdvcmtMb2Fk
VGhyb3R0bGVMYXRlbmN5TWlsbGlzZWNvbmRzRGVmYXVsdHNLZXldIC8gMTAwMC4gfSwKQEAgLTE1
NSw4ICsxNTUsOCBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAg
ICAgfQogCiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9
IG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7Ci0gICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0g
bV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7Ci0gICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
ID0gbV9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXI7CisgICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyID0gc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVu
dGlmaWVyID0gc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7CiAKICAgICBw
YXJhbWV0ZXJzLnBlbmRpbmdDb29raWVzID0gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMp
OwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTAxMjIpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOCBAQAorMjAxOS0wOS0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIEJlZ2luIG1vdmluZyBXZWJzaXRlRGF0YVN0b3JlIHNl
dHRlcnMgdG8gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjAyNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uZSBleHBlY3RlZCBjaGFuZ2UgaW4gYmVo
YXZpb3IgaXMgdGhhdCB0aGUgcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGRpcmVjdG9yeSBpcyBu
b3QgY3JlYXRlZCBvbiBzdGFydHVwIHdpdGggYW4gZXBoZW1lcmFsIHNlc3Npb24gYW55IG1vcmUK
KyAgICAgICAgYmVjYXVzZSB3ZSBjYWxsIHRoZSBjb25zdHJ1Y3RvciBvZiBXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBpbnNpZGUgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24g
YW5kIHNldCB0aGUgZGVmYXVsdCBkaXJlY3RvcnkgbGlrZSB3ZSBkbyB0aGUgb3RoZXIgZGlyZWN0
b3JpZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3Jh
Z2VRdW90YS5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbik6CisK
IDIwMTktMDktMTkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0ZUV10gRW5hYmxlIFdlYktpdFRlc3RSdW5uZXIgYnVpbGQKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1tCShy
ZXZpc2lvbiAyNTAxMjIpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1N0b3JhZ2VRdW90YS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjI1LDE1ICsyMjUsMTcgQEAgc3Rh
dGljIGlubGluZSB2b2lkIHNldFZpc2libGUoVGVzdFdLV2ViVgogVEVTVChXZWJLaXQsIFF1b3Rh
RGVsZWdhdGUpCiB7CiAgICAgZG9uZSA9IGZhbHNlOwotICAgIFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUg
YWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBj
b21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uICpzdG9yZUNvbmZpZ3VyYXRpb24gPSBbW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIHN0b3JlQ29uZmlndXJhdGlvbi5w
ZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSAxMDI0ICogNDAwOworICAgIFdLV2Vic2l0ZURhdGFTdG9y
ZSAqZGF0YVN0b3JlID0gW1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOnN0b3JlQ29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgIFtkYXRhU3Rv
cmUgcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5
cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVy
Ol4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9u
IHNldFdlYnNpdGVEYXRhU3RvcmU6ZGF0YVN0b3JlXTsKIAotICAgIFtbY29uZmlndXJhdGlvbiB3
ZWJzaXRlRGF0YVN0b3JlXSBfc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhOiAxMDI0ICogNDAwXTsK
LSAgICAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1F1b3RhTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250
cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1l
OkAicXQiXTsKIApAQCAtMjg2LDE0ICsyODgsMTYgQEAgVEVTVChXZWJLaXQsIFF1b3RhRGVsZWdh
dGUpCiBURVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0ZVJlbG9hZCkKIHsKICAgICBkb25lID0gZmFs
c2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0
YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmll
ZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAg
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKnN0b3JlQ29uZmlndXJhdGlvbiA9IFtb
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFz
ZV07CisgICAgc3RvcmVDb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSA9IDEwMjQg
KiA0MDA7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlICpkYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVE
YXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9u
XSBhdXRvcmVsZWFzZV07CisgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICAKICAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwotICAgIAotICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3Jl
XSBfc2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhOiAxMDI0ICogNDAwXTsKKyAgICBbY29uZmlndXJh
dGlvbiBzZXRXZWJzaXRlRGF0YVN0b3JlOmRhdGFTdG9yZV07CiAgICAgCiAgICAgYXV0byBtZXNz
YWdlSGFuZGxlciA9IGFkb3B0TlMoW1tRdW90YU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7
CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInF0Il07CkBAIC0zMzIsMTQg
KzMzNiwxNiBAQCBURVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0ZVJlbG9hZCkKIFRFU1QoV2ViS2l0
LCBRdW90YURlbGVnYXRlTmF2aWdhdGVGcmFnbWVudCkKIHsKICAgICBkb25lID0gZmFsc2U7Ci0g
ICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlw
ZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNl
OltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKnN0b3JlQ29uZmlndXJhdGlvbiA9IFtbW19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07Cisg
ICAgc3RvcmVDb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSA9IDEwMjQgKiA0MDA7
CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlICpkYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uXSBhdXRv
cmVsZWFzZV07CisgICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50
UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
fV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIAogICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7Ci0KLSAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3NldFBlck9yaWdp
blN0b3JhZ2VRdW90YTogMTAyNCAqIDQwMF07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0
ZURhdGFTdG9yZTpkYXRhU3RvcmVdOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0
TlMoW1tRdW90YU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0
aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2Fn
ZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInF0Il07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDdXN0b21QYXRocy5tbQkocmV2aXNpb24gMjUwMTIyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQwNiw4ICs0MDYsNyBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZURhdGFTdG9y
ZUVwaGVtZXJhbCkKICAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBb
V0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3RvcmVdOwogICAgIFtjb25maWd1
cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkOllFU107CiAKLSAgICAvLyBXZSBleHBlY3QgdGhlIGRpcmVjdG9yeSB0byBiZSBjcmVh
dGVkIGJ5IHN0YXJ0aW5nIHVwIHRoZSBkYXRhIHN0b3JlIG1hY2hpbmVyeSwgYnV0IG5vdCB0aGUg
ZGF0YSBmaWxlLgotICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0
aF0pOworICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZp
bGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoLnBhdGhdKTsK
IAogICAgIE5TVVJMICpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoID0gW05T
VVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vi
c2l0ZURhdGEvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy9mdWxsX2Jyb3dzaW5nX3Nlc3Npb25fcmVz
b3VyY2VMb2cucGxpc3QiIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5
Ok5PXTsKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBm
aWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGgucGF0
aF0pOwpAQCAtNDUwLDggKzQ0OSw3IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlRGF0YVN0b3JlRXBo
ZW1lcmFsVmkKICAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1tX
S1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOwogICAgIFtjb25maWd1cmF0aW9uLmdl
dCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllF
U107CiAKLSAgICAvLyBXZSBleHBlY3QgdGhlIGRpcmVjdG9yeSB0byBiZSBjcmVhdGVkIGJ5IHN0
YXJ0aW5nIHVwIHRoZSBkYXRhIHN0b3JlIG1hY2hpbmVyeSwgYnV0IG5vdCB0aGUgZGF0YSBmaWxl
LgotICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4
aXN0c0F0UGF0aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0pOworICAg
IEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNB
dFBhdGg6ZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoLnBhdGhdKTsKIAogICAgIE5T
VVJMICpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoID0gW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEv
UmVzb3VyY2VMb2FkU3RhdGlzdGljcy9mdWxsX2Jyb3dzaW5nX3Nlc3Npb25fcmVzb3VyY2VMb2cu
cGxpc3QiIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5Ok5PXTsKICAg
ICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3Rz
QXRQYXRoOmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGgucGF0aF0pOwpJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI1
MDEyMikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MjMsNiArNTIzLDcgQEAgV0tXZWJzaXRlRGF0YVN0b3JlUmVmIFRlc3RD
b250cm9sbGVyOjp3ZQogICAgICAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
blNldFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uZ2V0KCksIHRvV0sodGVt
cG9yYXJ5Rm9sZGVyICsgcGF0aFNlcGFyYXRvciArICJEYXRhYmFzZXMiICsgcGF0aFNlcGFyYXRv
ciArICJXZWJTUUwiKS5nZXQoKSk7CiAgICAgICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uU2V0TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLmdldCgp
LCB0b1dLKHRlbXBvcmFyeUZvbGRlciArIHBhdGhTZXBhcmF0b3IgKyAiTWVkaWFLZXlzIikuZ2V0
KCkpOwogICAgICAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoY29uZmlndXJhdGlvbi5nZXQoKSwgdG9XSyh0ZW1w
b3JhcnlGb2xkZXIgKyBwYXRoU2VwYXJhdG9yICsgIlJlc291cmNlTG9hZFN0YXRpc3RpY3MiKS5n
ZXQoKSk7CisgICAgICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uU2V0UGVy
T3JpZ2luU3RvcmFnZVF1b3RhKGNvbmZpZ3VyYXRpb24uZ2V0KCksIDQwMCAqIDEwMjQpOwogICAg
ICAgICB9CiAgICAgICAgIGRhdGFTdG9yZSA9IFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZVdpdGhD
b25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOwogICAgIH0KQEAgLTU1MSw4ICs1NTIs
NiBAQCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0CiAgICAgICAgIFdL
Q29udGV4dFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbihtX2NvbnRleHQuZ2V0KCkpOwogICAgICAg
ICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKG1fY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERv
Y3VtZW50QnJvd3Nlcik7CiAKLSAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3JpZ2lu
U3RvcmFnZVF1b3RhKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIDQwMCAqIDEw
MjQpOwotCiAgICAgICAgIHBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQoKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379222</attachid>
            <date>2019-09-20 00:56:34 -0700</date>
            <delta_ts>2019-09-20 08:19:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202025-20190920005633.patch</filename>
            <type>text/plain</type>
            <size>37371</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDE5LTA5LTIwICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQmVnaW4gbW92aW5n
IFdlYnNpdGVEYXRhU3RvcmUgc2V0dGVycyB0byBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDI1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdCBv
ZiB0aGVzZSB3ZXJlIG9ubHkgbmVlZGVkIGJlZm9yZSBpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3Vy
YXRpb24gZXhpc3RlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb25HZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEpOgorICAgICAgICAoV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3JhZ2VRdW90YSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtX
S1dlYnNpdGVEYXRhU3RvcmUgX2luaXRXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9wZXJPcmlnaW5TdG9yYWdlUXVvdGFdKToKKyAgICAgICAgKC1b
V0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uIHBlck9yaWdpblN0b3JhZ2VRdW90YV0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbiBzZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6XSk6CisgICAgICAgICgt
W19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cl0pOgorICAgICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRCb3Vu
ZEludGVyZmFjZUlkZW50aWZpZXI6XSk6CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIGFsbG93c0NlbGx1bGFyQWNjZXNzXSk6CisgICAgICAgICgtW19XS1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIHNldEFsbG93c0NlbGx1bGFyQWNjZXNzOl0pOgorICAg
ICAgICAoLVtfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBwcm94eUNvbmZpZ3VyYXRp
b25dKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0UHJv
eHlDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2Nv
YS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vi
c2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFNv
dXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnNldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVy
KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Ym91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZTo6c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjphbGxvd3NDZWxsdWxhckFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnByb3h5Q29uZmlndXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFBlck9yaWdpblN0
b3JhZ2VRdW90YSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OnNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uOjphbGxvd3NDZWxsdWxhckFjY2VzcyBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjpzZXRBbGxvd3NDZWxs
dWxhckFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uOjpwcm94eUNvbmZpZ3VyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0UHJveHlDb25maWd1cmF0aW9uKToKKwogMjAxOS0w
OS0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbRlRX
LCBXaW5DYWlyb10gU3VwcG9ydCBydW5uaW5nIHRlc3RzIGluIFJlbGVhc2UgbW9kZQpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3Jl
LmNwcAkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVEYXRhU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNyArMTUxLDcgQEAg
UmVmPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpbwogICAgIGNvbmZpZ3VyYXRp
b24tPnNldENhY2hlU3RvcmFnZURpcmVjdG9yeShkZWZhdWx0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5
KCkpOwogICAgIGNvbmZpZ3VyYXRpb24tPnNldE5ldHdvcmtDYWNoZURpcmVjdG9yeShkZWZhdWx0
TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkpOwogICAgIGNvbmZpZ3VyYXRpb24tPnNldE1lZGlhQ2Fj
aGVEaXJlY3RvcnkoZGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3RvcnkoKSk7Ci0KKyAgICBjb25maWd1
cmF0aW9uLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KGRlZmF1bHRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkpOwogICAgIGNvbmZpZ3VyYXRpb24tPnNldEluZGV4
ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGRlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgp
KTsKICAgICBjb25maWd1cmF0aW9uLT5zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5KGRlZmF1bHRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkpOwogICAgIGNv
bmZpZ3VyYXRpb24tPnNldFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KGRlZmF1bHRXZWJTUUxEYXRh
YmFzZURpcmVjdG9yeSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25S
ZWYuY3BwCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTEwLDMgKzExMCwxMyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25T
ZXRSCiB7CiAgICAgV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkoV2ViS2l0Ojp0b0ltcGwoZGlyZWN0b3J5KS0+c3RyaW5nKCkp
OwogfQorCit1aW50NjRfdCBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uR2V0UGVyT3Jp
Z2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYgY29uZmln
dXJhdGlvbikKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY29uZmlndXJhdGlvbiktPnBl
ck9yaWdpblN0b3JhZ2VRdW90YSgpOworfQorCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb25TZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEoV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCB1aW50NjRfdCBxdW90YSkKK3sKKyAgICByZXR1cm4g
V2ViS2l0Ojp0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFBlck9yaWdpblN0b3JhZ2VRdW90YShx
dW90YSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZi5oCShyZXZp
c2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDEw
IEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3UKIAogV0tfRVhQT1JU
IFdLU3RyaW5nUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25Db3B5UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeShXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24pOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvblNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS1N0cmluZ1JlZiBkaXJlY3Rvcnkp
OwotICAgIAorCitXS19FWFBPUlQgdWludDY0X3QgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbkdldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uUmVmIGNvbmZpZ3VyYXRpb24pOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvblNldFBlck9yaWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIHVpbnQ2NF90IHF1b3RhKTsKKwogI2lmZGVm
IF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAkocmV2aXNpb24gMjUw
MTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA1LDkgKzYwNSw4IEBAIHZvaWQgV0tXZWJzaXRl
RGF0YVN0b3JlU2V0U2VydmljZVdvcmtlclIKICAgICBXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVS
ZWYpLT53ZWJzaXRlRGF0YVN0b3JlKCkuc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeShXZWJLaXQ6OnRvSW1wbChzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KS0+
c3RyaW5nKCkpOwogfQogCi12b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFBlck9yaWdpblN0b3Jh
Z2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB1aW50NjRfdCBxdW90
YSkKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZiwgdWludDY0X3QpCiB7Ci0gICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0
b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNldFBlck9yaWdpblN0b3JhZ2VRdW90YShxdW90
YSk7CiB9CiAKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBbGxEZXZpY2VPcmllbnRhdGlv
blBlcm1pc3Npb25zKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaAkocmV2aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNkZWZpbmUgV0tXZWJzaXRlRGF0YVN0b3JlUmVmX2gKIAogI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNhdGVkLmg+CiAKICNpZmRlZiBfX2Nw
bHVzcGx1cwogZXh0ZXJuICJDIiB7CkBAIC0xMzMsNyArMTM0LDcgQEAgV0tfRVhQT1JUIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlR2V0RmV0YwogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLV2Vic2l0
ZURhdGFTdG9yZUNvcHlTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KFdLV2Vic2l0
ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0
YVN0b3JlU2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShXS1dlYnNpdGVEYXRh
U3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBXS1N0cmluZ1JlZiBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5KTsKIAotV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UGVy
T3JpZ2luU3RvcmFnZVF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHVp
bnQ2NF90IHF1b3RhKTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldFBlck9y
aWdpblN0b3JhZ2VRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB1aW50
NjRfdCBxdW90YSkgV0tfQ19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKFdLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25TZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGEpOwogCiBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25m
aWd1cmF0aW9uKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIFdLRGljdGlvbmFy
eVJlZiBjb25maWd1cmF0aW9uKTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCShyZXZpc2lvbiAyNTAx
MjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcsNiArMzA3LDExIEBAIC0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhDb25maWd1cmF0aW9uOigKICAgICAgICAgY29uZmlnLT5zZXRIVFRQUHJveHko
Y29uZmlndXJhdGlvbi5odHRwUHJveHkpOwogICAgIGlmIChjb25maWd1cmF0aW9uLmh0dHBzUHJv
eHkpCiAgICAgICAgIGNvbmZpZy0+c2V0SFRUUFNQcm94eShjb25maWd1cmF0aW9uLmh0dHBzUHJv
eHkpOworCisgICAgY29uZmlnLT5zZXRBbGxvd3NDZWxsdWxhckFjY2Vzcyhjb25maWd1cmF0aW9u
LmFsbG93c0NlbGx1bGFyQWNjZXNzKTsKKyAgICBjb25maWctPnNldFBlck9yaWdpblN0b3JhZ2VR
dW90YShjb25maWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSk7CisgICAgY29uZmlnLT5z
ZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoY29uZmlndXJhdGlvbi5ib3VuZEludGVyZmFjZUlk
ZW50aWZpZXIpOworICAgIGNvbmZpZy0+c2V0UHJveHlDb25maWd1cmF0aW9uKChfX2JyaWRnZSBD
RkRpY3Rpb25hcnlSZWYpW1tjb25maWd1cmF0aW9uLnByb3h5Q29uZmlndXJhdGlvbiBjb3B5XSBh
dXRvcmVsZWFzZV0pOwogICAgIGNvbmZpZy0+c2V0RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0VuYWJsZWQoY29uZmlndXJhdGlvbi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxl
ZCk7CiAgICAgY29uZmlnLT5zZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0
cmljdGlvbnNGb3JUZXN0aW5nKGNvbmZpZ3VyYXRpb24uYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyk7CiAKQEAgLTM2NiwxMiArMzcxLDExIEBA
IC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z00KIAogLSAoTlNVSW50ZWdl
cilfcGVyT3JpZ2luU3RvcmFnZVF1b3RhCiB7Ci0gICAgcmV0dXJuIF93ZWJzaXRlRGF0YVN0b3Jl
LT53ZWJzaXRlRGF0YVN0b3JlKCkucGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7CisgICAgcmV0dXJu
IDA7CiB9CiAKIC0gKHZvaWQpX3NldFBlck9yaWdpblN0b3JhZ2VRdW90YTooTlNVSW50ZWdlcilz
aXplCiB7Ci0gICAgX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXRQZXJP
cmlnaW5TdG9yYWdlUXVvdGEoc2l6ZSk7CiB9CiAKIC0gKE5TU3RyaW5nICopX2NhY2hlU3RvcmFn
ZURpcmVjdG9yeQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCShyZXZpc2lvbiAyNTAx
MjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxNSArNDgsMTUgQEAgdHlwZWRlZiBO
U19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDopIEJPT0wgX3Jlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZTopIEJPT0wgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6KSBOU1VJbnRlZ2VyIF9w
ZXJPcmlnaW5TdG9yYWdlUXVvdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENhY2hlU3RvcmFnZURp
cmVjdG9yeTopIE5TU3RyaW5nKiBfY2FjaGVTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OikgTlNTdHJpbmcqIF9z
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMuNCksIGlvcygxMS4zKSk7Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYm91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NDZWxsdWxhckFjY2VzczopIEJPT0wg
X2FsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcm94eUNvbmZpZ3Vy
YXRpb246KSBOU0RpY3Rpb25hcnkgKl9wcm94eUNvbmZpZ3VyYXRpb24gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwg
c2V0dGVyPV9zZXRTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI6KSBOU1N0cmluZyAq
X3NvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOikgTlNTdHJpbmcgKl9z
b3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFBlck9yaWdpblN0b3JhZ2VRdW90YTopIE5TVUludGVnZXIgX3Blck9yaWdpblN0b3JhZ2VRdW90
YSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5wZXJPcmlnaW5TdG9yYWdlUXVvdGEiLCBtYWNvcygxMC4xMy40LCBXS19N
QUNfVEJBKSwgaW9zKDExLjMsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldENhY2hlU3RvcmFnZURpcmVjdG9yeTopIE5TU3RyaW5nKiBfY2FjaGVTdG9yYWdl
RGlyZWN0b3J5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmNhY2hlU3RvcmFnZURpcmVjdG9yeSIsIG1hY29zKDEwLjEz
LjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeTopIE5T
U3RyaW5nKiBfc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5z
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IiwgbWFjb3MoMTAuMTMuNCwgV0tfTUFD
X1RCQSksIGlvcygxMS4zLCBXS19JT1NfVEJBKSk7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYm91bmRJbnRl
cmZhY2VJZGVudGlmaWVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllciIsIG1h
Y29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3M6KSBCT09MIF9h
bGxvd3NDZWxsdWxhckFjY2VzcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5hbGxvd3NDZWxsdWxhckFjY2VzcyIsIG1h
Y29zKDEwLjEzLjQsIFdLX01BQ19UQkEpLCBpb3MoMTEuMywgV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJveHlDb25maWd1cmF0aW9uOikgTlNEaWN0aW9u
YXJ5ICpfcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLnByb3h5Q29uZmlndXJhdGlvbiIs
IG1hY29zKDEwLjE0LCBXS19NQUNfVEJBKSwgaW9zKDEyLjAsIFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFNvdXJjZUFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcjopIE5TU3RyaW5nICpfc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciIsIG1hY29zKDEw
LjE0LjQsIFdLX01BQ19UQkEpLCBpb3MoMTIuMiwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVu
dGlmaWVyOikgTlNTdHJpbmcgKl9zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uc2V0U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyIiwgbWFj
b3MoMTAuMTQuNCwgV0tfTUFDX1RCQSksIGlvcygxMi4yLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NUTFNGYWxsYmFjazopIEJPT0wgX2FsbG93
c1RMU0ZhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl9pbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNDMsNiArNDMsMTAgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwg
aW9zKDExLgogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0
SFRUUFByb3h5OikgTlNVUkwgKmh0dHBQcm94eSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBz
ZXR0ZXI9c2V0SFRUUFNQcm94eTopIE5TVVJMICpodHRwc1Byb3h5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBk
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIE5T
VUludGVnZXIgcGVyT3JpZ2luU3RvcmFnZVF1b3RhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFi
bGUsIGNvcHkpIE5TU3RyaW5nICpib3VuZEludGVyZmFjZUlkZW50aWZpZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGFsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVs
bGFibGUsIGNvcHkpIE5TRGljdGlvbmFyeSAqcHJveHlDb25maWd1cmF0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRoZXNlIHBy
b3BlcnRpZXMgb25seSBtYWtlIHNlbnNlIGZvciBwZXJzaXN0ZW50IGRhdGEgc3RvcmVzLCBhbmQg
d2lsbCB0aHJvdwogLy8gYW4gZXhjZXB0aW9uIGlmIHNldCBmb3Igbm9uLXBlcnNpc3RlbnQgc3Rv
cmVzLgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQkocmV2
aXNpb24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0
Miw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1
cm4gbmlsOwogCisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPihzZWxmKTsKICAgICBfY29uZmlndXJhdGlvbi0+
c2V0UGVyc2lzdGVudCh0cnVlKTsKIAogICAgIHJldHVybiBzZWxmOwpAQCAtNTMsMTEgKzU0LDE4
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0Tm9uUGVyc2lzdGVudENvbmZpZ3UKICAgICBpZiAoIXNl
bGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5X
cmFwcGVyPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+KHNlbGYpOwogICAg
IF9jb25maWd1cmF0aW9uLT5zZXRQZXJzaXN0ZW50KGZhbHNlKTsKIAogICAgIHJldHVybiBzZWxm
OwogfQogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+fldlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCiAtIChC
T09MKWlzUGVyc2lzdGVudAogewogICAgIHJldHVybiBfY29uZmlndXJhdGlvbi0+aXNQZXJzaXN0
ZW50KCk7CkBAIC0yODQsNiArMjkyLDQ2IEBAIC0gKHZvaWQpc2V0RGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9uc0UKICAgICBfY29uZmlndXJhdGlvbi0+c2V0RGV2aWNlTWFuYWdlbWVudFJlc3Ry
aWN0aW9uc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKKy0gKE5TVUludGVnZXIpcGVyT3JpZ2luU3Rv
cmFnZVF1b3RhCit7CisgICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5wZXJPcmlnaW5TdG9yYWdl
UXVvdGEoKTsKK30KKworLSAodm9pZClzZXRQZXJPcmlnaW5TdG9yYWdlUXVvdGE6KE5TVUludGVn
ZXIpcXVvdGEKK3sKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0UGVyT3JpZ2luU3RvcmFnZVF1b3Rh
KHF1b3RhKTsKK30KKworLSAoTlNTdHJpbmcgKilib3VuZEludGVyZmFjZUlkZW50aWZpZXIKK3sK
KyAgICByZXR1cm4gX2NvbmZpZ3VyYXRpb24tPmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpOwor
fQorCistICh2b2lkKXNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVu
dGlmaWVyCit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldEJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cihpZGVudGlmaWVyKTsKK30KKworLSAoQk9PTClhbGxvd3NDZWxsdWxhckFjY2VzcworeworICAg
IHJldHVybiBfY29uZmlndXJhdGlvbi0+YWxsb3dzQ2VsbHVsYXJBY2Nlc3MoKTsKK30KKworLSAo
dm9pZClzZXRBbGxvd3NDZWxsdWxhckFjY2VzczooQk9PTClhbGxvd3MKK3sKKyAgICBfY29uZmln
dXJhdGlvbi0+c2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoYWxsb3dzKTsKK30KKworLSAoTlNEaWN0
aW9uYXJ5ICopcHJveHlDb25maWd1cmF0aW9uCit7CisgICAgcmV0dXJuIChfX2JyaWRnZSBOU0Rp
Y3Rpb25hcnkgKilfY29uZmlndXJhdGlvbi0+cHJveHlDb25maWd1cmF0aW9uKCk7Cit9CisKKy0g
KHZvaWQpc2V0UHJveHlDb25maWd1cmF0aW9uOihOU0RpY3Rpb25hcnkgKiljb25maWd1cmF0aW9u
Cit7CisgICAgX2NvbmZpZ3VyYXRpb24tPnNldFByb3h5Q29uZmlndXJhdGlvbigoX19icmlkZ2Ug
Q0ZEaWN0aW9uYXJ5UmVmKVtjb25maWd1cmF0aW9uIGNvcHldKTsKK30KKwogLSAoQk9PTClhbGxM
b2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nCiB7CiAg
ICAgcmV0dXJuIF9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1l
bnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkocmV2aXNp
b24gMjUwMTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw4ICsxMDIsNiBAQCBXZWJzaXRl
RGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXCiAgICAgLCBtX2NvbmZpZ3VyYXRpb24o
bV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPmNvcHkoKSkKICAgICAsIG1fZGV2aWNlSWRIYXNoU2Fs
dFN0b3JhZ2UoRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U6OmNyZWF0ZShpc1BlcnNpc3RlbnQoKSA/
IG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5KCkgOiBT
dHJpbmcoKSkpCiAgICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2Vi
S2l0LldlYnNpdGVEYXRhU3RvcmUiKSkKLSAgICAsIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKG1fY29uZmlndXJhdGlvbi0+c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKCkpCi0gICAgLCBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcihtX2Nv
bmZpZ3VyYXRpb24tPnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpKQogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAgICAgLCBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VVbmlx
dWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCiAjZW5kaWYKQEAgLTIwMjgsNyArMjAyNiw3
IEBAIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U291cmNlQXBwbGljYXQKIHsKICAgICBpZiAo
bV9uZXR3b3JraW5nSGFzQmVndW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3NvdXJj
ZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7Cisg
ICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5
SWRlbnRpZmllcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtMjA0NCw3ICsyMDQyLDcgQEAgYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTb3VyY2VBcHBs
aWNhdAogewogICAgIGlmIChtX25ldHdvcmtpbmdIYXNCZWd1bikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIG1fc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gV1RGTW92ZShp
ZGVudGlmaWVyKTsKKyAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0U291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyKFdURk1vdmUoaWRlbnRpZmllcikpOwogICAgIHJldHVybiB0
cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyNTAxMjIpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExNiw3ICsxMTYsNiBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCBwZXJPcmln
aW5TdG9yYWdlUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+
cGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7IH0KICAgICB1aW50NjRfdCBwZXJUaGlyZFBhcnR5T3Jp
Z2luU3RvcmFnZVF1b3RhKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRQZXJPcmlnaW5TdG9yYWdlUXVv
dGEodWludDY0X3QgcXVvdGEpIHsgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFBlck9yaWdp
blN0b3JhZ2VRdW90YShxdW90YSk7IH0KICAgICBjb25zdCBTdHJpbmcmIGNhY2hlU3RvcmFnZURp
cmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5jYWNoZVN0
b3JhZ2VEaXJlY3RvcnkoKTsgfQogICAgIHZvaWQgc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5KFN0
cmluZyYmIGRpcmVjdG9yeSkgeyBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0Q2FjaGVTdG9y
YWdlRGlyZWN0b3J5KFdURk1vdmUoZGlyZWN0b3J5KSk7IH0KICAgICBjb25zdCBTdHJpbmcmIHNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX3Jlc29s
dmVkQ29uZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpOyB9
CkBAIC0yMTAsMTMgKzIwOSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVQZW5kaW5nQ29v
a2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgY2xlYXJQZW5kaW5nQ29va2ll
cygpOwogCi0gICAgdm9pZCBzZXRCb3VuZEludGVyZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYgaWRl
bnRpZmllcikgeyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmll
cik7IH0KLSAgICBjb25zdCBTdHJpbmcmIGJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpIHsgcmV0
dXJuIG1fYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRCb3VuZEludGVy
ZmFjZUlkZW50aWZpZXIoU3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX3Jlc29sdmVkQ29uZmlndXJh
dGlvbi0+c2V0Qm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKFdURk1vdmUoaWRlbnRpZmllcikpOyB9
CisgICAgY29uc3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlkZW50aWZpZXIoKSB7IHJldHVybiBt
X3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVyKCk7IH0KIAot
ICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7IH0KKyAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIoKTsgfQogICAgIGJvb2wgc2V0U291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKFN0cmluZyYmKTsKIAotICAgIGNvbnN0IFN0cmluZyYgc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBsaWNhdGlvblNlY29u
ZGFyeUlkZW50aWZpZXI7IH0KKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZUFwcGxpY2F0aW9uU2Vj
b25kYXJ5SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9u
LT5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIoKTsgfQogICAgIGJvb2wgc2V0
U291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKFN0cmluZyYmKTsKIAogICAgIGJv
b2wgYWxsb3dzVExTRmFsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2FsbG93c1RMU0ZhbGxiYWNr
OyB9CkBAIC0yMjQsMTIgKzIyMywxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5ldHdvcmtpbmdI
YXNCZWd1bigpIHsgbV9uZXR3b3JraW5nSGFzQmVndW4gPSB0cnVlOyB9CiAgICAgCi0gICAgdm9p
ZCBzZXRBbGxvd3NDZWxsdWxhckFjY2VzcyhBbGxvd3NDZWxsdWxhckFjY2VzcyBhbGxvd3MpIHsg
bV9hbGxvd3NDZWxsdWxhckFjY2VzcyA9IGFsbG93czsgfQotICAgIEFsbG93c0NlbGx1bGFyQWNj
ZXNzIGFsbG93c0NlbGx1bGFyQWNjZXNzKCkgeyByZXR1cm4gbV9hbGxvd3NDZWxsdWxhckFjY2Vz
czsgfQorICAgIHZvaWQgc2V0QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoQWxsb3dzQ2VsbHVsYXJBY2Nl
c3MgYWxsb3dzKSB7IG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRBbGxvd3NDZWxsdWxhckFj
Y2VzcyhhbGxvd3MgPT0gQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6Olllcyk7IH0KKyAgICBBbGxvd3ND
ZWxsdWxhckFjY2VzcyBhbGxvd3NDZWxsdWxhckFjY2VzcygpIHsgcmV0dXJuIG1fcmVzb2x2ZWRD
b25maWd1cmF0aW9uLT5hbGxvd3NDZWxsdWxhckFjY2VzcygpID8gQWxsb3dzQ2VsbHVsYXJBY2Nl
c3M6OlllcyA6IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpObzsgfQogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24oQ0ZEaWN0aW9uYXJ5UmVmIGNvbmZp
Z3VyYXRpb24pIHsgbV9wcm94eUNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOyB9Ci0gICAg
Q0ZEaWN0aW9uYXJ5UmVmIHByb3h5Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fcHJveHlDb25m
aWd1cmF0aW9uLmdldCgpOyB9CisgICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24oQ0ZEaWN0
aW9uYXJ5UmVmIGNvbmZpZ3VyYXRpb24pIHsgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldFBy
b3h5Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKTsgfQorICAgIENGRGljdGlvbmFyeVJlZiBw
cm94eUNvbmZpZ3VyYXRpb24oKSB7IHJldHVybiBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+cHJv
eHlDb25maWd1cmF0aW9uKCk7IH0KICNlbmRpZgogCiAjaWYgVVNFKENVUkwpCkBAIC0zMTEsNyAr
MzEwLDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBWZWN0b3I8dWludDhf
dD4gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKICAgICBSZXRhaW5QdHI8Q0ZI
VFRQQ29va2llU3RvcmFnZVJlZj4gbV9jZkNvb2tpZVN0b3JhZ2U7Ci0gICAgUmV0YWluUHRyPENG
RGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CiAjZW5kaWYKIAogI2lmIFVTRShD
VVJMKQpAQCAtMzIyLDEwICszMjAsNiBAQCBwcml2YXRlOgogICAgIAogICAgIFdlYWtIYXNoU2V0
PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzZXM7CiAKLSAgICBTdHJpbmcgbV9ib3VuZEludGVy
ZmFjZUlkZW50aWZpZXI7Ci0gICAgQWxsb3dzQ2VsbHVsYXJBY2Nlc3MgbV9hbGxvd3NDZWxsdWxh
ckFjY2VzcyB7IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpZZXMgfTsKLSAgICBTdHJpbmcgbV9zb3Vy
Y2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7Ci0gICAgU3RyaW5nIG1fc291cmNlQXBwbGlj
YXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOwogICAgIGJvb2wgbV9hbGxvd3NUTFNGYWxsYmFjayB7
IHRydWUgfTsKICAgICBib29sIG1fbmV0d29ya2luZ0hhc0JlZ3VuIHsgZmFsc2UgfTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAkocmV2aXNpb24gMjUw
MTIyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsNyBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246Oldl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKCkKLSAgICA6IG1fcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeShBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5KCkpCi17Ci19CitXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKSA9IGRlZmF1bHQ7CiAKIFJlZjxXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246
OmNvcHkoKQogewpAQCAtNjUsNiArNjIsMTIgQEAgUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uPiBXZWJzaQogICAgIGNvcHktPm1faHR0cHNQcm94eSA9IHRoaXMtPm1faHR0cHNQcm94
eTsKICAgICBjb3B5LT5tX2RldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gdGhp
cy0+bV9kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZDsKICAgICBjb3B5LT5tX2Fs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSB0
aGlzLT5tX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRl
c3Rpbmc7CisgICAgY29weS0+bV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIgPSB0aGlzLT5tX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcjsKKyAgICBjb3B5LT5tX2FsbG93c0NlbGx1bGFyQWNjZXNz
ID0gdGhpcy0+bV9hbGxvd3NDZWxsdWxhckFjY2VzczsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBpZiAobV9wcm94eUNvbmZpZ3VyYXRpb24pCisgICAgICAgIGNvcHktPm1fcHJveHlDb25maWd1
cmF0aW9uID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVDb3B5KG51bGxwdHIsIHRoaXMtPm1f
cHJveHlDb25maWd1cmF0aW9uLmdldCgpKSk7CisjZW5kaWYKIAogICAgIHJldHVybiBjb3B5Owog
fQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAy
NTAxMjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gOiBw
dWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24pOyB9CisgICAgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRp
b24oKTsKIAogICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gY29weSgpOwog
CkBAIC02OCw2ICs2OSwxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3Jh
Z2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsU3RvcmFnZURpcmVjdG9yeTsgfQog
ICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KFN0cmluZyYmIGRpcmVjdG9yeSkgeyBt
X2xvY2FsU3RvcmFnZURpcmVjdG9yeSA9IFdURk1vdmUoZGlyZWN0b3J5KTsgfQogCisgICAgY29u
c3QgU3RyaW5nJiBib3VuZEludGVyZmFjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2Jv
dW5kSW50ZXJmYWNlSWRlbnRpZmllcjsgfQorICAgIHZvaWQgc2V0Qm91bmRJbnRlcmZhY2VJZGVu
dGlmaWVyKFN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIg
PSBXVEZNb3ZlKGlkZW50aWZpZXIpOyB9CisKKyAgICBib29sIGFsbG93c0NlbGx1bGFyQWNjZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NDZWxsdWxhckFjY2VzczsgfQorICAgIHZvaWQgc2V0
QWxsb3dzQ2VsbHVsYXJBY2Nlc3MoYm9vbCBhbGxvd3MpIHsgbV9hbGxvd3NDZWxsdWxhckFjY2Vz
cyA9IGFsbG93czsgfQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgQ0ZEaWN0aW9uYXJ5UmVm
IHByb3h5Q29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHlDb25maWd1cmF0aW9u
LmdldCgpOyB9CisgICAgdm9pZCBzZXRQcm94eUNvbmZpZ3VyYXRpb24oQ0ZEaWN0aW9uYXJ5UmVm
IGNvbmZpZ3VyYXRpb24pIHsgbV9wcm94eUNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOyB9
CisjZW5kaWYKKyAgICAKICAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkSGFzaFNhbHRzU3RvcmFn
ZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGly
ZWN0b3J5OyB9CiAgICAgdm9pZCBzZXREZXZpY2VJZEhhc2hTYWx0c1N0b3JhZ2VEaXJlY3Rvcnko
U3RyaW5nJiYgZGlyZWN0b3J5KSB7IG1fZGV2aWNlSWRIYXNoU2FsdHNTdG9yYWdlRGlyZWN0b3J5
ID0gV1RGTW92ZShkaXJlY3RvcnkpOyB9CiAKQEAgLTEwOCw4ICsxMjAsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRBbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNG
b3JUZXN0aW5nKGJvb2wgYmxvY2tlZCkgeyBtX2FsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdl
bWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBibG9ja2VkOyB9CiAKIHByaXZhdGU6Ci0gICAg
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKTsKLQogICAgIGJvb2wgbV9pc1BlcnNpc3Rl
bnQgeyBmYWxzZSB9OwogCiAgICAgU3RyaW5nIG1fY2FjaGVTdG9yYWdlRGlyZWN0b3J5OwpAQCAt
MTMyLDEwICsxNDIsMTUgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9jb29raWVTdG9yYWdlRmls
ZTsKICAgICBTdHJpbmcgbV9zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiAgICAg
U3RyaW5nIG1fc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyOworICAgIFN0cmlu
ZyBtX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllcjsKICAgICBVUkwgbV9odHRwUHJveHk7CiAgICAg
VVJMIG1faHR0cHNQcm94eTsKICAgICBib29sIG1fZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9u
c0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1h
bmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxs
b3dzQ2VsbHVsYXJBY2Nlc3MgeyB0cnVlIH07CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmV0
YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbV9wcm94eUNvbmZpZ3VyYXRpb247CisjZW5kaWYKIH07
CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dl
YnNpdGVEYXRhU3RvcmVDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0JKHJldmlzaW9u
IDI1MDEyMikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dl
YnNpdGVEYXRhU3RvcmVDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE5LDExICsxMTksMTEg
QEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdAogICAgIFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMgPSB7CiAgICAgICAgIG1fc2Vzc2lvbklELAotICAgICAgICBtX2JvdW5k
SW50ZXJmYWNlSWRlbnRpZmllciwKLSAgICAgICAgbV9hbGxvd3NDZWxsdWxhckFjY2VzcywKLSAg
ICAgICAgbV9wcm94eUNvbmZpZ3VyYXRpb24sCi0gICAgICAgIG1fc291cmNlQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyLAotICAgICAgICBtX3NvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciwKKyAgICAgICAgYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKCksCisgICAgICAgIGFs
bG93c0NlbGx1bGFyQWNjZXNzKCksCisgICAgICAgIHByb3h5Q29uZmlndXJhdGlvbigpLAorICAg
ICAgICBzb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSwKKyAgICAgICAgc291cmNl
QXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCksCiAgICAgICAgIG1fYWxsb3dzVExTRmFs
bGJhY2sgPyBBbGxvd3NUTFNGYWxsYmFjazo6WWVzIDogQWxsb3dzVExTRmFsbGJhY2s6Ok5vLAog
ICAgICAgICBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiwKICAgICAgICAgU2Vjb25kcyB7IFtk
ZWZhdWx0cyBpbnRlZ2VyRm9yS2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWls
bGlzZWNvbmRzRGVmYXVsdHNLZXldIC8gMTAwMC4gfSwKQEAgLTE1NSw4ICsxNTUsOCBAQCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAgfQogCiAgICAgcGFyYW1l
dGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1fdWlQcm9jZXNzQ29va2ll
U3RvcmFnZUlkZW50aWZpZXI7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMuc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gbV9zb3VyY2VBcHBsaWNhdGlv
bkJ1bmRsZUlkZW50aWZpZXI7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gbV9zb3VyY2VBcHBsaWNh
dGlvblNlY29uZGFyeUlkZW50aWZpZXI7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gc291cmNlQXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gc291cmNlQXBw
bGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7CiAKICAgICBwYXJhbWV0ZXJzLnBlbmRpbmdD
b29raWVzID0gY29weVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwogCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTAxMjIp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAx
OS0wOS0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIEJlZ2luIG1vdmluZyBXZWJzaXRlRGF0YVN0b3JlIHNldHRlcnMgdG8gV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMjAyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE9uZSBleHBlY3RlZCBjaGFuZ2UgaW4gYmVoYXZpb3IgaXMgdGhhdCB0aGUg
cmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGRpcmVjdG9yeSBpcyBub3QgY3JlYXRlZCBvbiBzdGFy
dHVwIHdpdGggYW4gZXBoZW1lcmFsIHNlc3Npb24gYW55IG1vcmUKKyAgICAgICAgYmVjYXVzZSB3
ZSBjYWxsIHRoZSBjb25zdHJ1Y3RvciBvZiBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBp
bnNpZGUgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYW5kIHNldCB0aGUgZGVmYXVs
dCBkaXJlY3RvcnkgbGlrZSB3ZSBkbyB0aGUgb3RoZXIgZGlyZWN0b3JpZXMuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JhZ2VRdW90YS5tbToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbik6CisKIDIwMTktMDktMTkgIEJyZW50
IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW0ZUV10gRW5hYmxlIFdl
YktpdFRlc3RSdW5uZXIgYnVpbGQKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1tCShyZXZpc2lvbiAyNTAxMjIpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JhZ2VRdW90YS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjI1LDE1ICsyMjUsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNl
dFZpc2libGUoVGVzdFdLV2ViVgogVEVTVChXZWJLaXQsIFF1b3RhRGVsZWdhdGUpCiB7CiAgICAg
ZG9uZSA9IGZhbHNlOwotICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVd
IHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBl
c10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpe
KCkgeworICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uICpzdG9yZUNvbmZpZ3Vy
YXRpb24gPSBbW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOworICAgIHN0b3JlQ29uZmlndXJhdGlvbi5wZXJPcmlnaW5TdG9yYWdlUXVv
dGEgPSAxMDI0ICogNDAwOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZSAqZGF0YVN0b3JlID0gW1tb
V0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnN0b3JlQ29u
ZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgIFtkYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlw
ZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNl
OltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRv
bmUgPSB0cnVlOwogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3Rv
cmU6ZGF0YVN0b3JlXTsKIAotICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBf
c2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhOiAxMDI0ICogNDAwXTsKLSAgICAKICAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1F1b3RhTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRd
KTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAicXQiXTsKIApAQCAtMjg2
LDE0ICsyODgsMTYgQEAgVEVTVChXZWJLaXQsIFF1b3RhRGVsZWdhdGUpCiBURVNUKFdlYktpdCwg
UXVvdGFEZWxlZ2F0ZVJlbG9hZCkKIHsKICAgICBkb25lID0gZmFsc2U7Ci0gICAgW1tXS1dlYnNp
dGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0
ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlz
dGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gKnN0b3JlQ29uZmlndXJhdGlvbiA9IFtbW19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgc3RvcmVDb25m
aWd1cmF0aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSA9IDEwMjQgKiA0MDA7CisgICAgV0tXZWJz
aXRlRGF0YVN0b3JlICpkYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07Cisg
ICAgW2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdl
YnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxl
dGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICAKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwotICAg
IAotICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfc2V0UGVyT3JpZ2luU3Rv
cmFnZVF1b3RhOiAxMDI0ICogNDAwXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOmRhdGFTdG9yZV07CiAgICAgCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0
TlMoW1tRdW90YU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0
aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2Fn
ZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInF0Il07CkBAIC0zMzIsMTQgKzMzNiwxNiBAQCBURVNUKFdl
YktpdCwgUXVvdGFEZWxlZ2F0ZVJlbG9hZCkKIFRFU1QoV2ViS2l0LCBRdW90YURlbGVnYXRlTmF2
aWdhdGVGcmFnbWVudCkKIHsKICAgICBkb25lID0gZmFsc2U7Ci0gICAgW1tXS1dlYnNpdGVEYXRh
U3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBh
c3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24gKnN0b3JlQ29uZmlndXJhdGlvbiA9IFtbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgc3RvcmVDb25maWd1cmF0
aW9uLnBlck9yaWdpblN0b3JhZ2VRdW90YSA9IDEwMjQgKiA0MDA7CisgICAgV0tXZWJzaXRlRGF0
YVN0b3JlICpkYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246c3RvcmVDb25maWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07CisgICAgW2Rh
dGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVE
YXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhh
bmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0KLSAgICBbW2NvbmZp
Z3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3NldFBlck9yaWdpblN0b3JhZ2VRdW90YTogMTAy
NCAqIDQwMF07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpkYXRhU3Rv
cmVdOwogCiAgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tRdW90YU1lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29u
dHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFt
ZTpAInF0Il07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dl
YnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQko
cmV2aXNpb24gMjUwMTIyKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNiw4
ICs0MDYsNyBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZURhdGFTdG9yZUVwaGVtZXJhbCkKICAgICBj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3Jl
IG5vblBlcnNpc3RlbnREYXRhU3RvcmVdOwogICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNp
dGVEYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CiAKLSAg
ICAvLyBXZSBleHBlY3QgdGhlIGRpcmVjdG9yeSB0byBiZSBjcmVhdGVkIGJ5IHN0YXJ0aW5nIHVw
IHRoZSBkYXRhIHN0b3JlIG1hY2hpbmVyeSwgYnV0IG5vdCB0aGUgZGF0YSBmaWxlLgotICAgIEVY
UEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0pOworICAgIEVYUEVDVF9G
QUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVm
YXVsdFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXRoLnBhdGhdKTsKIAogICAgIE5TVVJMICpkZWZh
dWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0
aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvUmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9mdWxsX2Jyb3dzaW5nX3Nlc3Npb25fcmVzb3VyY2VMb2cucGxpc3QiIHN0
cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5Ok5PXTsKICAgICBFWFBFQ1Rf
RkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRl
ZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGgucGF0aF0pOwpAQCAtNDUwLDggKzQ0
OSw3IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlRGF0YVN0b3JlRXBoZW1lcmFsVmkKICAgICBjb25m
aWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3RvcmUg
YWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQo
KV0gYXV0b3JlbGVhc2VdOwogICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3Rv
cmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CiAKLSAgICAvLyBXZSBl
eHBlY3QgdGhlIGRpcmVjdG9yeSB0byBiZSBjcmVhdGVkIGJ5IHN0YXJ0aW5nIHVwIHRoZSBkYXRh
IHN0b3JlIG1hY2hpbmVyeSwgYnV0IG5vdCB0aGUgZGF0YSBmaWxlLgotICAgIEVYUEVDVF9UUlVF
KFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpkZWZhdWx0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhdGgucGF0aF0pOworICAgIEVYUEVDVF9GQUxTRShbW05T
RmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGVmYXVsdFJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXRoLnBhdGhdKTsKIAogICAgIE5TVVJMICpkZWZhdWx0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0ZpbGVQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xp
YnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9mdWxsX2Jyb3dzaW5nX3Nlc3Npb25fcmVzb3VyY2VMb2cucGxpc3QiIHN0cmluZ0J5RXhw
YW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5Ok5PXTsKICAgICBFWFBFQ1RfRkFMU0UoW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlZmF1bHRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRmlsZVBhdGgucGF0aF0pOwpJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI1MDEyMikKKysrIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjMs
NiArNTIzLDcgQEAgV0tXZWJzaXRlRGF0YVN0b3JlUmVmIFRlc3RDb250cm9sbGVyOjp3ZQogICAg
ICAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFdlYlNRTERhdGFiYXNl
RGlyZWN0b3J5KGNvbmZpZ3VyYXRpb24uZ2V0KCksIHRvV0sodGVtcG9yYXJ5Rm9sZGVyICsgcGF0
aFNlcGFyYXRvciArICJEYXRhYmFzZXMiICsgcGF0aFNlcGFyYXRvciArICJXZWJTUUwiKS5nZXQo
KSk7CiAgICAgICAgICAgICBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uU2V0TWVkaWFL
ZXlzU3RvcmFnZURpcmVjdG9yeShjb25maWd1cmF0aW9uLmdldCgpLCB0b1dLKHRlbXBvcmFyeUZv
bGRlciArIHBhdGhTZXBhcmF0b3IgKyAiTWVkaWFLZXlzIikuZ2V0KCkpOwogICAgICAgICAgICAg
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkoY29uZmlndXJhdGlvbi5nZXQoKSwgdG9XSyh0ZW1wb3JhcnlGb2xkZXIgKyBwYXRo
U2VwYXJhdG9yICsgIlJlc291cmNlTG9hZFN0YXRpc3RpY3MiKS5nZXQoKSk7CisgICAgICAgICAg
ICBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uU2V0UGVyT3JpZ2luU3RvcmFnZVF1b3Rh
KGNvbmZpZ3VyYXRpb24uZ2V0KCksIDQwMCAqIDEwMjQpOwogICAgICAgICB9CiAgICAgICAgIGRh
dGFTdG9yZSA9IFdLV2Vic2l0ZURhdGFTdG9yZUNyZWF0ZVdpdGhDb25maWd1cmF0aW9uKGNvbmZp
Z3VyYXRpb24uZ2V0KCkpOwogICAgIH0KQEAgLTU1MSw4ICs1NTIsNiBAQCBXS1JldGFpblB0cjxX
S1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0CiAgICAgICAgIFdLQ29udGV4dFVzZVRlc3RpbmdO
ZXR3b3JrU2Vzc2lvbihtX2NvbnRleHQuZ2V0KCkpOwogICAgICAgICBXS0NvbnRleHRTZXRDYWNo
ZU1vZGVsKG1fY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAK
LSAgICAgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UGVyT3JpZ2luU3RvcmFnZVF1b3RhKFRlc3RD
b250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIDQwMCAqIDEwMjQpOwotCiAgICAgICAgIHBs
YXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQoKTsKICAgICB9CiAK
</data>
<flag name="review"
          id="394921"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>