<?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>236935</bug_id>
          
          <creation_ts>2022-02-20 01:03:01 -0800</creation_ts>
          <short_desc>[WebGPU] Use block-based callbacks instead of C function pointer callbacks</short_desc>
          <delta_ts>2022-03-15 16:50:14 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>237932</dup_id>
          
          <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>
          <dependson>236934</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>rmorisset</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1844037</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-02-20 01:03:01 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844038</commentid>
    <comment_count>1</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-02-20 01:03:13 -0800</bug_when>
    <thetext>It turns out we can&apos;t actually use this just yet because blocks have to be copyable, which means any lambdas we convert to blocks have to be copyable, but in the GPU Process we receive a CompletionHandler to call back with a reply, but CompletionHandlers are not copyable, so we can&apos;t construct the block to pass in to WebGPU.framework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844040</commentid>
    <comment_count>2</comment_count>
      <attachid>452686</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-02-20 01:05:07 -0800</bug_when>
    <thetext>Created attachment 452686
WIP - Not for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846390</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-27 01:03:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89523528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851586</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-15 16:50:14 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 237932 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452686</attachid>
            <date>2022-02-20 01:05:07 -0800</date>
            <delta_ts>2022-02-20 01:05:07 -0800</delta_ts>
            <desc>WIP - Not for review</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>71074</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IGNiNWNjOWMyYTAyNmNlN2YwZGY4ZTMyNTA2YTdlMDdmMWFlMDU0NjkKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gRmViIDIw
