<?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>149558</bug_id>
          
          <creation_ts>2015-09-25 12:20:59 -0700</creation_ts>
          <short_desc>PassRefPtr&lt;&gt; to RefPtr&lt;&gt; conversion in legacy IndexedDB code</short_desc>
          <delta_ts>2015-09-25 12:47:30 -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>WebCore Misc.</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1128744</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-25 12:20:59 -0700</bug_when>
    <thetext>PassRefPtr&lt;&gt; to RefPtr&lt;&gt; conversion in legacy IndexedDB code

As I fill in IDB interfaces in the modern IDB implementation, I&apos;d rather not be dealing with PassRefPtr at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128745</commentid>
    <comment_count>1</comment_count>
      <attachid>261932</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-25 12:24:08 -0700</bug_when>
    <thetext>Created attachment 261932
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128746</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-25 12:25:51 -0700</bug_when>
    <thetext>Attachment 261932 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/IDBObjectStore.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBFactory.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBDatabaseError.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBCursor.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/legacy/LegacyObjectStore.h:41:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/legacy/LegacyCursor.h:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBAny.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/IDBDatabase.h:39:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 8 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128749</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-25 12:47:30 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/190250</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261932</attachid>
            <date>2015-09-25 12:24:08 -0700</date>
            <delta_ts>2015-09-25 12:44:07 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>87330</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZjg4NWUzLi41OGRkZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA0
IEBACisyMDE1LTA5LTI1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBQYXNzUmVmUHRyPD4gdG8gUmVmUHRyPD4gY29udmVyc2lvbiBpbiBsZWdhY3kgSW5kZXhl
ZERCIGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDk1NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2aW9yIGNoYW5nZS4pCisgICAgICAgIAorICAgICAgICBU
aGlzIHBhdGNoIGRvZXMgbm90IGF0dGVtcHQgdG8gY29tcGxldGVseSByZW1vdmUgYWxsIFBhc3NS
ZWZQdHIgdXNhZ2UgaW5zaWRlIGxlZ2FjeSBJREIuCisKKyAgICAgICAgSXQganVzdCBzd2l0Y2hl
cyBvdmVyIGFsbCBQYXNzUmVmUHRyIHVzYWdlIGF0IHRoZSB0b3AgbGV2ZWwgSURCIGludGVyZmFj
ZXMgdGhhdCAKKyAgICAgICAgbW9kZXJuIElEQiBpcyBpbXBsZW1lbnRpbmcuCisKKyAgICAgICAg
VGhlIHJlc3Qgb2YgdGhlIHVzYWdlIGluc2lkZSB0aGUgbGVnYWN5IGltcGxlbWVudGF0aW9uIGNh
biBiZSBkZWFsdCB3aXRoIGxhdGVyIHZpYSBgZ2l0IHJtYC4KKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkFueS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmg6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFcnJvci5oOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNs
aWVudDo6SURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDbGllbnQ6OklEQkZhY3Rvcnk6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJGYWN0b3J5OjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkZhY3RvcnlJbXBsLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQlJlcXVlc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCUmVxdWVzdDo6cmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCUmVx
dWVzdDo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJSZXF1ZXN0Ojpz
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJSZXF1ZXN0Ojp0cmFuc2Fj
dGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlJlcXVlc3RJbXBs
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeUFueS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lBbnk6OmNyZWF0ZUludmFsaWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5QW55OjpjcmVhdGVOdWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUFu
eTo6Y3JlYXRlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUFueTo6ZG9tU3RyaW5n
TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lBbnk6OmlkYkN1cnNvcik6CisgICAgICAg
IChXZWJDb3JlOjpMZWdhY3lBbnk6OmlkYkN1cnNvcldpdGhWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpMZWdhY3lBbnk6OmlkYkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUFu
eTo6aWRiRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lBbnk6OmlkYkluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUFueTo6aWRiT2JqZWN0U3RvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6TGVnYWN5QW55OjppZGJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lBbnk6OkxlZ2FjeUFueSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5
L0xlZ2FjeUFueS5oOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5QW55OjpjcmVhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lDdXJzb3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGVnYWN5Q3Vyc29yOjp1cGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5Q3Vyc29yOjpkZWxldGVGdW5jdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
bGVnYWN5L0xlZ2FjeUN1cnNvci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2Fj
eS9MZWdhY3lEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEYXRhYmFzZTo6
b2JqZWN0U3RvcmVOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lEYXRhYmFzZTo6Y3Jl
YXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RGF0YWJhc2U6OnRyYW5z
YWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5RGF0YWJh
c2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5RmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUZhY3Rvcnk6Om9wZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5RmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2xlZ2FjeS9MZWdhY3lGYWN0b3J5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvbGVnYWN5L0xlZ2FjeUluZGV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUluZGV4
OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUluZGV4Ojpjb3VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lJbmRleDo6b3BlbktleUN1cnNvcik6CisgICAgICAgIChX
ZWJDb3JlOjpMZWdhY3lJbmRleDo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUluZGV4
OjpnZXRLZXkpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lJbmRl
eC5oOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5kZXg6OmxlZ2FjeU9iamVjdFN0b3JlKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5T2JqZWN0U3RvcmUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5T2JqZWN0U3RvcmU6OmluZGV4TmFtZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5T2JqZWN0U3RvcmU6OmdldCk6CisgICAgICAgIChXZWJDb3Jl
OjpMZWdhY3lPYmplY3RTdG9yZTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeU9iamVj
dFN0b3JlOjpwdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5T2JqZWN0U3RvcmU6OmRlbGV0
ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeU9iamVjdFN0b3JlOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgpOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5T2JqZWN0U3RvcmU6OmluZGV4KToKKyAgICAgICAgKFdlYkNv
cmU6OkxlZ2FjeU9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6Okxl
Z2FjeU9iamVjdFN0b3JlOjpjb3VudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGVn
YWN5L0xlZ2FjeU9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lPYmplY3RT
dG9yZTo6a2V5UGF0aEFueSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lPYmplY3RTdG9yZTo6
dHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5T2JqZWN0U3RvcmU6OmNyZWF0
ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeU9iamVjdFN0b3JlOjpjb3VudCk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVJlcXVlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5UmVxdWVzdDo6cmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVJlcXVlc3Q6OmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlcXVlc3Q6
OnNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZXF1ZXN0Ojp0cmFuc2FjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lSZXF1ZXN0Lmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxlZ2FjeVRyYW5zYWN0aW9uOjpvYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKwogMjAxNS0wOS0yNSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIEZpeCB0aGUgYnJv
a2VuICFFTkFCTEUoU1RSRUFNX0FQSSkgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQW55LmgKaW5kZXggNDQwNmNkZC4uYWI5N2IzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJJ
REJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8Ymlu
ZGluZ3MvU2NyaXB0VmFsdWUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcwLDE0
ICs3MCwxNCBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29u
c3QgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBkb21TdHJpbmdM
aXN0KCkgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGlkYkN1cnNvcigp
ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQ3Vyc29yV2l0aFZhbHVlPiBpZGJDdXJz
b3JXaXRoVmFsdWUoKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBp
ZGJEYXRhYmFzZSgpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCRmFjdG9yeT4gaWRi
RmFjdG9yeSgpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCSW5kZXg+IGlkYkluZGV4
KCkgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gaWRiT2JqZWN0
U3RvcmUoKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBpZGJU
cmFuc2FjdGlvbigpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBkb21T
dHJpbmdMaXN0KCkgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQkN1cnNvcj4gaWRiQ3Vyc29y
KCkgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gaWRiQ3Vyc29y
V2l0aFZhbHVlKCkgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRh
YmFzZSgpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJGYWN0b3J5PiBpZGJGYWN0b3J5KCkg
PSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQkluZGV4PiBpZGJJbmRleCgpID0gMDsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxJREJPYmplY3RTdG9yZT4gaWRiT2JqZWN0U3RvcmUoKSA9IDA7CisgICAg
dmlydHVhbCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IGlkYlRyYW5zYWN0aW9uKCkgPSAwOwogICAg
IHZpcnR1YWwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlKCkgPSAw
OwogICAgIHZpcnR1YWwgaW50NjRfdCBpbnRlZ2VyKCkgPSAwOwogICAgIHZpcnR1YWwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5oCmluZGV4IGM2ZGUzNjguLjQ2ZTVkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVk
ZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8
YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIApAQCAtNjYsMTIgKzY2LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIElEQkFueSogc291cmNlKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IHVwZGF0ZShKU0M6OkV4ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJS
ZXF1ZXN0PiB1cGRhdGUoSlNDOjpFeGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYs
IEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkdmFuY2UodW5zaWduZWQg
bG9uZywgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICAvLyBGSVhNRTogVHJ5IHRvIG1vZGlmeSB0
aGUgY29kZSBnZW5lcmF0b3Igc28gdGhpcyBvdmVybG9hZCBpcyB1bm5lZWRlZC4KICAgICB2aXJ0
dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0
aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVGdW5jdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVs
ZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBJ
REJDdXJzb3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5oCmluZGV4IGE1YTk2MTMuLjllZjdiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUg
IklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0V3JhcHBhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKQEAgLTU1LDEyICs1NSwxMiBAQCBwdWJsaWM6CiAgICAgLy8gSW1wbGVtZW50
IHRoZSBJREwKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyBuYW1lKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdWludDY0X3QgdmVyc2lvbigpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4gb2JqZWN0U3RvcmVOYW1lcygpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBvYmplY3RTdG9yZU5hbWVzKCkgY29uc3QgPSAw
OwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBjcmVhdGVPYmplY3RT
dG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2Rl
JikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gY3JlYXRlT2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRv
SW5jcmVtZW50LCBFeGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBtb2RlLCBFeGNlcHRpb25Db2RlJikgPSAw
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgbW9kZSwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJPYmplY3RTdG9yZT4g
Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBEaWN0aW9uYXJ5Jiwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJPYmplY3RTdG9yZT4g
Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwg
Ym9vbCBhdXRvSW5jcmVtZW50LCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVm
UHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIG1vZGUsIEV4Y2VwdGlvbkNvZGUm
KSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIG1vZGUs
IEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlRXJyb3IuaAppbmRleCA3YTkzOWI1Li40NGE3MGQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUVycm9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFcnJvci5oCkBA
IC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIElEQkRhdGFiYXNlRXJyb3JfaAogCiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VFeGNlcHRpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmgKaW5kZXggNDQ2ZTEwNy4uMDgwNzRlOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTI4LDcgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFw
cGFibGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTUxLDExICs1MSwxMSBAQCBw
dWJsaWM6CiAgICAgLy8gRklYTUU6IGdldERhdGFiYXNlTmFtZXMgaXMgbm8gbG9uZ2VyIGEgd2Vi
LWZhY2luZyBBUEksIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIElEQkZhY3RvcnkuCiAgICAg
Ly8gVGhlIFdlYiBJbnNwZWN0b3IgY3VycmVudGx5IHVzZXMgdGhpcyB0byBlbnVtZXJhdGUgdGhl
IGxpc3Qgb2YgZGF0YWJhc2VzLCBidXQgaXMgbW9yZSBjb21wbGljYXRlZCBhcyBhIHJlc3VsdC4K
ICAgICAvLyBXZSBzaG91bGQgcHJvdmlkZSBhIHNpbXBsZXIgQVBJIHRvIHRoZSBXZWIgSW5zcGVj
dG9yIHRoZW4gcmVtb3ZlIGdldERhdGFiYXNlTmFtZXMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IGdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4
Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gZ2V0RGF0
YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpID0gMDsK
IAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIHZl
cnNpb24sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9w
ZW5EQlJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8
SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQk9w
ZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
bmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Cisg
ICAgdmlydHVhbCBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gZGVsZXRlRGF0YWJhc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0g
MDsKIAogICAgIHZpcnR1YWwgc2hvcnQgY21wKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZmlyc3QsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlJiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCmluZGV4IGFiMzUxZWUuLjVjODdmNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaApAQCAtNDksMzQgKzQ5
LDM0IEBAIHB1YmxpYzoKIAogICAgIC8vIEltcGxlbWVudCB0aGUgSURMCiAgICAgdmlydHVhbCBj
b25zdCBTdHJpbmcgbmFtZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURC
T2JqZWN0U3RvcmU+IG9iamVjdFN0b3JlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJBbnk+IGtleVBhdGhBbnkoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8
SURCT2JqZWN0U3RvcmU+IG9iamVjdFN0b3JlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVm
UHRyPElEQkFueT4ga2V5UGF0aEFueSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IElE
QktleVBhdGgga2V5UGF0aCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBtdWx0aUVudHJ5KCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgaW50NjRfdCBpZCgpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRp
b25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vy
c29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3Bl
bkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJikg
PSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBj
b25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFs
IFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBF
eGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5D
dXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwgRXhjZXB0aW9uQ29k
ZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBF
eGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5D
dXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURC
UmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlv
bkNvZGUmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Cisg
ICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4g
Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwgRXhjZXB0aW9uQ29k
ZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0
aW9uQ29kZSYpID0gMDsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVu
S2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJikgPSAwOwot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYp
ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtl
eSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJikgPSAwOwot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBjb25z
dCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJl
ZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBF
eGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5L
ZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwgRXhjZXB0aW9u
Q29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29y
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYg
a2V5LCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+
IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBS
ZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rp
b24sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJl
cXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSURCS2V5UmFuZ2UqLCBFeGNlcHRp
b25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IGdldChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBn
ZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBF
eGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBn
ZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVx
dWVzdD4gZ2V0S2V5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJLZXlSYW5nZSosIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gZ2V0S2V5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5
LCBFeGNlcHRpb25Db2RlJikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgSURCSW5kZXgoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCmlu
ZGV4IDlkOTAwNjQuLjZkZWJmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkRp
Y3Rpb25hcnkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0
V3JhcHBhYmxlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC02MiwzNiArNjIsMzYg
QEAgcHVibGljOgogICAgIC8vIEltcGxlbWVudCB0aGUgSURCT2JqZWN0U3RvcmUgSURMCiAgICAg
dmlydHVhbCBpbnQ2NF90IGlkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5n
IG5hbWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkFueT4ga2V5UGF0
aEFueSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJBbnk+IGtleVBhdGhBbnko
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBJREJLZXlQYXRoIGtleVBhdGgoKSBjb25z
dCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGluZGV4TmFtZXMo
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFu
c2FjdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBp
bmRleE5hbWVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlRyYW5zYWN0aW9u
PiB0cmFuc2FjdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYXV0b0luY3JlbWVu
dCgpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBhZGQo
SlNDOjpFeGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYsIEV4Y2VwdGlvbkNvZGUm
KSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChKU0M6OkV4ZWNT
dGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlv
biwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUm
KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNl
cHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRp
b25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBhZGQoSlND
OjpFeGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYsIGNvbnN0IERlcHJlY2F0ZWQ6
OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IHB1dChKU0M6OkV4ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlJiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29k
ZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rp
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNl
cHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBkZWxl
dGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gY2xlYXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNv
ZGUmKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCSW5kZXg+IGNyZWF0ZUluZGV4
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktl
eVBhdGgmLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBFeGNlcHRpb25Db2RlJikgPSAw
OwotCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJpbmcm
IG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVz
dD4gYWRkKEpTQzo6RXhlY1N0YXRlJiwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBFeGNlcHRp
b25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChKU0M6OkV4
ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsK
KyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJl
cXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVu
Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJl
cXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwg
Y29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVh
bCBSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rp
b24sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0
PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVx
dWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJLZXlSYW5nZSosIEV4Y2VwdGlv
bkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gYWRkKEpTQzo6RXhl
Y1N0YXRlJiwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBjb25zdCBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElE
QlJlcXVlc3Q+IHB1dChKU0M6OkV4ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpID0gMDsK
KyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgSURCS2V5UmFuZ2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZp
cnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IGRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2Rl
JikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IGNsZWFyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJikgPSAwOworCisgICAgdmlydHVhbCBSZWZQdHI8
SURCSW5kZXg+IGNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5
LCBFeGNlcHRpb25Db2RlJikgPSAwOworCisgICAgdmlydHVhbCBSZWZQdHI8SURCSW5kZXg+IGlu
ZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgPSAw
OwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4sIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwg
UmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRp
b25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBJREJLZXlSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Cisg
ICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSA9
IDA7CiAKIHByb3RlY3RlZDoKICAgICBJREJPYmplY3RTdG9yZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDQ0ZmI5ZTIuLjZiNTdkNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAg
LTQ5LDExICs0OSwxMSBAQCBjbGFzcyBJREJSZXF1ZXN0IDogcHVibGljIFNjcmlwdFdyYXBwYWJs
ZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YgogcHVibGljOgogICAgIHZp
cnR1YWwgfklEQlJlcXVlc3QoKSB7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+
IHJlc3VsdChFeGNlcHRpb25Db2RlJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPElE
QkFueT4gcmVzdWx0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB1bnNp
Z25lZCBzaG9ydCBlcnJvckNvZGUoRXhjZXB0aW9uQ29kZSYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RE9NRXJyb3I+IGVycm9yKEV4Y2VwdGlvbkNvZGUmKSBjb25zdCA9IDA7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlKCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBSZWZQdHI8RE9NRXJyb3I+IGVycm9yKEV4Y2VwdGlvbkNvZGUmKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8SURCQW55PiBzb3VyY2UoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKCkgY29uc3Qg
PSAwOwogCiAgICAgLy8gRGVmaW5lZCBpbiB0aGUgSURMCiAgICAgZW51bSBSZWFkeVN0YXRlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5o
CmluZGV4IDA1ODhkZDEuLjVhODc1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNjIsOCArNjIsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gSW1wbGVtZW50IHRoZSBJREJUcmFuc2FjdGlvbiBJREwKICAgICB2aXJ0dWFsIGNvbnN0
IFN0cmluZyYgbW9kZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIElEQkRhdGFiYXNlKiBkYigp
IGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RE9NRXJyb3I+IGVycm9yKCkgY29u
c3QgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gb2JqZWN0U3Rv
cmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwg
UmVmUHRyPERPTUVycm9yPiBlcnJvcigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJ
REJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25D
b2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydChFeGNlcHRpb25Db2RlJikgPSAwOwog
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbj46OnJlZjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUlt
cGwuY3BwCmluZGV4IDcwZmVhZDAuLjJhOTdkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJbXBsLmNwcApAQCAt
NjgsMTkgKzY4LDE5IEBAIElEQkZhY3Rvcnk6OklEQkZhY3RvcnkoKQogCiB9CiAKLVBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpCitSZWZQdHI8V2ViQ29yZTo6SURC
UmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUmVmUHRyPFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9w
ZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCRmFjdG9yeTo6b3Bl
biIpOwogICAgIAogICAgIHJldHVybiBvcGVuSW50ZXJuYWwoY29udGV4dCwgbmFtZSwgMCwgZWMp
LnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0PiBJ
REJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQorUmVmUHRyPFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25l
ZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQkZhY3Rvcnk6Om9wZW4iKTsKICAgICAKQEAgLTExNiw3ICsxMTYsNyBAQCBSZWZQ
dHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbkludGVybmFsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleAogICAgIHJldHVybiBhZG9wdFJlZigmcmVxdWVzdC5sZWFrUmVm
KCkpOwogfQogCi1QYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rv
cnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8V2ViQ29yZTo6SURCT3Bl
bkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBMT0coSW5kZXhlZERCLCAiSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UiKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3Rv
cnlJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFj
dG9yeUltcGwuaAppbmRleCA4YzIxNWRkLi4wM2VkNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwuaApAQCAt
MzksMTEgKzM5LDExIEBAIGNsYXNzIElEQkZhY3RvcnkgOiBwdWJsaWMgV2ViQ29yZTo6SURCRmFj
dG9yeSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJREJGYWN0b3J5PiBjcmVhdGUoKTsKIAot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBnZXREYXRhYmFzZU5h
bWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmlu
YWw7CisgICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6SURCUmVxdWVzdD4gZ2V0RGF0YWJhc2VO
YW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZp
bmFsOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q+
IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0
aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFs
IFJlZlB0cjxXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5h
bDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIHVuc2lnbmVkIGxvbmcg
bG9uZyB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCBSZWZQdHI8V2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdD4gZGVsZXRlRGF0YWJhc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlIGZpbmFsOwogCiAgICAgdmlydHVhbCBzaG9ydCBjbXAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBmaXJzdCwgY29uc3QgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUmIHNlY29uZCwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFs
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlJlcXVlc3RJbXBsLmNwcAppbmRleCBjZjdjNTVhLi4wOGZjMDY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCUmVxdWVzdEltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJSZXF1
ZXN0SW1wbC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogfQogCi1QYXNzUmVmUHRyPElEQkFueT4g
SURCUmVxdWVzdDo6cmVzdWx0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdAorUmVmUHRyPElEQkFueT4g
SURCUmVxdWVzdDo6cmVzdWx0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdAogewogICAgIHJldHVybiBu
dWxscHRyOwogfQpAQCAtNDgsMTcgKzQ4LDE3IEBAIHVuc2lnbmVkIHNob3J0IElEQlJlcXVlc3Q6
OmVycm9yQ29kZShFeGNlcHRpb25Db2RlJikgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotUGFz
c1JlZlB0cjxET01FcnJvcj4gSURCUmVxdWVzdDo6ZXJyb3IoRXhjZXB0aW9uQ29kZSYpIGNvbnN0
CitSZWZQdHI8RE9NRXJyb3I+IElEQlJlcXVlc3Q6OmVycm9yKEV4Y2VwdGlvbkNvZGUmKSBjb25z
dAogewogICAgIHJldHVybiBudWxscHRyOwogfQogCi1QYXNzUmVmUHRyPElEQkFueT4gSURCUmVx
dWVzdDo6c291cmNlKCkgY29uc3QKK1JlZlB0cjxJREJBbnk+IElEQlJlcXVlc3Q6OnNvdXJjZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb24+IElEQlJlcXVlc3Q6OnRyYW5zYWN0aW9uKCkgY29uc3QKK1JlZlB0cjxJREJUcmFuc2Fj
dGlvbj4gSURCUmVxdWVzdDo6dHJhbnNhY3Rpb24oKSBjb25zdAogewogICAgIHJldHVybiBudWxs
cHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlJlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCUmVxdWVzdEltcGwuaAppbmRleCAwYmFkN2FjLi5mOWRkMDEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCUmVxdWVzdEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCUmVxdWVz
dEltcGwuaApAQCAtMzYsMTEgKzM2LDExIEBAIG5hbWVzcGFjZSBJREJDbGllbnQgewogCiBjbGFz
cyBJREJSZXF1ZXN0IDogcHVibGljIFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3QsIHB1YmxpYyBS
ZWZDb3VudGVkPElEQlJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCQW55PiByZXN1bHQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgUmVmUHRyPElEQkFueT4gcmVzdWx0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGVycm9yQ29kZShFeGNlcHRpb25Db2RlJikgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERPTUVycm9yPiBlcnJvcihFeGNl
cHRpb25Db2RlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkFu
eT4gc291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uPiB0cmFuc2FjdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVm
UHRyPERPTUVycm9yPiBlcnJvcihFeGNlcHRpb25Db2RlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBSZWZQdHI8SURCQW55PiBzb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgLy8gRXZlbnRUYXJnZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lBbnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGVnYWN5L0xlZ2FjeUFueS5jcHAKaW5kZXggZDM4MmMxMy4uZTIyYTJlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeUFu
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2Fj
eUFueS5jcHAKQEAgLTM4LDE3ICszOCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NSZWZQdHI8TGVnYWN5QW55PiBMZWdhY3lBbnk6OmNyZWF0ZUludmFsaWQoKQorUmVmUHRyPExl
Z2FjeUFueT4gTGVnYWN5QW55OjpjcmVhdGVJbnZhbGlkKCkKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IExlZ2FjeUFueShUeXBlOjpVbmRlZmluZWQpKTsKIH0KIAotUGFzc1JlZlB0cjxMZWdh
Y3lBbnk+IExlZ2FjeUFueTo6Y3JlYXRlTnVsbCgpCitSZWZQdHI8TGVnYWN5QW55PiBMZWdhY3lB
bnk6OmNyZWF0ZU51bGwoKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgTGVnYWN5QW55KFR5
cGU6Ok51bGwpKTsKIH0KIAotUGFzc1JlZlB0cjxMZWdhY3lBbnk+IExlZ2FjeUFueTo6Y3JlYXRl
U3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCitSZWZQdHI8TGVnYWN5QW55PiBMZWdhY3lBbnk6
OmNyZWF0ZVN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTGVnYWN5QW55KHZhbHVlKSk7CiB9CkBAIC02NCw0OSArNjQsNDkgQEAgTGVnYWN5QW55
Ojp+TGVnYWN5QW55KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBMZWdhY3lB
bnk6OmRvbVN0cmluZ0xpc3QoKQorUmVmUHRyPERPTVN0cmluZ0xpc3Q+IExlZ2FjeUFueTo6ZG9t
U3RyaW5nTGlzdCgpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBUeXBlOjpET01TdHJpbmdMaXN0
KTsKICAgICByZXR1cm4gbV9kb21TdHJpbmdMaXN0OwogfQogCi1QYXNzUmVmUHRyPElEQkN1cnNv
cj4gTGVnYWN5QW55OjppZGJDdXJzb3IoKQorUmVmUHRyPElEQkN1cnNvcj4gTGVnYWN5QW55Ojpp
ZGJDdXJzb3IoKQogewogICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6SURCQ3Vyc29yKTsKICAg
ICByZXR1cm4gbV9pZGJDdXJzb3I7CiB9CiAKLVBhc3NSZWZQdHI8SURCQ3Vyc29yV2l0aFZhbHVl
PiBMZWdhY3lBbnk6OmlkYkN1cnNvcldpdGhWYWx1ZSgpCitSZWZQdHI8SURCQ3Vyc29yV2l0aFZh
bHVlPiBMZWdhY3lBbnk6OmlkYkN1cnNvcldpdGhWYWx1ZSgpCiB7CiAgICAgQVNTRVJUKG1fdHlw
ZSA9PSBUeXBlOjpJREJDdXJzb3JXaXRoVmFsdWUpOwogICAgIHJldHVybiBtX2lkYkN1cnNvcldp
dGhWYWx1ZTsKIH0KIAotUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gTGVnYWN5QW55OjppZGJEYXRh
YmFzZSgpCitSZWZQdHI8SURCRGF0YWJhc2U+IExlZ2FjeUFueTo6aWRiRGF0YWJhc2UoKQogewog
ICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6SURCRGF0YWJhc2UpOwogICAgIHJldHVybiBtX2lk
YkRhdGFiYXNlOwogfQogCi1QYXNzUmVmUHRyPElEQkZhY3Rvcnk+IExlZ2FjeUFueTo6aWRiRmFj
dG9yeSgpCitSZWZQdHI8SURCRmFjdG9yeT4gTGVnYWN5QW55OjppZGJGYWN0b3J5KCkKIHsKICAg
ICBBU1NFUlQobV90eXBlID09IFR5cGU6OklEQkZhY3RvcnkpOwogICAgIHJldHVybiBtX2lkYkZh
Y3Rvcnk7CiB9CiAKLVBhc3NSZWZQdHI8SURCSW5kZXg+IExlZ2FjeUFueTo6aWRiSW5kZXgoKQor
UmVmUHRyPElEQkluZGV4PiBMZWdhY3lBbnk6OmlkYkluZGV4KCkKIHsKICAgICBBU1NFUlQobV90
eXBlID09IFR5cGU6OklEQkluZGV4KTsKICAgICByZXR1cm4gbV9pZGJJbmRleDsKIH0KIAotUGFz
c1JlZlB0cjxJREJPYmplY3RTdG9yZT4gTGVnYWN5QW55OjppZGJPYmplY3RTdG9yZSgpCitSZWZQ
dHI8SURCT2JqZWN0U3RvcmU+IExlZ2FjeUFueTo6aWRiT2JqZWN0U3RvcmUoKQogewogICAgIEFT
U0VSVChtX3R5cGUgPT0gVHlwZTo6SURCT2JqZWN0U3RvcmUpOwogICAgIHJldHVybiBtX2lkYk9i
amVjdFN0b3JlOwogfQogCi1QYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBMZWdhY3lBbnk6Omlk
YlRyYW5zYWN0aW9uKCkKK1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gTGVnYWN5QW55OjppZGJUcmFu
c2FjdGlvbigpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBUeXBlOjpJREJUcmFuc2FjdGlvbik7
CiAgICAgcmV0dXJuIG1faWRiVHJhbnNhY3Rpb247CkBAIC0xMzAsNTYgKzEzMCw1NiBAQCBpbnQ2
NF90IExlZ2FjeUFueTo6aW50ZWdlcigpCiAgICAgcmV0dXJuIG1faW50ZWdlcjsKIH0KIAotTGVn
YWN5QW55OjpMZWdhY3lBbnkoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB2YWx1ZSkKK0xlZ2Fj
eUFueTo6TGVnYWN5QW55KFJlZlB0cjxET01TdHJpbmdMaXN0PiB2YWx1ZSkKICAgICA6IG1fdHlw
ZShUeXBlOjpET01TdHJpbmdMaXN0KQogICAgICwgbV9kb21TdHJpbmdMaXN0KHZhbHVlKQogICAg
ICwgbV9pbnRlZ2VyKDApCiB7CiB9CiAKLUxlZ2FjeUFueTo6TGVnYWN5QW55KFBhc3NSZWZQdHI8
TGVnYWN5Q3Vyc29yV2l0aFZhbHVlPiB2YWx1ZSkKK0xlZ2FjeUFueTo6TGVnYWN5QW55KFJlZlB0
cjxMZWdhY3lDdXJzb3JXaXRoVmFsdWU+IHZhbHVlKQogICAgIDogbV90eXBlKFR5cGU6OklEQkN1
cnNvcldpdGhWYWx1ZSkKICAgICAsIG1faWRiQ3Vyc29yV2l0aFZhbHVlKHZhbHVlKQogICAgICwg
bV9pbnRlZ2VyKDApCiB7CiB9CiAKLUxlZ2FjeUFueTo6TGVnYWN5QW55KFBhc3NSZWZQdHI8TGVn
YWN5Q3Vyc29yPiB2YWx1ZSkKK0xlZ2FjeUFueTo6TGVnYWN5QW55KFJlZlB0cjxMZWdhY3lDdXJz
b3I+IHZhbHVlKQogICAgIDogbV90eXBlKFR5cGU6OklEQkN1cnNvcikKICAgICAsIG1faWRiQ3Vy
c29yKHZhbHVlKQogICAgICwgbV9pbnRlZ2VyKDApCiB7CiB9CiAKLUxlZ2FjeUFueTo6TGVnYWN5
QW55KFBhc3NSZWZQdHI8TGVnYWN5RGF0YWJhc2U+IHZhbHVlKQorTGVnYWN5QW55OjpMZWdhY3lB
bnkoUmVmUHRyPExlZ2FjeURhdGFiYXNlPiB2YWx1ZSkKICAgICA6IG1fdHlwZShUeXBlOjpJREJE
YXRhYmFzZSkKICAgICAsIG1faWRiRGF0YWJhc2UodmFsdWUpCiAgICAgLCBtX2ludGVnZXIoMCkK
IHsKIH0KIAotTGVnYWN5QW55OjpMZWdhY3lBbnkoUGFzc1JlZlB0cjxMZWdhY3lGYWN0b3J5PiB2
YWx1ZSkKK0xlZ2FjeUFueTo6TGVnYWN5QW55KFJlZlB0cjxMZWdhY3lGYWN0b3J5PiB2YWx1ZSkK
ICAgICA6IG1fdHlwZShUeXBlOjpJREJGYWN0b3J5KQogICAgICwgbV9pZGJGYWN0b3J5KHZhbHVl
KQogICAgICwgbV9pbnRlZ2VyKDApCiB7CiB9CiAKLUxlZ2FjeUFueTo6TGVnYWN5QW55KFBhc3NS
ZWZQdHI8TGVnYWN5SW5kZXg+IHZhbHVlKQorTGVnYWN5QW55OjpMZWdhY3lBbnkoUmVmUHRyPExl
Z2FjeUluZGV4PiB2YWx1ZSkKICAgICA6IG1fdHlwZShUeXBlOjpJREJJbmRleCkKICAgICAsIG1f
aWRiSW5kZXgodmFsdWUpCiAgICAgLCBtX2ludGVnZXIoMCkKIHsKIH0KIAotTGVnYWN5QW55OjpM
ZWdhY3lBbnkoUGFzc1JlZlB0cjxMZWdhY3lUcmFuc2FjdGlvbj4gdmFsdWUpCitMZWdhY3lBbnk6
OkxlZ2FjeUFueShSZWZQdHI8TGVnYWN5VHJhbnNhY3Rpb24+IHZhbHVlKQogICAgIDogbV90eXBl
KFR5cGU6OklEQlRyYW5zYWN0aW9uKQogICAgICwgbV9pZGJUcmFuc2FjdGlvbih2YWx1ZSkKICAg
ICAsIG1faW50ZWdlcigwKQogewogfQogCi1MZWdhY3lBbnk6OkxlZ2FjeUFueShQYXNzUmVmUHRy
PExlZ2FjeU9iamVjdFN0b3JlPiB2YWx1ZSkKK0xlZ2FjeUFueTo6TGVnYWN5QW55KFJlZlB0cjxM
ZWdhY3lPYmplY3RTdG9yZT4gdmFsdWUpCiAgICAgOiBtX3R5cGUoVHlwZTo6SURCT2JqZWN0U3Rv
cmUpCiAgICAgLCBtX2lkYk9iamVjdFN0b3JlKHZhbHVlKQogICAgICwgbV9pbnRlZ2VyKDApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5
QW55LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5QW55
LmgKaW5kZXggOWY2YWIwNS4uYzQzYWU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeUFueS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lBbnkuaApAQCAtNTksMjUgKzU5LDI2IEBAIGNs
YXNzIExlZ2FjeVRyYW5zYWN0aW9uOwogCiBjbGFzcyBMZWdhY3lBbnkgOiBwdWJsaWMgSURCQW55
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxMZWdhY3lBbnk+IGNyZWF0ZUludmFs
aWQoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxMZWdhY3lBbnk+IGNyZWF0ZU51bGwoKTsKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxMZWdhY3lBbnk+IGNyZWF0ZVN0cmluZyhjb25zdCBTdHJpbmcm
KTsKKyAgICBzdGF0aWMgUmVmUHRyPExlZ2FjeUFueT4gY3JlYXRlSW52YWxpZCgpOworICAgIHN0
YXRpYyBSZWZQdHI8TGVnYWN5QW55PiBjcmVhdGVOdWxsKCk7CisgICAgc3RhdGljIFJlZlB0cjxM
ZWdhY3lBbnk+IGNyZWF0ZVN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPExlZ2FjeUFueT4gY3JlYXRlKFQqIGlkYk9i
amVjdCkKKyAgICBzdGF0aWMgUmVmUHRyPExlZ2FjeUFueT4gY3JlYXRlKFQqIGlkYk9iamVjdCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTGVnYWN5QW55KGlkYk9iamVjdCkp
OwogICAgIH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PExlZ2FjeUFueT4gY3JlYXRlKGNvbnN0IFQmIGlkYk9iamVjdCkKKyAgICBzdGF0aWMgUmVmUHRy
PExlZ2FjeUFueT4gY3JlYXRlKGNvbnN0IFQmIGlkYk9iamVjdCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgTGVnYWN5QW55KGlkYk9iamVjdCkpOwogICAgIH0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPExlZ2FjeUFueT4gY3JlYXRl
KFBhc3NSZWZQdHI8VD4gaWRiT2JqZWN0KQorICAgIHN0YXRpYyBSZWZQdHI8TGVnYWN5QW55PiBj
cmVhdGUoUGFzc1JlZlB0cjxUPiBpZGJPYmplY3QpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IExlZ2FjeUFueShpZGJPYmplY3QpKTsKKyAgICAgICAgUmVmUHRyPFQ+IHJlZk9i
amVjdCA9IGlkYk9iamVjdDsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMZWdhY3lBbnko
V1RGOjptb3ZlKHJlZk9iamVjdCkpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TGVn
YWN5QW55PiBjcmVhdGUoaW50NjRfdCB2YWx1ZSkKKyAgICBzdGF0aWMgUmVmUHRyPExlZ2FjeUFu
eT4gY3JlYXRlKGludDY0X3QgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IExlZ2FjeUFueSh2YWx1ZSkpOwogICAgIH0KQEAgLTg1LDE0ICs4NiwxNCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJu
IG1fdHlwZTsgfQogICAgIC8vIFVzZSB0eXBlKCkgdG8gZmlndXJlIG91dCB3aGljaCBvbmUgb2Yg
dGhlc2UgeW91J3JlIGFsbG93ZWQgdG8gY2FsbC4KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gZG9tU3RyaW5nTGlzdCgpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxJREJDdXJzb3I+IGlkYkN1cnNvcigpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJDdXJzb3JXaXRoVmFsdWU+IGlkYkN1cnNvcldpdGhWYWx1ZSgp
IG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gaWRi
RGF0YWJhc2UoKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCRmFj
dG9yeT4gaWRiRmFjdG9yeSgpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJJbmRleD4gaWRiSW5kZXgoKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SURCT2JqZWN0U3RvcmU+IGlkYk9iamVjdFN0b3JlKCkgb3ZlcnJpZGUgZmluYWw7Ci0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBpZGJUcmFuc2FjdGlvbigpIG92
ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGRvbVN0cmlu
Z0xpc3QoKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJDdXJzb3I+IGlk
YkN1cnNvcigpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmUHRyPElEQkN1cnNvcldp
dGhWYWx1ZT4gaWRiQ3Vyc29yV2l0aFZhbHVlKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlKCkgb3ZlcnJpZGUgZmluYWw7CisgICAg
dmlydHVhbCBSZWZQdHI8SURCRmFjdG9yeT4gaWRiRmFjdG9yeSgpIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgUmVmUHRyPElEQkluZGV4PiBpZGJJbmRleCgpIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBpZGJPYmplY3RTdG9yZSgpIG92ZXJy
aWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiBpZGJUcmFuc2Fj
dGlvbigpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUmIHNjcmlwdFZhbHVlKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBpbnQ2
NF90IGludGVnZXIoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYg
c3RyaW5nKCkgb3ZlcnJpZGUgZmluYWw7CkBAIC0xMDgsMTQgKzEwOSwxNCBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgTGVnYWN5QW55KFR5cGUpOwotICAgIGV4cGxpY2l0IExl
Z2FjeUFueShQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+KTsKLSAgICBleHBsaWNpdCBMZWdhY3lB
bnkoUGFzc1JlZlB0cjxMZWdhY3lDdXJzb3I+KTsKLSAgICBleHBsaWNpdCBMZWdhY3lBbnkoUGFz
c1JlZlB0cjxMZWdhY3lDdXJzb3JXaXRoVmFsdWU+KTsKLSAgICBleHBsaWNpdCBMZWdhY3lBbnko
UGFzc1JlZlB0cjxMZWdhY3lEYXRhYmFzZT4pOwotICAgIGV4cGxpY2l0IExlZ2FjeUFueShQYXNz
UmVmUHRyPExlZ2FjeUZhY3Rvcnk+KTsKLSAgICBleHBsaWNpdCBMZWdhY3lBbnkoUGFzc1JlZlB0
cjxMZWdhY3lJbmRleD4pOwotICAgIGV4cGxpY2l0IExlZ2FjeUFueShQYXNzUmVmUHRyPExlZ2Fj
eU9iamVjdFN0b3JlPik7Ci0gICAgZXhwbGljaXQgTGVnYWN5QW55KFBhc3NSZWZQdHI8TGVnYWN5
VHJhbnNhY3Rpb24+KTsKKyAgICBleHBsaWNpdCBMZWdhY3lBbnkoUmVmUHRyPERPTVN0cmluZ0xp
c3Q+KTsKKyAgICBleHBsaWNpdCBMZWdhY3lBbnkoUmVmUHRyPExlZ2FjeUN1cnNvcj4pOworICAg
IGV4cGxpY2l0IExlZ2FjeUFueShSZWZQdHI8TGVnYWN5Q3Vyc29yV2l0aFZhbHVlPik7CisgICAg
ZXhwbGljaXQgTGVnYWN5QW55KFJlZlB0cjxMZWdhY3lEYXRhYmFzZT4pOworICAgIGV4cGxpY2l0
IExlZ2FjeUFueShSZWZQdHI8TGVnYWN5RmFjdG9yeT4pOworICAgIGV4cGxpY2l0IExlZ2FjeUFu
eShSZWZQdHI8TGVnYWN5SW5kZXg+KTsKKyAgICBleHBsaWNpdCBMZWdhY3lBbnkoUmVmUHRyPExl
Z2FjeU9iamVjdFN0b3JlPik7CisgICAgZXhwbGljaXQgTGVnYWN5QW55KFJlZlB0cjxMZWdhY3lU
cmFuc2FjdGlvbj4pOwogICAgIGV4cGxpY2l0IExlZ2FjeUFueShjb25zdCBJREJLZXlQYXRoJik7
CiAgICAgZXhwbGljaXQgTGVnYWN5QW55KGNvbnN0IFN0cmluZyYpOwogICAgIGV4cGxpY2l0IExl
Z2FjeUFueShjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeUN1cnNvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5Q3Vyc29yLmNwcApp
bmRleCA4NWJkYzQ0Li5hZTQ3MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5Q3Vyc29yLmNwcApAQCAtOTYsNyArOTYsNyBA
QCBJREJBbnkqIExlZ2FjeUN1cnNvcjo6c291cmNlKCkgY29uc3QKICAgICByZXR1cm4gbV9zb3Vy
Y2UuZ2V0KCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5Q3Vyc29yOjp1cGRh
dGUoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUN1cnNvcjo6dXBk
YXRlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVl
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkxlZ2FjeUN1cnNv
cjo6dXBkYXRlIik7CiAKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIExlZ2FjeUN1cnNvcjo6Y29u
dGludWVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
ICAgICBBU1NFUlQoIWVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lDdXJz
b3I6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUN1cnNvcjo6ZGVsZXRlRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgZWMgPSAwOwogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5Q3Vyc29yOjpkZWxl
dGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2Fj
eS9MZWdhY3lDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2Fj
eS9MZWdhY3lDdXJzb3IuaAppbmRleCA3ZTNhOTEwLi5kYjgxYTFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5Q3Vyc29yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeUN1cnNvci5oCkBA
IC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiTGVnYWN5VHJhbnNhY3Rpb24uaCIKICNpbmNsdWRl
ICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgot
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC02
MiwxMiArNjIsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
JiB2YWx1ZSgpIGNvbnN0OwogICAgIElEQkFueSogc291cmNlKCkgY29uc3Q7CiAKLSAgICBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IHVwZGF0ZShKU0M6OkV4ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiB1cGRh
dGUoSlNDOjpFeGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIGFkdmFuY2UodW5zaWduZWQgbG9uZywgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIC8vIEZJWE1FOiBUcnkgdG8gbW9kaWZ5IHRoZSBjb2RlIGdlbmVyYXRvciBzbyB0aGlzIG92
ZXJsb2FkIGlzIHVubmVlZGVkLgogICAgIHZvaWQgY29udGludWVGdW5jdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgY29udGludWVGdW5jdGlvbihzdGF0
aWNfY2FzdDxJREJLZXkqPihudWxscHRyKSwgZWMpOyB9CiAgICAgdm9pZCBjb250aW51ZUZ1bmN0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBkZWxl
dGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IFJlZlB0cjxJREJSZXF1ZXN0PiBkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQ
dHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcG9zdFN1Y2Nlc3NIYW5kbGVy
Q2FsbGJhY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xlZ2FjeS9MZWdhY3lEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZWdhY3kvTGVnYWN5RGF0YWJhc2UuY3BwCmluZGV4IDdlMTc0OTIuLjU0ODU1YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lE
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5
L0xlZ2FjeURhdGFiYXNlLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgTGVnYWN5RGF0YWJh
c2U6Om9uQ29tcGxldGUoaW50NjRfdCB0cmFuc2FjdGlvbklkKQogICAgIG1fdHJhbnNhY3Rpb25z
LmdldCh0cmFuc2FjdGlvbklkKS0+b25Db21wbGV0ZSgpOwogfQogCi1QYXNzUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IExlZ2FjeURhdGFiYXNlOjpvYmplY3RTdG9yZU5hbWVzKCkgY29uc3QKK1JlZlB0
cjxET01TdHJpbmdMaXN0PiBMZWdhY3lEYXRhYmFzZTo6b2JqZWN0U3RvcmVOYW1lcygpIGNvbnN0
CiB7CiAgICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG9iamVjdFN0b3JlTmFtZXMgPSBET01TdHJp
bmdMaXN0OjpjcmVhdGUoKTsKICAgICBmb3IgKGF1dG8mIG9iamVjdFN0b3JlIDogbV9tZXRhZGF0
YS5vYmplY3RTdG9yZXMudmFsdWVzKCkpCkBAIC0xNjEsNyArMTYxLDcgQEAgdWludDY0X3QgTGVn
YWN5RGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBtX21ldGFkYXRhLnZlcnNp
b24gIT0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uID8gbV9tZXRhZGF0YS52ZXJz
aW9uIDogc3RhdGljX2Nhc3Q8dWludDY0X3Q+KElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJ
bnRWZXJzaW9uKTsKIH0KIAotUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gTGVnYWN5RGF0YWJh
c2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRGljdGlvbmFy
eSYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCT2JqZWN0U3RvcmU+IExl
Z2FjeURhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IERpY3Rpb25hcnkmIG9wdGlvbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQktleVBh
dGgga2V5UGF0aDsKICAgICBib29sIGF1dG9JbmNyZW1lbnQgPSBmYWxzZTsKQEAgLTE3OSw3ICsx
NzksNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBMZWdhY3lEYXRhYmFzZTo6Y3JlYXRl
T2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLAogICAgIHJldHVybiBjcmVhdGVPYmplY3RT
dG9yZShuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmU+IExlZ2FjeURhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVu
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCT2JqZWN0U3RvcmU+IExlZ2FjeURhdGFi
YXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBh
dGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgTE9HKFN0b3JhZ2VBUEksICJMZWdhY3lEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUiKTsK
ICAgICBpZiAoIW1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKSB7CkBAIC0yNDEsNyArMjQxLDcg
QEAgdm9pZCBMZWdhY3lEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBu
YW1lLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBtX21ldGFkYXRhLm9iamVjdFN0b3Jlcy5yZW1v
dmUob2JqZWN0U3RvcmVJZCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IExlZ2Fj
eURhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgRXhj
ZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCVHJhbnNhY3Rpb24+IExlZ2FjeURhdGFiYXNlOjp0
cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJMZWdhY3lEYXRhYmFzZTo6dHJhbnNhY3Rpb24i
KTsKICAgICBpZiAoIXNjb3BlLnNpemUoKSkgewpAQCAtMjc1LDcgKzI3NSw3IEBAIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+IExlZ2FjeURhdGFiYXNlOjp0cmFuc2FjdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjCiAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLnJlbGVhc2UoKTsKIH0KIAot
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gTGVnYWN5RGF0YWJhc2U6OnRyYW5zYWN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgc3RvcmVOYW1lLCBj
b25zdCBTdHJpbmcmIG1vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlRyYW5zYWN0
aW9uPiBMZWdhY3lEYXRhYmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYgbW9kZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHN0b3JlTmFtZXMg
PSBET01TdHJpbmdMaXN0OjpjcmVhdGUoKTsKICAgICBzdG9yZU5hbWVzLT5hcHBlbmQoc3RvcmVO
YW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2Fj
eS9MZWdhY3lEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVn
YWN5L0xlZ2FjeURhdGFiYXNlLmgKaW5kZXggYjA2YzE2Mi4uNzMyZWIzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeURhdGFiYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeURhdGFi
YXNlLmgKQEAgLTYzLDEyICs2MywxMiBAQCBwdWJsaWM6CiAgICAgLy8gSW1wbGVtZW50IHRoZSBJ
REwKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwg
eyByZXR1cm4gbV9tZXRhZGF0YS5uYW1lOyB9CiAgICAgdmlydHVhbCB1aW50NjRfdCB2ZXJzaW9u
KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERPTVN0cmlu
Z0xpc3Q+IG9iamVjdFN0b3JlTmFtZXMoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0
dWFsIFJlZlB0cjxET01TdHJpbmdMaXN0PiBvYmplY3RTdG9yZU5hbWVzKCkgY29uc3Qgb3ZlcnJp
ZGUgZmluYWw7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGNyZWF0
ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2Vw
dGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2Jq
ZWN0U3RvcmU+IGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURC
S2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZp
bmFsOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3Ry
aW5nJiBtb2RlLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBtb2RlLCBFeGNlcHRpb25Db2RlJikg
b3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGNyZWF0
ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2Vw
dGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJPYmplY3RT
dG9yZT4gY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQ
YXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7
CisgICAgdmlydHVhbCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYgbW9k
ZSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmUHRyPElE
QlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBtb2RlLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBjbG9z
ZSgpIG92ZXJyaWRlIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5RmFjdG9yeS5jcHAKaW5kZXggYmU2N2Q5NS4uYTYz
NjgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5
L0xlZ2FjeUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xlZ2FjeS9MZWdhY3lGYWN0b3J5LmNwcApAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgYm9vbCBp
c0NvbnRleHRWYWxpZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHJldHVy
biB0cnVlOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUZhY3Rvcnk6OmdldERh
dGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5RmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1l
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBMT0coU3RvcmFnZUFQSSwgIkxlZ2FjeUZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMiKTsK
ICAgICBpZiAoIWlzQ29udGV4dFZhbGlkKGNvbnRleHQpKQpAQCAtOTAsMTMgKzkwLDEzIEBAIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5RmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQ
dHI8SURCT3BlbkRCUmVxdWVzdD4gTGVnYWN5RmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
UmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IExlZ2FjeUZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkxlZ2FjeUZhY3Rvcnk6Om9wZW4iKTsKICAgICBy
ZXR1cm4gb3BlbkludGVybmFsKGNvbnRleHQsIG5hbWUsIDAsIEluZGV4ZWREQjo6VmVyc2lvbk51
bGxuZXNzOjpOdWxsLCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gTGVn
YWN5RmFjdG9yeTo6b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJiBl
YykKK1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBMZWdhY3lGYWN0b3J5OjpvcGVuKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgdW5zaWduZWQgbG9u
ZyBsb25nIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJ
LCAiTGVnYWN5RmFjdG9yeTo6b3BlbiIpOwogICAgIGlmICghdmVyc2lvbikgewpAQCAtMTI3LDcg
KzEyNyw3IEBAIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gTGVnYWN5RmFjdG9yeTo6b3Bl
bkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9
CiAKLVBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gTGVnYWN5RmFjdG9yeTo6ZGVsZXRlRGF0
YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBMZWdhY3lGYWN0
b3J5OjpkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJ
LCAiTGVnYWN5RmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UiKTsKICAgICBpZiAobmFtZS5pc051bGwo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5
L0xlZ2FjeUZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2Fj
eS9MZWdhY3lGYWN0b3J5LmgKaW5kZXggNTM1YjE3NC4uZjU5MWMwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeUZhY3RvcnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5RmFjdG9yeS5o
CkBAIC02MSwxMyArNjEsMTMgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBnZXREYXRhYmFzZU5h
bWVzIGlzIG5vIGxvbmdlciBhIHdlYi1mYWNpbmcgQVBJLCBhbmQgc2hvdWxkIGJlIHJlbW92ZWQg
ZnJvbSBMZWdhY3lGYWN0b3J5LgogICAgIC8vIFRoZSBXZWIgSW5zcGVjdG9yIGN1cnJlbnRseSB1
c2VzIHRoaXMgdG8gZW51bWVyYXRlIHRoZSBsaXN0IG9mIGRhdGFiYXNlcywgYnV0IGlzIG1vcmUg
Y29tcGxpY2F0ZWQgYXMgYSByZXN1bHQuCiAgICAgLy8gV2Ugc2hvdWxkIHByb3ZpZGUgYSBzaW1w
bGVyIEFQSSB0byB0aGUgV2ViIEluc3BlY3RvciB0aGVuIHJlbW92ZSBnZXREYXRhYmFzZU5hbWVz
LgotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJl
cXVlc3Q+IGdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZTsKIAotICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3Bl
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJz
aW9uLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBk
ZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1l
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4g
b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRp
b25Db2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4g
b3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25l
ZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsK
IAotICAgIHNob3J0IGNtcChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUmIGZpcnN0LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgc2Vj
b25kLCBFeGNlcHRpb25Db2RlJik7CisgICAgc2hvcnQgY21wKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZmlyc3QsIGNvbnN0IERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlJiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBMZWdhY3lGYWN0b3J5KElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5
SW5kZXguY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2Fj
eUluZGV4LmNwcAppbmRleCBhYmJlNzIwLi4xODM1MDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5SW5kZXguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lJbmRleC5jcHAKQEAgLTU0
LDcgKzU0LDcgQEAgTGVnYWN5SW5kZXg6On5MZWdhY3lJbmRleCgpCiB7CiB9CiAKLVBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gTGVnYWN5SW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIGNvbnN0IFN0
cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxJREJSZXF1
ZXN0PiBMZWdhY3lJbmRleDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBJREJLZXlSYW5nZSoga2V5UmFuZ2UsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5n
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkxlZ2FjeUluZGV4
OjpvcGVuQ3Vyc29yIik7CiAgICAgaWYgKG1fZGVsZXRlZCkgewpAQCAtNzUsMTYgKzc1LDE2IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5SW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAotUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lJbmRleDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBjb25z
dCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVz
dD4gTGVnYWN5SW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5
SW5kZXg6Om9wZW5DdXJzb3IiKTsKICAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0g
SURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKLSAgICByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXlSYW5nZS5yZWxl
YXNlKCksIGRpcmVjdGlvbiwgZWMpOworICAgIHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtl
eVJhbmdlLmdldCgpLCBkaXJlY3Rpb24sIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBMZWdhY3lJbmRleDo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRy
PElEQlJlcXVlc3Q+IExlZ2FjeUluZGV4Ojpjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBJREJLZXlSYW5nZSoga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5SW5kZXg6OmNvdW50Iik7CiAgICAgaWYgKG1fZGVsZXRl
ZCkgewpAQCAtMTAwLDE2ICsxMDAsMTYgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lJ
bmRleDo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1IKICAgICBy
ZXR1cm4gcmVxdWVzdDsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lJbmRleDo6
Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4g
TGVnYWN5SW5kZXg6OmNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5SW5kZXg6OmNvdW50Iik7CiAgICAgUmVmUHRyPElEQktl
eVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGNvbnRleHQsIGtleSwgZWMpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGNvdW50KGNvbnRleHQs
IGtleVJhbmdlLnJlbGVhc2UoKSwgZWMpOworICAgIHJldHVybiBjb3VudChjb250ZXh0LCBrZXlS
YW5nZS5nZXQoKSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUluZGV4
OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywg
RXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5SW5kZXg6Om9wZW5L
ZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgSURCS2V5UmFuZ2UqIGtl
eVJhbmdlLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJMZWdhY3lJbmRleDo6b3BlbktleUN1cnNvciIpOwog
ICAgIGlmIChtX2RlbGV0ZWQpIHsKQEAgLTEzMCwyNSArMTMwLDI1IEBAIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gTGVnYWN5SW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gTGVnYWN5SW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBk
aXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUlu
ZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkxlZ2FjeUluZGV4Ojpv
cGVuS2V5Q3Vyc29yIik7CiAgICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktl
eVJhbmdlOjpvbmx5KGNvbnRleHQsIGtleSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7Ci0gICAgcmV0dXJuIG9wZW5LZXlDdXJzb3IoY29udGV4dCwga2V5UmFuZ2UucmVsZWFz
ZSgpLCBkaXJlY3Rpb24sIGVjKTsKKyAgICByZXR1cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBr
ZXlSYW5nZS5nZXQoKSwgZGlyZWN0aW9uLCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gTGVnYWN5SW5kZXg6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0
cjxJREJSZXF1ZXN0PiBMZWdhY3lJbmRleDo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5SW5kZXg6OmdldCIpOwogICAgIFJl
ZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBr
ZXksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBnZXQo
Y29udGV4dCwga2V5UmFuZ2UucmVsZWFzZSgpLCBlYyk7CisgICAgcmV0dXJuIGdldChjb250ZXh0
LCBrZXlSYW5nZS5nZXQoKSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2Fj
eUluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVl
c3Q+IExlZ2FjeUluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgSURC
S2V5UmFuZ2UqIGtleVJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFn
ZUFQSSwgIkxlZ2FjeUluZGV4OjpnZXQiKTsKICAgICBpZiAobV9kZWxldGVkKSB7CkBAIC0xNjks
MTcgKzE2OSwxNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUluZGV4OjpnZXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZgogICAgIHJldHVybiByZXF1ZXN0
OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUluZGV4OjpnZXRLZXkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5SW5kZXg6
OmdldEtleShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFn
ZUFQSSwgIkxlZ2FjeUluZGV4OjpnZXRLZXkiKTsKICAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtl
eVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBnZXRLZXkoY29udGV4dCwga2V5UmFu
Z2UucmVsZWFzZSgpLCBlYyk7CisgICAgcmV0dXJuIGdldEtleShjb250ZXh0LCBrZXlSYW5nZS5n
ZXQoKSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeUluZGV4OjpnZXRL
ZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2Fj
eUluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgSURCS2V5UmFu
Z2UqIGtleVJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwg
IkxlZ2FjeUluZGV4OjpnZXRLZXkiKTsKICAgICBpZiAobV9kZWxldGVkKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5SW5kZXguaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lJbmRleC5oCmlu
ZGV4IDczNDU4ODAuLjU1YjYyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lJbmRleC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lJbmRleC5oCkBAIC01NiwzNCArNTYsMzQgQEAgcHVi
bGljOgogCiAgICAgLy8gSW1wbGVtZW50IHRoZSBJREwKICAgICB2aXJ0dWFsIGNvbnN0IFN0cmlu
ZyBuYW1lKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV9tZXRhZGF0YS5uYW1lOyB9
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBvYmplY3RTdG9yZSgpIGNv
bnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1fb2JqZWN0U3RvcmU7IH0KLSAgICBQYXNzUmVm
UHRyPExlZ2FjeU9iamVjdFN0b3JlPiBsZWdhY3lPYmplY3RTdG9yZSgpIGNvbnN0IHsgcmV0dXJu
IG1fb2JqZWN0U3RvcmU7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQW55PiBrZXlQYXRo
QW55KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gTGVnYWN5QW55OjpjcmVhdGUobV9t
ZXRhZGF0YS5rZXlQYXRoKTsgfQorICAgIHZpcnR1YWwgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBv
YmplY3RTdG9yZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1fb2JqZWN0U3RvcmU7
IH0KKyAgICBMZWdhY3lPYmplY3RTdG9yZSogbGVnYWN5T2JqZWN0U3RvcmUoKSBjb25zdCB7IHJl
dHVybiBtX29iamVjdFN0b3JlLmdldCgpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SURCQW55PiBr
ZXlQYXRoQW55KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gTGVnYWN5QW55OjpjcmVh
dGUobV9tZXRhZGF0YS5rZXlQYXRoKTsgfQogICAgIHZpcnR1YWwgY29uc3QgSURCS2V5UGF0aCBr
ZXlQYXRoKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV9tZXRhZGF0YS5rZXlQYXRo
OyB9CiAgICAgdmlydHVhbCBib29sIHVuaXF1ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0
dXJuIG1fbWV0YWRhdGEudW5pcXVlOyB9CiAgICAgdmlydHVhbCBib29sIG11bHRpRW50cnkoKSBj
b25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX21ldGFkYXRhLm11bHRpRW50cnk7IH0KICAg
ICB2aXJ0dWFsIGludDY0X3QgaWQoKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX21l
dGFkYXRhLmlkOyB9CiAKICAgICAvLyBGSVhNRTogVHJ5IHRvIG1vZGlmeSB0aGUgY29kZSBnZW5l
cmF0b3Igc28gdGhpcyBpcyB1bm5lZWRlZC4KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRp
b25Db2RlJiBlYykgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBz
dGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51bGxwdHIpLCBlYyk7IH0KLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpIG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5UmFuZ2Us
IElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykg
b3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXksIElEQkN1cnNv
cjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJp
ZGUgZmluYWw7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3Io
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBr
ZXksIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmlu
YWw7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVycmlkZSBmaW5hbCB7
IHJldHVybiBjb3VudChjb250ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51bGxwdHIp
LCBlYyk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2Rl
Jikgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNv
dW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSYga2V5LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7Ci0KLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gb3Bl
bktleUN1cnNvcihjb250ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51bGxwdHIpLCBl
Yyk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBr
ZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpIG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG9wZW5L
ZXlDdXJzb3IoY29udGV4dCwga2V5UmFuZ2UsIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBl
Yyk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gb3Bl
bktleUN1cnNvcihjb250ZXh0LCBrZXksIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7
IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmlu
ZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIGNvbnN0IFN0cmluZyYg
ZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7Ci0KLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOwotICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0S2V5
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0
aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0
dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBvcGVu
Q3Vyc29yKGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4obnVsbHB0ciksIGVjKTsg
fQorICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgSURCS2V5UmFuZ2UqIGtleVJhbmdlLCBFeGNlcHRpb25Db2Rl
JiBlYykgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXlSYW5n
ZSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQorICAgIHZpcnR1YWwgUmVmUHRy
PElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpIG92
ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5LCBJREJDdXJzb3I6
OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4g
b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSURCS2V5UmFuZ2UqLCBjb25zdCBT
dHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZp
cnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBSZWZQ
dHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhj
ZXB0aW9uQ29kZSYgZWMpIG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0
YXRpY19jYXN0PElEQktleVJhbmdlKj4obnVsbHB0ciksIGVjKTsgfQorICAgIHZpcnR1YWwgUmVm
UHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJLZXlSYW5n
ZSosIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJ
REJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworCisg
ICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgb3ZlcnJpZGUgZmluYWwgeyBy
ZXR1cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51
bGxwdHIpLCBlYyk7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vy
c29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIElEQktleVJhbmdlKiBrZXlSYW5n
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG9wZW5LZXlDdXJz
b3IoY29udGV4dCwga2V5UmFuZ2UsIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0K
KyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXks
IEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBvcGVuS2V5Q3Vyc29y
KGNvbnRleHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQorICAgIHZp
cnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIElEQktleVJhbmdlKiwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNv
ZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVu
S2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlIGZpbmFsOworCisgICAgdmlydHVhbCBSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBJREJLZXlSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlk
ZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlv
bkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJSZXF1ZXN0PiBn
ZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwgRXhjZXB0aW9uQ29k
ZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlJlcXVlc3Q+IGdldEtl
eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IGtleSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOwogCiAgICAgdm9pZCBtYXJrRGVs
ZXRlZCgpIHsgbV9kZWxldGVkID0gdHJ1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5T2JqZWN0U3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeU9iamVjdFN0b3JlLmNwcApp
bmRleCBlNWFmNjBmLi43ODBhOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5T2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lPYmplY3RTdG9yZS5jcHAKQEAgLTU4
LDcgKzU4LDcgQEAgTGVnYWN5T2JqZWN0U3RvcmU6OkxlZ2FjeU9iamVjdFN0b3JlKGNvbnN0IElE
Qk9iamVjdFN0b3JlTWV0YWRhdGEmIG1ldGFkYXRhLCBMZWcKICAgICByZWxheEFkb3B0aW9uUmVx
dWlyZW1lbnQoKTsKIH0KIAotUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBMZWdhY3lPYmplY3RT
dG9yZTo6aW5kZXhOYW1lcygpIGNvbnN0CitSZWZQdHI8RE9NU3RyaW5nTGlzdD4gTGVnYWN5T2Jq
ZWN0U3RvcmU6OmluZGV4TmFtZXMoKSBjb25zdAogewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVn
YWN5T2JqZWN0U3RvcmU6OmluZGV4TmFtZXMiKTsKICAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
aW5kZXhOYW1lcyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwpAQCAtNjgsNyArNjgsNyBAQCBQ
YXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjppbmRleE5hbWVzKCkg
Y29uc3QKICAgICByZXR1cm4gaW5kZXhOYW1lcy5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OmdldChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBJREJLZXlSYW5nZSoga2V5UmFuZ2UsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5T2JqZWN0U3RvcmU6Omdl
dCIpOwogICAgIGlmIChtX2RlbGV0ZWQpIHsKQEAgLTg4LDM5ICs4OCwzOSBAQCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUAogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpnZXQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGNvbnRleHQsIGtleSwgZWMpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGdldChjb250ZXh0LCBrZXlSYW5n
ZS5yZWxlYXNlKCksIGVjKTsKKyAgICByZXR1cm4gZ2V0KGNvbnRleHQsIGtleVJhbmdlLmdldCgp
LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OmFk
ZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitS
ZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OmFkZChKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9HKFN0b3JhZ2VB
UEksICJMZWdhY3lPYmplY3RTdG9yZTo6YWRkIik7CiAgICAgcmV0dXJuIHB1dChJREJEYXRhYmFz
ZUJhY2tlbmQ6OkFkZE9ubHksIExlZ2FjeUFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUs
IGtleSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3Jl
OjphZGQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0
b3JlOjphZGQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYg
dmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5
T2JqZWN0U3RvcmU6OmFkZCIpOwogICAgIHJldHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kOjpB
ZGRPbmx5LCBMZWdhY3lBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBzdGF0aWNfY2Fz
dDxJREJLZXkqPihudWxscHRyKSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExl
Z2FjeU9iamVjdFN0b3JlOjpwdXQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4
Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpw
dXQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUs
IGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5T2JqZWN0U3RvcmU6OnB1dCIpOwogICAgIHJl
dHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kOjpBZGRPclVwZGF0ZSwgTGVnYWN5QW55OjpjcmVh
dGUodGhpcyksIHN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OnB1dChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURC
UmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OnB1dChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
TE9HKFN0b3JhZ2VBUEksICJMZWdhY3lPYmplY3RTdG9yZTo6cHV0Iik7CiAgICAgcmV0dXJuIHB1
dChJREJEYXRhYmFzZUJhY2tlbmQ6OkFkZE9yVXBkYXRlLCBMZWdhY3lBbnk6OmNyZWF0ZSh0aGlz
KSwgc3RhdGUsIHZhbHVlLCBzdGF0aWNfY2FzdDxJREJLZXkqPihudWxscHRyKSwgZWMpOwogfQog
Ci1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpwdXQoSURCRGF0YWJh
c2VCYWNrZW5kOjpQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8TGVnYWN5QW55PiBzb3VyY2Us
IEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlLCBj
b25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5VmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpwdXQoSURCRGF0YWJhc2VC
YWNrZW5kOjpQdXRNb2RlIHB1dE1vZGUsIFJlZlB0cjxMZWdhY3lBbnk+IHNvdXJjZSwgSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRGcm9tRXhlY1N0YXRlKCZzdGF0ZSk7CiAgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0
ZShjb250ZXh0KTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExl
Z2FjeU9iamVjdFN0b3JlOjpwdXQoSURCRGF0YWJhc2VCYWNrZW5kOjpQdXRNb2RlIHB1dE1vZAog
ICAgIHJldHVybiBwdXQocHV0TW9kZSwgc291cmNlLCBzdGF0ZSwgdmFsdWUsIGtleS5yZWxlYXNl
KCksIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6
cHV0KElEQkRhdGFiYXNlQmFja2VuZDo6UHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPExlZ2Fj
eUFueT4gc291cmNlLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlJiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwgRXhjZXB0aW9uQ29kZSYgZWMp
CitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OnB1dChJREJEYXRhYmFzZUJh
Y2tlbmQ6OlB1dE1vZGUgcHV0TW9kZSwgUmVmUHRyPExlZ2FjeUFueT4gc291cmNlLCBKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiB2YWx1ZSwgUmVmUHRyPElE
QktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8SURCS2V5PiBr
ZXkgPSBwcnBLZXk7CiAgICAgaWYgKG1fZGVsZXRlZCkgewpAQCAtMjIwLDcgKzIyMCw3IEBAIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OnB1dChJREJEYXRhYmFzZUJh
Y2tlbmQ6OlB1dE1vZGUgcHV0TW9kCiAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogfQog
Ci1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5
T2JqZWN0U3RvcmU6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIElEQktleVJhbmdlKiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9H
KFN0b3JhZ2VBUEksICJMZWdhY3lPYmplY3RTdG9yZTo6ZGVsZXRlIik7CiAgICAgaWYgKG1fZGVs
ZXRlZCkgewpAQCAtMjQ1LDE1ICsyNDUsMTUgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdh
Y3lPYmplY3RTdG9yZTo6ZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKICAg
ICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
TGVnYWN5T2JqZWN0U3RvcmU6OmRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpkZWxldGVGdW5j
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gZGVsZXRlRnVuY3Rpb24o
Y29udGV4dCwga2V5UmFuZ2UucmVsZWFzZSgpLCBlYyk7CisgICAgcmV0dXJuIGRlbGV0ZUZ1bmN0
aW9uKGNvbnRleHQsIGtleVJhbmdlLmdldCgpLCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6OmNsZWFyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVj
dFN0b3JlOjpjbGVhcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkxlZ2FjeU9iamVjdFN0b3JlOjpjbGVh
ciIpOwogICAgIGlmIChtX2RlbGV0ZWQpIHsKQEAgLTI4Miw3ICsyODIsNyBAQCBuYW1lc3BhY2Ug
ewogLy8gY3Vyc29yIHN1Y2Nlc3MgaGFuZGxlcnMgYXJlIGtlcHQgYWxpdmUuCiBjbGFzcyBJbmRl
eFBvcHVsYXRvciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPEluZGV4UG9wdWxhdG9yPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmQ+
IGJhY2tlbmQsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleE1ldGFkYXRhKQorICAgIHN0YXRpYyBSZWY8SW5k
ZXhQb3B1bGF0b3I+IGNyZWF0ZShSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kPiBiYWNrZW5kLCBp
bnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCSW5k
ZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEluZGV4UG9wdWxhdG9yKGJhY2tlbmQsIHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3Jl
SWQsIGluZGV4TWV0YWRhdGEpKTsKICAgICB9CkBAIC0yOTMsNyArMjkzLDcgQEAgcHVibGljOgog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBJbmRleFBvcHVsYXRvcihQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQmFja2VuZD4gYmFja2VuZCwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGluZGV4TWV0YWRhdGEpCisgICAgSW5k
ZXhQb3B1bGF0b3IoUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZD4gYmFja2VuZCwgaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQkluZGV4TWV0YWRh
dGEmIGluZGV4TWV0YWRhdGEpCiAgICAgICAgIDogRXZlbnRMaXN0ZW5lcihDUFBFdmVudExpc3Rl
bmVyVHlwZSkKICAgICAgICAgLCBtX2RhdGFiYXNlQmFja2VuZChiYWNrZW5kKQogICAgICAgICAs
IG1fdHJhbnNhY3Rpb25JZCh0cmFuc2FjdGlvbklkKQpAQCAtMzUwLDcgKzM1MCw3IEBAIHByaXZh
dGU6CiB9OwogfQogCi1QYXNzUmVmUHRyPElEQkluZGV4PiBMZWdhY3lPYmplY3RTdG9yZTo6Y3Jl
YXRlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25z
LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxJREJJbmRleD4gTGVnYWN5T2JqZWN0U3RvcmU6
OmNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwgY29uc3QgRGljdGlvbmFyeSYgb3B0
aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgYm9vbCB1bmlxdWUgPSBmYWxzZTsKICAg
ICBvcHRpb25zLmdldCgidW5pcXVlIiwgdW5pcXVlKTsKQEAgLTM2MSw3ICszNjEsNyBAQCBQYXNz
UmVmUHRyPElEQkluZGV4PiBMZWdhY3lPYmplY3RTdG9yZTo6Y3JlYXRlSW5kZXgoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udAogICAgIHJldHVybiBjcmVhdGVJbmRleChjb250ZXh0LCBuYW1l
LCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnksIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJJ
bmRleD4gTGVnYWN5T2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQ
dHI8SURCSW5kZXg+IExlZ2FjeU9iamVjdFN0b3JlOjpjcmVhdGVJbmRleChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgm
IGtleVBhdGgsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5T2JqZWN0U3RvcmU6OmNyZWF0ZUluZGV4
Iik7CiAgICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSB8fCBtX2RlbGV0
ZWQpIHsKQEAgLTQwOCw3ICs0MDgsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4PiBMZWdhY3lPYmpl
Y3RTdG9yZTo6Y3JlYXRlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udAogICAgIHJl
dHVybiBpbmRleC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCSW5kZXg+IExlZ2FjeU9i
amVjdFN0b3JlOjppbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
UmVmUHRyPElEQkluZGV4PiBMZWdhY3lPYmplY3RTdG9yZTo6aW5kZXgoY29uc3QgU3RyaW5nJiBu
YW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coU3RvcmFnZUFQSSwgIkxlZ2FjeU9i
amVjdFN0b3JlOjppbmRleCIpOwogICAgIGlmIChtX2RlbGV0ZWQpIHsKQEAgLTQ3MiwyNyArNDcy
LDI3IEBAIHZvaWQgTGVnYWN5T2JqZWN0U3RvcmU6OmRlbGV0ZUluZGV4KGNvbnN0IFN0cmluZyYg
bmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9i
amVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIHN0YXRp
Y19jYXN0PElEQktleVJhbmdlKj4obnVsbHB0ciksIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6Om9wZW5DdXJz
b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgSURCS2V5UmFuZ2UqIGtleVJhbmdl
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBr
ZXlSYW5nZSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsKIH0KIAotUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBF
eGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6
b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICByZXR1cm4g
b3BlbkN1cnNvcihjb250ZXh0LCBrZXksIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7
CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6Om9wZW5DdXJz
b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gcmFuZ2UsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKK1Jl
ZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBJREJLZXlSYW5nZSogcmFuZ2UsIGNvbnN0IFN0cmluZyYg
ZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICByZXR1cm4gb3BlbkN1cnNvcihj
b250ZXh0LCByYW5nZSwgZGlyZWN0aW9uLCBJREJEYXRhYmFzZUJhY2tlbmQ6Ok5vcm1hbFRhc2ss
IGVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6b3Bl
bkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiByYW5nZSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIElEQkRhdGFiYXNl
QmFja2VuZDo6VGFza1R5cGUgdGFza1R5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElE
QlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIElEQktleVJhbmdlKiByYW5nZSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rp
b25TdHJpbmcsIElEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGUgdGFza1R5cGUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiTGVnYWN5T2JqZWN0U3RvcmU6Om9w
ZW5DdXJzb3IiKTsKICAgICBpZiAobV9kZWxldGVkKSB7CkBAIC01MTQsMTUgKzUxNCwxNSBAQCBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbgogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0K
IAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCitS
ZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtl
eSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJl
ZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBr
ZXksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBvcGVu
Q3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLnJlbGVhc2UoKSwgZGlyZWN0aW9uLCBlYyk7CisgICAg
cmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5UmFuZ2UuZ2V0KCksIGRpcmVjdGlvbiwgZWMp
OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpjb3VudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBy
YW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4gTGVnYWN5T2JqZWN0
U3RvcmU6OmNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIElEQktleVJhbmdl
KiByYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJMZWdh
Y3lPYmplY3RTdG9yZTo6Y291bnQiKTsKICAgICBpZiAobV9kZWxldGVkKSB7CkBAIC01MzgsMTIg
KzUzOCwxMiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IExlZ2FjeU9iamVjdFN0b3JlOjpjb3Vu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgIHJldHVybiByZXF1ZXN0LnJl
bGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBMZWdhY3lPYmplY3RTdG9yZTo6
Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCUmVxdWVzdD4g
TGVnYWN5T2JqZWN0U3RvcmU6OmNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShj
b250ZXh0LCBrZXksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBjb3VudChjb250ZXh0LCBrZXlSYW5nZS5yZWxlYXNlKCksIGVjKTsKKyAgICByZXR1cm4g
Y291bnQoY29udGV4dCwga2V5UmFuZ2UuZ2V0KCksIGVjKTsKIH0KIAogdm9pZCBMZWdhY3lPYmpl
Y3RTdG9yZTo6dHJhbnNhY3Rpb25GaW5pc2hlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5T2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lPYmplY3RTdG9yZS5oCmluZGV4
IDI5MTFhMGQuLjBhNmY5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xlZ2FjeS9MZWdhY3lPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lPYmplY3RTdG9yZS5oCkBAIC0zOCw3ICszOCw3
IEBACiAjaW5jbHVkZSAiTGVnYWN5VHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJTY3JpcHRXcmFw
cGFibGUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KQEAgLTYyLDQzICs2Miw0MyBAQCBwdWJsaWM6CiAgICAgLy8gSW1wbGVt
ZW50IHRoZSBJREJPYmplY3RTdG9yZSBJREwKICAgICBpbnQ2NF90IGlkKCkgY29uc3QgeyByZXR1
cm4gbV9tZXRhZGF0YS5pZDsgfQogICAgIGNvbnN0IFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9tZXRhZGF0YS5uYW1lOyB9Ci0gICAgUGFzc1JlZlB0cjxJREJBbnk+IGtleVBhdGhBbnko
KSBjb25zdCB7IHJldHVybiBMZWdhY3lBbnk6OmNyZWF0ZShtX21ldGFkYXRhLmtleVBhdGgpOyB9
CisgICAgUmVmUHRyPElEQkFueT4ga2V5UGF0aEFueSgpIGNvbnN0IHsgcmV0dXJuIExlZ2FjeUFu
eTo6Y3JlYXRlKG1fbWV0YWRhdGEua2V5UGF0aCk7IH0KICAgICBjb25zdCBJREJLZXlQYXRoIGtl
eVBhdGgoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmtleVBhdGg7IH0KLSAgICBQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IGluZGV4TmFtZXMoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb247
IH0KKyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gaW5kZXhOYW1lcygpIGNvbnN0OworICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbj4gdHJhbnNhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RyYW5z
YWN0aW9uOyB9CiAgICAgYm9vbCBhdXRvSW5jcmVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9tZXRh
ZGF0YS5hdXRvSW5jcmVtZW50OyB9CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChK
U0M6OkV4ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29kZSYp
OwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KEpTQzo6RXhlY1N0YXRlJiwgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgY29uc3QgU3Ry
aW5nJiBkaXJlY3Rpb24sIElEQkRhdGFiYXNlQmFja2VuZDo6VGFza1R5cGUsIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIGNvbnN0IFN0
cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwg
RXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKEpTQzo6RXhl
Y1N0YXRlJiwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBjb25zdCBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBwdXQoSlNDOjpFeGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYsIGNvbnN0IERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IHB1dChJREJEYXRhYmFzZUJhY2tlbmQ6OlB1dE1vZGUsIFBhc3NSZWZQ
dHI8TGVnYWN5QW55PiwgSlNDOjpFeGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYs
IFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gcHV0KElEQkRhdGFiYXNlQmFja2VuZDo6UHV0TW9kZSwgUGFzc1JlZlB0cjxMZWdh
Y3lBbnk+IHNvdXJjZSwgSlNDOjpFeGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYs
IGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKLQot
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYp
OwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY2xlYXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIFBhc3NSZWZQdHI8SURCSW5kZXg+IGNyZWF0ZUlu
ZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoLCBjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zLCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gY3JlYXRlSW5kZXgoY29udGV4dCwgbmFtZSwgSURCS2V5UGF0
aChrZXlQYXRoKSwgb3B0aW9ucywgZWMpOyB9Ci0gICAgUGFzc1JlZlB0cjxJREJJbmRleD4gY3Jl
YXRlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYga2V5UGF0aCwgY29uc3QgRGljdGlvbmFyeSYgb3B0
aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNyZWF0ZUluZGV4KGNvbnRleHQsIG5h
bWUsIElEQktleVBhdGgoa2V5UGF0aCksIG9wdGlvbnMsIGVjKTsgfQotICAgIFBhc3NSZWZQdHI8
SURCSW5kZXg+IGNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCSW5kZXg+IGNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29s
IHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICBQYXNzUmVm
UHRyPElEQkluZGV4PiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBSZWZQdHI8SURCUmVxdWVzdD4gYWRkKEpTQzo6RXhlY1N0YXRlJiwgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHB1
dChKU0M6OkV4ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJz
b3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJhbmdlKiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7
CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIElEQktleVJhbmdlKiwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgSURCS2V5UmFuZ2UqLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgSURCRGF0YWJhc2VC
YWNrZW5kOjpUYXNrVHlwZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0
PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYp
OworCisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOworICAg
IFJlZlB0cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIElEQktleVJh
bmdlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBhZGQoSlNDOjpF
eGVjU3RhdGUmLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYsIGNvbnN0IERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4g
cHV0KEpTQzo6RXhlY1N0YXRlJiwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBjb25zdCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPElE
QlJlcXVlc3Q+IHB1dChJREJEYXRhYmFzZUJhY2tlbmQ6OlB1dE1vZGUsIFJlZlB0cjxMZWdhY3lB
bnk+LCBKU0M6OkV4ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgUmVmUHRyPElE
QktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcHV0KElEQkRh
dGFiYXNlQmFja2VuZDo6UHV0TW9kZSwgUmVmUHRyPExlZ2FjeUFueT4gc291cmNlLCBKU0M6OkV4
ZWNTdGF0ZSYsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgUmVmUHRyPElEQlJlcXVlc3Q+
IGRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJLZXlSYW5nZSosIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXks
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gY2xlYXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIFJlZlB0cjxJREJJbmRleD4g
Y3JlYXRlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGNvbnN0IERpY3Rpb25hcnkmIG9wdGlvbnMs
IEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBjcmVhdGVJbmRleChjb250ZXh0LCBuYW1lLCBJ
REJLZXlQYXRoKGtleVBhdGgpLCBvcHRpb25zLCBlYyk7IH0KKyAgICBSZWZQdHI8SURCSW5kZXg+
IGNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGtleVBhdGgsIGNvbnN0IERpY3Rpb25hcnkm
IG9wdGlvbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBjcmVhdGVJbmRleChjb250ZXh0
LCBuYW1lLCBJREJLZXlQYXRoKGtleVBhdGgpLCBvcHRpb25zLCBlYyk7IH0KKyAgICBSZWZQdHI8
SURCSW5kZXg+IGNyZWF0ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFJlZlB0cjxJREJJbmRleD4gY3JlYXRlSW5kZXgoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgdW5p
cXVlLCBib29sIG11bHRpRW50cnksIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIFJlZlB0cjxJREJJ
bmRleD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBkZWxldGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAg
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19j
YXN0PElEQktleVJhbmdlKj4obnVsbHB0ciksIGVjKTsgfQotICAgIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtl
eSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gY291
bnQoY29udGV4dCwgc3RhdGljX2Nhc3Q8SURCS2V5UmFuZ2UqPihudWxscHRyKSwgZWMpOyB9Cisg
ICAgUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJL
ZXlSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gY291bnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBr
ZXksIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZvaWQgbWFya0RlbGV0ZWQoKSB7IG1fZGVsZXRl
ZCA9IHRydWU7IH0KICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lSZXF1ZXN0
LmNwcAppbmRleCBkMWZhYTk2Li45ZTAzZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVJlcXVlc3QuY3BwCkBAIC05Niw3
ICs5Niw3IEBAIExlZ2FjeVJlcXVlc3Q6On5MZWdhY3lSZXF1ZXN0KCkKIHsKIH0KIAotUGFzc1Jl
ZlB0cjxJREJBbnk+IExlZ2FjeVJlcXVlc3Q6OnJlc3VsdChFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKK1JlZlB0cjxJREJBbnk+IExlZ2FjeVJlcXVlc3Q6OnJlc3VsdChFeGNlcHRpb25Db2RlJiBl
YykgY29uc3QKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlICE9IERPTkUpIHsKICAgICAgICAgZWMg
PSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJyb3I7CkBAIC0xMDUsNyArMTA1
LDcgQEAgUGFzc1JlZlB0cjxJREJBbnk+IExlZ2FjeVJlcXVlc3Q6OnJlc3VsdChFeGNlcHRpb25D
b2RlJiBlYykgY29uc3QKICAgICByZXR1cm4gbV9yZXN1bHQ7CiB9CiAKLVBhc3NSZWZQdHI8RE9N
RXJyb3I+IExlZ2FjeVJlcXVlc3Q6OmVycm9yKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAorUmVm
UHRyPERPTUVycm9yPiBMZWdhY3lSZXF1ZXN0OjplcnJvcihFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlICE9IERPTkUpIHsKICAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0YXRlRXJyb3I7CkBAIC0xMjMsMTIgKzEyMywxMiBA
QCB1bnNpZ25lZCBzaG9ydCBMZWdhY3lSZXF1ZXN0OjplcnJvckNvZGUoRXhjZXB0aW9uQ29kZSYg
ZWMpIGNvbnN0CiAgICAgcmV0dXJuIG1fZXJyb3JDb2RlOwogfQogCi1QYXNzUmVmUHRyPElEQkFu
eT4gTGVnYWN5UmVxdWVzdDo6c291cmNlKCkgY29uc3QKK1JlZlB0cjxJREJBbnk+IExlZ2FjeVJl
cXVlc3Q6OnNvdXJjZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc291cmNlOwogfQogCi1QYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uPiBMZWdhY3lSZXF1ZXN0Ojp0cmFuc2FjdGlvbigpIGNvbnN0
CitSZWZQdHI8SURCVHJhbnNhY3Rpb24+IExlZ2FjeVJlcXVlc3Q6OnRyYW5zYWN0aW9uKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV90cmFuc2FjdGlvbjsKIH0KQEAgLTI5Niw3ICsyOTYsNyBAQCB2
b2lkIExlZ2FjeVJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmQ+
IHBycEJhY2tlbmQpCiAgICAgUmVmUHRyPExlZ2FjeUN1cnNvcj4gY3Vyc29yOwogICAgIHN3aXRj
aCAobV9jdXJzb3JUeXBlKSB7CiAgICAgY2FzZSBJbmRleGVkREI6OkN1cnNvclR5cGU6OktleU9u
bHk6Ci0gICAgICAgIGN1cnNvciA9IExlZ2FjeUN1cnNvcjo6Y3JlYXRlKGJhY2tlbmQucmVsZWFz
ZSgpLCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rp
b24uZ2V0KCkpOworICAgICAgICBjdXJzb3IgPSBMZWdhY3lDdXJzb3I6OmNyZWF0ZShiYWNrZW5k
LmdldCgpLCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNh
Y3Rpb24uZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6Q3Vyc29y
VHlwZTo6S2V5QW5kVmFsdWU6CiAgICAgICAgIGN1cnNvciA9IExlZ2FjeUN1cnNvcldpdGhWYWx1
ZTo6Y3JlYXRlKGJhY2tlbmQucmVsZWFzZSgpLCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywgbV9z
b3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lSZXF1ZXN0LmgKaW5kZXggNjM3
ZmQ1MC4uNDgwNzEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGVnYWN5L0xlZ2FjeVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZWdhY3kvTGVnYWN5UmVxdWVzdC5oCkBAIC01OCwxMiArNTgsMTIgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8TGVnYWN5UmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPExlZ2FjeUFueT4gc291cmNlLCBJREJEYXRhYmFzZUJhY2tlbmQ6
OlRhc2tUeXBlLCBMZWdhY3lUcmFuc2FjdGlvbiopOwogICAgIHZpcnR1YWwgfkxlZ2FjeVJlcXVl
c3QoKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJBbnk+IHJlc3VsdChFeGNlcHRpb25D
b2RlJikgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBSZWZQdHI8SURCQW55PiBy
ZXN1bHQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIFBhc3NSZWZQ
dHI8TGVnYWN5QW55PiBsZWdhY3lSZXN1bHQoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwg
dW5zaWduZWQgc2hvcnQgZXJyb3JDb2RlKEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBvdmVycmlkZSBm
aW5hbDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RE9NRXJyb3I+IGVycm9yKEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQW55
PiBzb3VyY2UoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CisgICAg
dmlydHVhbCBSZWZQdHI8RE9NRXJyb3I+IGVycm9yKEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBvdmVy
cmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJBbnk+IHNvdXJjZSgpIGNvbnN0IG92
ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2Fj
dGlvbigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBy
ZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICB2b2lkIHByZXZlbnRQcm9w
YWdhdGlvbigpIHsgbV9wcmV2ZW50UHJvcGFnYXRpb24gPSB0cnVlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5VHJhbnNhY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVRyYW5z
YWN0aW9uLmNwcAppbmRleCA0YWNmNmQ2Li5iOTc3MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5VHJhbnNhY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lUcmFuc2FjdGlv
bi5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIExlZ2FjeVRyYW5zYWN0aW9uOjpzZXRFcnJv
cihQYXNzUmVmUHRyPERPTUVycm9yPiBlcnJvciwgY29uc3QgU3RyaW5nJiBlcnJvcgogICAgIH0K
IH0KIAotUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gTGVnYWN5VHJhbnNhY3Rpb246Om9iamVj
dFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURC
T2JqZWN0U3RvcmU+IExlZ2FjeVRyYW5zYWN0aW9uOjpvYmplY3RTdG9yZShjb25zdCBTdHJpbmcm
IG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX3N0YXRlID09IEZpbmlzaGVk
KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkludmFsaWRTdGF0ZUVycm9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xl
Z2FjeVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdh
Y3kvTGVnYWN5VHJhbnNhY3Rpb24uaAppbmRleCBjMzllOTY4Li5mNTlhMjcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5VHJhbnNhY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5
VHJhbnNhY3Rpb24uaApAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNv
bnN0IFN0cmluZyYgbW9kZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURC
RGF0YWJhc2UqIGRiKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPERPTUVycm9yPiBlcnJvcigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1fZXJy
b3I7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IG9iamVjdFN0b3Jl
KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworICAg
IHZpcnR1YWwgUmVmUHRyPERPTUVycm9yPiBlcnJvcigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsg
cmV0dXJuIG1fZXJyb3I7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxJREJPYmplY3RTdG9yZT4gb2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5h
bDsKIAogICAgIGNsYXNzIE9wZW5DdXJzb3JOb3RpZmllciB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBiNmNlZDg0
Li5jN2UxNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTUzOSw5ICs1MzksOSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZGJSZXF1ZXN0
ID0gaWRiSW5kZXgtPm9wZW5DdXJzb3IoY29udGV4dCgpLCBtX2lkYktleVJhbmdlLmNvcHlSZWYo
KSwgZWMpOworICAgICAgICAgICAgaWRiUmVxdWVzdCA9IGlkYkluZGV4LT5vcGVuQ3Vyc29yKGNv
bnRleHQoKSwgbV9pZGJLZXlSYW5nZS5nZXQoKSwgZWMpOwogICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIGlkYlJlcXVlc3QgPSBpZGJPYmplY3RTdG9yZS0+b3BlbkN1cnNvcihjb250ZXh0KCks
IG1faWRiS2V5UmFuZ2UuY29weVJlZigpLCBlYyk7CisgICAgICAgICAgICBpZGJSZXF1ZXN0ID0g
aWRiT2JqZWN0U3RvcmUtPm9wZW5DdXJzb3IoY29udGV4dCgpLCBtX2lkYktleVJhbmdlLmdldCgp
LCBlYyk7CiAgICAgICAgIGlkYlJlcXVlc3QtPmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygp
LnN1Y2Nlc3NFdmVudCwgV1RGOjptb3ZlKG9wZW5DdXJzb3JDYWxsYmFjayksIGZhbHNlKTsKICAg
ICB9CiAK
</data>
<flag name="review"
          id="287126"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>