IDAxOjAwOjE5IDIwMjIgLTA4MDAKCiAgICBQYXJ0IDEyCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXgg
OTdkYzZkZDZhYTQyLi40NTRjOTllOWY5NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsx
LDg1IEBACisyMDIyLTAyLTIwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkdQVV0gVHJhY2VyIGJ1bGxldCBwYXJ0IDEyOiBNaWdyYXRlIGZy
b20gQyBmdW5jdGlvbiBjYWxsYmFja3MgdG8gYmxvY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY5MzQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIG1hbnVhbGx5IHN0b3JpbmcgY2Fs
bGJhY2tzIGluIFZlY3RvcnMsIHdlIGNhbiBqdXN0IHVzZSBhIGxhbWJkYSBhbmQgcGFzcyBpdCB0
byBXZWJHUFUuZnJhbWV3b3JrLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJ
bXBsLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJ
bXBsLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHAuCisgICAgICAgIChQQUw6OldlYkdQVTo6YWRh
cHRlck5hbWUpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OnN1cHBvcnRlZEZlYXR1cmVzKToKKyAg
ICAgICAgKFBBTDo6V2ViR1BVOjpzdXBwb3J0ZWRMaW1pdHMpOgorICAgICAgICAoUEFMOjpXZWJH
UFU6OmlzRmFsbGJhY2tBZGFwdGVyKToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpBZGFwdGVySW1w
bDo6QWRhcHRlckltcGwpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OkFkYXB0ZXJJbXBsOjp+QWRh
cHRlckltcGwpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OkFkYXB0ZXJJbXBsOjpyZXF1ZXN0RGV2
aWNlKToKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQnVmZmVySW1w
bC5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVCdWZmZXJJbXBs
Lm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
SW1wbC9XZWJHUFVCdWZmZXJJbXBsLmNwcC4KKyAgICAgICAgKFBBTDo6V2ViR1BVOjpCdWZmZXJJ
bXBsOjpCdWZmZXJJbXBsKToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpCdWZmZXJJbXBsOjp+QnVm
ZmVySW1wbCk6CisgICAgICAgIChQQUw6OldlYkdQVTo6QnVmZmVySW1wbDo6bWFwQXN5bmMpOgor
ICAgICAgICAoUEFMOjpXZWJHUFU6OkJ1ZmZlckltcGw6OmdldE1hcHBlZFJhbmdlKToKKyAgICAg
ICAgKFBBTDo6V2ViR1BVOjpCdWZmZXJJbXBsOjp1bm1hcCk6CisgICAgICAgIChQQUw6OldlYkdQ
VTo6QnVmZmVySW1wbDo6ZGVzdHJveSk6CisgICAgICAgIChQQUw6OldlYkdQVTo6QnVmZmVySW1w
bDo6c2V0TGFiZWxJbnRlcm5hbCk6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBs
L1dlYkdQVURldmljZUltcGwuaDoKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwv
V2ViR1BVRGV2aWNlSW1wbC5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5jcHAuCisgICAgICAgIChQQUw6
OldlYkdQVTo6RGV2aWNlSW1wbDo6RGV2aWNlSW1wbCk6CisgICAgICAgIChQQUw6OldlYkdQVTo6
RGV2aWNlSW1wbDo6fkRldmljZUltcGwpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OkRldmljZUlt
cGw6OmRlc3Ryb3kpOgorICAgICAgICAoUEFMOjpXZWJHUFU6OkRldmljZUltcGw6OmNyZWF0ZUJ1
ZmZlcik6CisgICAgICAgIChQQUw6OldlYkdQVTo6RGV2aWNlSW1wbDo6Y3JlYXRlVGV4dHVyZSk6
CisgICAgICAgIChQQUw6OldlYkdQVTo6RGV2aWNlSW1wbDo6Y3JlYXRlU2FtcGxlcik6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6RGV2aWNlSW1wbDo6aW1wb3J0RXh0ZXJuYWxUZXh0dXJlKToKKyAg
ICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2VJbXBsOjpjcmVhdGVCaW5kR3JvdXBMYXlvdXQpOgor
ICAgICAgICAoUEFMOjpXZWJHUFU6OkRldmljZUltcGw6OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KToK
KyAgICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2VJbXBsOjpjcmVhdGVCaW5kR3JvdXApOgorICAg
ICAgICAoUEFMOjpXZWJHUFU6OkRldmljZUltcGw6OmNyZWF0ZVNoYWRlck1vZHVsZSk6CisgICAg
ICAgIChQQUw6OldlYkdQVTo6Y29udmVydFRvQmFja2luZyk6CisgICAgICAgIChQQUw6OldlYkdQ
VTo6RGV2aWNlSW1wbDo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKToKKyAgICAgICAgKFBBTDo6V2Vi
R1BVOjpEZXZpY2VJbXBsOjpjcmVhdGVSZW5kZXJQaXBlbGluZSk6CisgICAgICAgIChQQUw6Oldl
YkdQVTo6RGV2aWNlSW1wbDo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMpOgorICAgICAgICAo
UEFMOjpXZWJHUFU6OkRldmljZUltcGw6OmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmMpOgorICAg
ICAgICAoUEFMOjpXZWJHUFU6OkRldmljZUltcGw6OmNyZWF0ZUNvbW1hbmRFbmNvZGVyKToKKyAg
ICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2VJbXBsOjpjcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVy
KToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpEZXZpY2VJbXBsOjpjcmVhdGVRdWVyeVNldCk6Cisg
ICAgICAgIChQQUw6OldlYkdQVTo6RGV2aWNlSW1wbDo6cHVzaEVycm9yU2NvcGUpOgorICAgICAg
ICAoUEFMOjpXZWJHUFU6OkRldmljZUltcGw6OnBvcEVycm9yU2NvcGUpOgorICAgICAgICAoUEFM
OjpXZWJHUFU6OkRldmljZUltcGw6OnNldExhYmVsSW50ZXJuYWwpOgorICAgICAgICAqIHBhbC9n
cmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVJbXBsLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNz
L1dlYkdQVS9JbXBsL1dlYkdQVUltcGwubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUltcGwuY3BwLgorICAgICAgICAoUEFM
OjpXZWJHUFU6OkdQVUltcGw6OmNyZWF0ZSk6CisgICAgICAgIChQQUw6OldlYkdQVTo6R1BVSW1w
bDo6R1BVSW1wbCk6CisgICAgICAgIChQQUw6OldlYkdQVTo6R1BVSW1wbDo6fkdQVUltcGwpOgor
ICAgICAgICAoUEFMOjpXZWJHUFU6OkdQVUltcGw6OnJlcXVlc3RBZGFwdGVyKToKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJbXBsLmg6CisgICAgICAgICog
cGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVlSW1wbC5tbTogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJ
bXBsLmNwcC4KKyAgICAgICAgKFBBTDo6V2ViR1BVOjpRdWV1ZUltcGw6OlF1ZXVlSW1wbCk6Cisg
ICAgICAgIChQQUw6OldlYkdQVTo6UXVldWVJbXBsOjp+UXVldWVJbXBsKToKKyAgICAgICAgKFBB
TDo6V2ViR1BVOjpRdWV1ZUltcGw6OnN1Ym1pdCk6CisgICAgICAgIChQQUw6OldlYkdQVTo6UXVl
dWVJbXBsOjpvblN1Ym1pdHRlZFdvcmtEb25lKToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpRdWV1
ZUltcGw6OndyaXRlQnVmZmVyKToKKyAgICAgICAgKFBBTDo6V2ViR1BVOjpRdWV1ZUltcGw6Ondy
aXRlVGV4dHVyZSk6CisgICAgICAgIChQQUw6OldlYkdQVTo6UXVldWVJbXBsOjpjb3B5RXh0ZXJu
YWxJbWFnZVRvVGV4dHVyZSk6CisgICAgICAgIChQQUw6OldlYkdQVTo6UXVldWVJbXBsOjpzZXRM
YWJlbEludGVybmFsKToKKyAgICAgICAgKiBwYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BV
U2hhZGVyTW9kdWxlSW1wbC5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVTaGFkZXJNb2R1bGVJbXBsLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVTaGFkZXJNb2R1bGVJbXBsLmNwcC4KKyAg
ICAgICAgKFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVJbXBsOjpTaGFkZXJNb2R1bGVJbXBsKToK
KyAgICAgICAgKFBBTDo6V2ViR1BVOjpTaGFkZXJNb2R1bGVJbXBsOjp+U2hhZGVyTW9kdWxlSW1w
bCk6CisgICAgICAgIChQQUw6OldlYkdQVTo6Y29udmVydENvbXBpbGF0aW9uTWVzc2FnZVR5cGUp
OgorICAgICAgICAoUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZUltcGw6OmNvbXBpbGF0aW9uSW5m
byk6CisgICAgICAgIChQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlSW1wbDo6c2V0TGFiZWxJbnRl
cm5hbCk6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFUuaDoKKyAgICAgICAg
KiBwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUFkYXB0ZXIuaDoKKyAgICAgICAgKiBwYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVUJ1ZmZlci5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJH
UFUvV2ViR1BVRGV2aWNlLmg6CisgICAgICAgICogcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVR
dWV1ZS5oOgorICAgICAgICAqIHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVU2hhZGVyTW9kdWxl
Lmg6CisKIDIwMjItMDItMTggIFJvYmVydCBKZW5uZXIgIDxKZW5uZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjkwMTQ5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIzNDAxNTQ2Y2FmNS4u
ZTc3YmMzNWVmZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMTIsMjUgKzExMiwyNSBAQAogCQkxQzA5RDA1MzFFMzFDNDQx
MDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzA5RDA1MjFFMzFDNDQxMDA3MjVGMTggLyogQ3J5cHRvRGlnZXN0
LmggKi87IH07CiAJCTFDMDlEMDU2MUUzMUM0NjUwMDcyNUYxOCAvKiBDcnlwdG9EaWdlc3RDb21t
b25DcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUMwOUQwNTUxRTMxQzQ2NTAwNzI1RjE4IC8qIENyeXB0b0RpZ2VzdENvbW1vbkNyeXB0by5j
cHAgKi87IH07CiAJCTFDMDlEMDU4MUUzMUM1N0UwMDcyNUYxOCAvKiBjb25maWcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMDlEMDU3MUUzMUM1N0Uw
MDcyNUYxOCAvKiBjb25maWcuaCAqLzsgfTsKLQkJMUMxOUU2NDQyNzNGM0U1RDAwNEIxN0IwIC8q
IFdlYkdQVUltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUMxOUU2NDIyNzNGM0U1RDAwNEIxN0IwIC8qIFdlYkdQVUltcGwuY3BwICovOyB9Owot
CQkxQzE5RTY0ODI3M0YzRjgyMDA0QjE3QjAgLyogV2ViR1BVQWRhcHRlckltcGwuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxOUU2NDYyNzNGM0Y4
MjAwNEIxN0IwIC8qIFdlYkdQVUFkYXB0ZXJJbXBsLmNwcCAqLzsgfTsKKwkJMUMxOUU2NDQyNzNG
M0U1RDAwNEIxN0IwIC8qIFdlYkdQVUltcGwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY0MjI3M0YzRTVEMDA0QjE3QjAgLyogV2ViR1BVSW1w
bC5tbSAqLzsgfTsKKwkJMUMxOUU2NDgyNzNGM0Y4MjAwNEIxN0IwIC8qIFdlYkdQVUFkYXB0ZXJJ
bXBsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMx
OUU2NDYyNzNGM0Y4MjAwNEIxN0IwIC8qIFdlYkdQVUFkYXB0ZXJJbXBsLm1tICovOyB9OwogCQkx
QzE5RTY0QzI3M0YzRjk5MDA0QjE3QjAgLyogV2ViR1BVQmluZEdyb3VwSW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY0QTI3M0YzRjk5
MDA0QjE3QjAgLyogV2ViR1BVQmluZEdyb3VwSW1wbC5jcHAgKi87IH07CiAJCTFDMTlFNjUwMjcz
RjNGQTUwMDRCMTdCMCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRJbXBsLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMTlFNjRFMjczRjNGQTUwMDRC
MTdCMCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRJbXBsLmNwcCAqLzsgfTsKLQkJMUMxOUU2NTQy
NzNGM0ZCMTAwNEIxN0IwIC8qIFdlYkdQVUJ1ZmZlckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxOUU2NTIyNzNGM0ZCMTAwNEIxN0IwIC8q
IFdlYkdQVUJ1ZmZlckltcGwuY3BwICovOyB9OworCQkxQzE5RTY1NDI3M0YzRkIxMDA0QjE3QjAg
LyogV2ViR1BVQnVmZmVySW1wbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDMTlFNjUyMjczRjNGQjEwMDRCMTdCMCAvKiBXZWJHUFVCdWZmZXJJbXBs
Lm1tICovOyB9OwogCQkxQzE5RTY1ODI3M0YzRkMwMDA0QjE3QjAgLyogV2ViR1BVQ29tbWFuZEJ1
ZmZlckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUMxOUU2NTYyNzNGM0ZDMDAwNEIxN0IwIC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJJbXBsLmNw
cCAqLzsgfTsKIAkJMUMxOUU2NUMyNzNGM0ZEMjAwNEIxN0IwIC8qIFdlYkdQVUNvbW1hbmRFbmNv
ZGVySW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQzE5RTY1QTI3M0YzRkQyMDA0QjE3QjAgLyogV2ViR1BVQ29tbWFuZEVuY29kZXJJbXBsLmNw
cCAqLzsgfTsKIAkJMUMxOUU2NjAyNzNGM0ZFMjAwNEIxN0IwIC8qIFdlYkdQVUNvbXB1dGVQYXNz
RW5jb2RlckltcGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUMxOUU2NUUyNzNGM0ZFMjAwNEIxN0IwIC8qIFdlYkdQVUNvbXB1dGVQYXNzRW5jb2Rl
ckltcGwuY3BwICovOyB9OwogCQkxQzE5RTY2NDI3M0YzRkVFMDA0QjE3QjAgLyogV2ViR1BVQ29t
cHV0ZVBpcGVsaW5lSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzE5RTY2MjI3M0YzRkVFMDA0QjE3QjAgLyogV2ViR1BVQ29tcHV0ZVBpcGVs
aW5lSW1wbC5jcHAgKi87IH07Ci0JCTFDMTlFNjY4MjczRjNGRkEwMDRCMTdCMCAvKiBXZWJHUFVE
ZXZpY2VJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDMTlFNjY2MjczRjNGRkEwMDRCMTdCMCAvKiBXZWJHUFVEZXZpY2VJbXBsLmNwcCAqLzsg
fTsKKwkJMUMxOUU2NjgyNzNGM0ZGQTAwNEIxN0IwIC8qIFdlYkdQVURldmljZUltcGwubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY2NjI3M0Yz
RkZBMDA0QjE3QjAgLyogV2ViR1BVRGV2aWNlSW1wbC5tbSAqLzsgfTsKIAkJMUMxOUU2NzAyNzNG
NDAxNDAwNEIxN0IwIC8qIFdlYkdQVVBpcGVsaW5lTGF5b3V0SW1wbC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY2RTI3M0Y0MDE0MDA0QjE3
QjAgLyogV2ViR1BVUGlwZWxpbmVMYXlvdXRJbXBsLmNwcCAqLzsgfTsKIAkJMUMxOUU2NzQyNzNG
NDAyMDAwNEIxN0IwIC8qIFdlYkdQVVF1ZXJ5U2V0SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY3MjI3M0Y0MDIwMDA0QjE3QjAgLyog
V2ViR1BVUXVlcnlTZXRJbXBsLmNwcCAqLzsgfTsKLQkJMUMxOUU2NzgyNzNGNDAyQjAwNEIxN0Iw
IC8qIFdlYkdQVVF1ZXVlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQzE5RTY3NjI3M0Y0MDJCMDA0QjE3QjAgLyogV2ViR1BVUXVldWVJbXBs
LmNwcCAqLzsgfTsKKwkJMUMxOUU2NzgyNzNGNDAyQjAwNEIxN0IwIC8qIFdlYkdQVVF1ZXVlSW1w
bC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMTlF
Njc2MjczRjQwMkIwMDRCMTdCMCAvKiBXZWJHUFVRdWV1ZUltcGwubW0gKi87IH07CiAJCTFDMTlF
NjdDMjczRjQwM0EwMDRCMTdCMCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVJbXBsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMTlFNjdBMjczRjQwM0Ew
MDRCMTdCMCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVJbXBsLmNwcCAqLzsgfTsKIAkJMUMxOUU2ODAy
NzNGNDA0NDAwNEIxN0IwIC8qIFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJJbXBsLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMTlFNjdFMjczRjQw
NDQwMDRCMTdCMCAvKiBXZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVySW1wbC5jcHAgKi87IH07CiAJ
CTFDMTlFNjg0MjczRjQwNTAwMDRCMTdCMCAvKiBXZWJHUFVSZW5kZXJQYXNzRW5jb2RlckltcGwu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxOUU2
ODIyNzNGNDA1MDAwNEIxN0IwIC8qIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVySW1wbC5jcHAgKi87
IH07CiAJCTFDMTlFNjg4MjczRjQwNUQwMDRCMTdCMCAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZUlt
cGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMx
OUU2ODYyNzNGNDA1RDAwNEIxN0IwIC8qIFdlYkdQVVJlbmRlclBpcGVsaW5lSW1wbC5jcHAgKi87
IH07CiAJCTFDMTlFNjhDMjczRjQwNjkwMDRCMTdCMCAvKiBXZWJHUFVTYW1wbGVySW1wbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY4QTI3
M0Y0MDY5MDA0QjE3QjAgLyogV2ViR1BVU2FtcGxlckltcGwuY3BwICovOyB9OwotCQkxQzE5RTY5
MDI3M0Y0MDcyMDA0QjE3QjAgLyogV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY4RTI3M0Y0MDcxMDA0
QjE3QjAgLyogV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5jcHAgKi87IH07CisJCTFDMTlFNjkwMjcz
RjQwNzIwMDRCMTdCMCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVJbXBsLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxOUU2OEUyNzNGNDA3MTAwNEIxN0Iw
IC8qIFdlYkdQVVNoYWRlck1vZHVsZUltcGwubW0gKi87IH07CiAJCTFDMTlFNjk0MjczRjQwN0Qw
MDRCMTdCMCAvKiBXZWJHUFVUZXh0dXJlSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE5RTY5MjI3M0Y0MDdEMDA0QjE3QjAgLyogV2ViR1BV
VGV4dHVyZUltcGwuY3BwICovOyB9OwogCQkxQzE5RTY5ODI3M0Y0MDhCMDA0QjE3QjAgLyogV2Vi
R1BVVGV4dHVyZVZpZXdJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFDMTlFNjk2MjczRjQwOEIwMDRCMTdCMCAvKiBXZWJHUFVUZXh0dXJlVmll
d0ltcGwuY3BwICovOyB9OwogCQkxQzE5RTZCNTI3M0Y4NUFGMDA0QjE3QjAgLyogV2ViR1BVQ29u
dmVydFRvQmFja2luZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUMxOUU2QjQyNzNGODVBRjAwNEIxN0IwIC8qIFdlYkdQVUNvbnZlcnRU
b0JhY2tpbmdDb250ZXh0LmNwcCAqLzsgfTsKQEAgLTUyNywyNSArNTI3LDI1IEBACiAJCTFDMDlE
MDVEMUUzMUM3N0EwMDcyNUYxOCAvKiBQQUwueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29u
ZmlnOyBwYXRoID0gUEFMLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzA5RDA2MjFFMzFFQzI4MDA3MjVGMTggLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMwOUQwNjMxRTMxRUMzMTAwNzI1RjE4IC8qIEJhc2UueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUMxOUU2NDIyNzNGM0U1RDAwNEIxN0IwIC8qIFdl
YkdQVUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVSW1wbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFDMTlFNjQ2MjczRjNGODIwMDRCMTdCMCAvKiBXZWJHUFVB
ZGFwdGVySW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVBZGFwdGVySW1wbC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDMTlFNjQyMjczRjNFNUQwMDRCMTdCMCAv
KiBXZWJHUFVJbXBsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR1BVSW1wbC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUMxOUU2NDYyNzNGM0Y4MjAwNEIxN0IwIC8qIFdl
YkdQVUFkYXB0ZXJJbXBsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR1BVQWRhcHRlcklt
cGwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTlFNjRBMjczRjNGOTkwMDRC
MTdCMCAvKiBXZWJHUFVCaW5kR3JvdXBJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQ
VUJpbmRHcm91cEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE5RTY0
RTI3M0YzRkE1MDA0QjE3QjAgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0SW1wbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVCaW5kR3JvdXBMYXlvdXRJbXBsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMUMxOUU2NTIyNzNGM0ZCMTAwNEIxN0IwIC8qIFdlYkdQVUJ1ZmZl
ckltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVQnVmZmVySW1wbC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDMTlFNjUyMjczRjNGQjEwMDRCMTdCMCAvKiBXZWJH
UFVCdWZmZXJJbXBsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR1BVQnVmZmVySW1wbC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxOUU2NTYyNzNGM0ZDMDAwNEIxN0Iw
IC8qIFdlYkdQVUNvbW1hbmRCdWZmZXJJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQ
VUNvbW1hbmRCdWZmZXJJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMx
OUU2NUEyNzNGM0ZEMjAwNEIxN0IwIC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVySW1wbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21tYW5kRW5jb2RlckltcGwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE5RTY1RTI3M0YzRkUyMDA0QjE3QjAgLyogV2ViR1BVQ29t
cHV0ZVBhc3NFbmNvZGVySW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVDb21wdXRl
UGFzc0VuY29kZXJJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxOUU2
NjIyNzNGM0ZFRTAwNEIxN0IwIC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZUltcGwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViR1BVQ29tcHV0ZVBpcGVsaW5lSW1wbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTFDMTlFNjY2MjczRjNGRkEwMDRCMTdCMCAvKiBXZWJHUFVEZXZp
Y2VJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVURldmljZUltcGwuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzE5RTY2NjI3M0YzRkZBMDA0QjE3QjAgLyogV2Vi
R1BVRGV2aWNlSW1wbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdQVURldmljZUltcGwu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTlFNjZFMjczRjQwMTQwMDRCMTdC
MCAvKiBXZWJHUFVQaXBlbGluZUxheW91dEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
R1BVUGlwZWxpbmVMYXlvdXRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUMxOUU2NzIyNzNGNDAyMDAwNEIxN0IwIC8qIFdlYkdQVVF1ZXJ5U2V0SW1wbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJHUFVRdWVyeVNldEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkxQzE5RTY3NjI3M0Y0MDJCMDA0QjE3QjAgLyogV2ViR1BVUXVldWVJbXBsLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVF1ZXVlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDMTlFNjc2MjczRjQwMkIwMDRCMTdCMCAvKiBXZWJHUFVRdWV1ZUlt
cGwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHUFVRdWV1ZUltcGwubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTlFNjdBMjczRjQwM0EwMDRCMTdCMCAvKiBXZWJHUFVS
ZW5kZXJCdW5kbGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlckJ1bmRs
ZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE5RTY3RTI3M0Y0MDQ0
MDA0QjE3QjAgLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckltcGwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckltcGwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQzE5RTY4MjI3M0Y0MDUwMDA0QjE3QjAgLyogV2ViR1BVUmVuZGVy
UGFzc0VuY29kZXJJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVJlbmRlclBhc3NF
bmNvZGVySW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTlFNjg2Mjcz
RjQwNUQwMDRCMTdCMCAvKiBXZWJHUFVSZW5kZXJQaXBlbGluZUltcGwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViR1BVUmVuZGVyUGlwZWxpbmVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUMxOUU2OEEyNzNGNDA2OTAwNEIxN0IwIC8qIFdlYkdQVVNhbXBsZXJJbXBs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdQVVNhbXBsZXJJbXBsLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUMxOUU2OEUyNzNGNDA3MTAwNEIxN0IwIC8qIFdlYkdQVVNo
YWRlck1vZHVsZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR1BVU2hhZGVyTW9kdWxl
SW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDMTlFNjhFMjczRjQwNzEw
MDRCMTdCMCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVJbXBsLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUMxOUU2OTIyNzNGNDA3RDAwNEIxN0IwIC8qIFdlYkdQVVRleHR1cmVJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkdQVVRleHR1cmVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUMxOUU2OTYyNzNGNDA4QjAwNEIxN0IwIC8qIFdlYkdQVVRleHR1cmVWaWV3
SW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHUFVUZXh0dXJlVmlld0ltcGwuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE5RTY5QTI3M0Y0MjQyMDA0QjE3QjAgLyog
V2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR1BVUmVu
ZGVyQnVuZGxlRW5jb2RlckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NjMsMTMgKzExNjMsMTMgQEAKIAkJMUMxOUU2NDEyNzNGM0Q3NTAwNEIxN0IwIC8qIEltcGwgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTFDMTlFNjQ2Mjcz
RjNGODIwMDRCMTdCMCAvKiBXZWJHUFVBZGFwdGVySW1wbC5jcHAgKi8sCisJCQkJMUMxOUU2NDYy
NzNGM0Y4MjAwNEIxN0IwIC8qIFdlYkdQVUFkYXB0ZXJJbXBsLm1tICovLAogCQkJCTFDMTlFNkFF
MjczRjQyNDUwMDRCMTdCMCAvKiBXZWJHUFVBZGFwdGVySW1wbC5oICovLAogCQkJCTFDMTlFNjRB
MjczRjNGOTkwMDRCMTdCMCAvKiBXZWJHUFVCaW5kR3JvdXBJbXBsLmNwcCAqLywKIAkJCQkxQzE5
RTZBMTI3M0Y0MjQzMDA0QjE3QjAgLyogV2ViR1BVQmluZEdyb3VwSW1wbC5oICovLAogCQkJCTFD
MTlFNjRFMjczRjNGQTUwMDRCMTdCMCAvKiBXZWJHUFVCaW5kR3JvdXBMYXlvdXRJbXBsLmNwcCAq
LywKIAkJCQkxQzE5RTY5QzI3M0Y0MjQzMDA0QjE3QjAgLyogV2ViR1BVQmluZEdyb3VwTGF5b3V0
SW1wbC5oICovLAotCQkJCTFDMTlFNjUyMjczRjNGQjEwMDRCMTdCMCAvKiBXZWJHUFVCdWZmZXJJ
bXBsLmNwcCAqLywKKwkJCQkxQzE5RTY1MjI3M0YzRkIxMDA0QjE3QjAgLyogV2ViR1BVQnVmZmVy
SW1wbC5tbSAqLywKIAkJCQkxQzE5RTZBMjI3M0Y0MjQzMDA0QjE3QjAgLyogV2ViR1BVQnVmZmVy
SW1wbC5oICovLAogCQkJCTFDMTlFNjU2MjczRjNGQzAwMDRCMTdCMCAvKiBXZWJHUFVDb21tYW5k
QnVmZmVySW1wbC5jcHAgKi8sCiAJCQkJMUMxOUU2QTQyNzNGNDI0NDAwNEIxN0IwIC8qIFdlYkdQ
VUNvbW1hbmRCdWZmZXJJbXBsLmggKi8sCkBAIC0xMTgxLDE5ICsxMTgxLDE5IEBACiAJCQkJMUMx
OUU2QUYyNzNGNDI0NTAwNEIxN0IwIC8qIFdlYkdQVUNvbXB1dGVQaXBlbGluZUltcGwuaCAqLywK
IAkJCQkxQzE5RTZCNDI3M0Y4NUFGMDA0QjE3QjAgLyogV2ViR1BVQ29udmVydFRvQmFja2luZ0Nv
bnRleHQuY3BwICovLAogCQkJCTFDMTlFNkI2MjczRjg1QkMwMDRCMTdCMCAvKiBXZWJHUFVDb252
ZXJ0VG9CYWNraW5nQ29udGV4dC5oICovLAotCQkJCTFDMTlFNjY2MjczRjNGRkEwMDRCMTdCMCAv
KiBXZWJHUFVEZXZpY2VJbXBsLmNwcCAqLywKKwkJCQkxQzE5RTY2NjI3M0YzRkZBMDA0QjE3QjAg
LyogV2ViR1BVRGV2aWNlSW1wbC5tbSAqLywKIAkJCQkxQzE5RTZBRDI3M0Y0MjQ1MDA0QjE3QjAg
LyogV2ViR1BVRGV2aWNlSW1wbC5oICovLAogCQkJCTFDMzZDNTJDMjc0MzAxMUEwMDZEQTRDMSAv
KiBXZWJHUFVEb3duY2FzdENvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmNwcCAqLywKIAkJCQkxQzM2
QzUyRDI3NDMwMTFBMDA2REE0QzEgLyogV2ViR1BVRG93bmNhc3RDb252ZXJ0VG9CYWNraW5nQ29u
dGV4dC5oICovLAogCQkJCTFDMTlFNkI5Mjc0MDVFMzIwMDRCMTdCMCAvKiBXZWJHUFVFeHRlcm5h
bFRleHR1cmVJbXBsLmNwcCAqLywKIAkJCQkxQzE5RTZCQjI3NDA1RTNDMDA0QjE3QjAgLyogV2Vi
R1BVRXh0ZXJuYWxUZXh0dXJlSW1wbC5oICovLAotCQkJCTFDMTlFNjQyMjczRjNFNUQwMDRCMTdC
MCAvKiBXZWJHUFVJbXBsLmNwcCAqLywKKwkJCQkxQzE5RTY0MjI3M0YzRTVEMDA0QjE3QjAgLyog
V2ViR1BVSW1wbC5tbSAqLywKIAkJCQkxQzE5RTY5QjI3M0Y0MjQyMDA0QjE3QjAgLyogV2ViR1BV
SW1wbC5oICovLAogCQkJCTFDMTlFNjZFMjczRjQwMTQwMDRCMTdCMCAvKiBXZWJHUFVQaXBlbGlu
ZUxheW91dEltcGwuY3BwICovLAogCQkJCTFDMTlFNjlEMjczRjQyNDMwMDRCMTdCMCAvKiBXZWJH
UFVQaXBlbGluZUxheW91dEltcGwuaCAqLywKIAkJCQkxQzE5RTY3MjI3M0Y0MDIwMDA0QjE3QjAg
LyogV2ViR1BVUXVlcnlTZXRJbXBsLmNwcCAqLywKIAkJCQkxQzE5RTZBODI3M0Y0MjQ0MDA0QjE3
QjAgLyogV2ViR1BVUXVlcnlTZXRJbXBsLmggKi8sCi0JCQkJMUMxOUU2NzYyNzNGNDAyQjAwNEIx
N0IwIC8qIFdlYkdQVVF1ZXVlSW1wbC5jcHAgKi8sCisJCQkJMUMxOUU2NzYyNzNGNDAyQjAwNEIx
N0IwIC8qIFdlYkdQVVF1ZXVlSW1wbC5tbSAqLywKIAkJCQkxQzE5RTZBNTI3M0Y0MjQ0MDA0QjE3
QjAgLyogV2ViR1BVUXVldWVJbXBsLmggKi8sCiAJCQkJMUMxOUU2N0UyNzNGNDA0NDAwNEIxN0Iw
IC8qIFdlYkdQVVJlbmRlckJ1bmRsZUVuY29kZXJJbXBsLmNwcCAqLywKIAkJCQkxQzE5RTY5QTI3
M0Y0MjQyMDA0QjE3QjAgLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2RlckltcGwuaCAqLywKQEAg
LTEyMDUsNyArMTIwNSw3IEBACiAJCQkJMUMxOUU2QTkyNzNGNDI0NDAwNEIxN0IwIC8qIFdlYkdQ
VVJlbmRlclBpcGVsaW5lSW1wbC5oICovLAogCQkJCTFDMTlFNjhBMjczRjQwNjkwMDRCMTdCMCAv
KiBXZWJHUFVTYW1wbGVySW1wbC5jcHAgKi8sCiAJCQkJMUMxOUU2QTcyNzNGNDI0NDAwNEIxN0Iw
IC8qIFdlYkdQVVNhbXBsZXJJbXBsLmggKi8sCi0JCQkJMUMxOUU2OEUyNzNGNDA3MTAwNEIxN0Iw
IC8qIFdlYkdQVVNoYWRlck1vZHVsZUltcGwuY3BwICovLAorCQkJCTFDMTlFNjhFMjczRjQwNzEw
MDRCMTdCMCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVJbXBsLm1tICovLAogCQkJCTFDMTlFNkFBMjcz
RjQyNDUwMDRCMTdCMCAvKiBXZWJHUFVTaGFkZXJNb2R1bGVJbXBsLmggKi8sCiAJCQkJMUMxOUU2
OTIyNzNGNDA3RDAwNEIxN0IwIC8qIFdlYkdQVVRleHR1cmVJbXBsLmNwcCAqLywKIAkJCQkxQzE5
RTY5RjI3M0Y0MjQzMDA0QjE3QjAgLyogV2ViR1BVVGV4dHVyZUltcGwuaCAqLywKQEAgLTE5ODgs
MjggKzE5ODgsMjggQEAKIAkJCQkwNzYxMURCNzI0M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VUcmFj
a2luZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMUYzNDQyNDhBNkEwMDAwMjJE
NURFIC8qIFZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0NkI4
QzREMjY3NDA5MTgwMDdBNjU1NCAvKiBWaXNpb25LaXRDb3JlU29mdExpbmsubW0gaW4gU291cmNl
cyAqLywKLQkJCQkxQzE5RTY0ODI3M0YzRjgyMDA0QjE3QjAgLyogV2ViR1BVQWRhcHRlckltcGwu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUMxOUU2NDgyNzNGM0Y4MjAwNEIxN0IwIC8qIFdlYkdQ
VUFkYXB0ZXJJbXBsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxOUU2NEMyNzNGM0Y5OTAwNEIx
N0IwIC8qIFdlYkdQVUJpbmRHcm91cEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxOUU2
NTAyNzNGM0ZBNTAwNEIxN0IwIC8qIFdlYkdQVUJpbmRHcm91cExheW91dEltcGwuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJMUMxOUU2NTQyNzNGM0ZCMTAwNEIxN0IwIC8qIFdlYkdQVUJ1ZmZlcklt
cGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUMxOUU2NTQyNzNGM0ZCMTAwNEIxN0IwIC8qIFdl
YkdQVUJ1ZmZlckltcGwubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQzE5RTY1ODI3M0YzRkMwMDA0
QjE3QjAgLyogV2ViR1BVQ29tbWFuZEJ1ZmZlckltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUMxOUU2NUMyNzNGM0ZEMjAwNEIxN0IwIC8qIFdlYkdQVUNvbW1hbmRFbmNvZGVySW1wbC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQzE5RTY2MDI3M0YzRkUyMDA0QjE3QjAgLyogV2ViR1BVQ29t
cHV0ZVBhc3NFbmNvZGVySW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzE5RTY2NDI3M0Yz
RkVFMDA0QjE3QjAgLyogV2ViR1BVQ29tcHV0ZVBpcGVsaW5lSW1wbC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQzE5RTZCNTI3M0Y4NUFGMDA0QjE3QjAgLyogV2ViR1BVQ29udmVydFRvQmFja2lu
Z0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMUMxOUU2NjgyNzNGM0ZGQTAwNEIxN0Iw
IC8qIFdlYkdQVURldmljZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUMxOUU2NjgyNzNG
M0ZGQTAwNEIxN0IwIC8qIFdlYkdQVURldmljZUltcGwubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QzM2QzUyRTI3NDMwMTFBMDA2REE0QzEgLyogV2ViR1BVRG93bmNhc3RDb252ZXJ0VG9CYWNraW5n
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzE5RTZCQTI3NDA1RTMyMDA0QjE3QjAg
LyogV2ViR1BVRXh0ZXJuYWxUZXh0dXJlSW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQzE5
RTY0NDI3M0YzRTVEMDA0QjE3QjAgLyogV2ViR1BVSW1wbC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxQzE5RTY0NDI3M0YzRTVEMDA0QjE3QjAgLyogV2ViR1BVSW1wbC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFDMTlFNjcwMjczRjQwMTQwMDRCMTdCMCAvKiBXZWJHUFVQaXBlbGluZUxheW91dElt
cGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxOUU2NzQyNzNGNDAyMDAwNEIxN0IwIC8qIFdl
YkdQVVF1ZXJ5U2V0SW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQzE5RTY3ODI3M0Y0MDJC
MDA0QjE3QjAgLyogV2ViR1BVUXVldWVJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFDMTlF
Njc4MjczRjQwMkIwMDRCMTdCMCAvKiBXZWJHUFVRdWV1ZUltcGwubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQzE5RTY4MDI3M0Y0MDQ0MDA0QjE3QjAgLyogV2ViR1BVUmVuZGVyQnVuZGxlRW5jb2Rl
ckltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxOUU2N0MyNzNGNDAzQTAwNEIxN0IwIC8q
IFdlYkdQVVJlbmRlckJ1bmRsZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxOUU2ODQy
NzNGNDA1MDAwNEIxN0IwIC8qIFdlYkdQVVJlbmRlclBhc3NFbmNvZGVySW1wbC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQzE5RTY4ODI3M0Y0MDVEMDA0QjE3QjAgLyogV2ViR1BVUmVuZGVyUGlw
ZWxpbmVJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMTlFNjhDMjczRjQwNjkwMDRCMTdC
MCAvKiBXZWJHUFVTYW1wbGVySW1wbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQzE5RTY5MDI3
M0Y0MDcyMDA0QjE3QjAgLyogV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxQzE5RTY5MDI3M0Y0MDcyMDA0QjE3QjAgLyogV2ViR1BVU2hhZGVyTW9kdWxlSW1w
bC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDMTlFNjk0MjczRjQwN0QwMDRCMTdCMCAvKiBXZWJH
UFVUZXh0dXJlSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzE5RTY5ODI3M0Y0MDhCMDA0
QjE3QjAgLyogV2ViR1BVVGV4dHVyZVZpZXdJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEx
MDgyNkZBMUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJH
UFVBZGFwdGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
SW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oCmluZGV4IDliNWUyNzUwZDE4Yi4uMWUwODIzMDEwOTJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBs
L1dlYkdQVUFkYXB0ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5oCkBAIC00Nyw3ICs0Nyw2IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRG93bmNhc3RDb252ZXJ0VG9CYWNraW5n
Q29udGV4dDsKLSAgICBmcmllbmQgdm9pZCByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVl
c3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZvaWQqIHVz
ZXJkYXRhKTsKIAogICAgIEFkYXB0ZXJJbXBsKFdHUFVBZGFwdGVyLCBDb252ZXJ0VG9CYWNraW5n
Q29udGV4dCYpOwogCkBAIC01OCwxMCArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgV0dQVUFkYXB0
ZXIgYmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZzsgfQogCi0gICAgdm9pZCByZXF1
ZXN0RGV2aWNlQ2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXMsIFdHUFVEZXZpY2UsIGNv
bnN0IGNoYXIqIG1lc3NhZ2UpOwotICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VE
ZXNjcmlwdG9yJiwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPiYmKSBmaW5hbDsK
LQotICAgIERlcXVlPFdURjo6RnVuY3Rpb248dm9pZChSZWY8RGV2aWNlPiYmKT4+IG1fY2FsbGJh
Y2tzOworICAgIHZvaWQgcmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiwgc3Rk
OjpmdW5jdGlvbjx2b2lkKFJlZjxEZXZpY2U+JiYpPiYmKSBmaW5hbDsKIAogICAgIFdHUFVBZGFw
dGVyIG1fYmFja2luZyB7IG51bGxwdHIgfTsKICAgICBSZWY8Q29udmVydFRvQmFja2luZ0NvbnRl
eHQ+IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUFkYXB0ZXJJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwubW0Kc2ltaWxhcml0eSBpbmRleCA4NiUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVBZGFwdGVySW1wbC5jcHAKcmVuYW1lIHRv
IFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRl
ckltcGwubW0KaW5kZXggYmY3NGRlMzYwZDFmLi5hOWQzZTI5ZjdjZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQWRhcHRlcklt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwv
V2ViR1BVQWRhcHRlckltcGwubW0KQEAgLTE0MCwxNiArMTQwLDggQEAgQWRhcHRlckltcGw6On5B
ZGFwdGVySW1wbCgpCiAgICAgd2dwdUFkYXB0ZXJSZWxlYXNlKG1fYmFja2luZyk7CiB9CiAKLXZv
aWQgcmVxdWVzdERldmljZUNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzIHN0YXR1cywg
V0dQVURldmljZSBkZXZpY2UsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZvaWQqIHVzZXJkYXRhKQor
dm9pZCBBZGFwdGVySW1wbDo6cmVxdWVzdERldmljZShjb25zdCBEZXZpY2VEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPERldmljZT4mJik+JiYgY2FsbGJhY2sp
CiB7Ci0gICAgYXV0byBhZGFwdGVyID0gYWRvcHRSZWYoKnN0YXRpY19jYXN0PEFkYXB0ZXJJbXBs
Kj4odXNlcmRhdGEpKTsgLy8gYWRvcHRSZWYgaXMgYmFsYW5jZWQgYnkgbGVha1JlZiBpbiByZXF1
ZXN0RGV2aWNlKCkgYmVsb3cuIFdlIGhhdmUgdG8gZG8gdGhpcyBiZWNhdXNlIHdlJ3JlIHVzaW5n
IGEgQyBBUEkgd2l0aCBubyBjb25jZXB0IG9mIHJlZmVyZW5jZSBjb3VudGluZyBvciBibG9ja3Mu
Ci0gICAgYWRhcHRlci0+cmVxdWVzdERldmljZUNhbGxiYWNrKHN0YXR1cywgZGV2aWNlLCBtZXNz
YWdlKTsKLX0KLQotdm9pZCBBZGFwdGVySW1wbDo6cmVxdWVzdERldmljZShjb25zdCBEZXZpY2VE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPERldmljZT4mJik+
JiYgY2FsbGJhY2spCi17Ci0gICAgUmVmIHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCiAgICAgYXV0
byBsYWJlbCA9IGRlc2NyaXB0b3IubGFiZWwudXRmOCgpOwogCiAgICAgYXV0byBmZWF0dXJlcyA9
IGRlc2NyaXB0b3IucmVxdWlyZWRGZWF0dXJlcy5tYXAoW3RoaXNdIChhdXRvIGZlYXR1cmVOYW1l
KSB7CkBAIC0xOTUsMTYgKzE4Nyw5IEBAIHZvaWQgQWRhcHRlckltcGw6OnJlcXVlc3REZXZpY2Uo
Y29uc3QgRGV2aWNlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV1RGOjpGdW5jdGlvCiAgICAgICAg
ICZsaW1pdHMsCiAgICAgfTsKIAotICAgIG1fY2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxi
YWNrKSk7Ci0KLSAgICB3Z3B1QWRhcHRlclJlcXVlc3REZXZpY2UobV9iYWNraW5nLCAmYmFja2lu
Z0Rlc2NyaXB0b3IsICZXZWJHUFU6OnJlcXVlc3REZXZpY2VDYWxsYmFjaywgJnByb3RlY3RlZFRo
aXMubGVha1JlZigpKTsgLy8gbGVha1JlZiBpcyBiYWxhbmNlZCBieSBhZG9wdFJlZiBpbiByZXF1
ZXN0RGV2aWNlQ2FsbGJhY2soKSBhYm92ZS4gV2UgaGF2ZSB0byBkbyB0aGlzIGJlY2F1c2Ugd2Un
cmUgdXNpbmcgYSBDIEFQSSB3aXRoIG5vIGNvbmNlcHQgb2YgcmVmZXJlbmNlIGNvdW50aW5nIG9y
IGJsb2Nrcy4KLX0KLQotdm9pZCBBZGFwdGVySW1wbDo6cmVxdWVzdERldmljZUNhbGxiYWNrKFdH
UFVSZXF1ZXN0RGV2aWNlU3RhdHVzLCBXR1BVRGV2aWNlIGRldmljZSwgY29uc3QgY2hhciogbWVz
c2FnZSkKLXsKLSAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7Ci0gICAgYXV0byBjYWxsYmFjayA9
IG1fY2FsbGJhY2tzLnRha2VGaXJzdCgpOwotICAgIGNhbGxiYWNrKERldmljZUltcGw6OmNyZWF0
ZShkZXZpY2UsIFJlZiB7IGZlYXR1cmVzKCkgfSwgUmVmIHsgbGltaXRzKCkgfSwgbV9jb252ZXJ0
VG9CYWNraW5nQ29udGV4dCkpOworICAgIHdncHVBZGFwdGVyUmVxdWVzdERldmljZVdpdGhCbG9j
ayhtX2JhY2tpbmcsICZiYWNraW5nRGVzY3JpcHRvciwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoV0dQVVJlcXVlc3REZXZpY2VT
dGF0dXMsIFdHUFVEZXZpY2UgZGV2aWNlLCBjb25zdCBjaGFyKikgeworICAgICAgICBjYWxsYmFj
ayhEZXZpY2VJbXBsOjpjcmVhdGUoZGV2aWNlLCBSZWYgeyBwcm90ZWN0ZWRUaGlzLT5mZWF0dXJl
cygpIH0sIFJlZiB7IHByb3RlY3RlZFRoaXMtPmxpbWl0cygpIH0sIHByb3RlY3RlZFRoaXMtPm1f
Y29udmVydFRvQmFja2luZ0NvbnRleHQpKTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
UEFMOjpXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL0ltcGwvV2ViR1BVQnVmZmVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVCdWZmZXJJbXBsLmgKaW5kZXggYzdjYjQzMTY2YzAy
Li5jZDM3NWExNWJhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL0ltcGwvV2ViR1BVQnVmZmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQnVmZmVySW1wbC5oCkBAIC00Nyw3ICs0
Nyw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRG93bmNhc3RDb252
ZXJ0VG9CYWNraW5nQ29udGV4dDsKLSAgICBmcmllbmQgdm9pZCBtYXBDYWxsYmFjayhXR1BVQnVm
ZmVyTWFwQXN5bmNTdGF0dXMsIHZvaWQqIHVzZXJkYXRhKTsKIAogICAgIEJ1ZmZlckltcGwoV0dQ
VUJ1ZmZlciwgQ29udmVydFRvQmFja2luZ0NvbnRleHQmKTsKIApAQCAtNTgsOCArNTcsNyBAQCBw
cml2YXRlOgogCiAgICAgV0dQVUJ1ZmZlciBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNr
aW5nOyB9CiAKLSAgICB2b2lkIG1hcENhbGxiYWNrKFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1cyk7
Ci0gICAgdm9pZCBtYXBBc3luYyhNYXBNb2RlRmxhZ3MsIFNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0
aW9uYWw8U2l6ZTY0PiBzaXplRm9yTWFwLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7
CisgICAgdm9pZCBtYXBBc3luYyhNYXBNb2RlRmxhZ3MsIFNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0
aW9uYWw8U2l6ZTY0PiBzaXplRm9yTWFwLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7
CiAgICAgTWFwcGVkUmFuZ2UgZ2V0TWFwcGVkUmFuZ2UoU2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRp
b25hbDxTaXplNjQ+KSBmaW5hbDsKICAgICB2b2lkIHVubWFwKCkgZmluYWw7CiAKQEAgLTY3LDgg
KzY1LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0TGFiZWxJbnRlcm5hbChjb25zdCBTdHJp
bmcmKSBmaW5hbDsKIAotICAgIERlcXVlPFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9jYWxsYmFj
a3M7Ci0KICAgICBXR1BVQnVmZmVyIG1fYmFja2luZyB7IG51bGxwdHIgfTsKICAgICBSZWY8Q29u
dmVydFRvQmFja2luZ0NvbnRleHQ+IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJH
UFVCdWZmZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L0ltcGwvV2ViR1BVQnVmZmVySW1wbC5tbQpzaW1pbGFyaXR5IGluZGV4IDc0JQpyZW5hbWUgZnJv
bSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUJ1ZmZl
ckltcGwuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9JbXBsL1dlYkdQVUJ1ZmZlckltcGwubW0KaW5kZXggMjg5ZmNjZTE2OTY3Li5jMGYyMmZiNmFm
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0lt
cGwvV2ViR1BVQnVmZmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvSW1wbC9XZWJHUFVCdWZmZXJJbXBsLm1tCkBAIC00NCwzMSArNDQsMTYgQEAg
QnVmZmVySW1wbDo6fkJ1ZmZlckltcGwoKQogICAgIHdncHVCdWZmZXJSZWxlYXNlKG1fYmFja2lu
Zyk7CiB9CiAKLXZvaWQgbWFwQ2FsbGJhY2soV0dQVUJ1ZmZlck1hcEFzeW5jU3RhdHVzIHN0YXR1
cywgdm9pZCogdXNlcmRhdGEpCit2b2lkIEJ1ZmZlckltcGw6Om1hcEFzeW5jKE1hcE1vZGVGbGFn
cyBtYXBNb2RlRmxhZ3MsIFNpemU2NCBvZmZzZXQsIHN0ZDo6b3B0aW9uYWw8U2l6ZTY0PiBzaXpl
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAgICBhdXRvIGJ1ZmZlciA9
IGFkb3B0UmVmKCpzdGF0aWNfY2FzdDxCdWZmZXJJbXBsKj4odXNlcmRhdGEpKTsgLy8gYWRvcHRS
ZWYgaXMgYmFsYW5jZWQgYnkgbGVha1JlZiBpbiBtYXBBc3luYygpIGJlbG93LiBXZSBoYXZlIHRv
IGRvIHRoaXMgYmVjYXVzZSB3ZSdyZSB1c2luZyBhIEMgQVBJIHdpdGggbm8gY29uY2VwdCBvZiBy
ZWZlcmVuY2UgY291bnRpbmcgb3IgYmxvY2tzLgotICAgIGJ1ZmZlci0+bWFwQ2FsbGJhY2soc3Rh
dHVzKTsKLX0KLQotdm9pZCBCdWZmZXJJbXBsOjptYXBBc3luYyhNYXBNb2RlRmxhZ3MgbWFwTW9k
ZUZsYWdzLCBTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFNpemU2ND4gc2l6ZSwgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCi17Ci0gICAgUmVmIHByb3RlY3RlZFRoaXMoKnRo
aXMpOwotCiAgICAgYXV0byBiYWNraW5nTWFwTW9kZUZsYWdzID0gbV9jb252ZXJ0VG9CYWNraW5n
Q29udGV4dC0+Y29udmVydE1hcE1vZGVGbGFnc1RvQmFja2luZyhtYXBNb2RlRmxhZ3MpOwogCiAg
ICAgYXV0byB1c2VkU2l6ZSA9IHNpemUudmFsdWVfb3IoV0dQVV9XSE9MRV9NQVBfU0laRSk7CiAK
LSAgICBtX2NhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOwotCiAgICAgLy8gRklY
TUU6IENoZWNrIHRoZSBjYXN0cy4KLSAgICB3Z3B1QnVmZmVyTWFwQXN5bmMobV9iYWNraW5nLCBi
YWNraW5nTWFwTW9kZUZsYWdzLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG9mZnNldCksIHN0YXRpY19j
YXN0PHNpemVfdD4odXNlZFNpemUpLCAmV2ViR1BVOjptYXBDYWxsYmFjaywgJnByb3RlY3RlZFRo
aXMubGVha1JlZigpKTsgLy8gbGVha1JlZiBpcyBiYWxhbmNlZCBieSBhZG9wdFJlZiBpbiBtYXBD
YWxsYmFjaygpIGFib3ZlLiBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSB3ZSdyZSB1c2luZyBh
IEMgQVBJIHdpdGggbm8gY29uY2VwdCBvZiByZWZlcmVuY2UgY291bnRpbmcgb3IgYmxvY2tzLgot
fQotCi12b2lkIEJ1ZmZlckltcGw6Om1hcENhbGxiYWNrKFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1
cyBzdGF0dXMpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHN0YXR1cyk7Ci0gICAgYXV0byBjYWxsYmFj
ayA9IG1fY2FsbGJhY2tzLnRha2VGaXJzdCgpOwotICAgIGNhbGxiYWNrKCk7CisgICAgd2dwdUJ1
ZmZlck1hcEFzeW5jV2l0aEJsb2NrKG1fYmFja2luZywgYmFja2luZ01hcE1vZGVGbGFncywgc3Rh
dGljX2Nhc3Q8c2l6ZV90PihvZmZzZXQpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHVzZWRTaXplKSwg
W2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChXR1BVQnVmZmVyTWFwQXN5bmNTdGF0dXMp
IHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKIH0KIAogYXV0byBCdWZmZXJJbXBsOjpn
ZXRNYXBwZWRSYW5nZShTaXplNjQgb2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPFNpemU2ND4gc2l6ZSkg
LT4gTWFwcGVkUmFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmgKaW5kZXggMTM4YzVmYjBj
M2MxLi44ZWE5NDA1NTNjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5oCkBAIC00Nyw5
ICs0Nyw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRG93bmNhc3RD
b252ZXJ0VG9CYWNraW5nQ29udGV4dDsKLSAgICBmcmllbmQgdm9pZCBjcmVhdGVDb21wdXRlUGlw
ZWxpbmVBc3luY0NhbGxiYWNrKFdHUFVDcmVhdGVQaXBlbGluZUFzeW5jU3RhdHVzLCBXR1BVQ29t
cHV0ZVBpcGVsaW5lLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB2b2lkKiB1c2VyZGF0YSk7Ci0gICAg
ZnJpZW5kIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxiYWNrKFdHUFVDcmVhdGVQ
aXBlbGluZUFzeW5jU3RhdHVzLCBXR1BVUmVuZGVyUGlwZWxpbmUsIGNvbnN0IGNoYXIqIG1lc3Nh
Z2UsIHZvaWQqIHVzZXJkYXRhKTsKLSAgICBmcmllbmQgdm9pZCBwb3BFcnJvclNjb3BlQ2FsbGJh
Y2soV0dQVUVycm9yVHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSwgdm9pZCogdXNlcmRhdGEpOwog
CiAgICAgRGV2aWNlSW1wbChXR1BVRGV2aWNlLCBSZWY8U3VwcG9ydGVkRmVhdHVyZXM+JiYsIFJl
ZjxTdXBwb3J0ZWRMaW1pdHM+JiYsIENvbnZlcnRUb0JhY2tpbmdDb250ZXh0Jik7CiAKQEAgLTc0
LDEwICs3MSw4IEBAIHByaXZhdGU6CiAgICAgUmVmPFNoYWRlck1vZHVsZT4gY3JlYXRlU2hhZGVy
TW9kdWxlKGNvbnN0IFNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBmaW5hbDsKICAgICBSZWY8Q29t
cHV0ZVBpcGVsaW5lPiBjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgQ29tcHV0ZVBpcGVsaW5l
RGVzY3JpcHRvciYpIGZpbmFsOwogICAgIFJlZjxSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVy
UGlwZWxpbmUoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJikgZmluYWw7Ci0gICAgdm9p
ZCBjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luY0NhbGxiYWNrKFdHUFVDcmVhdGVQaXBlbGluZUFz
eW5jU3RhdHVzLCBXR1BVQ29tcHV0ZVBpcGVsaW5lLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKLSAg
ICB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IENvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPENvbXB1dGVQaXBlbGluZT4mJik+JiYp
IGZpbmFsOwotICAgIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxiYWNrKFdHUFVD
cmVhdGVQaXBlbGluZUFzeW5jU3RhdHVzLCBXR1BVUmVuZGVyUGlwZWxpbmUsIGNvbnN0IGNoYXIq
IG1lc3NhZ2UpOwotICAgIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25zdCBSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFJlbmRlclBpcGVs
aW5lPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhj
b25zdCBDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxD
b21wdXRlUGlwZWxpbmU+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZVJlbmRlclBpcGVs
aW5lQXN5bmMoY29uc3QgUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiwgc3RkOjpmdW5jdGlvbjx2
b2lkKFJlZjxSZW5kZXJQaXBlbGluZT4mJik+JiYpIGZpbmFsOwogCiAgICAgUmVmPENvbW1hbmRF
bmNvZGVyPiBjcmVhdGVDb21tYW5kRW5jb2Rlcihjb25zdCBzdGQ6Om9wdGlvbmFsPENvbW1hbmRF
bmNvZGVyRGVzY3JpcHRvcj4mKSBmaW5hbDsKICAgICBSZWY8UmVuZGVyQnVuZGxlRW5jb2Rlcj4g
Y3JlYXRlUmVuZGVyQnVuZGxlRW5jb2Rlcihjb25zdCBSZW5kZXJCdW5kbGVFbmNvZGVyRGVzY3Jp
cHRvciYpIGZpbmFsOwpAQCAtODUsMTUgKzgwLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmPFF1ZXJ5
U2V0PiBjcmVhdGVRdWVyeVNldChjb25zdCBRdWVyeVNldERlc2NyaXB0b3ImKSBmaW5hbDsKIAog
ICAgIHZvaWQgcHVzaEVycm9yU2NvcGUoRXJyb3JGaWx0ZXIpIGZpbmFsOwotICAgIHZvaWQgcG9w
RXJyb3JTY29wZUNhbGxiYWNrKFdHUFVFcnJvclR5cGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwot
ICAgIHZvaWQgcG9wRXJyb3JTY29wZShXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxF
cnJvcj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcG9wRXJyb3JTY29wZShzdGQ6OmZ1bmN0aW9u
PHZvaWQoc3RkOjpvcHRpb25hbDxFcnJvcj4mJik+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRM
YWJlbEludGVybmFsKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpGdW5j
dGlvbjx2b2lkKFJlZjxDb21wdXRlUGlwZWxpbmU+JiYpPj4gbV9jcmVhdGVDb21wdXRlUGlwZWxp
bmVBc3luY0NhbGxiYWNrczsKLSAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFJlbmRl
clBpcGVsaW5lPiYmKT4+IG1fY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxiYWNrczsKLSAg
ICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFcnJvcj4mJik+PiBtX3Bv
cEVycm9yU2NvcGVDYWxsYmFja3M7Ci0KICAgICBXR1BVRGV2aWNlIG1fYmFja2luZyB7IG51bGxw
dHIgfTsKICAgICBSZWY8Q29udmVydFRvQmFja2luZ0NvbnRleHQ+IG1fY29udmVydFRvQmFja2lu
Z0NvbnRleHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5tbQpzaW1pbGFyaXR5IGlu
ZGV4IDg1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9JbXBsL1dlYkdQVURldmljZUltcGwuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVURldmljZUltcGwubW0KaW5kZXggNWRhZDY2
ODA4NTFhLi4wZDZhZDMyZjk2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLm1tCkBA
IC01MDksNTQgKzUwOSwyNCBAQCBSZWY8UmVuZGVyUGlwZWxpbmU+IERldmljZUltcGw6OmNyZWF0
ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcAogICAgIH0pOwogfQog
Ci12b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jQ2FsbGJhY2soV0dQVUNyZWF0ZVBpcGVs
aW5lQXN5bmNTdGF0dXMgc3RhdHVzLCBXR1BVQ29tcHV0ZVBpcGVsaW5lIHBpcGVsaW5lLCBjb25z
dCBjaGFyKiBtZXNzYWdlLCB2b2lkKiB1c2VyZGF0YSkKK3ZvaWQgRGV2aWNlSW1wbDo6Y3JlYXRl
Q29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYgZGVz
Y3JpcHRvciwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxDb21wdXRlUGlwZWxpbmU+JiYpPiYmIGNh
bGxiYWNrKQogewotICAgIGF1dG8gZGV2aWNlID0gYWRvcHRSZWYoKnN0YXRpY19jYXN0PERldmlj
ZUltcGwqPih1c2VyZGF0YSkpOyAvLyBhZG9wdFJlZiBpcyBiYWxhbmNlZCBieSBsZWFrUmVmIGlu
IGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKCkgYmVsb3cuIFdlIGhhdmUgdG8gZG8gdGhpcyBi
ZWNhdXNlIHdlJ3JlIHVzaW5nIGEgQyBBUEkgd2l0aCBubyBjb25jZXB0IG9mIHJlZmVyZW5jZSBj
b3VudGluZyBvciBibG9ja3MuCi0gICAgZGV2aWNlLT5jcmVhdGVDb21wdXRlUGlwZWxpbmVBc3lu
Y0NhbGxiYWNrKHN0YXR1cywgcGlwZWxpbmUsIG1lc3NhZ2UpOwotfQotCi12b2lkIERldmljZUlt
cGw6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8Q29tcHV0ZVBpcGVsaW5l
PiYmKT4mJiBjYWxsYmFjaykKLXsKLSAgICBSZWYgcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0KLSAg
ICBtX2NyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNh
bGxiYWNrKSk7Ci0KLSAgICBjb252ZXJ0VG9CYWNraW5nKGRlc2NyaXB0b3IsIG1fY29udmVydFRv
QmFja2luZ0NvbnRleHQsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKV0gKGNvbnN0IFdHUFVDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJiBiYWNraW5nRGVzY3Jp
cHRvcikgbXV0YWJsZSB7Ci0gICAgICAgIHdncHVEZXZpY2VDcmVhdGVDb21wdXRlUGlwZWxpbmVB
c3luYyhtX2JhY2tpbmcsICZiYWNraW5nRGVzY3JpcHRvciwgJldlYkdQVTo6Y3JlYXRlQ29tcHV0
ZVBpcGVsaW5lQXN5bmNDYWxsYmFjaywgJnByb3RlY3RlZFRoaXMubGVha1JlZigpKTsgLy8gbGVh
a1JlZiBpcyBiYWxhbmNlZCBieSBhZG9wdFJlZiBpbiByZXF1ZXN0RGV2aWNlQ2FsbGJhY2soKSBh
Ym92ZS4gV2UgaGF2ZSB0byBkbyB0aGlzIGJlY2F1c2Ugd2UncmUgdXNpbmcgYSBDIEFQSSB3aXRo
IG5vIGNvbmNlcHQgb2YgcmVmZXJlbmNlIGNvdW50aW5nIG9yIGJsb2Nrcy4KKyAgICBjb252ZXJ0
VG9CYWNraW5nKGRlc2NyaXB0b3IsIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQsIFt0aGlzLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoY29uc3QgV0dQVUNvbXB1dGVQaXBlbGluZURl
c2NyaXB0b3ImIGJhY2tpbmdEZXNjcmlwdG9yKSBtdXRhYmxlIHsKKyAgICAgICAgd2dwdURldmlj
ZUNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jV2l0aEJsb2NrKG1fYmFja2luZywgJmJhY2tpbmdE
ZXNjcmlwdG9yLCBbY29udmVydFRvQmFja2luZ0NvbnRleHQgPSBtX2NvbnZlcnRUb0JhY2tpbmdD
b250ZXh0LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoV0dQVUNyZWF0ZVBpcGVsaW5l
QXN5bmNTdGF0dXMsIFdHUFVDb21wdXRlUGlwZWxpbmUgcGlwZWxpbmUsIGNvbnN0IGNoYXIqKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKENvbXB1dGVQaXBlbGluZUltcGw6OmNyZWF0
ZShwaXBlbGluZSwgV1RGTW92ZShjb252ZXJ0VG9CYWNraW5nQ29udGV4dCkpKTsKKyAgICAgICAg
fSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgRGV2aWNlSW1wbDo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5l
QXN5bmNDYWxsYmFjayhXR1BVQ3JlYXRlUGlwZWxpbmVBc3luY1N0YXR1cywgV0dQVUNvbXB1dGVQ
aXBlbGluZSBwaXBlbGluZSwgY29uc3QgY2hhciogbWVzc2FnZSkKK3ZvaWQgRGV2aWNlSW1wbDo6
Y3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWY8UmVuZGVyUGlwZWxpbmU+JiYpPiYm
IGNhbGxiYWNrKQogewotICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKLSAgICBhdXRvIGNhbGxi
YWNrID0gbV9jcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luY0NhbGxiYWNrcy50YWtlRmlyc3QoKTsK
LSAgICBjYWxsYmFjayhDb21wdXRlUGlwZWxpbmVJbXBsOjpjcmVhdGUocGlwZWxpbmUsIG1fY29u
dmVydFRvQmFja2luZ0NvbnRleHQpKTsKLX0KLQotdm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZUFz
eW5jQ2FsbGJhY2soV0dQVUNyZWF0ZVBpcGVsaW5lQXN5bmNTdGF0dXMgc3RhdHVzLCBXR1BVUmVu
ZGVyUGlwZWxpbmUgcGlwZWxpbmUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZvaWQqIHVzZXJkYXRh
KQotewotICAgIGF1dG8gZGV2aWNlID0gYWRvcHRSZWYoKnN0YXRpY19jYXN0PERldmljZUltcGwq
Pih1c2VyZGF0YSkpOyAvLyBhZG9wdFJlZiBpcyBiYWxhbmNlZCBieSBsZWFrUmVmIGluIGNyZWF0
ZVJlbmRlclBpcGVsaW5lQXN5bmMoKSBiZWxvdy4gV2UgaGF2ZSB0byBkbyB0aGlzIGJlY2F1c2Ug
d2UncmUgdXNpbmcgYSBDIEFQSSB3aXRoIG5vIGNvbmNlcHQgb2YgcmVmZXJlbmNlIGNvdW50aW5n
IG9yIGJsb2Nrcy4KLSAgICBkZXZpY2UtPmNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5bmNDYWxsYmFj
ayhzdGF0dXMsIHBpcGVsaW5lLCBtZXNzYWdlKTsKLX0KLQotdm9pZCBEZXZpY2VJbXBsOjpjcmVh
dGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYgZGVz
Y3JpcHRvciwgV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxSZW5kZXJQaXBlbGluZT4mJik+JiYgY2Fs
bGJhY2spCi17Ci0gICAgUmVmIHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCi0gICAgbV9jcmVhdGVS
ZW5kZXJQaXBlbGluZUFzeW5jQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0K
LSAgICBjb252ZXJ0VG9CYWNraW5nKGRlc2NyaXB0b3IsIG1fY29udmVydFRvQmFja2luZ0NvbnRl
eHQsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gKGNvbnN0
IFdHUFVSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImIGJhY2tpbmdEZXNjcmlwdG9yKSBtdXRhYmxl
IHsKLSAgICB3Z3B1RGV2aWNlQ3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhtX2JhY2tpbmcsICZi
YWNraW5nRGVzY3JpcHRvciwgJldlYkdQVTo6Y3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxi
YWNrLCAmcHJvdGVjdGVkVGhpcy5sZWFrUmVmKCkpOyAvLyBsZWFrUmVmIGlzIGJhbGFuY2VkIGJ5
IGFkb3B0UmVmIGluIHJlcXVlc3REZXZpY2VDYWxsYmFjaygpIGFib3ZlLiBXZSBoYXZlIHRvIGRv
IHRoaXMgYmVjYXVzZSB3ZSdyZSB1c2luZyBhIEMgQVBJIHdpdGggbm8gY29uY2VwdCBvZiByZWZl
cmVuY2UgY291bnRpbmcgb3IgYmxvY2tzLgorICAgIGNvbnZlcnRUb0JhY2tpbmcoZGVzY3JpcHRv
ciwgbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dCwgW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldIChjb25zdCBXR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBiYWNraW5nRGVz
Y3JpcHRvcikgbXV0YWJsZSB7CisgICAgd2dwdURldmljZUNyZWF0ZVJlbmRlclBpcGVsaW5lQXN5
bmNXaXRoQmxvY2sobV9iYWNraW5nLCAmYmFja2luZ0Rlc2NyaXB0b3IsIFtjb252ZXJ0VG9CYWNr
aW5nQ29udGV4dCA9IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldIChXR1BVQ3JlYXRlUGlwZWxpbmVBc3luY1N0YXR1cywgV0dQVVJlbmRlclBp
cGVsaW5lIHBpcGVsaW5lLCBjb25zdCBjaGFyKikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNr
KFJlbmRlclBpcGVsaW5lSW1wbDo6Y3JlYXRlKHBpcGVsaW5lLCBXVEZNb3ZlKGNvbnZlcnRUb0Jh
Y2tpbmdDb250ZXh0KSkpOworICAgICAgICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBEZXZpY2VJ
bXBsOjpjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jQ2FsbGJhY2soV0dQVUNyZWF0ZVBpcGVsaW5l
QXN5bmNTdGF0dXMsIFdHUFVSZW5kZXJQaXBlbGluZSBwaXBlbGluZSwgY29uc3QgY2hhciogbWVz
c2FnZSkKLXsKLSAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7Ci0gICAgYXV0byBjYWxsYmFjayA9
IG1fY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxiYWNrcy50YWtlRmlyc3QoKTsKLSAgICBj
YWxsYmFjayhSZW5kZXJQaXBlbGluZUltcGw6OmNyZWF0ZShwaXBlbGluZSwgbV9jb252ZXJ0VG9C
YWNraW5nQ29udGV4dCkpOwotfQotCiBSZWY8Q29tbWFuZEVuY29kZXI+IERldmljZUltcGw6OmNy
ZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q29tbWFuZEVuY29kZXJEZXNj
cmlwdG9yPiYgZGVzY3JpcHRvcikKIHsKICAgICBDU3RyaW5nIGxhYmVsID0gZGVzY3JpcHRvciA/
IGRlc2NyaXB0b3ItPmxhYmVsLnV0ZjgoKSA6IENTdHJpbmcoIiIpOwpAQCAtNjEyLDQ0ICs1ODIs
MzAgQEAgdm9pZCBEZXZpY2VJbXBsOjpwdXNoRXJyb3JTY29wZShFcnJvckZpbHRlciBlcnJvckZp
bHRlcikKICAgICB3Z3B1RGV2aWNlUHVzaEVycm9yU2NvcGUobV9iYWNraW5nLCBtX2NvbnZlcnRU
b0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGVycm9yRmlsdGVyKSk7CiB9CiAKLXZv
aWQgcG9wRXJyb3JTY29wZUNhbGxiYWNrKFdHUFVFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciog
bWVzc2FnZSwgdm9pZCogdXNlcmRhdGEpCi17Ci0gICAgYXV0byBkZXZpY2UgPSBhZG9wdFJlZigq
c3RhdGljX2Nhc3Q8RGV2aWNlSW1wbCo+KHVzZXJkYXRhKSk7IC8vIGFkb3B0UmVmIGlzIGJhbGFu
Y2VkIGJ5IGxlYWtSZWYgaW4gcG9wRXJyb3JTY29wZSgpIGJlbG93LiBXZSBoYXZlIHRvIGRvIHRo
aXMgYmVjYXVzZSB3ZSdyZSB1c2luZyBhIEMgQVBJIHdpdGggbm8gY29uY2VwdCBvZiByZWZlcmVu
Y2UgY291bnRpbmcgb3IgYmxvY2tzLgotICAgIGRldmljZS0+cG9wRXJyb3JTY29wZUNhbGxiYWNr
KHR5cGUsIG1lc3NhZ2UpOwotfQotCi12b2lkIERldmljZUltcGw6OnBvcEVycm9yU2NvcGUoV1RG
OjpGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPiYmIGNhbGxiYWNrKQotewot
ICAgIFJlZiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLQotICAgIG1fcG9wRXJyb3JTY29wZUNhbGxi
YWNrcy5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOwotCi0gICAgd2dwdURldmljZVBvcEVycm9y
U2NvcGUobV9iYWNraW5nLCAmV2ViR1BVOjpwb3BFcnJvclNjb3BlQ2FsbGJhY2ssICZwcm90ZWN0
ZWRUaGlzLmxlYWtSZWYoKSk7IC8vIGxlYWtSZWYgaXMgYmFsYW5jZWQgYnkgYWRvcHRSZWYgaW4g
cmVxdWVzdERldmljZUNhbGxiYWNrKCkgYWJvdmUuIFdlIGhhdmUgdG8gZG8gdGhpcyBiZWNhdXNl
IHdlJ3JlIHVzaW5nIGEgQyBBUEkgd2l0aCBubyBjb25jZXB0IG9mIHJlZmVyZW5jZSBjb3VudGlu
ZyBvciBibG9ja3MuCi19Ci0KLXZvaWQgRGV2aWNlSW1wbDo6cG9wRXJyb3JTY29wZUNhbGxiYWNr
KFdHUFVFcnJvclR5cGUgZXJyb3JUeXBlLCBjb25zdCBjaGFyKiBtZXNzYWdlKQordm9pZCBEZXZp
Y2VJbXBsOjpwb3BFcnJvclNjb3BlKHN0ZDo6ZnVuY3Rpb248dm9pZChzdGQ6Om9wdGlvbmFsPEVy
cm9yPiYmKT4mJiBjYWxsYmFjaykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPEVycm9yPiBlcnJvcjsK
LSAgICBzd2l0Y2ggKGVycm9yVHlwZSkgewotICAgIGNhc2UgV0dQVUVycm9yVHlwZV9Ob0Vycm9y
OgotICAgIGNhc2UgV0dQVUVycm9yVHlwZV9Gb3JjZTMyOgotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFdHUFVFcnJvclR5cGVfVmFsaWRhdGlvbjoKLSAgICAgICAgZXJyb3IgPSB7IHsgVmFsaWRh
dGlvbkVycm9yOjpjcmVhdGUobWVzc2FnZSkgfSB9OwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFdHUFVFcnJvclR5cGVfT3V0T2ZNZW1vcnk6Ci0gICAgICAgIGVycm9yID0geyB7IE91dE9mTWVt
b3J5RXJyb3I6OmNyZWF0ZSgpIH0gfTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXR1BVRXJy
b3JUeXBlX1Vua25vd246Ci0gICAgICAgIGVycm9yID0geyB7IE91dE9mTWVtb3J5RXJyb3I6OmNy
ZWF0ZSgpIH0gfTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXR1BVRXJyb3JUeXBlX0Rldmlj
ZUxvc3Q6Ci0gICAgICAgIGVycm9yID0geyB7IE91dE9mTWVtb3J5RXJyb3I6OmNyZWF0ZSgpIH0g
fTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHdncHVEZXZpY2VQb3BFcnJvclNjb3BlV2l0
aEJsb2NrKG1fYmFja2luZywgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChXR1BVRXJy
b3JUeXBlIGVycm9yVHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSkgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPEVycm9yPiBlcnJvcjsKKyAgICAgICAgc3dpdGNoIChlcnJvclR5cGUpIHsKKyAgICAg
ICAgY2FzZSBXR1BVRXJyb3JUeXBlX05vRXJyb3I6CisgICAgICAgIGNhc2UgV0dQVUVycm9yVHlw
ZV9Gb3JjZTMyOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0dQVUVycm9yVHlw
ZV9WYWxpZGF0aW9uOgorICAgICAgICAgICAgZXJyb3IgPSB7IHsgVmFsaWRhdGlvbkVycm9yOjpj
cmVhdGUobWVzc2FnZSkgfSB9OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0dQ
VUVycm9yVHlwZV9PdXRPZk1lbW9yeToKKyAgICAgICAgICAgIGVycm9yID0geyB7IE91dE9mTWVt
b3J5RXJyb3I6OmNyZWF0ZSgpIH0gfTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdHUFVFcnJvclR5cGVfVW5rbm93bjoKKyAgICAgICAgICAgIGVycm9yID0geyB7IE91dE9mTWVt
b3J5RXJyb3I6OmNyZWF0ZSgpIH0gfTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFdHUFVFcnJvclR5cGVfRGV2aWNlTG9zdDoKKyAgICAgICAgICAgIGVycm9yID0geyB7IE91dE9m
TWVtb3J5RXJyb3I6OmNyZWF0ZSgpIH0gfTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CiAKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9wb3BFcnJvclNjb3BlQ2FsbGJhY2tzLnRha2VGaXJz
dCgpOwotICAgIGNhbGxiYWNrKFdURk1vdmUoZXJyb3IpKTsKKyAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShlcnJvcikpOworICAgIH0pOwogfQogCiB2b2lkIERldmljZUltcGw6OnNldExhYmVsSW50
ZXJuYWwoY29uc3QgU3RyaW5nJiBsYWJlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVJbXBsLmgKaW5kZXggZDU1MjNlY2Ni
ZTM0Li44N2E2NmU5MWY5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVSW1wbC5oCkBAIC00OSw3ICs0OSw2IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRG93bmNhc3RDb252ZXJ0VG9CYWNr
aW5nQ29udGV4dDsKLSAgICBmcmllbmQgdm9pZCByZXF1ZXN0QWRhcHRlckNhbGxiYWNrKFdHUFVS
ZXF1ZXN0QWRhcHRlclN0YXR1cywgV0dQVUFkYXB0ZXIsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZv
aWQqIHVzZXJkYXRhKTsKIAogICAgIEdQVUltcGwoV0dQVUluc3RhbmNlLCBDb252ZXJ0VG9CYWNr
aW5nQ29udGV4dCYpOwogCkBAIC02MCwxMCArNTksNyBAQCBwcml2YXRlOgogCiAgICAgV0dQVUlu
c3RhbmNlIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KIAotICAgIHZvaWQg
cmVxdWVzdEFkYXB0ZXJDYWxsYmFjayhXR1BVUmVxdWVzdEFkYXB0ZXJTdGF0dXMsIFdHUFVBZGFw
dGVyLCBjb25zdCBjaGFyKiBtZXNzYWdlKTsKLSAgICB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0
IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIFdURjo6RnVuY3Rpb248dm9pZChSZWZQdHI8QWRhcHRl
cj4mJik+JiYpIGZpbmFsOwotCi0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKFJlZlB0cjxB
ZGFwdGVyPiYmKT4+IG1fY2FsbGJhY2tzOworICAgIHZvaWQgcmVxdWVzdEFkYXB0ZXIoY29uc3Qg
UmVxdWVzdEFkYXB0ZXJPcHRpb25zJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0cjxBZGFwdGVy
PiYmKT4mJikgZmluYWw7CiAKICAgICBXR1BVSW5zdGFuY2UgbV9iYWNraW5nIHsgbnVsbHB0ciB9
OwogICAgIFJlZjxDb252ZXJ0VG9CYWNraW5nQ29udGV4dD4gbV9jb252ZXJ0VG9CYWNraW5nQ29u
dGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L0ltcGwvV2ViR1BVSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9JbXBsL1dlYkdQVUltcGwubW0Kc2ltaWxhcml0eSBpbmRleCA3MSUKcmVuYW1lIGZyb20g
U291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVJbXBsLmNw
cApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVJbXBsLm1tCmluZGV4IGJiOGUwNGUzYWM1OC4uZDM0YmQ3ZWUxOTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2Vi
R1BVSW1wbC5tbQpAQCAtNjMsMTYgKzYzLDggQEAgR1BVSW1wbDo6fkdQVUltcGwoKQogICAgIHdn
cHVJbnN0YW5jZVJlbGVhc2UobV9iYWNraW5nKTsKIH0KIAotdm9pZCByZXF1ZXN0QWRhcHRlckNh
bGxiYWNrKFdHUFVSZXF1ZXN0QWRhcHRlclN0YXR1cyBzdGF0dXMsIFdHUFVBZGFwdGVyIGFkYXB0
ZXIsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIHZvaWQqIHVzZXJkYXRhKQordm9pZCBHUFVJbXBsOjpy
ZXF1ZXN0QWRhcHRlcihjb25zdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMmIG9wdGlvbnMsIHN0ZDo6
ZnVuY3Rpb248dm9pZChSZWZQdHI8QWRhcHRlcj4mJik+JiYgY2FsbGJhY2spCiB7Ci0gICAgYXV0
byBncHUgPSBhZG9wdFJlZigqc3RhdGljX2Nhc3Q8R1BVSW1wbCo+KHVzZXJkYXRhKSk7IC8vIGFk
b3B0UmVmIGlzIGJhbGFuY2VkIGJ5IGxlYWtSZWYgaW4gcmVxdWVzdEFkYXB0ZXIoKSBiZWxvdy4g
V2UgaGF2ZSB0byBkbyB0aGlzIGJlY2F1c2Ugd2UncmUgdXNpbmcgYSBDIEFQSSB3aXRoIG5vIGNv
bmNlcHQgb2YgcmVmZXJlbmNlIGNvdW50aW5nIG9yIGJsb2Nrcy4KLSAgICBncHUtPnJlcXVlc3RB
ZGFwdGVyQ2FsbGJhY2soc3RhdHVzLCBhZGFwdGVyLCBtZXNzYWdlKTsKLX0KLQotdm9pZCBHUFVJ
bXBsOjpyZXF1ZXN0QWRhcHRlcihjb25zdCBSZXF1ZXN0QWRhcHRlck9wdGlvbnMmIG9wdGlvbnMs
IFdURjo6RnVuY3Rpb248dm9pZChSZWZQdHI8QWRhcHRlcj4mJik+JiYgY2FsbGJhY2spCi17Ci0g
ICAgUmVmIHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCiAgICAgV0dQVVJlcXVlc3RBZGFwdGVyT3B0
aW9ucyBiYWNraW5nT3B0aW9ucyB7CiAgICAgICAgIG51bGxwdHIsCiAgICAgICAgIG51bGxwdHIs
CkBAIC04MCwxNiArNzIsOSBAQCB2b2lkIEdQVUltcGw6OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFJl
cXVlc3RBZGFwdGVyT3B0aW9ucyYgb3B0aW9ucywgV1RGOjpGdW5jdGlvbgogICAgICAgICBvcHRp
b25zLmZvcmNlRmFsbGJhY2tBZGFwdGVyLAogICAgIH07CiAKLSAgICBtX2NhbGxiYWNrcy5hcHBl
bmQoV1RGTW92ZShjYWxsYmFjaykpOwotCi0gICAgd2dwdUluc3RhbmNlUmVxdWVzdEFkYXB0ZXIo
bV9iYWNraW5nLCAmYmFja2luZ09wdGlvbnMsICZXZWJHUFU6OnJlcXVlc3RBZGFwdGVyQ2FsbGJh
Y2ssICZwcm90ZWN0ZWRUaGlzLmxlYWtSZWYoKSk7IC8vIGxlYWtSZWYgaXMgYmFsYW5jZWQgYnkg
YWRvcHRSZWYgaW4gcmVxdWVzdEFkYXB0ZXJDYWxsYmFjaygpIGFib3ZlLiBXZSBoYXZlIHRvIGRv
IHRoaXMgYmVjYXVzZSB3ZSdyZSB1c2luZyBhIEMgQVBJIHdpdGggbm8gY29uY2VwdCBvZiByZWZl
cmVuY2UgY291bnRpbmcgb3IgYmxvY2tzLgotfQotCi12b2lkIEdQVUltcGw6OnJlcXVlc3RBZGFw
dGVyQ2FsbGJhY2soV0dQVVJlcXVlc3RBZGFwdGVyU3RhdHVzLCBXR1BVQWRhcHRlciBhZGFwdGVy
LCBjb25zdCBjaGFyKiBtZXNzYWdlKQotewotICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKLSAg
ICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2so
QWRhcHRlckltcGw6OmNyZWF0ZShhZGFwdGVyLCBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0KSk7
CisgICAgd2dwdUluc3RhbmNlUmVxdWVzdEFkYXB0ZXJXaXRoQmxvY2sobV9iYWNraW5nLCAmYmFj
a2luZ09wdGlvbnMsIFtjb252ZXJ0VG9CYWNraW5nQ29udGV4dCA9IG1fY29udmVydFRvQmFja2lu
Z0NvbnRleHQsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChXR1BVUmVxdWVzdEFkYXB0
ZXJTdGF0dXMsIFdHUFVBZGFwdGVyIGFkYXB0ZXIsIGNvbnN0IGNoYXIqKSB7CisgICAgICAgIGNh
bGxiYWNrKEFkYXB0ZXJJbXBsOjpjcmVhdGUoYWRhcHRlciwgY29udmVydFRvQmFja2luZ0NvbnRl
eHQpKTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgUEFMOjpXZWJHUFUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVl
dWVJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVVF1ZXVlSW1wbC5oCmluZGV4IDk3YmFmMGEyNDk5Zi4uYmE1MzM3N2IxMTBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1
ZXVlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0lt
cGwvV2ViR1BVUXVldWVJbXBsLmgKQEAgLTQ3LDcgKzQ3LDYgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBEb3duY2FzdENvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwotICAg
IGZyaWVuZCB2b2lkIG9uU3VibWl0dGVkV29ya0RvbmVDYWxsYmFjayhXR1BVUXVldWVXb3JrRG9u
ZVN0YXR1cywgdm9pZCogdXNlcmRhdGEpOwogCiAgICAgUXVldWVJbXBsKFdHUFVRdWV1ZSwgQ29u
dmVydFRvQmFja2luZ0NvbnRleHQmKTsKIApAQCAtNjAsOCArNTksNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBzdWJtaXQoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Q29tbWFuZEJ1ZmZl
cj4+JiYpIGZpbmFsOwogCi0gICAgdm9pZCBvblN1Ym1pdHRlZFdvcmtEb25lQ2FsbGJhY2soV0dQ
VVF1ZXVlV29ya0RvbmVTdGF0dXMpOwotICAgIHZvaWQgb25TdWJtaXR0ZWRXb3JrRG9uZShXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBvblN1Ym1pdHRlZFdvcmtEb25l
KHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgd3JpdGVCdWZmZXIo
CiAgICAgICAgIGNvbnN0IEJ1ZmZlciYsCkBAIC04Nyw4ICs4NSw2IEBAIHByaXZhdGU6CiAKICAg
ICB1aW50NjRfdCBtX3NpZ25hbFZhbHVlIHsgMSB9OwogCi0gICAgRGVxdWU8V1RGOjpGdW5jdGlv
bjx2b2lkKCk+PiBtX2NhbGxiYWNrczsKLQogICAgIFdHUFVRdWV1ZSBtX2JhY2tpbmcgeyBudWxs
cHRyIH07CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tp
bmdDb250ZXh0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJbXBsLm1tCnNpbWlsYXJpdHkgaW5k
ZXggODElCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L0ltcGwvV2ViR1BVUXVldWVJbXBsLmNwcApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVRdWV1ZUltcGwubW0KaW5kZXggNjM5ZmE0YWJl
NjZkLi4wZmQyNDY1OTI3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUXVldWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVF1ZXVlSW1wbC5tbQpAQCAtNTYs
MjkgKzU2LDE1IEBAIHZvaWQgUXVldWVJbXBsOjpzdWJtaXQoVmVjdG9yPHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8Q29tbWFuZEJ1ZmZlcj4+JiYgY29tbWFuZEJ1CiAgICAgd2dwdVF1ZXVlU3VibWl0
KG1fYmFja2luZywgYmFja2luZ0NvbW1hbmRCdWZmZXJzLnNpemUoKSwgYmFja2luZ0NvbW1hbmRC
dWZmZXJzLmRhdGEoKSk7CiB9CiAKLXZvaWQgb25TdWJtaXR0ZWRXb3JrRG9uZUNhbGxiYWNrKFdH
UFVRdWV1ZVdvcmtEb25lU3RhdHVzIHN0YXR1cywgdm9pZCogdXNlcmRhdGEpCit2b2lkIFF1ZXVl
SW1wbDo6b25TdWJtaXR0ZWRXb3JrRG9uZShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFj
aykKIHsKLSAgICBhdXRvIHF1ZXVlID0gYWRvcHRSZWYoKnN0YXRpY19jYXN0PFF1ZXVlSW1wbCo+
KHVzZXJkYXRhKSk7IC8vIGFkb3B0UmVmIGlzIGJhbGFuY2VkIGJ5IGxlYWtSZWYgaW4gb25TdWJt
aXR0ZWRXb3JrRG9uZSgpIGJlbG93LiBXZSBoYXZlIHRvIGRvIHRoaXMgYmVjYXVzZSB3ZSdyZSB1
c2luZyBhIEMgQVBJIHdpdGggbm8gY29uY2VwdCBvZiByZWZlcmVuY2UgY291bnRpbmcgb3IgYmxv
Y2tzLgotICAgIHF1ZXVlLT5vblN1Ym1pdHRlZFdvcmtEb25lQ2FsbGJhY2soc3RhdHVzKTsKLX0K
LQotdm9pZCBRdWV1ZUltcGw6Om9uU3VibWl0dGVkV29ya0RvbmUoV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY2FsbGJhY2spCi17Ci0gICAgUmVmIHByb3RlY3RlZFRoaXMoKnRoaXMpOwotCi0gICAg
bV9jYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKLQotICAgIHdncHVRdWV1ZU9u
U3VibWl0dGVkV29ya0RvbmUobV9iYWNraW5nLCBtX3NpZ25hbFZhbHVlLCAmV2ViR1BVOjpvblN1
Ym1pdHRlZFdvcmtEb25lQ2FsbGJhY2ssICZwcm90ZWN0ZWRUaGlzLmxlYWtSZWYoKSk7IC8vIGxl
YWtSZWYgaXMgYmFsYW5jZWQgYnkgYWRvcHRSZWYgaW4gb25TdWJtaXR0ZWRXb3JrRG9uZUNhbGxi
YWNrKCkgYWJvdmUuIFdlIGhhdmUgdG8gZG8gdGhpcyBiZWNhdXNlIHdlJ3JlIHVzaW5nIGEgQyBB
UEkgd2l0aCBubyBjb25jZXB0IG9mIHJlZmVyZW5jZSBjb3VudGluZyBvciBibG9ja3MuCisgICAg
d2dwdVF1ZXVlT25TdWJtaXR0ZWRXb3JrRG9uZVdpdGhCbG9jayhtX2JhY2tpbmcsIG1fc2lnbmFs
VmFsdWUsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoV0dQVVF1ZXVlV29ya0RvbmVT
dGF0dXMpIHsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKIAogICAgICsrbV9zaWduYWxW
YWx1ZTsKIH0KIAotdm9pZCBRdWV1ZUltcGw6Om9uU3VibWl0dGVkV29ya0RvbmVDYWxsYmFjayhX
R1BVUXVldWVXb3JrRG9uZVN0YXR1cykKLXsKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFj
a3MudGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2soKTsKLX0KLQogdm9pZCBRdWV1ZUltcGw6Ondy
aXRlQnVmZmVyKAogICAgIGNvbnN0IEJ1ZmZlciYgYnVmZmVyLAogICAgIFNpemU2NCBidWZmZXJP
ZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9JbXBsL1dlYkdQVVNoYWRlck1vZHVsZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5oCmluZGV4IDM0YmUx
ZmU0NGJmYS4uOWI5Njg2ZDdlNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVNoYWRlck1vZHVsZUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVNoYWRlck1vZHVs
ZUltcGwuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogCiAgICAgV0dQVVNoYWRlck1vZHVs
ZSBiYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nOyB9CiAKLSAgICB2b2lkIGNvbXBp
bGF0aW9uSW5mbyhXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPENvbXBpbGF0aW9uSW5mbz4mJik+JiYp
IGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25JbmZvKHN0ZDo6ZnVuY3Rpb248dm9pZChSZWY8
Q29tcGlsYXRpb25JbmZvPiYmKT4mJikgZmluYWw7CiAKICAgICB2b2lkIHNldExhYmVsSW50ZXJu
YWwoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVNoYWRlck1v
ZHVsZUltcGwubW0Kc2ltaWxhcml0eSBpbmRleCA2MCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNv
cmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVTaGFkZXJNb2R1bGVJbXBsLmNw
cApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVTaGFkZXJNb2R1bGVJbXBsLm1tCmluZGV4IGI3YzZkMjVjMGVjOS4uZDE4YzU0Mjk5YjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBs
L1dlYkdQVVNoYWRlck1vZHVsZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVU2hhZGVyTW9kdWxlSW1wbC5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgSEFWRShXRUJHUFVfSU1QTEVNRU5UQVRJT04pCiAKKyNpbmNsdWRlICJX
ZWJHUFVDb21waWxhdGlvbkluZm8uaCIKICNpbmNsdWRlICJXZWJHUFVDb252ZXJ0VG9CYWNraW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgPFdlYkdQVS9XZWJHUFVFeHQuaD4KIApAQCAtNDQsOCArNDUs
MzMgQEAgU2hhZGVyTW9kdWxlSW1wbDo6flNoYWRlck1vZHVsZUltcGwoKQogICAgIHdncHVTaGFk
ZXJNb2R1bGVSZWxlYXNlKG1fYmFja2luZyk7CiB9CiAKLXZvaWQgU2hhZGVyTW9kdWxlSW1wbDo6
Y29tcGlsYXRpb25JbmZvKFdURjo6RnVuY3Rpb248dm9pZChSZWY8Q29tcGlsYXRpb25JbmZvPiYm
KT4mJikKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbXBpbGF0aW9uTWVzc2FnZVR5cGU+IGNvbnZl
cnRDb21waWxhdGlvbk1lc3NhZ2VUeXBlKFdHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlIG1lc3Nh
Z2VUeXBlKQogeworICAgIHN3aXRjaCAobWVzc2FnZVR5cGUpIHsKKyAgICBjYXNlIFdHUFVDb21w
aWxhdGlvbk1lc3NhZ2VUeXBlX0Vycm9yOgorICAgICAgICByZXR1cm4gQ29tcGlsYXRpb25NZXNz
YWdlVHlwZTo6RXJyb3I7CisgICAgY2FzZSBXR1BVQ29tcGlsYXRpb25NZXNzYWdlVHlwZV9XYXJu
aW5nOgorICAgICAgICByZXR1cm4gQ29tcGlsYXRpb25NZXNzYWdlVHlwZTo6V2FybmluZzsKKyAg
ICBjYXNlIFdHUFVDb21waWxhdGlvbk1lc3NhZ2VUeXBlX0luZm86CisgICAgICAgIHJldHVybiBD
b21waWxhdGlvbk1lc3NhZ2VUeXBlOjpJbmZvOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgfQorfQorCit2b2lkIFNoYWRlck1vZHVsZUltcGw6OmNvbXBp
bGF0aW9uSW5mbyhzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPENvbXBpbGF0aW9uSW5mbz4mJik+JiYg
Y2FsbGJhY2spCit7CisgICAgd2dwdVNoYWRlck1vZHVsZUdldENvbXBpbGF0aW9uSW5mb1dpdGhC
bG9jayhtX2JhY2tpbmcsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoV0dQVUNvbXBp
bGF0aW9uSW5mb1JlcXVlc3RTdGF0dXMsIGNvbnN0IFdHUFVDb21waWxhdGlvbkluZm8qIGNvbXBp
bGF0aW9uSW5mbykgeworICAgICAgICBWZWN0b3I8UmVmPENvbXBpbGF0aW9uTWVzc2FnZT4+IG1l
c3NhZ2VzOworICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY29tcGlsYXRpb25JbmZv
LT5tZXNzYWdlQ291bnQ7ICsraSkgeworICAgICAgICAgICAgY29uc3QgV0dQVUNvbXBpbGF0aW9u
TWVzc2FnZSYgbWVzc2FnZSA9IGNvbXBpbGF0aW9uSW5mby0+bWVzc2FnZXNbaV07CisgICAgICAg
ICAgICBhdXRvIG1lc3NhZ2VUeXBlID0gY29udmVydENvbXBpbGF0aW9uTWVzc2FnZVR5cGUobWVz
c2FnZS50eXBlKTsKKyAgICAgICAgICAgIGlmICghbWVzc2FnZVR5cGUpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBtZXNzYWdlcy5hcHBlbmQoQ29tcGlsYXRpb25NZXNz
YWdlOjpjcmVhdGUobWVzc2FnZS5tZXNzYWdlLCAqbWVzc2FnZVR5cGUsIG1lc3NhZ2UubGluZU51
bSwgbWVzc2FnZS5saW5lUG9zLCBtZXNzYWdlLm9mZnNldCwgbWVzc2FnZS5sZW5ndGgpKTsKKyAg
ICAgICAgfQorICAgICAgICBjYWxsYmFjayhDb21waWxhdGlvbkluZm86OmNyZWF0ZShXVEZNb3Zl
KG1lc3NhZ2VzKSkpOworICAgIH0pOwogfQogCiB2b2lkIFNoYWRlck1vZHVsZUltcGw6OnNldExh
YmVsSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBsYWJlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVS5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVLmgKaW5kZXggNjAxZDRmZjZjMjNiLi44ZGNhM2Ji
ZWY2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BV
L1dlYkdQVS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dl
YkdQVS5oCkBAIC0yNiw4ICsyNiw4IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYkdQ
VVJlcXVlc3RBZGFwdGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVk
ZSA8b3B0aW9uYWw+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTM5LDcgKzM5LDcgQEAg
Y2xhc3MgR1BVIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVPiB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+R1BVKCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBZGFwdGVyKGNv
bnN0IFJlcXVlc3RBZGFwdGVyT3B0aW9ucyYsIFdURjo6RnVuY3Rpb248dm9pZChSZWZQdHI8QWRh
cHRlcj4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEFkYXB0ZXIoY29uc3Qg
UmVxdWVzdEFkYXB0ZXJPcHRpb25zJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0cjxBZGFwdGVy
PiYmKT4mJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgR1BVKCkgPSBkZWZhdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRl
ci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRl
ci5oCmluZGV4IDUwN2M0YWFjNDc2ZC4uYmM1NDEwMTM1YzI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVBZGFwdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVQWRhcHRlci5oCkBAIC0y
OCw4ICsyOCw4IEBACiAjaW5jbHVkZSAiV2ViR1BVRGV2aWNlRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIldlYkdQVVN1cHBvcnRlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVk
TGltaXRzLmgiCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDxvcHRpb25hbD4KLSNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQ3
LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFN1cHBvcnRlZExpbWl0cyYgbGltaXRzKCkgY29uc3Qg
eyByZXR1cm4gbV9saW1pdHM7IH0KICAgICBib29sIGlzRmFsbGJhY2tBZGFwdGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0ZhbGxiYWNrQWRhcHRlcjsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3REZXZpY2UoY29uc3QgRGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8
RGV2aWNlPiYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV2aWNlKGNvbnN0
IERldmljZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPERldmljZT4mJik+JiYp
ID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEFkYXB0ZXIoU3RyaW5nJiYgbmFtZSwgU3VwcG9ydGVk
RmVhdHVyZXMmIGZlYXR1cmVzLCBTdXBwb3J0ZWRMaW1pdHMmIGxpbWl0cywgYm9vbCBpc0ZhbGxi
YWNrQWRhcHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9X
ZWJHUFUvV2ViR1BVQnVmZmVyLmgKaW5kZXggNmM1ZWJjYWZhOGIxLi4wMjEwODEyYTQyYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VUJ1ZmZlci5oCkBAIC0yOCw4ICsyOCw4IEBACiAjaW5jbHVkZSAiV2ViR1BVSW50ZWdyYWxUeXBl
cy5oIgogI2luY2x1ZGUgIldlYkdQVU1hcE1vZGUuaCIKICNpbmNsdWRlIDxjc3RkaW50PgorI2lu
Y2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+Ci0jaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00OCw3ICs0OCw3IEBAIHB1
YmxpYzoKICAgICAgICAgc2V0TGFiZWxJbnRlcm5hbChtX2xhYmVsKTsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgbWFwQXN5bmMoTWFwTW9kZUZsYWdzLCBTaXplNjQgb2Zmc2V0LCBzdGQ6Om9w
dGlvbmFsPFNpemU2ND4sIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG1hcEFzeW5jKE1hcE1vZGVGbGFncywgU2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25h
bDxTaXplNjQ+LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJikgPSAwOwogICAgIHN0cnVjdCBNYXBw
ZWRSYW5nZSB7CiAgICAgICAgIHZvaWQqIHNvdXJjZSB7IG51bGxwdHIgfTsKICAgICAgICAgc2l6
ZV90IGJ5dGVMZW5ndGggeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Z3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmljZS5oCmluZGV4IDRjNjYyOTljNjliYy4uNTBkMGUx
NDAxZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVEZXZpY2UuaApAQCAtMzIsOCArMzIsOCBAQAogI2luY2x1ZGUgIldlYkdQVVJl
bmRlclBpcGVsaW5lLmgiCiAjaW5jbHVkZSAiV2ViR1BVU3VwcG9ydGVkRmVhdHVyZXMuaCIKICNp
bmNsdWRlICJXZWJHUFVTdXBwb3J0ZWRMaW1pdHMuaCIKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgog
I2luY2x1ZGUgPG9wdGlvbmFsPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtMTAwLDggKzEwMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJl
ZjxTaGFkZXJNb2R1bGU+IGNyZWF0ZVNoYWRlck1vZHVsZShjb25zdCBTaGFkZXJNb2R1bGVEZXNj
cmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgUmVmPENvbXB1dGVQaXBlbGluZT4gY3JlYXRlQ29t
cHV0ZVBpcGVsaW5lKGNvbnN0IENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImKSA9IDA7CiAgICAg
dmlydHVhbCBSZWY8UmVuZGVyUGlwZWxpbmU+IGNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFJl
bmRlclBpcGVsaW5lRGVzY3JpcHRvciYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlQ29t
cHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIFdURjo6
RnVuY3Rpb248dm9pZChSZWY8Q29tcHV0ZVBpcGVsaW5lPiYmKT4mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKGNvbnN0IFJlbmRlclBpcGVsaW5lRGVz
Y3JpcHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UmVuZGVyUGlwZWxpbmU+JiYpPiYmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jKGNvbnN0IENv
bXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPENvbXB1dGVQ
aXBlbGluZT4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxp
bmVBc3luYyhjb25zdCBSZW5kZXJQaXBlbGluZURlc2NyaXB0b3ImLCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoUmVmPFJlbmRlclBpcGVsaW5lPiYmKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCBSZWY8Q29t
bWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8Q29t
bWFuZEVuY29kZXJEZXNjcmlwdG9yPiYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxSZW5kZXJCdW5k
bGVFbmNvZGVyPiBjcmVhdGVSZW5kZXJCdW5kbGVFbmNvZGVyKGNvbnN0IFJlbmRlckJ1bmRsZUVu
Y29kZXJEZXNjcmlwdG9yJikgPSAwOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFJlZjxRdWVyeVNldD4gY3JlYXRlUXVlcnlTZXQoY29uc3QgUXVlcnlTZXREZXNjcmlw
dG9yJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHB1c2hFcnJvclNjb3BlKEVycm9yRmlsdGVy
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBvcEVycm9yU2NvcGUoV1RGOjpGdW5jdGlvbjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvcEVy
cm9yU2NvcGUoc3RkOjpmdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJyb3I+JiYpPiYmKSA9
IDA7CiAKICAgICBjbGFzcyBEZXZpY2VMb3N0Q2xpZW50IHsKICAgICAgICAgdmlydHVhbCB+RGV2
aWNlTG9zdENsaWVudCgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVRdWV1ZS5oCmluZGV4IDU1MWRhMGUyYjA4Ni4uMGNk
OGJjYTdlYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dl
YkdQVS9XZWJHUFVRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3Mv
V2ViR1BVL1dlYkdQVVF1ZXVlLmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlIDxjc3RkaW50
PgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8b3B0aW9uYWw+Ci0jaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTksNyArNTgsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc3VibWl0KFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFw
cGVyPENvbW1hbmRCdWZmZXI+PiYmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWJtaXR0
ZWRXb3JrRG9uZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBvblN1Ym1pdHRlZFdvcmtEb25lKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgd3JpdGVCdWZmZXIoCiAgICAgICAgIGNvbnN0IEJ1ZmZlciYsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFk
ZXJNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQ
VVNoYWRlck1vZHVsZS5oCmluZGV4IDY5YzlkYTcyM2MyZi4uZWU1Y2IzZjZkZTNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVTaGFkZXJN
b2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJH
UFVTaGFkZXJNb2R1bGUuaApAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJXZWJHUFVCaW5kR3JvdXBMYXlvdXQuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
KyNpbmNsdWRlICJmdW5jdGlvbmFsIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHNldExhYmVsSW50ZXJuYWwobV9sYWJlbCk7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9uSW5mbyhXVEY6OkZ1bmN0aW9uPHZv
aWQoUmVmPENvbXBpbGF0aW9uSW5mbz4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29t
cGlsYXRpb25JbmZvKHN0ZDo6ZnVuY3Rpb248dm9pZChSZWY8Q29tcGlsYXRpb25JbmZvPiYmKT4m
JikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgU2hhZGVyTW9kdWxlKCkgPSBkZWZhdWx0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBjYzRiZmE1NGFhNzMuLjM4ZGRjNzRkYWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NSBAQAorMjAyMi0wMi0yMCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXZWJHUFVdIFRyYWNlciBidWxsZXQgcGFydCAxMjogTWlncmF0ZSBmcm9t
IEMgZnVuY3Rpb24gY2FsbGJhY2tzIHRvIGJsb2NrcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2OTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgdHVybnMgb3V0IHdlIGNhbid0IGFjdHVhbGx5IHVz
ZSB0aGlzIGp1c3QgeWV0IGJlY2F1c2UgYmxvY2tzIGhhdmUgdG8gYmUgY29weWFibGUsIHdoaWNo
IG1lYW5zIGFueSBsYW1iZGFzIHdlIGNvbnZlcnQKKyAgICAgICAgdG8gYmxvY2tzIGhhdmUgdG8g
YmUgY29weWFibGUsIGJ1dCBpbiB0aGUgR1BVIFByb2Nlc3Mgd2UgcmVjZWl2ZSBhIENvbXBsZXRp
b25IYW5kbGVyIHRvIGNhbGwgYmFjayB3aXRoIGEgcmVwbHksIGJ1dAorICAgICAgICBDb21wbGV0
aW9uSGFuZGxlcnMgYXJlIG5vdCBjb3B5YWJsZSwgc28gd2UgY2FuJ3QgY29uc3RydWN0IHRoZSBi
bG9jayB0byBwYXNzIGluIHRvIFdlYkdQVS5mcmFtZXdvcmsuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR1BVOjpSZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVlc3REZXZpY2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVy
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHUFU6OlJlbW90ZUJ1ZmZlclByb3h5Ojpt
YXBBc3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZURldmljZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW1vdGVE
ZXZpY2VQcm94eTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJHUFU6OlJlbW90ZURldmljZVByb3h5OjpjcmVhdGVSZW5kZXJQaXBlbGluZUFzeW5jKToK
KyAgICAgICAgKFdlYktpdDo6V2ViR1BVOjpSZW1vdGVEZXZpY2VQcm94eTo6cG9wRXJyb3JTY29w
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmlj
ZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZUdQVVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR1BVUHJveHk6OnJlcXVlc3RB
ZGFwdGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
R1BVUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVldWVQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdQVTo6UmVtb3RlUXVldWVQ
cm94eTo6b25TdWJtaXR0ZWRXb3JrRG9uZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZVF1ZXVlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJHUFU6OlJlbW90ZVNoYWRlck1vZHVsZVByb3h5Ojpjb21waWxhdGlvbkluZm8p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVTaGFkZXJN
b2R1bGVQcm94eS5oOgorCiAyMDIyLTAyLTE5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIG1hY0NhdGFseXN0OiBXS1dlYlZpZXcgY3Jhc2hlcyB3aGVu
ZXZlciB0aGUgdmlldyBmcmFtZSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclBy
b3h5LmNwcAppbmRleCA1OTA4ZThiZmY0ZGUuLjNhODk5NWYxOGZjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQWRhcHRlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVBZGFwdGVyUHJveHkuY3BwCkBAIC00Niw3ICs0Niw3IEBAIFJlbW90ZUFkYXB0ZXJQ
cm94eTo6flJlbW90ZUFkYXB0ZXJQcm94eSgpCiB7CiB9CiAKLXZvaWQgUmVtb3RlQWRhcHRlclBy
b3h5OjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFBBTDo6V2ViR1BVOjpEZXZpY2VEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpEZXZpY2U+JiYp
PiYmIGNhbGxiYWNrKQordm9pZCBSZW1vdGVBZGFwdGVyUHJveHk6OnJlcXVlc3REZXZpY2UoY29u
c3QgUEFMOjpXZWJHUFU6OkRldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHN0ZDo6ZnVuY3Rp
b248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAg
YXV0byBjb252ZXJ0ZWREZXNjcmlwdG9yID0gbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29u
dmVydFRvQmFja2luZyhkZXNjcmlwdG9yKTsKICAgICBBU1NFUlQoY29udmVydGVkRGVzY3JpcHRv
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvV2ViR1BVL1JlbW90ZUFkYXB0ZXJQcm94eS5oCmluZGV4IDgwOGRkYWE0YjBhYi4u
ZTU0MDY4MWQwMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVBZGFwdGVyUHJveHkuaApAQCAtNzcs
OSArNzcsOSBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcm9vdCgpLnN0cmVhbUNsaWVudENv
bm5lY3Rpb24oKS5zZW5kU3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwgYmFj
a2luZygpLCBkZWZhdWx0U2VuZFRpbWVvdXQpOwogICAgIH0KIAotICAgIHZvaWQgcmVxdWVzdERl
dmljZShjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIFdURjo6RnVuY3Rpb248
dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgcmVx
dWVzdERldmljZShjb25zdCBQQUw6OldlYkdQVTo6RGV2aWNlRGVzY3JpcHRvciYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkRldmljZT4mJik+JiYpIGZpbmFsOwogCi0gICAg
RGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlPik+PiBtX2Nh
bGxiYWNrczsKKyAgICBEZXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpE
ZXZpY2U+KT4+IG1fY2FsbGJhY2tzOwogCiAgICAgV2ViR1BVSWRlbnRpZmllciBtX2JhY2tpbmc7
CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250
ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyUHJveHkuY3BwCmluZGV4IDFhOTNmZjFkZmJh
Ni4uYjc5YTU4NzlmMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlQnVmZmVyUHJveHkuY3BwCkBA
IC00NCw3ICs0NCw3IEBAIFJlbW90ZUJ1ZmZlclByb3h5Ojp+UmVtb3RlQnVmZmVyUHJveHkoKQog
ewogfQogCi12b2lkIFJlbW90ZUJ1ZmZlclByb3h5OjptYXBBc3luYyhQQUw6OldlYkdQVTo6TWFw
TW9kZUZsYWdzIG1hcE1vZGVGbGFncywgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+
JiYgY2FsbGJhY2spCit2b2lkIFJlbW90ZUJ1ZmZlclByb3h5OjptYXBBc3luYyhQQUw6OldlYkdQ
VTo6TWFwTW9kZUZsYWdzIG1hcE1vZGVGbGFncywgUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQs
IHN0ZDo6b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4gc2l6ZSwgc3RkOjpmdW5jdGlvbjx2
b2lkKCk+JiYgY2FsbGJhY2spCiB7CiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+
IGRhdGE7CiAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUJ1
ZmZlcjo6TWFwQXN5bmMobWFwTW9kZUZsYWdzLCBvZmZzZXQsIHNpemUpLCB7IGRhdGEgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlQnVmZmVyUHJveHkuaAppbmRleCA4OTMwMTI1MDMyZTEuLjA0MTAxMDYz
YWY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVCdWZmZXJQcm94eS5oCkBAIC03Myw3ICs3Myw3IEBA
IHByaXZhdGU6CiAgICAgICAgIHJldHVybiByb290KCkuc3RyZWFtQ2xpZW50Q29ubmVjdGlvbigp
LnNlbmRTeW5jKFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUocmVwbHkpLCBiYWNraW5nKCksIGRl
ZmF1bHRTZW5kVGltZW91dCk7CiAgICAgfQogCi0gICAgdm9pZCBtYXBBc3luYyhQQUw6OldlYkdQ
VTo6TWFwTW9kZUZsYWdzLCBQQUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25h
bDxQQUw6OldlYkdQVTo6U2l6ZTY0PiBzaXplRm9yTWFwLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4m
JikgZmluYWw7CisgICAgdm9pZCBtYXBBc3luYyhQQUw6OldlYkdQVTo6TWFwTW9kZUZsYWdzLCBQ
QUw6OldlYkdQVTo6U2l6ZTY0IG9mZnNldCwgc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6U2l6
ZTY0PiBzaXplRm9yTWFwLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CiAgICAgTWFw
cGVkUmFuZ2UgZ2V0TWFwcGVkUmFuZ2UoUEFMOjpXZWJHUFU6OlNpemU2NCBvZmZzZXQsIHN0ZDo6
b3B0aW9uYWw8UEFMOjpXZWJHUFU6OlNpemU2ND4pIGZpbmFsOwogICAgIHZvaWQgdW5tYXAoKSBm
aW5hbDsKIApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRMYWJlbElu
dGVybmFsKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2
b2lkKCk+PiBtX2NhbGxiYWNrczsKKyAgICBEZXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1f
Y2FsbGJhY2tzOwogCiAgICAgV2ViR1BVSWRlbnRpZmllciBtX2JhY2tpbmc7CiAgICAgUmVmPENv
bnZlcnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
RGV2aWNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuY3BwCmluZGV4IDJiNDRiM2U3N2U5NC4uYWY3Y2JhYzRj
MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dl
YkdQVS9SZW1vdGVEZXZpY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuY3BwCkBAIC0yMTMsNyArMjEz
LDcgQEAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4gUmVtb3RlRGV2aWNlUHJveHk6
OmNyZWF0ZVJlbmRlclBpcGVsaW5lKGNvbnN0IFAKICAgICByZXR1cm4gUmVtb3RlUmVuZGVyUGlw
ZWxpbmVQcm94eTo6Y3JlYXRlKCp0aGlzLCBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LCBpZGVu
dGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVEZXZpY2VQcm94eTo6Y3JlYXRlQ29tcHV0ZVBpcGVs
aW5lQXN5bmMoY29uc3QgUEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBl
bGluZT4mJik+JiYgY2FsbGJhY2spCit2b2lkIFJlbW90ZURldmljZVByb3h5OjpjcmVhdGVDb21w
dXRlUGlwZWxpbmVBc3luYyhjb25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6Q29t
cHV0ZVBpcGVsaW5lPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBhdXRvIGNvbnZlcnRlZERlc2Ny
aXB0b3IgPSBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGRlc2Ny
aXB0b3IpOwogICAgIEFTU0VSVChjb252ZXJ0ZWREZXNjcmlwdG9yKTsKQEAgLTIyOCw3ICsyMjgs
NyBAQCB2b2lkIFJlbW90ZURldmljZVByb3h5OjpjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhj
b25zdCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcAogICAgIGNhbGxiYWNrKFJlbW90ZUNvbXB1dGVQ
aXBlbGluZVByb3h5OjpjcmVhdGUoKnRoaXMsIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQsIGlk
ZW50aWZpZXIpKTsKIH0KIAotdm9pZCBSZW1vdGVEZXZpY2VQcm94eTo6Y3JlYXRlUmVuZGVyUGlw
ZWxpbmVBc3luYyhjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBl
bGluZT4mJik+JiYgY2FsbGJhY2spCit2b2lkIFJlbW90ZURldmljZVByb3h5OjpjcmVhdGVSZW5k
ZXJQaXBlbGluZUFzeW5jKGNvbnN0IFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OlJlbmRl
clBpcGVsaW5lPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBhdXRvIGNvbnZlcnRlZERlc2NyaXB0
b3IgPSBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGRlc2NyaXB0
b3IpOwogICAgIEFTU0VSVChjb252ZXJ0ZWREZXNjcmlwdG9yKTsKQEAgLTI5Nyw3ICsyOTcsNyBA
QCB2b2lkIFJlbW90ZURldmljZVByb3h5OjpwdXNoRXJyb3JTY29wZShQQUw6OldlYkdQVTo6RXJy
b3JGaWx0ZXIgZXJyb3JGaWx0ZXIpCiAgICAgVU5VU0VEX1ZBUklBQkxFKHNlbmRSZXN1bHQpOwog
fQogCi12b2lkIFJlbW90ZURldmljZVByb3h5Ojpwb3BFcnJvclNjb3BlKFdURjo6RnVuY3Rpb248
dm9pZChzdGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4mJik+JiYgY2FsbGJhY2spCit2
b2lkIFJlbW90ZURldmljZVByb3h5Ojpwb3BFcnJvclNjb3BlKHN0ZDo6ZnVuY3Rpb248dm9pZChz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAg
c3RkOjpvcHRpb25hbDxFcnJvcj4gZXJyb3I7CiAgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZFN5
bmMoTWVzc2FnZXM6OlJlbW90ZURldmljZTo6UG9wRXJyb3JTY29wZSgpLCB7IGVycm9yIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlRGV2aWNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZURldmljZVByb3h5LmgKaW5kZXggODAxOGEwYTQ1ODY3Li4zYTZiMzVl
ZjE0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZURldmljZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuaApAQCAtODgsOCArODgsOCBA
QCBwcml2YXRlOgogICAgIFJlZjxQQUw6OldlYkdQVTo6U2hhZGVyTW9kdWxlPiBjcmVhdGVTaGFk
ZXJNb2R1bGUoY29uc3QgUEFMOjpXZWJHUFU6OlNoYWRlck1vZHVsZURlc2NyaXB0b3ImKSBmaW5h
bDsKICAgICBSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4gY3JlYXRlQ29tcHV0ZVBp
cGVsaW5lKGNvbnN0IFBBTDo6V2ViR1BVOjpDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yJikgZmlu
YWw7CiAgICAgUmVmPFBBTDo6V2ViR1BVOjpSZW5kZXJQaXBlbGluZT4gY3JlYXRlUmVuZGVyUGlw
ZWxpbmUoY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciYpIGZpbmFs
OwotICAgIHZvaWQgY3JlYXRlQ29tcHV0ZVBpcGVsaW5lQXN5bmMoY29uc3QgUEFMOjpXZWJHUFU6
OkNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3ImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6
V2ViR1BVOjpDb21wdXRlUGlwZWxpbmU+JiYpPiYmKSBmaW5hbDsKLSAgICB2b2lkIGNyZWF0ZVJl
bmRlclBpcGVsaW5lQXN5bmMoY29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvciYsIFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5l
PiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjcmVhdGVDb21wdXRlUGlwZWxpbmVBc3luYyhjb25z
dCBQQUw6OldlYkdQVTo6Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciYsIHN0ZDo6ZnVuY3Rpb248
dm9pZChSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4mJik+JiYpIGZpbmFsOworICAg
IHZvaWQgY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luYyhjb25zdCBQQUw6OldlYkdQVTo6UmVuZGVy
UGlwZWxpbmVEZXNjcmlwdG9yJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6
UmVuZGVyUGlwZWxpbmU+JiYpPiYmKSBmaW5hbDsKIAogICAgIFJlZjxQQUw6OldlYkdQVTo6Q29t
bWFuZEVuY29kZXI+IGNyZWF0ZUNvbW1hbmRFbmNvZGVyKGNvbnN0IHN0ZDo6b3B0aW9uYWw8UEFM
OjpXZWJHUFU6OkNvbW1hbmRFbmNvZGVyRGVzY3JpcHRvcj4mKSBmaW5hbDsKICAgICBSZWY8UEFM
OjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXI+IGNyZWF0ZVJlbmRlckJ1bmRsZUVuY29kZXIo
Y29uc3QgUEFMOjpXZWJHUFU6OlJlbmRlckJ1bmRsZUVuY29kZXJEZXNjcmlwdG9yJikgZmluYWw7
CkBAIC05NywxMyArOTcsMTMgQEAgcHJpdmF0ZToKICAgICBSZWY8UEFMOjpXZWJHUFU6OlF1ZXJ5
U2V0PiBjcmVhdGVRdWVyeVNldChjb25zdCBQQUw6OldlYkdQVTo6UXVlcnlTZXREZXNjcmlwdG9y
JikgZmluYWw7CiAKICAgICB2b2lkIHB1c2hFcnJvclNjb3BlKFBBTDo6V2ViR1BVOjpFcnJvckZp
bHRlcikgZmluYWw7Ci0gICAgdm9pZCBwb3BFcnJvclNjb3BlKFdURjo6RnVuY3Rpb248dm9pZChz
dGQ6Om9wdGlvbmFsPFBBTDo6V2ViR1BVOjpFcnJvcj4mJik+JiYpIGZpbmFsOworICAgIHZvaWQg
cG9wRXJyb3JTY29wZShzdGQ6OmZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQ
VTo6RXJyb3I+JiYpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0TGFiZWxJbnRlcm5hbChjb25z
dCBTdHJpbmcmKSBmaW5hbDsKIAotICAgIERlcXVlPFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFM
OjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4mJik+PiBtX2NyZWF0ZUNvbXB1dGVQaXBlbGluZUFz
eW5jQ2FsbGJhY2tzOwotICAgIERlcXVlPFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJH
UFU6OlJlbmRlclBpcGVsaW5lPiYmKT4+IG1fY3JlYXRlUmVuZGVyUGlwZWxpbmVBc3luY0NhbGxi
YWNrczsKLSAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxQQUw6Oldl
YkdQVTo6RXJyb3I+JiYpPj4gbV9wb3BFcnJvclNjb3BlQ2FsbGJhY2tzOworICAgIERlcXVlPHN0
ZDo6ZnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkNvbXB1dGVQaXBlbGluZT4mJik+PiBt
X2NyZWF0ZUNvbXB1dGVQaXBlbGluZUFzeW5jQ2FsbGJhY2tzOworICAgIERlcXVlPHN0ZDo6ZnVu
Y3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OlJlbmRlclBpcGVsaW5lPiYmKT4+IG1fY3JlYXRl
UmVuZGVyUGlwZWxpbmVBc3luY0NhbGxiYWNrczsKKyAgICBEZXF1ZTxzdGQ6OmZ1bmN0aW9uPHZv
aWQoc3RkOjpvcHRpb25hbDxQQUw6OldlYkdQVTo6RXJyb3I+JiYpPj4gbV9wb3BFcnJvclNjb3Bl
Q2FsbGJhY2tzOwogCiAgICAgV2ViR1BVSWRlbnRpZmllciBtX2JhY2tpbmc7CiAgICAgUmVmPENv
bnZlcnRUb0JhY2tpbmdDb250ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
R1BVUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJH
UFUvUmVtb3RlR1BVUHJveHkuY3BwCmluZGV4IGU4YmNiZDFmMjA2Zi4uNGQzMTYxNWViM2YyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVHUFVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgUmVt
b3RlR1BVUHJveHk6OndhaXRVbnRpbEluaXRpYWxpemVkKCkKICAgICBtX2xvc3QgPSB0cnVlOwog
fQogCi12b2lkIFJlbW90ZUdQVVByb3h5OjpyZXF1ZXN0QWRhcHRlcihjb25zdCBQQUw6OldlYkdQ
VTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJiBvcHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVm
UHRyPFBBTDo6V2ViR1BVOjpBZGFwdGVyPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3RlR1BV
UHJveHk6OnJlcXVlc3RBZGFwdGVyKGNvbnN0IFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRhcHRlck9w
dGlvbnMmIG9wdGlvbnMsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8UEFMOjpXZWJHUFU6OkFk
YXB0ZXI+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIGlmIChtX2xvc3QpIHsKICAgICAgICAgY2Fs
bGJhY2sobnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuaAppbmRleCBiMDA2ODQzODEy
MjMuLmRmODUxZjQ0NzRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlR1BVUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVHUFVQcm94eS5oCkBAIC05NSwxMSAr
OTUsMTEgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpOyB9
CiAKLSAgICB2b2lkIHJlcXVlc3RBZGFwdGVyKGNvbnN0IFBBTDo6V2ViR1BVOjpSZXF1ZXN0QWRh
cHRlck9wdGlvbnMmLCBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVmUHRyPFBBTDo6V2ViR1BVOjpBZGFw
dGVyPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0QWRhcHRlcihjb25zdCBQQUw6Oldl
YkdQVTo6UmVxdWVzdEFkYXB0ZXJPcHRpb25zJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0cjxQ
QUw6OldlYkdQVTo6QWRhcHRlcj4mJik+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBhYmFuZG9uR1BV
UHJvY2VzcygpOwogCi0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKFJlZlB0cjxQQUw6Oldl
YkdQVTo6QWRhcHRlcj4mJik+PiBtX2NhbGxiYWNrczsKKyAgICBEZXF1ZTxzdGQ6OmZ1bmN0aW9u
PHZvaWQoUmVmUHRyPFBBTDo6V2ViR1BVOjpBZGFwdGVyPiYmKT4+IG1fY2FsbGJhY2tzOwogCiAg
ICAgV2ViR1BVSWRlbnRpZmllciBtX2JhY2tpbmc7CiAgICAgUmVmPFdlYkdQVTo6Q29udmVydFRv
QmFja2luZ0NvbnRleHQ+IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVRdWV1ZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1Jl
bW90ZVF1ZXVlUHJveHkuY3BwCmluZGV4IDYwMzBjZTZlMzMzYS4uZDM5Njk4NjViY2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVRdWV1ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1dlYkdQVS9SZW1vdGVRdWV1ZVByb3h5LmNwcApAQCAtNTksNyArNTksNyBAQCB2b2lkIFJl
bW90ZVF1ZXVlUHJveHk6OnN1Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxQQUw6
OldlYkdQVTo6Q29tbWFuZAogICAgIFVOVVNFRF9WQVJJQUJMRShzZW5kUmVzdWx0KTsKIH0KIAot
dm9pZCBSZW1vdGVRdWV1ZVByb3h5OjpvblN1Ym1pdHRlZFdvcmtEb25lKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNhbGxiYWNrKQordm9pZCBSZW1vdGVRdWV1ZVByb3h5OjpvblN1Ym1pdHRlZFdv
cmtEb25lKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGF1dG8gc2Vu
ZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVRdWV1ZTo6T25TdWJtaXR0ZWRXb3Jr
RG9uZSgpLCB7IH0pOwogICAgIFVOVVNFRF9WQVJJQUJMRShzZW5kUmVzdWx0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVF1
ZXVlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVF1ZXVlUHJveHkuaAppbmRleCBlMTJjMGMwNjk0ZmUuLmYwZmQ0Y2IzOTczOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlUXVldWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvV2ViR1BVL1JlbW90ZVF1ZXVlUHJveHkuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBzdWJtaXQoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8UEFMOjpXZWJH
UFU6OkNvbW1hbmRCdWZmZXI+PiYmKSBmaW5hbDsKIAotICAgIHZvaWQgb25TdWJtaXR0ZWRXb3Jr
RG9uZShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBvblN1Ym1pdHRl
ZFdvcmtEb25lKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgd3Jp
dGVCdWZmZXIoCiAgICAgICAgIGNvbnN0IFBBTDo6V2ViR1BVOjpCdWZmZXImLApAQCAtOTksNyAr
OTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRMYWJlbEludGVybmFsKGNvbnN0IFN0cmlu
ZyYpIGZpbmFsOwogCi0gICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX2NhbGxiYWNr
czsKKyAgICBEZXF1ZTxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1fY2FsbGJhY2tzOwogCiAgICAg
V2ViR1BVSWRlbnRpZmllciBtX2JhY2tpbmc7CiAgICAgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250
ZXh0PiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
U2hhZGVyTW9kdWxlUHJveHkuY3BwCmluZGV4IGEyYjBhZTE0NzZkMS4uYjhkMjA1Mzc2Yjk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVTaGFkZXJNb2R1bGVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlUHJveHkuY3BwCkBAIC00Niw3
ICs0Niw3IEBAIFJlbW90ZVNoYWRlck1vZHVsZVByb3h5Ojp+UmVtb3RlU2hhZGVyTW9kdWxlUHJv
eHkoKQogewogfQogCi12b2lkIFJlbW90ZVNoYWRlck1vZHVsZVByb3h5Ojpjb21waWxhdGlvbklu
Zm8oV1RGOjpGdW5jdGlvbjx2b2lkKFJlZjxQQUw6OldlYkdQVTo6Q29tcGlsYXRpb25JbmZvPiYm
KT4mJiBjYWxsYmFjaykKK3ZvaWQgUmVtb3RlU2hhZGVyTW9kdWxlUHJveHk6OmNvbXBpbGF0aW9u
SW5mbyhzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmPFBBTDo6V2ViR1BVOjpDb21waWxhdGlvbkluZm8+
JiYpPiYmIGNhbGxiYWNrKQogewogICAgIFZlY3RvcjxDb21waWxhdGlvbk1lc3NhZ2U+IG1lc3Nh
Z2VzOwogICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVTaGFk
ZXJNb2R1bGU6OkNvbXBpbGF0aW9uSW5mbygpLCB7IG1lc3NhZ2VzIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVy
TW9kdWxlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVNoYWRlck1vZHVsZVByb3h5LmgKaW5kZXggM2MyYTA4NDQ0MjJmLi45MmVkNGE1
ZDMzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVNoYWRlck1vZHVsZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlUHJveHkuaApAQCAt
NzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcm9vdCgpLnN0cmVhbUNsaWVu
dENvbm5lY3Rpb24oKS5zZW5kU3luYyhXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHJlcGx5KSwg
YmFja2luZygpLCBkZWZhdWx0U2VuZFRpbWVvdXQpOwogICAgIH0KIAotICAgIHZvaWQgY29tcGls
YXRpb25JbmZvKFdURjo6RnVuY3Rpb248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9u
SW5mbz4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25JbmZvKHN0ZDo6ZnVuY3Rp
b248dm9pZChSZWY8UEFMOjpXZWJHUFU6OkNvbXBpbGF0aW9uSW5mbz4mJik+JiYpIGZpbmFsOwog
CiAgICAgdm9pZCBzZXRMYWJlbEludGVybmFsKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>