<?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>103923</bug_id>
          
          <creation_ts>2012-12-03 13:44:07 -0800</creation_ts>
          <short_desc>IndexedDB: remove old transaction backend bootstrap code</short_desc>
          <delta_ts>2013-01-31 19:03:07 -0800</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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103922</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jsbell</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>781841</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-12-03 13:44:07 -0800</bug_when>
    <thetext>This removes the legacy methods obsoleted by bug 103921</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821932</commentid>
    <comment_count>1</comment_count>
      <attachid>185857</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-31 14:05:01 -0800</bug_when>
    <thetext>Created attachment 185857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821934</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 14:07:53 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821935</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 14:08:09 -0800</bug_when>
    <thetext>Attachment 185857 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBCallbacks.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseBackendInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBTransaction.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBTransactionBackendInterface.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBTransactionCallbacks.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.h&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Source/WebKit/chromium/WebKit.gyp&apos;, u&apos;Source/WebKit/chromium/public/WebIDBCallbacks.h&apos;, u&apos;Source/WebKit/chromium/public/WebIDBDatabase.h&apos;, u&apos;Source/WebKit/chromium/public/WebIDBTransaction.h&apos;, u&apos;Source/WebKit/chromium/public/WebIDBTransactionCallbacks.h&apos;, u&apos;Source/WebKit/chromium/src/AssertMatchingEnums.cpp&apos;, u&apos;Source/WebKit/chromium/src/IDBCallbacksProxy.cpp&apos;, u&apos;Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp&apos;, u&apos;Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h&apos;, u&apos;Source/WebKit/chromium/src/IDBTransactionBackendProxy.cpp&apos;, u&apos;Source/WebKit/chromium/src/IDBTransactionBackendProxy.h&apos;, u&apos;Source/WebKit/chromium/src/IDBTransactionCallbacksProxy.cpp&apos;, u&apos;Source/WebKit/chromium/src/IDBTransactionCallbacksProxy.h&apos;, u&apos;Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/WebIDBDatabaseImpl.h&apos;, u&apos;Source/WebKit/chromium/src/WebIDBTransactionCallbacksImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/WebIDBTransactionCallbacksImpl.h&apos;, u&apos;Source/WebKit/chromium/src/WebIDBTransactionImpl.cpp&apos;, u&apos;Source/WebKit/chromium/src/WebIDBTransactionImpl.h&apos;, u&apos;Source/WebKit/chromium/tests/IDBAbortOnCorruptTest.cpp&apos;, u&apos;Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp&apos;]&quot; exit_code: 1
Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 8 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>821954</commentid>
    <comment_count>4</comment_count>
      <attachid>185864</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-31 14:23:50 -0800</bug_when>
    <thetext>Created attachment 185864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821959</commentid>
    <comment_count>5</comment_count>
      <attachid>185866</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-31 14:27:30 -0800</bug_when>
    <thetext>Created attachment 185866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821981</commentid>
    <comment_count>6</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-31 14:46:32 -0800</bug_when>
    <thetext>dglazkov@ - one more? Lots of code removal!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821995</commentid>
    <comment_count>7</comment_count>
      <attachid>185866</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-31 14:53:20 -0800</bug_when>
    <thetext>Comment on attachment 185866
Patch

I hope this code is safe and happy once it moves to that farm upstate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821996</commentid>
    <comment_count>8</comment_count>
      <attachid>185873</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-31 14:55:51 -0800</bug_when>
    <thetext>Created attachment 185873
Patch

oops, put back virtual destructor for refcounting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822164</commentid>
    <comment_count>9</comment_count>
      <attachid>185904</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-31 17:21:57 -0800</bug_when>
    <thetext>Created attachment 185904
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822228</commentid>
    <comment_count>10</comment_count>
      <attachid>185904</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 19:03:01 -0800</bug_when>
    <thetext>Comment on attachment 185904
Patch for landing

Clearing flags on attachment: 185904

Committed r141523: &lt;http://trac.webkit.org/changeset/141523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822229</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 19:03:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185857</attachid>
            <date>2013-01-31 14:05:01 -0800</date>
            <delta_ts>2013-01-31 14:23:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103923-20130131140145.patch</filename>
            <type>text/plain</type>
            <size>66173</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI5ZGYzM2QyODZhZjhl
NGYyMmYwMmY3NGI2ZWQzYmU5YTExMzhjNS4uMDdlZTgxNDZkOGUxYTM5OTU2NGM2Y2Y2ZmJhMDhm
MGE2MDM0ODNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAxLTMxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHJl
bW92ZSBvbGQgdHJhbnNhY3Rpb24gYmFja2VuZCBib290c3RyYXAgY29kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluYWxseSByZW1vdmUgYWxsIGxl
ZnRvdmVyIGNvZGUgZnJvbSB0aGUgSW5kZXhlZERCICJnaWFudAorICAgICAgICBhc3luYyByZWZh
Y3RvciBvZiAyMDEyLiIgVGhpcyBpbmNsdWRlcyByZW1vdmFsIG9mIGFsbAorICAgICAgICBJREJU
cmFuc2FjdGlvbiogaW50ZXJmYWNlcyB0aGF0IHdlcmUgc2hhcmVkIGJldHdlZW4KKyAgICAgICAg
dGhlIGZyb250ZW5kIGFuZCBiYWNrZW5kIGFuZCBhIGZldyBzdHJhZ2dsaW5nIG1ldGhvZHMKKyAg
ICAgICAgbGlrZSBvblVwZ3JhZGVOZWVkZWQgYW5kIG9uU3VjY2VzcyB0aGF0IHdlcmUgbGVmdCBm
cm9tCisgICAgICAgIHRoZSBsYXN0IHN0YWdlIG9mIHJlZmFjdG9yaW5nLgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjptZXRhZGF0YSk6CisgICAgICAg
IChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAxMy0wMS0zMSAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNlYXJjaGluZyBmb3IgPHU+IGluIGVsZW1lbnRzIHBh
bmVsIGZpbmRzIGFsbCB0YWdzIGNvbnRhaW5pbmcgInUiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDE2MWYyZGJjMjQwZmU0N2E5NDQwZmU4ZjM0Y2MxYzFhY2U0YWNiYmYuLmE3MTAxYmQ3
ZGNmZmU4ZjYwNzhmNmM2MWMwNDg3YThiNGM3ZDgyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsNDQgQEAKIDIwMTMtMDEtMzEgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRA
Y2hyb21pdW0ub3JnPgogCisgICAgICAgIEluZGV4ZWREQjogcmVtb3ZlIG9sZCB0cmFuc2FjdGlv
biBiYWNrZW5kIGJvb3RzdHJhcCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmUgYWxsIGRlcHJlY2F0ZWQgV2ViS2l0IEFQSXMgZnJvbQor
ICAgICAgICB0aGUgSURCIGJhY2tlbmQuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAg
ICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IHB1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9X
ZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9Bc3Nl
cnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3Bw
OgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgICog
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tl
bmRQcm94eSk6CisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAgICog
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IHNyYy9XZWJJREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxi
YWNrc0ltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rpb25J
bXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmg6
IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDoKKyAg
ICAgICAgKiB0ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKworMjAxMy0wMS0zMSAg
QWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgSW5kZXhlZERC
OiBSZW1vdmUgV2ViS2l0IEFQSSBmb3Igb2xkIG9uU3VjY2Vzcy9vblVwZ3JhZGVOZWVkZWQKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODM5OQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmluZGV4
IGQ1ZDQ3YzI0YWQ4N2I5YTQ4MmIyNjlmMjljMTUwN2M3YzM4MjE0NzUuLjMzM2Q3NjY2YzViM2Zj
MTYxMjI2ZDllMjYwYTdiYTk3YjMyYTM0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQktl
eVBhdGguaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNp
bmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGZkNjc2NDBhOTEwOGVkYmFiZjc2YzAx
ZTEzN2UzZjY0ZTQ3MTkxMzkuLmY4ZGM3MTkxNGI5Y2VmNDZhYTEwYTE3YTBlNTMwODk3YzE0ZDk5
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC01NDgsMTEgKzU0OCw2IEBAIFBhc3NSZWZQ
dHI8SURCQmFja2luZ1N0b3JlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpiYWNraW5nU3RvcmUo
KSBjb25zdAogICAgIHJldHVybiBtX2JhY2tpbmdTdG9yZTsKIH0KIAotSURCRGF0YWJhc2VNZXRh
ZGF0YSBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjptZXRhZGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fbWV0YWRhdGE7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRl
T2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBhdXRv
SW5jcmVtZW50KQogewogICAgIElEQl9UUkFDRSgiSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3Jl
YXRlT2JqZWN0U3RvcmUiKTsKQEAgLTExNjcsMTMgKzExNjIsNiBAQCB2b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAotLy8gRklYTUU6
IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTIzLgotUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURCVHJhbnNh
Y3Rpb246Ok1vZGUgbW9kZSkKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gMDsKLX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlv
bihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWdu
ZWQgc2hvcnQgbW9kZSkKIHsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4g
dHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUodHJhbnNhY3Rp
b25JZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rp
b246Ok1vZGU+KG1vZGUpLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBlODZhNWVlYmE5
NDdiODdkOTMxYjc4ODZiMTFhNGU0ZTQxMzAwM2RjLi41YmIxNjU0MGZlODdhZWUxMmZjZTk0MGVi
M2JmMmIxOWE2ODUwYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC00MSw3ICs0MSw2IEBAIGNs
YXNzIElEQkJhY2tpbmdTdG9yZTsKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3MgSURCRmFjdG9y
eUJhY2tlbmRJbXBsOwogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDsKLWNsYXNzIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3I7CiAKIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGwgOiBwdWJsaWMgSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlIHsKQEAgLTYwLDEzICs1OSwxMSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIG9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrcz4sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2ZXJz
aW9uKTsKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7
CisgICAgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEoKSBjb25zdCB7IHJldHVy
biBtX21ldGFkYXRhOyB9CiAKICAgICAvLyBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UKLSAg
ICB2aXJ0dWFsIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJv
b2wgYXV0b0luY3JlbWVudCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJREJUcmFuc2FjdGlvbjo6TW9k
ZSk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwg
dm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggMDRmNWU5OWM3YTY0YzZhYTgwMTMwMjcyNmUzODk5Yjhl
YzkzYmQwYS4uYjI5ZWRiYmUxOTdiNjQ4Y2MzNTVhYjdjZDBiZDhhOTNiZjBlYjZlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTQwLDcgKzQwLDYgQEAgY2xhc3MgSURCRGF0YWJh
c2VDYWxsYmFja3M7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlQYXRoOwogY2xhc3MgSURC
S2V5UmFuZ2U7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBzdHJ1Y3Qg
SURCRGF0YWJhc2VNZXRhZGF0YTsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTUy
LDExICs1MSw4IEBAIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjCiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIElEQkRh
dGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0lu
Y3JlbWVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgPSAwOwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RT
dG9yZUlkcywgSURCVHJhbnNhY3Rpb246Ok1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5z
aWduZWQgc2hvcnQgbW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzPikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKaW5k
ZXggM2QyZTRkMzQ1ZGI2YzJkMGQ0MmY5ODkyN2NlYjBmNzgwYjA1MTlhZC4uNTRjYjE0MzNlODRk
YjNiZTIxOGFlMzZmN2EyNjY4ZWMxZmUyZGFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaApA
QCAtMzksNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkRhdGFiYXNl
QmFja2VuZEltcGw7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOwotY2xhc3MgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwogc3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRh
dGE7CiAKIC8vIEZJWE1FOiB0aGlzIG5hbWVzcGFjZSBpcyB0ZW1wb3JhcnkgdW50aWwgd2UgbW92
ZSBpdHMgY29udGVudHMgb3V0IHRvIHRoZWlyIG93biBob21lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggYzk5ODBmYmJmZDNh
ODMwM2ZmYThjZmE1ZmZmYmI0ZjQwZDI2MjA5Zi4uMmQ1OWI3ZjUwZGJkZjRjMzAxMTQyMmI5OGQx
NWRiNTJjNTE0Nzc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIK
LSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlNjcmlwdFdy
YXBwYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KQEAgLTQ0LDEyICs0MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IElEQkN1cnNvcjsKIGNsYXNzIElEQkRhdGFiYXNlOworY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOworY2xhc3MgSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIElEQk9iamVjdFN0b3Jl
OwogY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZTsKIHN0cnVjdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOwogCi1jbGFzcyBJREJUcmFuc2Fj
dGlvbiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBJREJUcmFuc2FjdGlvbkNhbGxi
YWNrcywgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNz
IElEQlRyYW5zYWN0aW9uIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNvdW50
ZWQ8SURCVHJhbnNhY3Rpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01P
YmplY3QgewogcHVibGljOgogICAgIGVudW0gTW9kZSB7CiAgICAgICAgIFJFQURfT05MWSA9IDAs
CkBAIC0xMDcsNyArMTA3LDYgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoY29tcGxldGUpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
ZXJyb3IpOwogCi0gICAgLy8gSURCVHJhbnNhY3Rpb25DYWxsYmFja3MKICAgICB2aXJ0dWFsIHZv
aWQgb25BYm9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2aXJ0dWFsIHZv
aWQgb25Db21wbGV0ZSgpOwogCkBAIC0xMjMsOCArMTIyLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0
b3AoKSBPVkVSUklERTsKIAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25DYWxs
YmFja3M+OjpyZWY7Ci0gICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkNhbGxiYWNr
cz46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpyZWY7Cisg
ICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbj46OmRlcmVmOwogCiBwcml2YXRlOgog
ICAgIElEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQ2NF90LCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIE1vZGUsIElEQkRhdGFiYXNlKiwgSURCT3BlbkRCUmVxdWVzdCos
IGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaAppbmRl
eCAyNjQxODFlYTFlYmJiYTU0N2I4NDg0ZTM3ZjJmZmM3Y2IwMTBiNjUxLi43ZGM4ZGFiOTZmYWFh
YmI5MTgzNDA2Y2QwM2MwZjY4MDU2M2E1M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCkBA
IC0zMSw4ICszMSw3IEBACiAjaW5jbHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVk
ZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2Uu
aCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CkBAIC00MSwyMCArNDAsMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDsKK2NsYXNzIElEQkN1cnNvckJhY2tlbmRJ
bXBsOworY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3M7CiAKLWNsYXNzIElEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGwgOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlIHsKK2Ns
YXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gY3JlYXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIElE
QlRyYW5zYWN0aW9uOjpNb2RlLCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsKik7Ci0gICAgc3RhdGlj
IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIGZyb20oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiBpbnRlcmZhY2UpCi0gICAgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbCo+KGludGVyZmFjZSk7Ci0gICAgfQogICAgIHZpcnR1YWwg
fklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwoKTsKIAotICAgIC8vIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZQogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwogICAgIHZvaWQgY29tbWl0
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhJREJUcmFuc2FjdGlvbkNhbGxiYWNr
cyogY2FsbGJhY2tzKSB7IH0KIAogICAgIGNsYXNzIE9wZXJhdGlvbiB7CiAgICAgcHVibGljOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCAzNTY0MzEzNTIwZTRiNjBkZWQ0
OTY3NTJjZGJmN2EyNjM2NzAyNjE5Li4yOGJmOWYwYjcxZjA3NTU3MGJiMjBiZWQ2ZDQ4YjkwOWQ5
ZGMzZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaApAQCAtMzYsNyArMzYs
NiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJDdXJzb3JCYWNrZW5kSW1wbDsK
LWNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCkBAIC00OCw3ICs0Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2Fs
bGJhY2tzKElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVmMWRkMTNiZDEyNzMxN2I5ZTJhZDNlMTRhZTEwMmZiOTM1MzJhZDMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaAorKysgL2Rldi9udWxsCkBAIC0x
LDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzX2gKLSNkZWZpbmUg
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0KLSNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxi
YWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiB7Ci1wdWJs
aWM6Ci0gICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25DYWxsYmFja3MoKSB7IH0KLQotICAgIHZp
cnR1YWwgdm9pZCBvbkFib3J0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZSgpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmgKaW5kZXggOTFkYzBlMGQ5MDM4ZTRmYTQ0NGNhNjlmMjY5NTJj
YmVlOWQxOGYzMi4uNDk0Y2ZmYjIxNmM4N2Q5NzZmMjlkMTAwM2ViZmRiMDM1ZGUwMmE1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25D
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuaApAQCAtMzUsNyArMzUsNiBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOwotY2xhc3MgSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3M7CiBjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOwogCiAvLyBUcmFu
c2FjdGlvbnMgYXJlIGV4ZWN1dGVkIGluIHRoZSBvcmRlciB0aGUgd2VyZSBjcmVhdGVkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKaW5kZXggYzNiOGZjMDIwYzEyNmE2NGQ2MTlhN2Q3MGJlYmJjOTdiZGJkZjIxZC4uODI0
NTVlMGJhZGU4MTJiMTQ0MjQ3MmI4NzQ1Y2YyZTY4ODFmYTg3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0z
MDYzLDggKzMwNjMsNyBAQCBlbmFibGU/KElOREVYRURfREFUQUJBU0UpIHsKICAgICAgICAgTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuaCBcCi0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmggXAotICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaAorICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCiAK
ICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGll
cy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDU1YjI5YjRjZTczMzUzYzFjYzBjZTRkNzFlMzRk
OGQ1MGFiNGRhYmQuLjEyYjZkMDIyYWRkZjY3NjZiYTA1YmE4Yzk0N2VlMmQ3MmNkOTNiNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTc2OSw4ICs3NjksNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgnLAotICAgICAgICAgICAgJ01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oJywKLSAgICAg
ICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAg
ICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdl
RXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAyNTM2MjQ0ZDI5MDExMjU3YWQ5NzllMjQxNjUzMzlhMGE4MTVlOTJi
Li41NGJmNjcwYzc5YzExZDIzN2FmZGU4MzJhMTI0ZjI0YWQ1YWMzNmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTE3LDcg
KzM1MTcsNiBAQAogCQk5NzEyQTVGNjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTlE
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbi5oICovOyB9OwogCQk5NzEyQTVGODE1
MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5RjE1MDA0RURBMDA0
OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTk3MTJBNUY5
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTVBMDE1MDA0RURBMDA0
OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oICovOyB9OwotCQk5NzEyQTVGQTE1
MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTVBMTE1MDA0RURB
MDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi87IH07CiAJCTk3
MTJBNUZCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1QTIxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmggKi87IH07CiAJCTk3MTJBNUZD
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNUEzMTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJOTcxMkE1
RkQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNUE0MTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggKi87IH07CkBAIC0xMDkwNSw3
ICsxMDkwNCw2IEBACiAJCTk3MTJBNTlFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSURCVHJhbnNhY3Rpb24uaWRsOyBwYXRoID0g
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzEyQTU5RjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEy
QTVBMDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmg7
IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3MTJBNUExMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmg7IHBhdGggPSBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1QTIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTVBMzE1MDA0
RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDsg
cGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTVBNDE1MDA0RURBMDA0OEFGMTAgLyog
SURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODMxOSw3ICsxODMxNyw2IEBACiAJCQkJOTcxMkE1OUUxNTAwNEVEQTAwNDhBRjEwIC8q
IElEQlRyYW5zYWN0aW9uLmlkbCAqLywKIAkJCQk5NzEyQTU5RjE1MDA0RURBMDA0OEFGMTAgLyog
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgKi8sCiAJCQkJOTcxMkE1QTAxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCAqLywKLQkJCQk5NzEyQTVBMTE1
MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi8sCiAJ
CQkJOTcxMkE1QTIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgg
Ki8sCiAJCQkJOTcxMkE1QTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuY3BwICovLAogCQkJCTk3MTJBNUE0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2Fj
dGlvbkNvb3JkaW5hdG9yLmggKi8sCkBAIC0yNDQxNiw3ICsyNDQxMyw2IEBACiAJCQkJOTcxMkE1
RjQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
MTJBNUY2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTcxMkE1RjkxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3MTJBNUZBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUZC
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTcxMkE1RkQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUZGMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJL
aXQuZ3lwCmluZGV4IDkxZDhhNDRiNDNiYTIwOWRiNzUzMmE3M2Q2Nzc2Mzk3YzE1OTI3YTcuLmJl
YmRlYjJlZWQ5NmU1NGM1NTRjZTI0NTE4MGUxOGM1Y2UwZWEwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKQEAgLTE4OCw4ICsxODgsNiBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViSURCS2V5UGF0aC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQktleVJhbmdl
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCTWV0YWRhdGEuaCcsCi0gICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oJywKLSAgICAgICAgICAgICAgICAn
cHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0aW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSWNvblVSTC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdlRGVjb2Rl
ci5oJywKQEAgLTM3NSwxMCArMzczLDYgQEAKICAgICAgICAgICAgICAgICAnc3JjL0lEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5
QmFja2VuZFByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2Vu
ZFByb3h5LmgnLAotICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJv
eHkuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
LmgnLAotICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5j
cHAnLAotICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5o
JywKICAgICAgICAgICAgICAgICAnc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuY3BwJywKQEAgLTUxNiwxMCArNTEwLDYg
QEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQktleVBhdGguY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYklEQktleVJhbmdlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJNZXRhZGF0YS5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViSURCVHJhbnNhY3Rpb25J
bXBsLmNwcCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCcs
Ci0gICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3Bw
JywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViSW1hZ2VTa2lhLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
bnB1dEVsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCQ2FsbGJhY2tzLmgKaW5kZXggMTFkNzE2ZDM5ZTZhNWJiNjQyZTM4OTMxODk2NTk2YmVhMmI4
NGYyNi4uMTIyMDc1YzkxMWExY2RkZDhiMDVlZDE1YTA5MTgyMDFkMjM5MGRlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTM4LDcg
KzM4LDYgQEAgY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIFdlYklEQktleTsKIGNs
YXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJJbmRleDsKLWNsYXNzIFdlYklEQlRyYW5z
YWN0aW9uOwogY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogc3RydWN0IFdlYklEQk1l
dGFkYXRhOwogCkBAIC02Myw3ICs2Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25C
bG9ja2VkKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgb25CbG9ja2VkKGxvbmcgbG9uZyBvbGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3Qg
V2ViVmVjdG9yPFdlYklEQktleT4mIGtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBw
cmltYXJ5S2V5cywgY29uc3QgV2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZh
bHVlcykgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
b25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbios
IFdlYklEQkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJE
YXRhYmFzZSosIGNvbnN0IFdlYklEQk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJE
YXRhYmFzZS5oCmluZGV4IDg1MTk2ZDUyMzJiNzgxOWZjZjlkN2NjMDNkYmI3NTMxOTMzMjdkYmYu
LmM0Y2UxYjhhOGFiMjNhZmJiY2YyYWEyNmExYWMyNGMxMDViZmE5YjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtMzAsNyArMzAsNiBA
QAogI2luY2x1ZGUgIldlYkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJXZWJFeGNlcHRpb25D
b2RlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFu
c2FjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDEsMjIgKzQwLDE0IEBAIGNs
YXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CiBjbGFzcyBXZWJJREJLZXk7CiBjbGFzcyBXZWJJREJL
ZXlQYXRoOwogY2xhc3MgV2ViSURCS2V5UmFuZ2U7Ci1jbGFzcyBXZWJJREJUcmFuc2FjdGlvbjsK
IAogLy8gU2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2
aWV3IG9mIHRoZXNlIGNsYXNzZXMuCiBjbGFzcyBXZWJJREJEYXRhYmFzZSB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2UoKSB7IH0KIAotICAgIHZpcnR1YWwgV2ViSURCTWV0
YWRhdGEgbWV0YWRhdGEoKSBjb25zdAotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gV2ViSURCTWV0YWRhdGEoKTsKLSAgICB9CiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBs
b25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJ
REJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgdHJh
bnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgV2Vi
SURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2Vi
VmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNh
Y3Rpb24obG9uZyBsb25nIGlkLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogY2FsbGJhY2tzLCBj
b25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyBXRUJL
SVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzYyMjhiYWM5Y2ViNjM0NDU0NmJiZDY0YzdkNzhiNTU1NjViNzU5ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURCVHJhbnNhY3Rpb25faAotI2RlZmluZSBXZWJJ
REJUcmFuc2FjdGlvbl9oCi0KLSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViU3RyaW5nLmgiCi0jaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsgfQot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7
Ci0KLS8vIFNlZSBjb21tZW50IGluIFdlYklEQkZhY3RvcnkgZm9yIGEgaGlnaCBsZXZlbCBvdmVy
dmlldyBvZiB0aGVzZSBjbGFzc2VzLgotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb24gewotcHVibGlj
OgotICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uKCkgeyB9Ci0KLSAgICBlbnVtIFRhc2tU
eXBlIHsKLSAgICAgICAgTm9ybWFsVGFzayA9IDAsCi0gICAgICAgIFByZWVtcHRpdmVUYXNrCi0g
ICAgfTsKLQotICAgIHZpcnR1YWwgdm9pZCBjb21taXQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhXZWJJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrcyopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICAv
LyBGSVhNRTogdGhpcyBpcyBuZXZlciBjYWxsZWQgZnJvbSBXZWJDb3JlLiBGaW5kIGEgY2xlYW5l
ciBzb2x1dGlvbi4KLSAgICB2aXJ0dWFsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5n
RXZlbnRzKGludCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotcHJvdGVjdGVk
OgotICAgIFdlYklEQlRyYW5zYWN0aW9uKCkge30KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gV2ViSURCVHJhbnNhY3Rpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxOWZhYmE5ZWY3NWE3OWZmZDk5YTZlNGU0ZTFi
ODNlY2VlZDY1ZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3MuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzX2gKLSNkZWZpbmUgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NfaAotCi0jaW5jbHVkZSAiLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNv
bW1vbi5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJv
cjsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MgewotcHVibGljOgotICAgIHZp
cnR1YWwgfldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgb25BYm9ydChjb25zdCBXZWJJREJEYXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZSgpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmIC8vIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXggZjM3NmE1OThhNWQz
YTI3ZWM1ZGRmZDExOThjYjk4N2YxZWY2NzU0NS4uNjE1MTNmYTBlMmRlMjBmYzNhMGFmMjY4YWYx
Zjk1M2ZhMGUxN2JmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNz
ZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNz
ZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTU0LDEyICs1NCwxMiBAQAogI2VuZGlmCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUg
IklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhj
ZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNs
dWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCTWV0
YWRhdGEuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNp
bmNsdWRlICJJY29uVVJMLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVNvdXJjZS5oIgpAQCAtOTUsMTIgKzk1LDEyIEBACiAjaW5jbHVkZSAiV2ViR2Vv
bG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKICNp
bmNsdWRlICJXZWJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZS5oIgogI2lu
Y2x1ZGUgIldlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9y
eS5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUgIldlYklEQktleVBhdGguaCIK
ICNpbmNsdWRlICJXZWJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViSWNvblVSTC5oIgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5o
IgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyLmgiCkBAIC01MDUsOCArNTA1LDggQEAgQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJDdXJzb3I6Ok5leHROb0R1cGxpY2F0ZSwgSURC
Q3Vyc29yOjpORVhUX05PX0QKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCQ3Vy
c29yOjpQcmV2LCBJREJDdXJzb3I6OlBSRVYpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJJREJDdXJzb3I6OlByZXZOb0R1cGxpY2F0ZSwgSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJ
Q0FURSk7CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCVHJhbnNhY3Rpb246
OlByZWVtcHRpdmVUYXNrLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlByZWVtcHRpdmVU
YXNrKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCVHJhbnNhY3Rpb246Ok5v
cm1hbFRhc2ssIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Tm9ybWFsVGFzayk7CitDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkRhdGFiYXNlOjpQcmVlbXB0aXZlVGFzaywg
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQcmVlbXB0aXZlVGFzayk7CitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkRhdGFiYXNlOjpOb3JtYWxUYXNrLCBJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1hbFRhc2spOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRklM
RV9TWVNURU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQ
cm94eS5jcHAKaW5kZXggNjcwNTE2MjZmZmNiYjA3N2JhYzNlZjJhM2RiNDM3YzViOGNkOGQ0Zi4u
ZWE4Zjg1NGQ1ZDU1OGJmMjg0NDZiNzNiNzBkZjJjMzNhYmU2MDQ1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtMzgsNyArMzgs
NiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJJ
REJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFj
a3MuaCIKICNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2VDYWxsYmFja3MuaCIKQEAgLTQ2LDcgKzQ1LDcgQEAKICNpbmNsdWRlICJXZWJJREJEYXRh
YmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlSW1wbC5oIgogI2luY2x1
ZGUgIldlYklEQktleS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uSW1wbC5oIgorI2lu
Y2x1ZGUgIldlYklEQk1ldGFkYXRhLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDg1MmRi
ZDRlZDE2ODU5MzY0MmU1OGMxOTQ3NTI4NmJkOTBjMmIzODAuLmNiNzVjMmNmOGUwZGJlMDk4MTEy
YmUwNDZhNWRiMDMwZTUwOTU3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNp
bmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgi
CiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tl
bmRQcm94eS5oIgogI2luY2x1ZGUgIldlYkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJXZWJG
cmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCkBAIC00Miw3ICs0
MSw2IEBACiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCi0j
aW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKQEAgLTYyLDExICs2MCw2IEBAIElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojp+SURCRGF0YWJh
c2VCYWNrZW5kUHJveHkoKQogewogfQogCi1JREJEYXRhYmFzZU1ldGFkYXRhIElEQkRhdGFiYXNl
QmFja2VuZFByb3h5OjptZXRhZGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViSURCRGF0
YWJhc2UtPm1ldGFkYXRhKCk7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNy
ZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wg
YXV0b0luY3JlbWVudCkKIHsKICAgICBpZiAobV93ZWJJREJEYXRhYmFzZSkKQEAgLTc5LDE1ICs3
Miw2IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvCiAgICAgICAgIG1fd2ViSURCRGF0YWJhc2Ut
PmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQpOwogfQogCi1Q
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHk6OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgb2JqZWN0U3RvcmVJZHMsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUpCi17Ci0gICAg
T3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbiA9IGFkb3B0UHRyKG1fd2ViSURC
RGF0YWJhc2UtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBvYmplY3RTdG9yZUlkcywgbW9kZSkpOwot
ICAgIGlmICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpjcmVhdGUodHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsK
LX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50
NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQog
ewogICAgIG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBuZXcgV2ViSURC
RGF0YWJhc2VDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIG9iamVjdFN0b3JlSWRzLCBtb2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2Vu
ZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQ
cm94eS5oCmluZGV4IGU3M2ZlMTFiNmQzNTc0OWQ3ZTVhNDdiZjAxNTkxMzYwMzE4YmQwZjYuLjZk
MmQ4ZWQwYTAyMTllYjM4YjY3YjQ5NGNjM2RhZDNhZGJmZmRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaApAQCAtNDIs
MTIgKzQyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2U+
KTsKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFzZUJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVh
bCBXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3Q7Ci0KICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURC
S2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9i
amVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsK
LSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50
NjRfdCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Ok1v
ZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMmEwNThjZjdjMDhiZDJjNGY5N2VkNjc5ODQw
Y2Q4OTdiMjNkNjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLQotI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3MuaCIKLSNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2ViSURC
VHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwu
aCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1Q
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCVHJhbnNhY3Rpb25C
YWNrZW5kUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2Fj
dGlvbikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZFBy
b3h5KHRyYW5zYWN0aW9uKSk7Ci19Ci0KLUlEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFu
c2FjdGlvbikKLSAgICA6IG1fd2ViSURCVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCi17Ci0gICAg
QVNTRVJUKG1fd2ViSURCVHJhbnNhY3Rpb24pOwotfQotCi1JREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eTo6fklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KCkKLXsKLX0KLQotdm9pZCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eTo6Y29tbWl0KCkKLXsKLSAgICBtX3dlYklEQlRyYW5zYWN0aW9u
LT5jb21taXQoKTsKLX0KLQotdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6YWJvcnQo
KQotewotICAgIG1fd2ViSURCVHJhbnNhY3Rpb24tPmFib3J0KCk7Ci19Ci0KLXZvaWQgSURCVHJh
bnNhY3Rpb25CYWNrZW5kUHJveHk6OnNldENhbGxiYWNrcyhJREJUcmFuc2FjdGlvbkNhbGxiYWNr
cyogY2FsbGJhY2tzKQotewotICAgIG1fd2ViSURCVHJhbnNhY3Rpb24tPnNldENhbGxiYWNrcyhu
ZXcgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2YzNkODQxMjA3N2U0
NjkwNDUwNmIwODJlZWY3MmQzY2I0ZTQyYzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5X2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHlfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tl
bmRQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Ug
ewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+KTsKLSAgICB2aXJ0
dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGNv
bW1pdCgpOwotICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRD
YWxsYmFja3MoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsKLQotICAgIFdlYklE
QlRyYW5zYWN0aW9uKiBnZXRXZWJJREJUcmFuc2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
SURCVHJhbnNhY3Rpb24uZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPik7Ci0KLSAgICBPd25QdHI8
V2ViSURCVHJhbnNhY3Rpb24+IG1fd2ViSURCVHJhbnNhY3Rpb247Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2Fj
dGlvbkNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1YmNkYjI3M2I0ZDVmZmE3ZTU0MTBlMGIwMDdkZjA3MzhlNmYxMTk1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlv
bkNhbGxiYWNrc1Byb3h5LmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2lu
Y2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9y
LmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLQotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk+IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5KGNh
bGxiYWNrcykpOwotfQotCi1JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5OjpJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrc1Byb3h5KFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M+
IGNhbGxiYWNrcykKLSAgICA6IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKLXsKLX0KLQotSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NQcm94eTo6fklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkoKQot
ewotfQotCi12b2lkIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6Om9uQWJvcnQoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUVycm9yPiBpZGJEYXRhYmFzZUVycm9yKQotewotICAgIG1fY2FsbGJh
Y2tzLT5vbkFib3J0KFdlYklEQkRhdGFiYXNlRXJyb3IoaWRiRGF0YWJhc2VFcnJvcikpOwotfQot
Ci12b2lkIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6Om9uQ29tcGxldGUoKQotewotICAg
IG1fY2FsbGJhY2tzLT5vbkNvbXBsZXRlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAot
Ci0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExOWM4Y2E3NWJiMjk3OTlmOTUwZjA5MTgxOGUw
ODVhMDRhNjJlOTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94
eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NQcm94eV9oCi0jZGVmaW5lIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHlf
aAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzOwotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5
IDogcHVibGljIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzIHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5PiBjcmVhdGUo
UGFzc093blB0cjxXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz4pOwotICAgIHZpcnR1YWwgfklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pOwotICAgIHZpcnR1YWwgdm9p
ZCBvbkNvbXBsZXRlKCk7Ci0KLXByaXZhdGU6Ci0gICAgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQ
cm94eShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPik7Ci0KLSAgICBPd25Q
dHI8V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IG1fY2FsbGJhY2tzOwotfTsKLQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc1Byb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
Q2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggY2QxNmQzZDhjZGFmNTE4OTdhZjc4OTZlZDJmNDlkZGFm
ZjJhZGViNC4uNjFmNTVjODRkY2Y4ODcwZTcxZGFkNTFhYTJiYzVhNTVjZjYzNjgyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
QEAgLTM0LDEzICszNCwxMSBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmgi
CiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQktleS5oIgotI2lu
Y2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRE9NU3Ry
aW5nTGlzdC5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklE
QkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUg
IldlYklEQktleS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAK
aW5kZXggNmI4MTg5M2E1YjBhYjU3OTNmOWI4YTZmY2I5MjBkZDMwNWViZjgxYS4uOTdhYmRmNzI5
OWQxOTg4MDQ0MTA3Yjg0MmRkYmYzM2FmNGI5MWIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCkBAIC0zNSwxNCArMzUsMTIgQEAK
ICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5jbHVkZSAiSURCS2V5
UmFuZ2UuaCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2lu
Y2x1ZGUgIldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJh
c2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUgIldlYklEQktleVJh
bmdlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFu
c2FjdGlvbkltcGwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU4LDExICs1
Niw2IEBAIFdlYklEQkRhdGFiYXNlSW1wbDo6fldlYklEQkRhdGFiYXNlSW1wbCgpCiB7CiB9CiAK
LVdlYklEQk1ldGFkYXRhIFdlYklEQkRhdGFiYXNlSW1wbDo6bWV0YWRhdGEoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2RhdGFiYXNlQmFja2VuZC0+bWV0YWRhdGEoKTsKLX0KLQogdm9pZCBXZWJJ
REJEYXRhYmFzZUltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBX
ZWJJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgbV9kYXRh
YmFzZUJhY2tlbmQtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3Jl
SWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpOwpAQCAtNzQsMTggKzY3LDYgQEAgdm9p
ZCBXZWJJREJEYXRhYmFzZUltcGw6OmRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2Fj
dGlvbklkLCBsb25nIGxvbmcgb2IKIH0KIAogCi0vLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9k
IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi1XZWJJ
REJUcmFuc2FjdGlvbiogV2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25n
IGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5z
aWduZWQgc2hvcnQgbW9kZSkKLXsKLSAgICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExp
c3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9i
amVjdFN0b3JlSWRzLnNpemUoKTsgKytpKQotICAgICAgICBvYmplY3RTdG9yZUlkTGlzdFtpXSA9
IG9iamVjdFN0b3JlSWRzW2ldOwotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+IHRyYW5zYWN0aW9uID0gbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZVRyYW5zYWN0aW9u
KGlkLCBvYmplY3RTdG9yZUlkTGlzdCwgc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb246Ok1vZGU+
KG1vZGUpKTsKLSAgICBpZiAoIXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gMDsKLSAgICBy
ZXR1cm4gbmV3IFdlYklEQlRyYW5zYWN0aW9uSW1wbCh0cmFuc2FjdGlvbik7Ci19Ci0KIHZvaWQg
V2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklE
QkRhdGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+
JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBWZWN0b3I8aW50
NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggMDQ2NWY1
ZTI4NzJlNTJhOGU1NjZlYmM3ZGY1OGFjMzI5ZDJhYWJhNS4uMWZkNTk0OTc2MGU2MzAzYTQ4NjAw
ZjNhZjJjNWRhM2QwODM2OTY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJJREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIK
ICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tbW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC00Myw3ICs0Miw2IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgV2ViSURCRGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBXZWJJREJEYXRh
YmFzZUVycm9yOwogY2xhc3MgV2ViSURCRGF0YWJhc2VNZXRhZGF0YTsKLWNsYXNzIFdlYklEQlRy
YW5zYWN0aW9uOwogCiAvLyBTZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhpZ2gg
bGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KIGNsYXNzIFdlYklEQkRhdGFiYXNlSW1wbCA6
IHB1YmxpYyBXZWJJREJEYXRhYmFzZSB7CkBAIC01MSwxMiArNDksOCBAQCBwdWJsaWM6CiAgICAg
V2ViSURCRGF0YWJhc2VJbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U+LCBXVEY6OlBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eT4pOwogICAgIHZpcnR1YWwgfldlYklEQkRhdGFiYXNlSW1wbCgpOwogCi0gICAgdmlydHVhbCBX
ZWJJREJNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0OwotCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBh
dXRvSW5jcmVtZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBs
b25nIG9iamVjdFN0b3JlSWQsIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKTsKLSAgICAvLyBGSVhN
RTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRlVHJh
bnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2ln
bmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihsb25n
IGxvbmcgaWQsIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcg
bG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9z
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNDFlOWZjNjE3OWFlNjkxNTgxYzViMjAz
ZGMzN2Y1YzhiOWVmYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NJbXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgi
Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQkRhdGFiYXNl
RXJyb3IuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUg
IldlYklEQkRhdGFiYXNlRXJyb3IuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6OldlYklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzPiBjYWxsYmFja3MpCi0gICAgOiBtX2NhbGxiYWNrcyhjYWxsYmFja3MpCi17Ci19Ci0KLVdl
YklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6fldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
SW1wbCgpCi17Ci19Ci0KLXZvaWQgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsOjpvbkFi
b3J0KGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKQotewotICAgIG1fY2FsbGJhY2tz
LT5vbkFib3J0KGVycm9yKTsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0lt
cGw6Om9uQ29tcGxldGUoKQotewotICAgIG1fY2FsbGJhY2tzLT5vbkNvbXBsZXRlKCk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
ZmM4NDNjM2I3MzdjNzExMGVmZTQ3ZGFjODJlZjkxODU0OGE0ZmU2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsX2gK
LSNkZWZpbmUgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsX2gKLQotI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3Mu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsgfQot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJ
bXBsIDogcHVibGljIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzIHsKLXB1YmxpYzoKLSAgICBX
ZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkNhbGxiYWNrcz4pOwotICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzSW1wbCgpOwotCi0gICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoY29uc3QgV2ViSURCRGF0YWJh
c2VFcnJvciYpOwotICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKCk7Ci0KLXByaXZhdGU6Ci0g
ICAgUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCi0KLSNlbmRpZiAvLyBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGxfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25J
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1w
bC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkZmQ2N2JkZDhiMmU1NTc0Yzg0
ZjgyZDFiZjE5ZDViNTk3ODkxMzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25J
bXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25JbXBsLmgiCi0KLSNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCi0jaW5j
bHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NQcm94eS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotV2ViSURCVHJhbnNhY3Rpb25JbXBsOjpXZWJJREJUcmFuc2FjdGlvbkltcGwoUGFzc1Jl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCi0gICAgOiBtX2Jh
Y2tlbmQoYmFja2VuZCkKLXsKLX0KLQotV2ViSURCVHJhbnNhY3Rpb25JbXBsOjp+V2ViSURCVHJh
bnNhY3Rpb25JbXBsKCkKLXsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkltcGw6OmNvbW1p
dCgpCi17Ci0gICAgbV9iYWNrZW5kLT5jb21taXQoKTsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2Fj
dGlvbkltcGw6OmFib3J0KCkKLXsKLSAgICBtX2JhY2tlbmQtPmFib3J0KCk7Ci19Ci0KLXZvaWQg
V2ViSURCVHJhbnNhY3Rpb25JbXBsOjpzZXRDYWxsYmFja3MoV2ViSURCVHJhbnNhY3Rpb25DYWxs
YmFja3MqIGNhbGxiYWNrcykKLXsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25DYWxsYmFja3M+
IGlkYkNhbGxiYWNrcyA9IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9w
dFB0cihjYWxsYmFja3MpKTsKLSAgICBtX2JhY2tlbmQtPnNldENhbGxiYWNrcyhpZGJDYWxsYmFj
a3MuZ2V0KCkpOwotfQotCi1JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIFdlYklEQlRy
YW5zYWN0aW9uSW1wbDo6Z2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9iYWNrZW5kLmdldCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTZmMDZhNmVlZjQ1ZDE5OGFmNTNkNjcyNDg5ZGM5NTIyMzU2Mjdh
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaAorKysgL2Rldi9udWxs
CkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQlRyYW5zYWN0aW9uSW1wbF9o
Ci0jZGVmaW5lIFdlYklEQlRyYW5zYWN0aW9uSW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLQotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSA8cHVi
bGljL1dlYkNvbW1vbi5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gU2VlIGNvbW1lbnQgaW4g
V2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nl
cy4KLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uSW1wbDogcHVibGljIFdlYklEQlRyYW5zYWN0aW9u
IHsKLXB1YmxpYzoKLSAgICBXZWJJREJUcmFuc2FjdGlvbkltcGwoV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwotICAgIHZpcnR1YWwgfldl
YklEQlRyYW5zYWN0aW9uSW1wbCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpOwotICAg
IHZpcnR1YWwgdm9pZCBhYm9ydCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3MoV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsKLQotICAgIHZpcnR1YWwgV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBnZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IG1fYmFja2VuZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNlbmRpZiAv
LyBXZWJJREJUcmFuc2FjdGlvbkltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCmluZGV4IDcxNTc0YWNhM2FmOGU4
OThlYzQ2YzZlZmRkNmYyN2FmZDg0Y2U4N2EuLjkxZDk0YjQwODBlNzg0YzI2ZWU1MmI5N2M2NTQw
NGVhYjYwNjNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
QWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgcHVibGljOgogICAg
ICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJLZXk+KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+LCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IElEQktleVBhdGgmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKGludDY0X3QpIE9WRVJSSURFIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5k
ZXggODhiMjhjODhmZWIwZDhhMWMxZWQ5ZDMyYmYxNWUzOGI3NzdjNDRiZS4uNDU0OTU1M2I5YzQ4
YjczNTQyYjA1NGQ1MmUzZjk2Mzc5MGM2NTZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xMzgsOCAr
MTM4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0
YSgpIGNvbnN0IHsgcmV0dXJuIElEQkRhdGFiYXNlTWV0YWRhdGEoKTsgfQogICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBh
dXRvSW5jcmVtZW50KSBPVkVSUklERSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVj
dFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVS
UklERSB7IH0KLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50
NjRfdCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgSURCVHJhbnNhY3Rpb246Ok1vZGUpIE9WRVJS
SURFIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24oaW50
NjRfdCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIE9WRVJSSURFIHsgfQogCiAgICAgdmlydHVhbCB2
b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KSBPVkVSUklERQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185864</attachid>
            <date>2013-01-31 14:23:50 -0800</date>
            <delta_ts>2013-01-31 14:27:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103923-20130131142033.patch</filename>
            <type>text/plain</type>
            <size>69167</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI5ZGYzM2QyODZhZjhl
NGYyMmYwMmY3NGI2ZWQzYmU5YTExMzhjNS4uYjJiYjkyODBiZTk2OTQwYzA2NTNmNTE0YjZlYjU5
YjllZGNhNmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEzLTAxLTMxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHJl
bW92ZSBvbGQgdHJhbnNhY3Rpb24gYmFja2VuZCBib290c3RyYXAgY29kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluYWxseSByZW1vdmUgYWxsIGxl
ZnRvdmVyIGNvZGUgZnJvbSB0aGUgSW5kZXhlZERCICJnaWFudAorICAgICAgICBhc3luYyByZWZh
Y3RvciBvZiAyMDEyLiIgVGhpcyBpbmNsdWRlcyByZW1vdmFsIG9mIGFsbAorICAgICAgICBJREJU
cmFuc2FjdGlvbiogaW50ZXJmYWNlcyB0aGF0IHdlcmUgc2hhcmVkIGJldHdlZW4KKyAgICAgICAg
dGhlIGZyb250ZW5kIGFuZCBiYWNrZW5kIGFuZCBhIGZldyBzdHJhZ2dsaW5nIG1ldGhvZHMKKyAg
ICAgICAgbGlrZSBvblVwZ3JhZGVOZWVkZWQgYW5kIG9uU3VjY2VzcyB0aGF0IHdlcmUgbGVmdCBm
cm9tCisgICAgICAgIHRoZSBsYXN0IHN0YWdlIG9mIHJlZmFjdG9yaW5nLgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjptZXRhZGF0YSk6CisgICAgICAg
IChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6bWV0YWRh
dGEpOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSURCVHJhbnNhY3Rpb24pOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBUYXJnZXQucHJp
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKIDIwMTMtMDEtMzEgIERtaXRyeSBadm9yeWdpbiAgPHp2b3J5Z2lu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzZWFyY2hpbmcgZm9yIDx1
PiBpbiBlbGVtZW50cyBwYW5lbCBmaW5kcyBhbGwgdGFncyBjb250YWluaW5nICJ1IgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAxNjFmMmRiYzI0MGZlNDdhOTQ0MGZlOGYzNGNjMWMxYWNl
NGFjYmJmLi5hNzEwMWJkN2RjZmZlOGY2MDc4ZjZjNjFjMDQ4N2E4YjRjN2Q4MjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDEzLTAxLTMxICBBbGVjIEZs
ZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IHJlbW92
ZSBvbGQgdHJhbnNhY3Rpb24gYmFja2VuZCBib290c3RyYXAgY29kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGFsbCBkZXByZWNhdGVkIFdl
YktpdCBBUElzIGZyb20KKyAgICAgICAgdGhlIElEQiBiYWNrZW5kLgorCisgICAgICAgICogV2Vi
S2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6CisgICAgICAgICogc3JjL0lEQkNh
bGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHku
Y3BwOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oOgorICAgICAgICAo
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzUHJveHkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9JREJUcmFuc2FjdGlvbkNhbGxi
YWNrc1Byb3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
Y3BwOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURC
VHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmg6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dl
YklEQlRyYW5zYWN0aW9uSW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYklEQlRy
YW5zYWN0aW9uSW1wbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0T25Db3Jy
dXB0VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHA6
CisKKzIwMTMtMDEtMzEgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIEluZGV4ZWREQjogUmVtb3ZlIFdlYktpdCBBUEkgZm9yIG9sZCBvblN1Y2Nlc3Mvb25V
cGdyYWRlTmVlZGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDgzOTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
YWxsYmFja3MuaAppbmRleCBkNWQ0N2MyNGFkODdiOWE0ODJiMjY5ZjI5YzE1MDdjN2MzODIxNDc1
Li4zMzNkNzY2NmM1YjNmYzE2MTIyNmQ5ZTI2MGE3YmE5N2IzMmEzNGIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtMzMsNyArMzMs
NiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJLZXkuaCIK
ICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBmZDY3NjQw
YTkxMDhlZGJhYmY3NmMwMWUxMzdlM2Y2NGU0NzE5MTM5Li5mOGRjNzE5MTRiOWNlZjQ2YWExMGEx
N2EwZTUzMDg5N2MxNGQ5OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNTQ4LDExICs1
NDgsNiBAQCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6YmFja2luZ1N0b3JlKCkgY29uc3QKICAgICByZXR1cm4gbV9iYWNraW5nU3RvcmU7CiB9CiAK
LUlEQkRhdGFiYXNlTWV0YWRhdGEgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6bWV0YWRhdGEoKSBj
b25zdAotewotICAgIHJldHVybiBtX21ldGFkYXRhOwotfQotCiB2b2lkIElEQkRhdGFiYXNlQmFj
a2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtl
eVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKIHsKICAgICBJREJfVFJBQ0UoIklEQkRhdGFiYXNl
QmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlIik7CkBAIC0xMTY3LDEzICsxMTYyLDYgQEAg
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKICAgICB9
CiB9CiAKLS8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlv
bihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3Rv
cmVJZHMsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUpCi17Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0
U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uID0gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6
Y3JlYXRlKHRyYW5zYWN0aW9uSWQsIGNhbGxiYWNrcywgb2JqZWN0U3RvcmVJZHMsIHN0YXRpY19j
YXN0PElEQlRyYW5zYWN0aW9uOjpNb2RlPihtb2RlKSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgK
aW5kZXggZTg2YTVlZWJhOTQ3Yjg3ZDkzMWI3ODg2YjExYTRlNGU0MTMwMDNkYy4uNWJiMTY1NDBm
ZTg3YWVlMTJmY2U5NDBlYjNiZjJiMTlhNjg1MGI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApAQCAt
NDEsNyArNDEsNiBAQCBjbGFzcyBJREJCYWNraW5nU3RvcmU7CiBjbGFzcyBJREJEYXRhYmFzZTsK
IGNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW1wbDsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGw7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBJREJU
cmFuc2FjdGlvbkNvb3JkaW5hdG9yOwogCiBjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbXBsIDog
cHVibGljIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSB7CkBAIC02MCwxMyArNTksMTEgQEAg
cHVibGljOgogCiAgICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9u
SWQsIGludDY0X3QgdmVyc2lvbik7CiAgICAgdm9pZCBkZWxldGVEYXRhYmFzZShQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4pOworICAgIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmIG1ldGFkYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YTsgfQogCiAgICAgLy8gSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlCi0gICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCk7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURC
VHJhbnNhY3Rpb246Ok1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihp
bnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2Rl
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IDA0ZjVlOTljN2E2NGM2YWE4
MDEzMDI3MjZlMzg5OWI4ZWM5M2JkMGEuLmIyOWVkYmJlMTk3YjY0OGNjMzU1YWI3Y2QwYmQ4YTkz
YmYwZWI2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC00MCw3ICs0MCw2IEBA
IGNsYXNzIElEQkRhdGFiYXNlQ2FsbGJhY2tzOwogY2xhc3MgSURCS2V5OwogY2xhc3MgSURCS2V5
UGF0aDsKIGNsYXNzIElEQktleVJhbmdlOwotY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlOwogc3RydWN0IElEQkRhdGFiYXNlTWV0YWRhdGE7CiAKIHR5cGVkZWYgaW50IEV4Y2Vw
dGlvbkNvZGU7CkBAIC01MiwxMSArNTEsOCBAQCBjbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhYwogcHVi
bGljOgogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSgpIHsgfQogCi0g
ICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgPSAwOwotCiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBh
dGgmLCBib29sIGF1dG9JbmNyZW1lbnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2Jq
ZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpID0g
MDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIElEQlRyYW5zYWN0aW9uOjpNb2RlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5oCmluZGV4IDNkMmU0ZDM0NWRiNmMyZDBkNDJmOTg5MjdjZWIwZjc4MGIwNTE5
YWQuLjU0Y2IxNDMzZTg0ZGIzYmUyMThhZTM2ZjdhMjY2OGVjMWZlMmRhZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmgKQEAgLTM5LDcgKzM5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOwogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbDsKLWNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIHN0cnVjdCBJREJP
YmplY3RTdG9yZU1ldGFkYXRhOwogCiAvLyBGSVhNRTogdGhpcyBuYW1lc3BhY2UgaXMgdGVtcG9y
YXJ5IHVudGlsIHdlIG1vdmUgaXRzIGNvbnRlbnRzIG91dCB0byB0aGVpciBvd24gaG9tZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmlu
ZGV4IGM5OTgwZmJiZmQzYTgzMDNmZmE4Y2ZhNWZmZmJiNGY0MGQyNjIwOWYuLjJkNTliN2Y1MGRi
ZGY0YzMwMTE0MjJiOThkMTVkYjUyYzUxNDc3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtMzUsNyArMzUsNiBAQAogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUg
IklEQk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00NCwxMiArNDMsMTMgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBJREJDdXJzb3I7CiBjbGFzcyBJREJEYXRhYmFzZTsKK2NsYXNzIElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTsKK2NsYXNzIElEQkRhdGFiYXNlRXJyb3I7CiBjbGFz
cyBJREJPYmplY3RTdG9yZTsKIGNsYXNzIElEQk9wZW5EQlJlcXVlc3Q7Ci1jbGFzcyBJREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2U7CiBzdHJ1Y3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YTsKIAot
Y2xhc3MgSURCVHJhbnNhY3Rpb24gOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgSURC
VHJhbnNhY3Rpb25DYWxsYmFja3MsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURP
TU9iamVjdCB7CitjbGFzcyBJREJUcmFuc2FjdGlvbiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUs
IHB1YmxpYyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICBlbnVtIE1vZGUgewogICAgICAg
ICBSRUFEX09OTFkgPSAwLApAQCAtMTA3LDcgKzEwNyw2IEBAIHB1YmxpYzoKICAgICBERUZJTkVf
QVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNvbXBsZXRlKTsKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKGVycm9yKTsKIAotICAgIC8vIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
CiAgICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik7
CiAgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoKTsKIApAQCAtMTIzLDggKzEyMiw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPElE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzPjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJh
bnNhY3Rpb25DYWxsYmFja3M+OjpkZXJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPElEQlRyYW5z
YWN0aW9uPjo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpkZXJl
ZjsKIAogcHJpdmF0ZToKICAgICBJREJUcmFuc2FjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgaW50NjRfdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBNb2RlLCBJREJEYXRhYmFzZSosIElE
Qk9wZW5EQlJlcXVlc3QqLCBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsLmgKaW5kZXggMjY0MTgxZWExZWJiYmE1NDdiODQ4NGUzN2YyZmZjN2NiMDEwYjY1
MS4uMDE0MTA0YThlMzNlOTc1NDM0NGJhNmUyNTJhOTBiMTgxY2VkZWRhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGwuaApAQCAtMjksMTAgKzI5LDkgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAogI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIklEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNp
bmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgpAQCAtNDEsMjAgKzQwLDE2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IElEQkRhdGFiYXNlQmFja2VuZEltcGw7CitjbGFzcyBJREJDdXJzb3JCYWNrZW5kSW1wbDsKK2Ns
YXNzIElEQkRhdGFiYXNlQ2FsbGJhY2tzOwogCi1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsIDogcHVibGljIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSB7CitjbGFzcyBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsIDogcHVibGljIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGw+IGNyZWF0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJREJUcmFuc2Fj
dGlvbjo6TW9kZSwgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCopOwotICAgIHN0YXRpYyBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsKiBmcm9tKElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
aW50ZXJmYWNlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwqPihpbnRlcmZhY2UpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsKCk7CisgICAgfklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwoKTsK
IAotICAgIC8vIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZQogICAgIHZpcnR1YWwgdm9p
ZCBhYm9ydCgpOwogICAgIHZvaWQgY29tbWl0KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldENhbGxi
YWNrcyhJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyogY2FsbGJhY2tzKSB7IH0KIAogICAgIGNsYXNz
IE9wZXJhdGlvbiB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU2NDMxMzUyMGU0YjYwZGVkNDk2NzUy
Y2RiZjdhMjYzNjcwMjYxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZV9oCi0jZGVmaW5lIElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZV9oCi0KLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKLSNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJREJDdXJzb3JCYWNrZW5kSW1w
bDsKLWNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwotCi10eXBlZGVmIGludCBFeGNlcHRp
b25Db2RlOwotCi0vLyBUaGlzIGlzIGltcGxlbWVudGVkIGJ5IElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwgYW5kIG9wdGlvbmFsbHkgb3RoZXJzIChpbiBvcmRlciB0byBwcm94eQotLy8gY2FsbHMg
YWNyb3NzIHByb2Nlc3MgYmFycmllcnMpLiBBbGwgY2FsbHMgdG8gdGhlc2UgY2xhc3NlcyBzaG91
bGQgYmUgbm9uLWJsb2NraW5nIGFuZAotLy8gdHJpZ2dlciB3b3JrIG9uIGEgYmFja2dyb3VuZCB0
aHJlYWQgaWYgbmVjZXNzYXJ5LgotY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
IDogcHVibGljIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYWJvcnQo
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhJREJUcmFuc2FjdGlvbkNhbGxi
YWNrcyopID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNl
bmRpZiAvLyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2VfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmMWRkMTNiZDEyNzMxN2I5ZTJhZDNl
MTRhZTEwMmZiOTM1MzJhZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25D
YWxsYmFja3MuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzX2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NfaAot
Ci0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJEYXRhYmFzZUVy
cm9yLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VFcnJvcj4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZSgp
ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAv
LyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgKaW5kZXgg
OTFkYzBlMGQ5MDM4ZTRmYTQ0NGNhNjlmMjY5NTJjYmVlOWQxOGYzMi4uNDk0Y2ZmYjIxNmM4N2Q5
NzZmMjlkMTAwM2ViZmRiMDM1ZGUwMmE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaApAQCAt
MzUsNyArMzUsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsOwotY2xhc3MgSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7CiBjbGFzcyBJREJE
YXRhYmFzZUJhY2tlbmRJbXBsOwogCiAvLyBUcmFuc2FjdGlvbnMgYXJlIGV4ZWN1dGVkIGluIHRo
ZSBvcmRlciB0aGUgd2VyZSBjcmVhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYzNiOGZjMDIwYzEyNmE2
NGQ2MTlhN2Q3MGJlYmJjOTdiZGJkZjIxZC4uODI0NTVlMGJhZGU4MTJiMTQ0MjQ3MmI4NzQ1Y2Yy
ZTY4ODFmYTg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMDYzLDggKzMwNjMsNyBAQCBlbmFibGU/KElO
REVYRURfREFUQUJBU0UpIHsKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBcCi0gICAgICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggXAotICAgICAgICBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorICAgICAgICBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCiAKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAg
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDU1YjI5YjRjZTczMzUzYzFjYzBjZTRkNzFlMzRkOGQ1MGFiNGRhYmQuLjEyYjZkMDIyYWRkZjY3
NjZiYTA1YmE4Yzk0N2VlMmQ3MmNkOTNiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTc2OSw4ICs3
NjksNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgn
LAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZS5oJywKLSAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywKICAgICAgICAgICAgICdNb2R1
bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNTM2MjQ0ZDI5
MDExMjU3YWQ5NzllMjQxNjUzMzlhMGE4MTVlOTJiLi41NGJmNjcwYzc5YzExZDIzN2FmZGU4MzJh
MTI0ZjI0YWQ1YWMzNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTE3LDcgKzM1MTcsNiBAQAogCQk5NzEyQTVGNjE1MDA0
RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTlEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbi5oICovOyB9OwogCQk5NzEyQTVGODE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzEyQTU5RjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbC5jcHAgKi87IH07CiAJCTk3MTJBNUY5MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzEyQTVBMDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbC5oICovOyB9OwotCQk5NzEyQTVGQTE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzEyQTVBMTE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlLmggKi87IH07CiAJCTk3MTJBNUZCMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTcxMkE1QTIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzLmggKi87IH07CiAJCTk3MTJBNUZDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3MTJBNUEzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJOTcxMkE1RkQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3MTJBNUE0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yLmggKi87IH07CkBAIC0xMDkwNSw3ICsxMDkwNCw2IEBACiAJCTk3MTJBNTlFMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gSURCVHJhbnNhY3Rpb24uaWRsOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU5RjE1MDA0RURB
MDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcDsgcGF0
aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTVBMDE1MDA0RURBMDA0OEFGMTAgLyogSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTk3MTJBNUExMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1QTIx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmg7IHBhdGggPSBN
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzEyQTVBMzE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rp
b25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJ
REJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NzEyQTVBNDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODMxOSw3ICsxODMxNyw2IEBACiAJ
CQkJOTcxMkE1OUUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLywKIAkJ
CQk5NzEyQTU5RjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5j
cHAgKi8sCiAJCQkJOTcxMkE1QTAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEltcGwuaCAqLywKLQkJCQk5NzEyQTVBMTE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi8sCiAJCQkJOTcxMkE1QTIxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmggKi8sCiAJCQkJOTcxMkE1QTMxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwICovLAogCQkJCTk3MTJBNUE0
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggKi8sCkBAIC0y
NDQxNiw3ICsyNDQxMyw2IEBACiAJCQkJOTcxMkE1RjQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRy
YWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUY2MTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RjkxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3
MTJBNUZBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUZCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbkNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RkQxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3MTJBNUZGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDkxZDhhNDRiNDNiYTIw
OWRiNzUzMmE3M2Q2Nzc2Mzk3YzE1OTI3YTcuLmJlYmRlYjJlZWQ5NmU1NGM1NTRjZTI0NTE4MGUx
OGM1Y2UwZWEwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4OCw4ICsxODgs
NiBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCS2V5UGF0aC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYklEQktleVJhbmdlLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSURCTWV0YWRhdGEuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJUcmFu
c2FjdGlvbi5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSWNvbkxvYWRpbmdDb21wbGV0
aW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSWNvblVSTC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkltYWdlRGVjb2Rlci5oJywKQEAgLTM3NSwxMCArMzczLDYgQEAK
ICAgICAgICAgICAgICAgICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgnLAotICAgICAgICAgICAgICAg
ICdzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwJywKLSAgICAgICAgICAgICAgICAn
c3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgnLAotICAgICAgICAgICAgICAgICdzcmMv
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMv
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0luc3BlY3RvckNs
aWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dEltcGwuY3BwJywKQEAgLTUxNiwxMCArNTEwLDYgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dl
YklEQktleVBhdGguY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQktleVJhbmdlLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJNZXRhZGF0YS5jcHAnLAotICAgICAgICAg
ICAgICAgICdzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcCcsCi0gICAgICAgICAgICAgICAg
J3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dl
YklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YkltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW1hZ2VTa2lhLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggMTFkNzE2
ZDM5ZTZhNWJiNjQyZTM4OTMxODk2NTk2YmVhMmI4NGYyNi4uMTIyMDc1YzkxMWExY2RkZDhiMDVl
ZDE1YTA5MTgyMDFkMjM5MGRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTM4LDcgKzM4LDYgQEAgY2xhc3MgV2ViSURCRGF0YWJh
c2VFcnJvcjsKIGNsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBX
ZWJJREJJbmRleDsKLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwogY2xhc3MgV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOwogc3RydWN0IFdlYklEQk1ldGFkYXRhOwogCkBAIC02Myw3ICs2Miw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGxvbmcgbG9uZyBvbGRW
ZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2ViVmVjdG9yPFdlYklEQktleT4mIGtleXMs
IGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmltYXJ5S2V5cywgY29uc3QgV2ViVmVjdG9y
PFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcykgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGxvbmcgbG9uZyBv
bGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdlYklEQkRhdGFiYXNlKikgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVk
KGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFzZSosIGNvbnN0IFdlYklEQk1ldGFk
YXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDg1MTk2ZDUyMzJi
NzgxOWZjZjlkN2NjMDNkYmI3NTMxOTMzMjdkYmYuLmM0Y2UxYjhhOGFiMjNhZmJiY2YyYWEyNmEx
YWMyNGMxMDViZmE5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCRGF0YWJhc2UuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIldlYkRPTVN0cmluZ0xp
c3QuaCIKICNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0
YWRhdGEuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNDEsMjIgKzQwLDE0IEBAIGNsYXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CiBj
bGFzcyBXZWJJREJLZXk7CiBjbGFzcyBXZWJJREJLZXlQYXRoOwogY2xhc3MgV2ViSURCS2V5UmFu
Z2U7Ci1jbGFzcyBXZWJJREJUcmFuc2FjdGlvbjsKIAogLy8gU2VlIGNvbW1lbnQgaW4gV2ViSURC
RmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IG9mIHRoZXNlIGNsYXNzZXMuCiBjbGFz
cyBXZWJJREJEYXRhYmFzZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2Uo
KSB7IH0KIAotICAgIHZpcnR1YWwgV2ViSURCTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdAotICAg
IHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4g
V2ViSURCTWV0YWRhdGEoKTsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0
b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29u
c3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVt
ZW50KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVj
dFN0b3JlSWQpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgLy8gRklYTUU6
IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5z
YWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBXZWJJREJE
YXRhYmFzZUNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYs
IHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJU
cmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNh
Y3Rpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYyMjhiYWM5Y2ViNjM0NDU0
NmJiZDY0YzdkNzhiNTU1NjViNzU5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2Fj
dGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2Vi
SURCVHJhbnNhY3Rpb25faAotI2RlZmluZSBXZWJJREJUcmFuc2FjdGlvbl9oCi0KLSNpbmNsdWRl
ICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5nLmgiCi0jaW5jbHVk
ZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsgfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xh
c3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7Ci0KLS8vIFNlZSBjb21tZW50IGluIFdlYklE
QkZhY3RvcnkgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyBvZiB0aGVzZSBjbGFzc2VzLgotY2xh
c3MgV2ViSURCVHJhbnNhY3Rpb24gewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYklEQlRyYW5z
YWN0aW9uKCkgeyB9Ci0KLSAgICBlbnVtIFRhc2tUeXBlIHsKLSAgICAgICAgTm9ybWFsVGFzayA9
IDAsCi0gICAgICAgIFByZWVtcHRpdmVUYXNrCi0gICAgfTsKLQotICAgIHZpcnR1YWwgdm9pZCBj
b21taXQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9p
ZCBhYm9ydCgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldENhbGxiYWNrcyhXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyopIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICAvLyBGSVhNRTogdGhpcyBpcyBuZXZlciBjYWxs
ZWQgZnJvbSBXZWJDb3JlLiBGaW5kIGEgY2xlYW5lciBzb2x1dGlvbi4KLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogZ2V0SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0K
LQotICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5nRXZlbnRzKGludCkgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KLQotcHJvdGVjdGVkOgotICAgIFdlYklEQlRyYW5zYWN0aW9uKCkg
e30KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViSURCVHJhbnNh
Y3Rpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURC
VHJhbnNhY3Rpb25DYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDcxOWZhYmE5ZWY3NWE3OWZmZDk5YTZlNGU0ZTFiODNlY2VlZDY1ZjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzX2gKLSNk
ZWZpbmUgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NfaAotCi0jaW5jbHVkZSAiLi4vLi4vLi4v
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbW1vbi5oIgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3MgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChjb25zdCBXZWJJREJEYXRh
YmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgb25Db21wbGV0ZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1h
dGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKaW5kZXggZjM3NmE1OThhNWQzYTI3ZWM1ZGRmZDExOThjYjk4N2YxZWY2NzU0
NS4uNjE1MTNmYTBlMmRlMjBmYzNhMGFmMjY4YWYxZjk1M2ZhMGUxN2JmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTU0
LDEyICs1NCwxMiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJ
REJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJY29uVVJMLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5oIgpAQCAtOTUs
MTIgKzk1LDEyIEBACiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUg
IldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKICNpbmNsdWRlICJXZWJJREJDdXJzb3IuaCIKKyNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXhjZXB0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIldlYklEQktleS5o
IgogI2luY2x1ZGUgIldlYklEQktleVBhdGguaCIKICNpbmNsdWRlICJXZWJJREJNZXRhZGF0YS5o
IgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSWNvblVSTC5o
IgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVy
LmgiCkBAIC01MDUsOCArNTA1LDggQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJ
REJDdXJzb3I6Ok5leHROb0R1cGxpY2F0ZSwgSURCQ3Vyc29yOjpORVhUX05PX0QKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCQ3Vyc29yOjpQcmV2LCBJREJDdXJzb3I6OlBSRVYp
OwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJDdXJzb3I6OlByZXZOb0R1cGxp
Y2F0ZSwgSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURSk7CiAKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViSURCVHJhbnNhY3Rpb246OlByZWVtcHRpdmVUYXNrLCBJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OlByZWVtcHRpdmVUYXNrKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViSURCVHJhbnNhY3Rpb246Ok5vcm1hbFRhc2ssIElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZTo6Tm9ybWFsVGFzayk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdl
YklEQkRhdGFiYXNlOjpQcmVlbXB0aXZlVGFzaywgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
OjpQcmVlbXB0aXZlVGFzayk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkRh
dGFiYXNlOjpOb3JtYWxUYXNrLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok5vcm1hbFRh
c2spOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggNjcwNTE2MjZmZmNi
YjA3N2JhYzNlZjJhM2RiNDM3YzViOGNkOGQ0Zi4uZWE4Zjg1NGQ1ZDU1OGJmMjg0NDZiNzNiNzBk
ZjJjMzNhYmU2MDQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
Q2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNh
bGxiYWNrc1Byb3h5LmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNl
Q2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVk
ZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJDdXJz
b3JJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaCIKQEAgLTQ2LDcg
KzQ1LDcgQEAKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUg
IldlYklEQkRhdGFiYXNlSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgotI2luY2x1ZGUg
IldlYklEQlRyYW5zYWN0aW9uSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQk1ldGFkYXRhLmgiCiAj
aW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDg1MmRiZDRlZDE2ODU5MzY0MmU1OGMxOTQ3NTI4NmJk
OTBjMmIzODAuLmNiNzVjMmNmOGUwZGJlMDk4MTEyYmUwNDZhNWRiMDMwZTUwOTU3NmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQ
cm94eS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNr
cy5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIK
LSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIldlYkRP
TVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJJ
REJDYWxsYmFja3NJbXBsLmgiCkBAIC00Miw3ICs0MSw2IEBACiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgog
I2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24u
aCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTYyLDExICs2MCw2IEBAIElEQkRh
dGFiYXNlQmFja2VuZFByb3h5Ojp+SURCRGF0YWJhc2VCYWNrZW5kUHJveHkoKQogewogfQogCi1J
REJEYXRhYmFzZU1ldGFkYXRhIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjptZXRhZGF0YSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViSURCRGF0YWJhc2UtPm1ldGFkYXRhKCk7Ci19Ci0KIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKIHsKICAgICBpZiAo
bV93ZWJJREJEYXRhYmFzZSkKQEAgLTc5LDE1ICs3Miw2IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRf
dCBvCiAgICAgICAgIG1fd2ViSURCRGF0YWJhc2UtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0
aW9uSWQsIG9iamVjdFN0b3JlSWQpOwogfQogCi1QYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZVRyYW5zYWN0aW9u
KGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIElEQlRy
YW5zYWN0aW9uOjpNb2RlIG1vZGUpCi17Ci0gICAgT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0
cmFuc2FjdGlvbiA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRyYW5zYWN0aW9u
KGlkLCBvYmplY3RTdG9yZUlkcywgbW9kZSkpOwotICAgIGlmICghdHJhbnNhY3Rpb24pCi0gICAg
ICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Ojpj
cmVhdGUodHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsKLX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tl
bmRQcm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCBpZCwgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0
b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIG1fd2ViSURCRGF0YWJhc2UtPmNy
ZWF0ZVRyYW5zYWN0aW9uKGlkLCBuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKGNhbGxi
YWNrcyksIG9iamVjdFN0b3JlSWRzLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCmluZGV4IGU3M2ZlMTFiNmQzNTc0
OWQ3ZTVhNDdiZjAxNTkxMzYwMzE4YmQwZjYuLjZkMmQ4ZWQwYTAyMTllYjM4YjY3YjQ5NGNjM2Rh
ZDNhZGJmZmRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VCYWNrZW5kUHJveHkuaApAQCAtNDIsMTIgKzQyLDggQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlKFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2U+KTsKICAgICB2aXJ0dWFsIH5JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFk
YXRhIG1ldGFkYXRhKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3Rv
cmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVu
dCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
bWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMu
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Ok1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxs
YmFja3M+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJh
bnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
VHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMmEwNThjZjdjMDhiZDJjNGY5N2VkNjc5ODQwY2Q4OTdiMjNkNjI3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDcy
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0j
aW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLSNpbmNsdWRlICJXZWJJREJEYXRh
YmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlICJX
ZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZShQYXNzT3du
UHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbikKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KHRyYW5zYWN0aW9uKSk7Ci19Ci0KLUlE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eShQYXNz
T3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbikKLSAgICA6IG1fd2ViSURCVHJh
bnNhY3Rpb24odHJhbnNhY3Rpb24pCi17Ci0gICAgQVNTRVJUKG1fd2ViSURCVHJhbnNhY3Rpb24p
OwotfQotCi1JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6fklEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5KCkKLXsKLX0KLQotdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6Y29tbWl0
KCkKLXsKLSAgICBtX3dlYklEQlRyYW5zYWN0aW9uLT5jb21taXQoKTsKLX0KLQotdm9pZCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6YWJvcnQoKQotewotICAgIG1fd2ViSURCVHJhbnNhY3Rp
b24tPmFib3J0KCk7Ci19Ci0KLXZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OnNldENh
bGxiYWNrcyhJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyogY2FsbGJhY2tzKQotewotICAgIG1fd2Vi
SURCVHJhbnNhY3Rpb24tPnNldENhbGxiYWNrcyhuZXcgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcykpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGM2YzNkODQxMjA3N2U0NjkwNDUwNmIwODJlZWY3MmQzY2I0ZTQyYzQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5X2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHlfaAotCi0jaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9u
OwotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8
V2ViSURCVHJhbnNhY3Rpb24+KTsKLSAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpOwotICAgIHZpcnR1YWwgdm9pZCBh
Ym9ydCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3MoV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MqKTsKLQotICAgIFdlYklEQlRyYW5zYWN0aW9uKiBnZXRXZWJJREJUcmFu
c2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViSURCVHJhbnNhY3Rpb24uZ2V0KCk7IH0KLQot
cHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eShQYXNzT3duUHRyPFdlYklE
QlRyYW5zYWN0aW9uPik7Ci0KLSAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+IG1fd2ViSURC
VHJhbnNhY3Rpb247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCi0KLSNl
bmRpZiAvLyBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmNkYjI3M2I0ZDVmZmE3ZTU0MTBlMGIw
MDdkZjA3MzhlNmYxMTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
UHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmgiCi0KLSNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIK
LSNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk+IElE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5KGNhbGxiYWNrcykpOwotfQotCi1JREJUcmFuc2Fj
dGlvbkNhbGxiYWNrc1Byb3h5OjpJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5KFBhc3NPd25Q
dHI8V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IGNhbGxiYWNrcykKLSAgICA6IG1fY2FsbGJh
Y2tzKGNhbGxiYWNrcykKLXsKLX0KLQotSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eTo6fklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkoKQotewotfQotCi12b2lkIElEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzUHJveHk6Om9uQWJvcnQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBpZGJE
YXRhYmFzZUVycm9yKQotewotICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KFdlYklEQkRhdGFiYXNl
RXJyb3IoaWRiRGF0YWJhc2VFcnJvcikpOwotfQotCi12b2lkIElEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzUHJveHk6Om9uQ29tcGxldGUoKQotewotICAgIG1fY2FsbGJhY2tzLT5vbkNvbXBsZXRlKCk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFu
c2FjdGlvbkNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJU
cmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDExOWM4Y2E3NWJiMjk3OTlmOTUwZjA5MTgxOGUwODVhMDRhNjJlOTUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eV9oCi0jZGVmaW5l
IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHlfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCi0KLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwotCi1jbGFz
cyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5IDogcHVibGljIFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkNhbGxiYWNrc1Byb3h5PiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJUcmFuc2FjdGlv
bkNhbGxiYWNrcz4pOwotICAgIHZpcnR1YWwgfklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHko
KTsKLQotICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0
YWJhc2VFcnJvcj4pOwotICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKCk7Ci0KLXByaXZhdGU6
Ci0gICAgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eShQYXNzT3duUHRyPFdlYklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzPik7Ci0KLSAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3M+IG1fY2FsbGJhY2tzOwotfTsKLQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
Ci0KLSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggY2Qx
NmQzZDhjZGFmNTE4OTdhZjc4OTZlZDJmNDlkZGFmZjJhZGViNC4uNjFmNTVjODRkY2Y4ODcwZTcx
ZGFkNTFhYTJiYzVhNTVjZjYzNjgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTM0LDEzICszNCwxMSBAQAogI2luY2x1
ZGUgIklEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJv
ci5oIgogI2luY2x1ZGUgIklEQktleS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIldlYklE
QkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2Vi
SURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgotI2luY2x1ZGUgIldl
YklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggNmI4MTg5M2E1YjBhYjU3OTNmOWI4
YTZmY2I5MjBkZDMwNWViZjgxYS4uOTdhYmRmNzI5OWQxOTg4MDQ0MTA3Yjg0MmRkYmYzM2FmNGI5
MWIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUltcGwuY3BwCkBAIC0zNSwxNCArMzUsMTIgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxi
YWNrc1Byb3h5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJNZXRh
ZGF0YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgogI2lu
Y2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklE
QktleS5oIgogI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0
YWRhdGEuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkltcGwuaCIKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU4LDExICs1Niw2IEBAIFdlYklEQkRhdGFiYXNlSW1wbDo6
fldlYklEQkRhdGFiYXNlSW1wbCgpCiB7CiB9CiAKLVdlYklEQk1ldGFkYXRhIFdlYklEQkRhdGFi
YXNlSW1wbDo6bWV0YWRhdGEoKSBjb25zdAotewotICAgIHJldHVybiBtX2RhdGFiYXNlQmFja2Vu
ZC0+bWV0YWRhdGEoKTsKLX0KLQogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZU9iamVj
dFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoLCBib29s
IGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZU9iamVjdFN0
b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNy
ZW1lbnQpOwpAQCAtNzQsMTggKzY3LDYgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmRlbGV0
ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2IKIH0KIAog
Ci0vLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi1XZWJJREJUcmFuc2FjdGlvbiogV2ViSURCRGF0YWJh
c2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxs
b25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkKLXsKLSAgICBW
ZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgpKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlSWRzLnNpemUoKTsgKytpKQot
ICAgICAgICBvYmplY3RTdG9yZUlkTGlzdFtpXSA9IG9iamVjdFN0b3JlSWRzW2ldOwotICAgIFJl
ZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uID0gbV9kYXRh
YmFzZUJhY2tlbmQtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBvYmplY3RTdG9yZUlkTGlzdCwgc3Rh
dGljX2Nhc3Q8SURCVHJhbnNhY3Rpb246Ok1vZGU+KG1vZGUpKTsKLSAgICBpZiAoIXRyYW5zYWN0
aW9uKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbmV3IFdlYklEQlRyYW5zYWN0aW9u
SW1wbCh0cmFuc2FjdGlvbik7Ci19Ci0KIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVU
cmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFj
a3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQg
c2hvcnQgbW9kZSkKIHsKICAgICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2Jq
ZWN0U3RvcmVJZHMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmgKaW5kZXggMDQ2NWY1ZTI4NzJlNTJhOGU1NjZlYmM3ZGY1OGFjMzI5
ZDJhYWJhNS4uMWZkNTk0OTc2MGU2MzAzYTQ4NjAwZjNhZjJjNWRhM2QwODM2OTY5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5j
bHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCi0j
aW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tbW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CkBAIC00Myw3ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViSURCRGF0YWJh
c2VDYWxsYmFja3M7CiBjbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwogY2xhc3MgV2ViSURCRGF0
YWJhc2VNZXRhZGF0YTsKLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwogCiAvLyBTZWUgY29tbWVu
dCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nl
cy4KIGNsYXNzIFdlYklEQkRhdGFiYXNlSW1wbCA6IHB1YmxpYyBXZWJJREJEYXRhYmFzZSB7CkBA
IC01MSwxMiArNDksOCBAQCBwdWJsaWM6CiAgICAgV2ViSURCRGF0YWJhc2VJbXBsKFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBXVEY6OlBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4pOwogICAgIHZpcnR1YWwgfldlYklEQkRh
dGFiYXNlSW1wbCgpOwogCi0gICAgdmlydHVhbCBXZWJJREJNZXRhZGF0YSBtZXRhZGF0YSgpIGNv
bnN0OwotCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFu
c2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGxvbmcgbG9u
ZyB0cmFuc2FjdGlvbklkKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVh
bCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25z
dCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2Rl
KTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9z
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRkNDFlOWZjNjE3OWFlNjkxNTgxYzViMjAzZGMzN2Y1YzhiOWVmYTQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLQotI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKLQot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbChQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi0gICAgOiBtX2Nh
bGxiYWNrcyhjYWxsYmFja3MpCi17Ci19Ci0KLVdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1w
bDo6fldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbCgpCi17Ci19Ci0KLXZvaWQgV2ViSURC
VHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsOjpvbkFib3J0KGNvbnN0IFdlYklEQkRhdGFiYXNlRXJy
b3ImIGVycm9yKQotewotICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KGVycm9yKTsKLX0KLQotdm9p
ZCBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUoKQotewotICAgIG1f
Y2FsbGJhY2tzLT5vbkNvbXBsZXRlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0j
ZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmM4NDNjM2I3MzdjNzExMGVmZTQ3ZGFjODJl
ZjkxODU0OGE0ZmU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
SW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsX2gKLSNkZWZpbmUgV2ViSURCVHJhbnNhY3Rpb25D
YWxsYmFja3NJbXBsX2gKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVk
ZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFz
cyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsgfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xh
c3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsIDogcHVibGljIFdlYklEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzIHsKLXB1YmxpYzoKLSAgICBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0lt
cGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz4pOwotICAgIHZp
cnR1YWwgfldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbCgpOwotCi0gICAgdmlydHVhbCB2
b2lkIG9uQWJvcnQoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpOwotICAgIHZpcnR1YWwgdm9p
ZCBvbkNvbXBsZXRlKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNlbmRpZiAvLyBXZWJJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDlkZmQ2N2JkZDhiMmU1NTc0Yzg0ZjgyZDFiZjE5ZDViNTk3ODkxMzMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViSURC
VHJhbnNhY3Rpb25JbXBsLmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2lu
Y2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5oIgot
I2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCi0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViSURCVHJhbnNhY3Rpb25JbXBs
OjpXZWJJREJUcmFuc2FjdGlvbkltcGwoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2U+IGJhY2tlbmQpCi0gICAgOiBtX2JhY2tlbmQoYmFja2VuZCkKLXsKLX0KLQotV2Vi
SURCVHJhbnNhY3Rpb25JbXBsOjp+V2ViSURCVHJhbnNhY3Rpb25JbXBsKCkKLXsKLX0KLQotdm9p
ZCBXZWJJREJUcmFuc2FjdGlvbkltcGw6OmNvbW1pdCgpCi17Ci0gICAgbV9iYWNrZW5kLT5jb21t
aXQoKTsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkltcGw6OmFib3J0KCkKLXsKLSAgICBt
X2JhY2tlbmQtPmFib3J0KCk7Ci19Ci0KLXZvaWQgV2ViSURCVHJhbnNhY3Rpb25JbXBsOjpzZXRD
YWxsYmFja3MoV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqIGNhbGxiYWNrcykKLXsKLSAgICBS
ZWZQdHI8SURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IGlkYkNhbGxiYWNrcyA9IElEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKLSAgICBtX2Jh
Y2tlbmQtPnNldENhbGxiYWNrcyhpZGJDYWxsYmFja3MuZ2V0KCkpOwotfQotCi1JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqIFdlYklEQlRyYW5zYWN0aW9uSW1wbDo6Z2V0SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9iYWNrZW5kLmdl
dCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCVHJhbnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJU
cmFuc2FjdGlvbkltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZmMDZhNmVl
ZjQ1ZDE5OGFmNTNkNjcyNDg5ZGM5NTIyMzU2MjdhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJU
cmFuc2FjdGlvbkltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIFdlYklEQlRyYW5zYWN0aW9uSW1wbF9oCi0jZGVmaW5lIFdlYklEQlRyYW5zYWN0aW9u
SW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIldlYklE
QlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbW1vbi5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhp
Z2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9u
SW1wbDogcHVibGljIFdlYklEQlRyYW5zYWN0aW9uIHsKLXB1YmxpYzoKLSAgICBXZWJJREJUcmFu
c2FjdGlvbkltcGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZT4pOwotICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uSW1wbCgpOwotCi0g
ICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpOwotICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3MoV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsK
LQotICAgIHZpcnR1YWwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBn
ZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAg
ICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IG1f
YmFja2VuZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCi0KLSNlbmRpZiAvLyBXZWJJREJUcmFuc2FjdGlvbkltcGxfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVw
dFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVw
dFRlc3QuY3BwCmluZGV4IDcxNTc0YWNhM2FmOGU4OThlYzQ2YzZlZmRkNmYyN2FmZDg0Y2U4N2Eu
LjkxZDk0YjQwODBlNzg0YzI2ZWU1MmI5N2M2NTQwNGVhYjYwNjNhOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAK
QEAgLTYyLDcgKzYyLDYgQEAgcHVibGljOgogICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIGNv
bnN0IElEQktleVBhdGgmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGludDY0X3Qp
IE9WRVJSSURFIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
SURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXggODhiMjhjODhmZWIwZDhhMWMxZWQ5ZDMy
YmYxNWUzOGI3NzdjNDRiZS4uNDU0OTU1M2I5YzQ4YjczNTQyYjA1NGQ1MmUzZjk2Mzc5MGM2NTZh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFi
YXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xMzgsOCArMTM4LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgSURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIElEQkRhdGFi
YXNlTWV0YWRhdGEoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSBPVkVSUklERSB7IH07
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVSUklERSB7IH0KLSAgICAvLyBGSVhNRTogUmVt
b3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiwgSURCVHJhbnNhY3Rpb246Ok1vZGUpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUp
IE9WRVJSSURFIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3M+KSBPVkVSUklERQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185866</attachid>
            <date>2013-01-31 14:27:30 -0800</date>
            <delta_ts>2013-01-31 14:55:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103923-20130131142413.patch</filename>
            <type>text/plain</type>
            <size>68128</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI5ZGYzM2QyODZhZjhl
NGYyMmYwMmY3NGI2ZWQzYmU5YTExMzhjNS4uZjg4MjAxYTgyNmE4NWRlZWU2OTgyYzk1NjA4MWQz
NTliN2E5YWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAxLTMxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHJl
bW92ZSBvbGQgdHJhbnNhY3Rpb24gYmFja2VuZCBib290c3RyYXAgY29kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluYWxseSByZW1vdmUgYWxsIGxl
ZnRvdmVyIGNvZGUgZnJvbSB0aGUgSW5kZXhlZERCICJnaWFudAorICAgICAgICBhc3luYyByZWZh
Y3RvciBvZiAyMDEyLiIgVGhpcyBpbmNsdWRlcyByZW1vdmFsIG9mIGFsbAorICAgICAgICBJREJU
cmFuc2FjdGlvbiogaW50ZXJmYWNlcyB0aGF0IHdlcmUgc2hhcmVkIGJldHdlZW4KKyAgICAgICAg
dGhlIGZyb250ZW5kIGFuZCBiYWNrZW5kIGFuZCBhIGZldyBzdHJhZ2dsaW5nIG1ldGhvZHMKKyAg
ICAgICAgbGlrZSBvblVwZ3JhZGVOZWVkZWQgYW5kIG9uU3VjY2VzcyB0aGF0IHdlcmUgbGVmdCBm
cm9tCisgICAgICAgIHRoZSBsYXN0IHN0YWdlIG9mIHJlZmFjdG9yaW5nLgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjptZXRhZGF0YSk6CisgICAgICAg
IChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOiBSZW1vdmVk
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3Iu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAxMy0wMS0zMSAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNlYXJjaGluZyBmb3IgPHU+IGluIGVsZW1lbnRz
IHBhbmVsIGZpbmRzIGFsbCB0YWdzIGNvbnRhaW5pbmcgInUiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDE2MWYyZGJjMjQwZmU0N2E5NDQwZmU4ZjM0Y2MxYzFhY2U0YWNiYmYuLmE3MTAx
YmQ3ZGNmZmU4ZjYwNzhmNmM2MWMwNDg3YThiNGM3ZDgyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNDQgQEAKIDIwMTMtMDEtMzEgIEFsZWMgRmxldHQgIDxhbGVjZmxl
dHRAY2hyb21pdW0ub3JnPgogCisgICAgICAgIEluZGV4ZWREQjogcmVtb3ZlIG9sZCB0cmFuc2Fj
dGlvbiBiYWNrZW5kIGJvb3RzdHJhcCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYWxsIGRlcHJlY2F0ZWQgV2ViS2l0IEFQSXMgZnJv
bQorICAgICAgICB0aGUgSURCIGJhY2tlbmQuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIHB1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1Ymxp
Yy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAg
ICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAg
ICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlv
bkNhbGxiYWNrc0ltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rp
b25JbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBs
Lmg6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDoK
KyAgICAgICAgKiB0ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKworMjAxMy0wMS0z
MSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgSW5kZXhl
ZERCOiBSZW1vdmUgV2ViS2l0IEFQSSBmb3Igb2xkIG9uU3VjY2Vzcy9vblVwZ3JhZGVOZWVkZWQK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODM5OQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFj
a3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmlu
ZGV4IGQ1ZDQ3YzI0YWQ4N2I5YTQ4MmIyNjlmMjljMTUwN2M3YzM4MjE0NzUuLjMzM2Q3NjY2YzVi
M2ZjMTYxMjI2ZDllMjYwYTdiYTk3YjMyYTM0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklE
QktleVBhdGguaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGZkNjc2NDBhOTEwOGVkYmFiZjc2
YzAxZTEzN2UzZjY0ZTQ3MTkxMzkuLmY4ZGM3MTkxNGI5Y2VmNDZhYTEwYTE3YTBlNTMwODk3YzE0
ZDk5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC01NDgsMTEgKzU0OCw2IEBAIFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpiYWNraW5nU3Rv
cmUoKSBjb25zdAogICAgIHJldHVybiBtX2JhY2tpbmdTdG9yZTsKIH0KIAotSURCRGF0YWJhc2VN
ZXRhZGF0YSBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjptZXRhZGF0YSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbWV0YWRhdGE7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3Jl
YXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBh
dXRvSW5jcmVtZW50KQogewogICAgIElEQl9UUkFDRSgiSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
Y3JlYXRlT2JqZWN0U3RvcmUiKTsKQEAgLTExNjcsMTMgKzExNjIsNiBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAotLy8gRklY
TUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTIzLgotUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURCVHJh
bnNhY3Rpb246Ok1vZGUgbW9kZSkKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2Fj
dGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5z
aWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUodHJhbnNh
Y3Rpb25JZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SURCVHJhbnNh
Y3Rpb246Ok1vZGU+KG1vZGUpLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBlODZhNWVl
YmE5NDdiODdkOTMxYjc4ODZiMTFhNGU0ZTQxMzAwM2RjLi41YmIxNjU0MGZlODdhZWUxMmZjZTk0
MGViM2JmMmIxOWE2ODUwYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC00MSw3ICs0MSw2IEBA
IGNsYXNzIElEQkJhY2tpbmdTdG9yZTsKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3MgSURCRmFj
dG9yeUJhY2tlbmRJbXBsOwogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDsKLWNsYXNz
IElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQ29v
cmRpbmF0b3I7CiAKIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGwgOiBwdWJsaWMgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHsKQEAgLTYwLDEzICs1OSwxMSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIG9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2
ZXJzaW9uKTsKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
Pik7CisgICAgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEoKSBjb25zdCB7IHJl
dHVybiBtX21ldGFkYXRhOyB9CiAKICAgICAvLyBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UK
LSAgICB2aXJ0dWFsIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYs
IGJvb2wgYXV0b0luY3JlbWVudCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJREJUcmFuc2FjdGlvbjo6
TW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1
YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggMDRmNWU5OWM3YTY0YzZhYTgwMTMwMjcyNmUzODk5
YjhlYzkzYmQwYS4uYjI5ZWRiYmUxOTdiNjQ4Y2MzNTVhYjdjZDBiZDhhOTNiZjBlYjZlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTQwLDcgKzQwLDYgQEAgY2xhc3MgSURCRGF0
YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlQYXRoOwogY2xhc3Mg
SURCS2V5UmFuZ2U7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBzdHJ1
Y3QgSURCRGF0YWJhc2VNZXRhZGF0YTsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAg
LTUyLDExICs1MSw4IEBAIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjCiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIElE
QkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0
b0luY3JlbWVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgPSAwOwotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5z
YWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmpl
Y3RTdG9yZUlkcywgSURCVHJhbnNhY3Rpb246Ok1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgK
aW5kZXggM2QyZTRkMzQ1ZGI2YzJkMGQ0MmY5ODkyN2NlYjBmNzgwYjA1MTlhZC4uNTRjYjE0MzNl
ODRkYjNiZTIxOGFlMzZmN2EyNjY4ZWMxZmUyZGFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
aApAQCAtMzksNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkRhdGFi
YXNlQmFja2VuZEltcGw7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOwotY2xhc3Mg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwogc3RydWN0IElEQk9iamVjdFN0b3JlTWV0
YWRhdGE7CiAKIC8vIEZJWE1FOiB0aGlzIG5hbWVzcGFjZSBpcyB0ZW1wb3JhcnkgdW50aWwgd2Ug
bW92ZSBpdHMgY29udGVudHMgb3V0IHRvIHRoZWlyIG93biBob21lLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggYzk5ODBmYmJm
ZDNhODMwM2ZmYThjZmE1ZmZmYmI0ZjQwZDI2MjA5Zi4uMmQ1OWI3ZjUwZGJkZjRjMzAxMTQyMmI5
OGQxNWRiNTJjNTE0Nzc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEu
aCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlNjcmlw
dFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KQEAgLTQ0LDEyICs0MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIElEQkN1cnNvcjsKIGNsYXNzIElEQkRhdGFiYXNlOworY2xhc3MgSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlOworY2xhc3MgSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIElEQk9iamVjdFN0
b3JlOwogY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTsKIHN0cnVjdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOwogCi1jbGFzcyBJREJUcmFu
c2FjdGlvbiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBJREJUcmFuc2FjdGlvbkNh
bGxiYWNrcywgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2Ns
YXNzIElEQlRyYW5zYWN0aW9uIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNv
dW50ZWQ8SURCVHJhbnNhY3Rpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QgewogcHVibGljOgogICAgIGVudW0gTW9kZSB7CiAgICAgICAgIFJFQURfT05MWSA9
IDAsCkBAIC0xMDcsNyArMTA3LDYgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIoY29tcGxldGUpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoZXJyb3IpOwogCi0gICAgLy8gSURCVHJhbnNhY3Rpb25DYWxsYmFja3MKICAgICB2aXJ0dWFs
IHZvaWQgb25BYm9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2aXJ0dWFs
IHZvaWQgb25Db21wbGV0ZSgpOwogCkBAIC0xMjMsOCArMTIyLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBPVkVSUklERTsKIAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25D
YWxsYmFja3M+OjpyZWY7Ci0gICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkNhbGxi
YWNrcz46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbj46OmRlcmVmOwogCiBwcml2YXRl
OgogICAgIElEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQ2NF90LCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIE1vZGUsIElEQkRhdGFiYXNlKiwgSURCT3BlbkRCUmVxdWVz
dCosIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaApp
bmRleCAyNjQxODFlYTFlYmJiYTU0N2I4NDg0ZTM3ZjJmZmM3Y2IwMTBiNjUxLi4wMTQxMDRhOGUz
M2U5NzU0MzQ0YmE2ZTI1MmE5MGIxODFjZWRlZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
CkBAIC0yOSwxMCArMjksOSBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5j
bHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQlRy
YW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgi
Ci0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKICNpbmNsdWRlICJUaW1lci5o
IgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00
MSwyMCArNDAsMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRGF0YWJhc2VC
YWNrZW5kSW1wbDsKK2NsYXNzIElEQkN1cnNvckJhY2tlbmRJbXBsOworY2xhc3MgSURCRGF0YWJh
c2VDYWxsYmFja3M7CiAKLWNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwgOiBwdWJsaWMg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlIHsKK2NsYXNzIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEltcGwgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4gY3JlYXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIElEQlRyYW5zYWN0aW9uOjpNb2RlLCBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsKik7Ci0gICAgc3RhdGljIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwqIGZyb20oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBpbnRlcmZhY2UpCi0g
ICAgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bCo+KGludGVyZmFjZSk7Ci0gICAgfQotICAgIHZpcnR1YWwgfklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwoKTsKKyAgICB+SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCgpOwogCi0gICAgLy8gSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIGFib3J0KCk7CiAg
ICAgdm9pZCBjb21taXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FsbGJhY2tzKElEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzKiBjYWxsYmFja3MpIHsgfQogCiAgICAgY2xhc3MgT3BlcmF0aW9uIHsK
ICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzNTY0MzEzNTIwZTRiNjBkZWQ0OTY3NTJjZGJmN2EyNjM2NzAy
NjE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlX2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlX2gKLQotI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIElEQkN1cnNvckJhY2tlbmRJbXBsOwotY2xhc3MgSURC
VHJhbnNhY3Rpb25DYWxsYmFja3M7Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KLS8v
IFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCBhbmQgb3B0
aW9uYWxseSBvdGhlcnMgKGluIG9yZGVyIHRvIHByb3h5Ci0vLyBjYWxscyBhY3Jvc3MgcHJvY2Vz
cyBiYXJyaWVycykuIEFsbCBjYWxscyB0byB0aGVzZSBjbGFzc2VzIHNob3VsZCBiZSBub24tYmxv
Y2tpbmcgYW5kCi0vLyB0cmlnZ2VyIHdvcmsgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCBpZiBuZWNl
c3NhcnkuCi1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHsKLXB1YmxpYzoKLSAgICB2
aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgY29tbWl0KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Q2FsbGJhY2tzKElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKikgPSAwOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWYxZGQxM2JkMTI3MzE3YjllMmFkM2UxNGFlMTAyZmI5MzUz
MmFkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oCisr
KyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0
aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCVHJhbnNhY3Rpb25DYWxs
YmFja3NfaAotI2RlZmluZSBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc19oCi0KLSNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIElE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzIDogcHVibGljIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25D
YWxsYmFja3M+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkNhbGxiYWNr
cygpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUVycm9yPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKCkgPSAwOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIElEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaAppbmRleCA5MWRjMGUwZDkwMzhl
NGZhNDQ0Y2E2OWYyNjk1MmNiZWU5ZDE4ZjMyLi40OTRjZmZiMjE2Yzg3ZDk3NmYyOWQxMDAzZWJm
ZGIwMzVkZTAyYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oCkBAIC0zNSw3ICszNSw2IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw7
Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsKIGNsYXNzIElEQkRhdGFiYXNlQmFja2Vu
ZEltcGw7CiAKIC8vIFRyYW5zYWN0aW9ucyBhcmUgZXhlY3V0ZWQgaW4gdGhlIG9yZGVyIHRoZSB3
ZXJlIGNyZWF0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjM2I4ZmMwMjBjMTI2YTY0ZDYxOWE3ZDcwYmVi
YmM5N2JkYmRmMjFkLi44MjQ1NWUwYmFkZTgxMmIxNDQyNDcyYjg3NDVjZjJlNjg4MWZhODc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTMwNjMsOCArMzA2Myw3IEBAIGVuYWJsZT8oSU5ERVhFRF9EQVRBQkFT
RSkgewogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oIFwKICAgICAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIFwKICAgICAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIFwKLSAgICAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaCBcCi0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCisgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmgKIAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBiaW5kaW5ncy9qcy9J
REJCaW5kaW5nVXRpbGl0aWVzLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTViMjliNGNlNzMz
NTNjMWNjMGNlNGQ3MWUzNGQ4ZDUwYWI0ZGFiZC4uMTJiNmQwMjJhZGRmNjc2NmJhMDViYThjOTQ3
ZWUyZDcyY2Q5M2I2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzY5LDggKzc2OSw2IEBACiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCcs
Ci0gICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI1MzYyNDRkMjkwMTEyNTdhZDk3OWUy
NDE2NTMzOWEwYTgxNWU5MmIuLjU0YmY2NzBjNzljMTFkMjM3YWZkZTgzMmExMjRmMjRhZDVhYzM2
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTM1MTcsNyArMzUxNyw2IEBACiAJCTk3MTJBNUY2MTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTcxMkE1OUQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uLmggKi87
IH07CiAJCTk3MTJBNUY4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
MTJBNTlGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcCAq
LzsgfTsKIAkJOTcxMkE1RjkxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
MTJBNUEwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmggKi87
IH07Ci0JCTk3MTJBNUZBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3MTJBNUExMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UuaCAqLzsgfTsKIAkJOTcxMkE1RkIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzEyQTVBMjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCAq
LzsgfTsKIAkJOTcxMkE1RkMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcxMkE1QTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3Bw
ICovOyB9OwogCQk5NzEyQTVGRDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25Db29y
ZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcxMkE1QTQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCAq
LzsgfTsKQEAgLTEwOTA1LDcgKzEwOTA0LDYgQEAKIAkJOTcxMkE1OUUxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBJREJUcmFuc2Fj
dGlvbi5pZGw7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTlGMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOyBwYXRoID0gTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MTJBNUEwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTcxMkE1QTExNTAw
NEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTVBMjE1MDA0RURBMDA0OEFG
MTAgLyogSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3MTJBNUEzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25D
b29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNUE0MTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDsgcGF0aCA9
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzE5LDcgKzE4MzE3LDYgQEAKIAkJCQk5NzEyQTU5RTE1
MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb24uaWRsICovLAogCQkJCTk3MTJBNTlGMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcCAqLywKIAkJCQk5
NzEyQTVBMDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oICov
LAotCQkJCTk3MTJBNUExMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaCAqLywKIAkJCQk5NzEyQTVBMjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3MuaCAqLywKIAkJCQk5NzEyQTVBMzE1MDA0RURBMDA0OEFGMTAgLyogSURC
VHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi8sCiAJCQkJOTcxMkE1QTQxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCAqLywKQEAgLTI0NDE2LDcgKzI0NDEz
LDYgQEAKIAkJCQk5NzEyQTVGNDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhY2luZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTcxMkE1RjYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVGOTE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTcxMkE1RkExNTAwNEVE
QTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTcxMkE1RkIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVGRDE1MDA0RURBMDA0OEFGMTAgLyogSURC
VHJhbnNhY3Rpb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RkYxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQlZlcnNpb25DaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOTFkOGE0NGI0M2JhMjA5ZGI3NTMyYTczZDY3
NzYzOTdjMTU5MjdhNy4uYmViZGViMmVlZDk2ZTU0YzU1NGNlMjQ1MTgwZTE4YzVjZTBlYTBlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMTg4LDggKzE4OCw2IEBACiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXlQYXRoLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSURCS2V5UmFuZ2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJNZXRh
ZGF0YS5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmgnLAot
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCcsCiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJY29uTG9hZGluZ0NvbXBsZXRpb24uaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJJY29uVVJMLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSW1hZ2VEZWNvZGVyLmgnLApAQCAtMzc1LDEwICszNzMsNiBAQAogICAgICAgICAgICAg
ICAgICdzcmMvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9JREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eS5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkuaCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9JREJUcmFuc2FjdGlv
bkNhbGxiYWNrc1Byb3h5LmNwcCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9JREJUcmFuc2FjdGlv
bkNhbGxiYWNrc1Byb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSW5zcGVjdG9yQ2xpZW50
SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oJywK
ICAgICAgICAgICAgICAgICAnc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAnLApA
QCAtNTE2LDEwICs1MTAsNiBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCS2V5UGF0aC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCS2V5UmFuZ2UuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYklEQk1ldGFkYXRhLmNwcCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9X
ZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYklEQlRy
YW5zYWN0aW9uSW1wbC5oJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzSW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW1hZ2VEZWNvZGVy
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZVNraWEuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYklucHV0RWxlbWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAppbmRleCAxMWQ3MTZkMzllNmE1YmI2NDJl
Mzg5MzE4OTY1OTZiZWEyYjg0ZjI2Li4xMjIwNzVjOTExYTFjZGRkOGIwNWVkMTVhMDkxODIwMWQy
MzkwZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJD
YWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxs
YmFja3MuaApAQCAtMzgsNyArMzgsNiBAQCBjbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwogY2xh
c3MgV2ViSURCS2V5OwogY2xhc3MgV2ViSURCS2V5UGF0aDsKIGNsYXNzIFdlYklEQkluZGV4Owot
Y2xhc3MgV2ViSURCVHJhbnNhY3Rpb247CiBjbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiBzdHJ1Y3QgV2ViSURCTWV0YWRhdGE7CiAKQEAgLTYzLDcgKzYyLDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQobG9uZyBsb25nIG9sZFZlcnNpb24pIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dp
dGhQcmVmZXRjaChjb25zdCBXZWJWZWN0b3I8V2ViSURCS2V5PiYga2V5cywgY29uc3QgV2ViVmVj
dG9yPFdlYklEQktleT4mIHByaW1hcnlLZXlzLCBjb25zdCBXZWJWZWN0b3I8V2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYgdmFsdWVzKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdl
YklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2UqKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQobG9uZyBsb25nIG9s
ZFZlcnNpb24sIFdlYklEQkRhdGFiYXNlKiwgY29uc3QgV2ViSURCTWV0YWRhdGEmKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggODUxOTZkNTIzMmI3ODE5ZmNmOWQ3Y2Mw
M2RiYjc1MzE5MzMyN2RiZi4uYzRjZTFiOGE4YWIyM2FmYmJjZjJhYTI2YTFhYzI0YzEwNWJmYTli
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5o
CkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1
ZGUgIldlYkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJXZWJJREJNZXRhZGF0YS5oIgotI2lu
Y2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00
MSwyMiArNDAsMTQgQEAgY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIFdlYklEQktl
eTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJLZXlSYW5nZTsKLWNsYXNzIFdl
YklEQlRyYW5zYWN0aW9uOwogCiAvLyBTZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZvciBh
IGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgb2YgdGhlc2UgY2xhc3Nlcy4KIGNsYXNzIFdlYklEQkRhdGFi
YXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJEYXRhYmFzZSgpIHsgfQogCi0gICAg
dmlydHVhbCBXZWJJREJNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0Ci0gICAgewotICAgICAgICBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBXZWJJREJNZXRhZGF0
YSgpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25n
IHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJTdHJpbmcm
IG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0
b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCkgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
bWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMu
Ci0gICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBs
b25nIGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hv
cnQgbW9kZSkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwg
dm9pZCBmb3JjZUNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjIyOGJhYzljZWI2MzQ0NTQ2YmJkNjRjN2Q3OGI1
NTU2NWI3NTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJJREJUcmFuc2FjdGlv
bl9oCi0jZGVmaW5lIFdlYklEQlRyYW5zYWN0aW9uX2gKLQotI2luY2x1ZGUgIi4uLy4uLy4uL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlICJXZWJFeGNlcHRp
b25Db2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlOyB9Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJUcmFu
c2FjdGlvbkNhbGxiYWNrczsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3Ig
YSBoaWdoIGxldmVsIG92ZXJ2aWV3IG9mIHRoZXNlIGNsYXNzZXMuCi1jbGFzcyBXZWJJREJUcmFu
c2FjdGlvbiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViSURCVHJhbnNhY3Rpb24oKSB7IH0K
LQotICAgIGVudW0gVGFza1R5cGUgewotICAgICAgICBOb3JtYWxUYXNrID0gMCwKLSAgICAgICAg
UHJlZW1wdGl2ZVRhc2sKLSAgICB9OwotCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGFib3J0KCkgeyBX
RUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FsbGJh
Y2tzKFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KLQotICAgIC8vIEZJWE1FOiB0aGlzIGlzIG5ldmVyIGNhbGxlZCBmcm9tIFdlYkNv
cmUuIEZpbmQgYSBjbGVhbmVyIHNvbHV0aW9uLgotICAgIHZpcnR1YWwgV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBnZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgdmlydHVh
bCB2b2lkIGFkZFBlbmRpbmdFdmVudHMoaW50KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgV2ViSURCVHJhbnNhY3Rpb24oKSB7fQotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJJREJUcmFuc2FjdGlvbl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE5ZmFiYTllZjc1
YTc5ZmZkOTlhNmU0ZTRlMWI4M2VjZWVkNjVmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NfaAotI2RlZmluZSBXZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrc19oCi0KLSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJv
bWl1bS9wdWJsaWMvV2ViQ29tbW9uLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBX
ZWJJREJEYXRhYmFzZUVycm9yOwotCi1jbGFzcyBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyB7
Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MoKSB7IH0K
LQotICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKSB7
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBs
ZXRlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApp
bmRleCBmMzc2YTU5OGE1ZDNhMjdlYzVkZGZkMTE5OGNiOTg3ZjFlZjY3NTQ1Li42MTUxM2ZhMGUy
ZGUyMGZjM2EwYWYyNjhhZjFmOTUzZmEwZTE3YmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNTQsMTIgKzU0LDEyIEBA
CiAjZW5kaWYKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSURCQ3Vy
c29yLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQktleVBhdGguaCIK
ICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkljb25VUkwuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
ci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNlLmgiCkBAIC05NSwxMiArOTUsMTIgQEAK
ICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oIgogI2luY2x1ZGUgIldlYklEQkN1cnNvci5oIgorI2luY2x1ZGUgIldlYklE
QkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNs
dWRlICJXZWJJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAi
V2ViSURCS2V5UGF0aC5oIgogI2luY2x1ZGUgIldlYklEQk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAi
V2ViSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJXZWJJY29uVVJMLmgiCiAjaW5jbHVkZSAi
V2ViSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFQbGF5ZXIuaCIKQEAgLTUwNSw4
ICs1MDUsOCBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkN1cnNvcjo6TmV4
dE5vRHVwbGljYXRlLCBJREJDdXJzb3I6Ok5FWFRfTk9fRAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJJREJDdXJzb3I6OlByZXYsIElEQkN1cnNvcjo6UFJFVik7CiBDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkN1cnNvcjo6UHJldk5vRHVwbGljYXRlLCBJREJDdXJz
b3I6OlBSRVZfTk9fRFVQTElDQVRFKTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJJREJUcmFuc2FjdGlvbjo6UHJlZW1wdGl2ZVRhc2ssIElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZTo6UHJlZW1wdGl2ZVRhc2spOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJ
REJUcmFuc2FjdGlvbjo6Tm9ybWFsVGFzaywgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpO
b3JtYWxUYXNrKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2U6
OlByZWVtcHRpdmVUYXNrLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlByZWVtcHRpdmVU
YXNrKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCRGF0YWJhc2U6Ok5vcm1h
bFRhc2ssIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6Tm9ybWFsVGFzayk7CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCA2NzA1MTYyNmZmY2JiMDc3YmFjM2VmMmEz
ZGI0MzdjNWI4Y2Q4ZDRmLi5lYThmODU0ZDVkNTU4YmYyODQ0NmI3M2I3MGRmMmMzM2FiZTYwNDUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJREJNZXRhZGF0
YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1
ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkN1cnNvckltcGwuaCIKICNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oIgpAQCAtNDYsNyArNDUsNyBAQAogI2lu
Y2x1ZGUgIldlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJh
c2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNh
Y3Rpb25JbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCTWV0YWRhdGEuaCIKICNpbmNsdWRlICJXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5jcHAKaW5kZXggODUyZGJkNGVkMTY4NTkzNjQyZTU4YzE5NDc1Mjg2YmQ5MGMyYjM4MC4uY2I3
NWMyY2Y4ZTBkYmUwOTgxMTJiZTA0NmE1ZGIwMzBlNTA5NTc2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgiCiAjaW5jbHVk
ZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nTGlzdC5o
IgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrc0lt
cGwuaCIKQEAgLTQyLDcgKzQxLDYgQEAKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2Vi
SURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjIsMTEgKzYwLDYgQEAgSURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6On5JREJEYXRhYmFzZUJhY2tlbmRQcm94eSgpCiB7CiB9CiAKLUlEQkRhdGFiYXNlTWV0
YWRhdGEgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6Om1ldGFkYXRhKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV93ZWJJREJEYXRhYmFzZS0+bWV0YWRhdGEoKTsKLX0KLQogdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRQcm94eTo6Y3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0
aCYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQogewogICAgIGlmIChtX3dlYklEQkRhdGFi
YXNlKQpAQCAtNzksMTUgKzcyLDYgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6ZGVs
ZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG8KICAgICAgICAg
bV93ZWJJREJEYXRhYmFzZS0+ZGVsZXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZCwgb2JqZWN0
U3RvcmVJZCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCBpZCwg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURCVHJhbnNhY3Rpb246Ok1v
ZGUgbW9kZSkKLXsKLSAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uID0g
YWRvcHRQdHIobV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRlVHJhbnNhY3Rpb24oaWQsIG9iamVjdFN0
b3JlSWRzLCBtb2RlKSk7Ci0gICAgaWYgKCF0cmFuc2FjdGlvbikKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0ZSh0cmFuc2Fj
dGlvbi5yZWxlYXNlKCkpOwotfQotCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90IGlkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2ln
bmVkIHNob3J0IG1vZGUpCiB7CiAgICAgbV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRlVHJhbnNhY3Rp
b24oaWQsIG5ldyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgb2JqZWN0
U3RvcmVJZHMsIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggZTczZmUxMWI2ZDM1NzQ5ZDdlNWE0N2JmMDE1
OTEzNjAzMThiZDBmNi4uNmQyZDhlZDBhMDIxOWViMzhiNjdiNDk0Y2MzZGFkM2FkYmZmZGRlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5k
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5oCkBAIC00MiwxMiArNDIsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGUoUGFzc093blB0
cjxXZWJJREJEYXRhYmFzZT4pOwogICAgIHZpcnR1YWwgfklEQkRhdGFiYXNlQmFja2VuZFByb3h5
KCk7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEo
KSBjb25zdDsKLQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBXZWJDb3JlOjpJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KTsKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQpOwotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbjo6TW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9u
KGludDY0X3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4pOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tl
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyYTA1OGNmN2Mw
OGJkMmM0Zjk3ZWQ2Nzk4NDBjZDg5N2IyM2Q2MjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eS5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIK
LSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzSW1wbC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6Y3JlYXRlKFBhc3NPd25QdHI8V2ViSURCVHJh
bnNhY3Rpb24+IHRyYW5zYWN0aW9uKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCVHJh
bnNhY3Rpb25CYWNrZW5kUHJveHkodHJhbnNhY3Rpb24pKTsKLX0KLQotSURCVHJhbnNhY3Rpb25C
YWNrZW5kUHJveHk6OklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KFBhc3NPd25QdHI8V2ViSURC
VHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKQotICAgIDogbV93ZWJJREJUcmFuc2FjdGlvbih0cmFu
c2FjdGlvbikKLXsKLSAgICBBU1NFUlQobV93ZWJJREJUcmFuc2FjdGlvbik7Ci19Ci0KLUlEQlRy
YW5zYWN0aW9uQmFja2VuZFByb3h5Ojp+SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkoKQotewot
fQotCi12b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Ojpjb21taXQoKQotewotICAgIG1f
d2ViSURCVHJhbnNhY3Rpb24tPmNvbW1pdCgpOwotfQotCi12b2lkIElEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5OjphYm9ydCgpCi17Ci0gICAgbV93ZWJJREJUcmFuc2FjdGlvbi0+YWJvcnQoKTsK
LX0KLQotdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6c2V0Q2FsbGJhY2tzKElEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzKiBjYWxsYmFja3MpCi17Ci0gICAgbV93ZWJJREJUcmFuc2FjdGlv
bi0+c2V0Q2FsbGJhY2tzKG5ldyBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwoY2FsbGJh
Y2tzKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzZjM2Q4NDEyMDc3ZTQ2OTA0NTA2YjA4MmVlZjcyZDNjYjRlNDJjNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHlfaAotI2Rl
ZmluZSBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eV9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgot
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb247Ci0KLWNsYXNzIElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5IDogcHVibGljIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJUcmFuc2Fj
dGlvbj4pOwotICAgIHZpcnR1YWwgfklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KCk7Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGFib3J0KCk7Ci0gICAg
dmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkNhbGxiYWNr
cyopOwotCi0gICAgV2ViSURCVHJhbnNhY3Rpb24qIGdldFdlYklEQlRyYW5zYWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV93ZWJJREJUcmFuc2FjdGlvbi5nZXQoKTsgfQotCi1wcml2YXRlOgotICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+
KTsKLQotICAgIE93blB0cjxXZWJJREJUcmFuc2FjdGlvbj4gbV93ZWJJREJUcmFuc2FjdGlvbjsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKLQotI2VuZGlmIC8vIElEQlRy
YW5zYWN0aW9uQmFja2VuZFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDViY2RiMjczYjRkNWZmYTdlNTQxMGUwYjAwN2RmMDczOGU2ZjEx
OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIldl
YklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNr
cy5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eT4gSURCVHJhbnNhY3Rpb25D
YWxsYmFja3NQcm94eTo6Y3JlYXRlKFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3M+IGNhbGxiYWNrcykKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzUHJveHkoY2FsbGJhY2tzKSk7Ci19Ci0KLUlEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
UHJveHk6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkoUGFzc093blB0cjxXZWJJREJUcmFu
c2FjdGlvbkNhbGxiYWNrcz4gY2FsbGJhY2tzKQotICAgIDogbV9jYWxsYmFja3MoY2FsbGJhY2tz
KQotewotfQotCi1JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5Ojp+SURCVHJhbnNhY3Rpb25D
YWxsYmFja3NQcm94eSgpCi17Ci19Ci0KLXZvaWQgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94
eTo6b25BYm9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGlkYkRhdGFiYXNlRXJyb3Ip
Ci17Ci0gICAgbV9jYWxsYmFja3MtPm9uQWJvcnQoV2ViSURCRGF0YWJhc2VFcnJvcihpZGJEYXRh
YmFzZUVycm9yKSk7Ci19Ci0KLXZvaWQgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eTo6b25D
b21wbGV0ZSgpCi17Ci0gICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUoKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE5YzhjYTc1YmIy
OTc5OWY5NTBmMDkxODE4ZTA4NWEwNGE2MmU5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2Fj
dGlvbkNhbGxiYWNrc1Byb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5X2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NQcm94eV9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2lu
Y2x1ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7Ci0KLWNsYXNzIElEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25DYWxsYmFj
a3MgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzUHJveHk+IGNyZWF0ZShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPik7
Ci0gICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eSgpOwotCi0gICAgdmly
dHVhbCB2b2lkIG9uQWJvcnQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik7
Ci0gICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoKTsKLQotcHJpdmF0ZToKLSAgICBJREJUcmFu
c2FjdGlvbkNhbGxiYWNrc1Byb3h5KFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3M+KTsKLQotICAgIE93blB0cjxXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz4gbV9jYWxsYmFj
a3M7Ci19OwotCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKLQotI2VuZGlmIC8v
IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAppbmRleCBjZDE2ZDNkOGNkYWY1MTg5
N2FmNzg5NmVkMmY0OWRkYWZmMmFkZWI0Li42MWY1NWM4NGRjZjg4NzBlNzFkYWQ1MWFhMmJjNWE1
NWNmNjM2ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJD
YWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJD
YWxsYmFja3NJbXBsLmNwcApAQCAtMzQsMTMgKzM0LDExIEBACiAjaW5jbHVkZSAiSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVk
ZSAiSURCS2V5LmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKICNp
bmNsdWRlICJXZWJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgi
CiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rp
b24uaCIKICNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcAppbmRleCA2YjgxODkzYTViMGFiNTc5M2Y5YjhhNmZjYjkyMGRkMzA1
ZWJmODFhLi45N2FiZGY3Mjk5ZDE5ODgwNDQxMDdiODQyZGRiZjMzYWY0YjkxYjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAg
LTM1LDE0ICszNSwxMiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIK
ICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCi0jaW5j
bHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiV2ViSURC
Q2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaCIKICNpbmNs
dWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5j
bHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJJREJNZXRhZGF0YS5oIgotI2lu
Y2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uSW1wbC5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtNTgsMTEgKzU2LDYgQEAgV2ViSURCRGF0YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJh
c2VJbXBsKCkKIHsKIH0KIAotV2ViSURCTWV0YWRhdGEgV2ViSURCRGF0YWJhc2VJbXBsOjptZXRh
ZGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGF0YWJhc2VCYWNrZW5kLT5tZXRhZGF0YSgp
OwotfQotCiB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmUobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJTdHJp
bmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVu
dCkKIHsKICAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rp
b25JZCwgb2JqZWN0U3RvcmVJZCwgbmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCk7CkBAIC03
NCwxOCArNjcsNiBAQCB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUo
bG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYgogfQogCiAKLS8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMzkyMy4KLVdlYklEQlRyYW5zYWN0aW9uKiBXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0
ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9i
amVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQotewotICAgIFZlY3RvcjxpbnQ2NF90
PiBvYmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9yZUlkcy5zaXplKCkpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG9iamVj
dFN0b3JlSWRMaXN0W2ldID0gb2JqZWN0U3RvcmVJZHNbaV07Ci0gICAgUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24gPSBtX2RhdGFiYXNlQmFja2VuZC0+
Y3JlYXRlVHJhbnNhY3Rpb24oaWQsIG9iamVjdFN0b3JlSWRMaXN0LCBzdGF0aWNfY2FzdDxJREJU
cmFuc2FjdGlvbjo6TW9kZT4obW9kZSkpOwotICAgIGlmICghdHJhbnNhY3Rpb24pCi0gICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiBuZXcgV2ViSURCVHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0
aW9uKTsKLX0KLQogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxv
bmcgbG9uZyBpZCwgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2Vi
VmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQog
ewogICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9yZUlkcy5z
aXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0
YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaAppbmRleCAwNDY1ZjVlMjg3MmU1MmE4ZTU2NmViYzdkZjU4YWMzMjlkMmFhYmE1Li4xZmQ1
OTQ5NzYwZTYzMDNhNDg2MDBmM2FmMmM1ZGEzZDA4MzY5Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJXZWJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJXZWJJ
REJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21tb24uaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTQzLDcgKzQy
LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrczsK
IGNsYXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CiBjbGFzcyBXZWJJREJEYXRhYmFzZU1ldGFkYXRh
OwotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb247CiAKIC8vIFNlZSBjb21tZW50IGluIFdlYklEQkZh
Y3RvcnkgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgogY2xhc3MgV2Vi
SURCRGF0YWJhc2VJbXBsIDogcHVibGljIFdlYklEQkRhdGFiYXNlIHsKQEAgLTUxLDEyICs0OSw4
IEBAIHB1YmxpYzoKICAgICBXZWJJREJEYXRhYmFzZUltcGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4sIFdURjo6UGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5Pik7CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2VJbXBsKCk7
CiAKLSAgICB2aXJ0dWFsIFdlYklEQk1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3Q7Ci0KICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxv
bmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklE
QktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVP
YmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgbG9uZyBsb25nIHRyYW5zYWN0aW9u
SWQpOwotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIFdlYklEQlRyYW5z
YWN0aW9uKiBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxs
b25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqLCBjb25z
dCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1
YWwgdm9pZCBmb3JjZUNsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNr
c0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25D
YWxsYmFja3NJbXBsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ0MWU5ZmM2
MTc5YWU2OTE1ODFjNWIyMDNkYzM3ZjVjOGI5ZWZhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlv
bkNhbGxiYWNrc0ltcGwuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5j
bHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzLmgiCi0jaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzSW1wbDo6V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25DYWxsYmFja3M+IGNhbGxiYWNrcykKLSAgICA6IG1fY2FsbGJhY2tzKGNhbGxi
YWNrcykKLXsKLX0KLQotV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsOjp+V2ViSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NJbXBsKCkKLXsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGw6Om9uQWJvcnQoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYgZXJyb3IpCi17
Ci0gICAgbV9jYWxsYmFja3MtPm9uQWJvcnQoZXJyb3IpOwotfQotCi12b2lkIFdlYklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZSgpCi17Ci0gICAgbV9jYWxsYmFja3MtPm9u
Q29tcGxldGUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDVmYzg0M2MzYjczN2M3MTEwZWZlNDdkYWM4MmVmOTE4NTQ4YTRmZTYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJJREJUcmFuc2FjdGlv
bkNhbGxiYWNrc0ltcGxfaAotI2RlZmluZSBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGxf
aAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJXZWJJREJUcmFu
c2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzOyB9Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJUcmFu
c2FjdGlvbkNhbGxiYWNrc0ltcGwgOiBwdWJsaWMgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3Mg
ewotcHVibGljOgotICAgIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbChQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPik7Ci0gICAgdmlydHVhbCB+V2ViSURC
VHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChj
b25zdCBXZWJJREJEYXRhYmFzZUVycm9yJik7Ci0gICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUo
KTsKLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25DYWxsYmFj
a3M+IG1fY2FsbGJhY2tzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2VuZGlmIC8vIFdlYklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzSW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCVHJhbnNhY3Rpb25JbXBsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRm
ZDY3YmRkOGIyZTU1NzRjODRmODJkMWJmMTlkNWI1OTc4OTEzMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbklt
cGwuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCVHJh
bnNhY3Rpb24uaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIK
LSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmgiCi0jaW5jbHVkZSAiV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJJREJUcmFuc2FjdGlvbkltcGw6OldlYklEQlRyYW5z
YWN0aW9uSW1wbChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gYmFj
a2VuZCkKLSAgICA6IG1fYmFja2VuZChiYWNrZW5kKQotewotfQotCi1XZWJJREJUcmFuc2FjdGlv
bkltcGw6On5XZWJJREJUcmFuc2FjdGlvbkltcGwoKQotewotfQotCi12b2lkIFdlYklEQlRyYW5z
YWN0aW9uSW1wbDo6Y29tbWl0KCkKLXsKLSAgICBtX2JhY2tlbmQtPmNvbW1pdCgpOwotfQotCi12
b2lkIFdlYklEQlRyYW5zYWN0aW9uSW1wbDo6YWJvcnQoKQotewotICAgIG1fYmFja2VuZC0+YWJv
cnQoKTsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkltcGw6OnNldENhbGxiYWNrcyhXZWJJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrcyogY2FsbGJhY2tzKQotewotICAgIFJlZlB0cjxJREJUcmFu
c2FjdGlvbkNhbGxiYWNrcz4gaWRiQ2FsbGJhY2tzID0gSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQ
cm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOwotICAgIG1fYmFja2VuZC0+c2V0Q2Fs
bGJhY2tzKGlkYkNhbGxiYWNrcy5nZXQoKSk7Ci19Ci0KLUlEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogV2ViSURCVHJhbnNhY3Rpb25JbXBsOjpnZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UoKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQuZ2V0KCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlv
bkltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1w
bC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmYwNmE2ZWVmNDVkMTk4YWY1M2Q2
NzI0ODlkYzk1MjIzNTYyN2FmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1w
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURC
VHJhbnNhY3Rpb25JbXBsX2gKLSNkZWZpbmUgV2ViSURCVHJhbnNhY3Rpb25JbXBsX2gKLQotI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24u
aCIKLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tbW9uLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0v
LyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVy
dmlldyB0aGVzZSBjbGFzc2VzLgotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25JbXBsOiBwdWJsaWMg
V2ViSURCVHJhbnNhY3Rpb24gewotcHVibGljOgotICAgIFdlYklEQlRyYW5zYWN0aW9uSW1wbChX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7
Ci0gICAgdmlydHVhbCB+V2ViSURCVHJhbnNhY3Rpb25JbXBsKCk7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGFib3J0KCk7Ci0gICAgdmlydHVhbCB2b2lk
IHNldENhbGxiYWNrcyhXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyopOwotCi0gICAgdmlydHVh
bCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIGdldElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFdURjo6UmVmUHRy
PFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gbV9iYWNrZW5kOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLQotI2VuZGlmIC8vIFdlYklEQlRyYW5zYWN0aW9uSW1wbF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKaW5k
ZXggNzE1NzRhY2EzYWY4ZTg5OGVjNDZjNmVmZGQ2ZjI3YWZkODRjZTg3YS4uOTFkOTRiNDA4MGU3
ODRjMjZlZTUyYjk3YzY1NDA0ZWFiNjA2M2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcApAQCAtNjIsNyArNjIs
NiBAQCBwdWJsaWM6CiAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKICAgICB9CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8SURCS2V5PiwgY29uc3QgSURCS2V5UGF0
aCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoaW50NjRfdCkgT1ZFUlJJREUgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFj
a2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJh
Y2tlbmRUZXN0LmNwcAppbmRleCA4OGIyOGM4OGZlYjBkOGExYzFlZDlkMzJiZjE1ZTM4Yjc3N2M0
NGJlLi40NTQ5NTUzYjljNDhiNzM1NDJiMDU0ZDUyZTNmOTYzNzkwYzY1NmFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVz
dC5jcHAKQEAgLTEzOCw4ICsxMzgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJEYXRhYmFz
ZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gSURCRGF0YWJhc2VNZXRhZGF0YSgp
OyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElE
QktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpIE9WRVJSSURFIHsgfTsKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQpIE9WRVJSSURFIHsgfQotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRo
b2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJREJUcmFuc2Fj
dGlvbjo6TW9kZSkgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgT1ZFUlJJREUgeyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4pIE9WRVJSSURFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185873</attachid>
            <date>2013-01-31 14:55:51 -0800</date>
            <delta_ts>2013-01-31 17:21:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103923-20130131145234.patch</filename>
            <type>text/plain</type>
            <size>68093</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI5ZGYzM2QyODZhZjhl
NGYyMmYwMmY3NGI2ZWQzYmU5YTExMzhjNS4uZjg4MjAxYTgyNmE4NWRlZWU2OTgyYzk1NjA4MWQz
NTliN2E5YWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAxLTMxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHJl
bW92ZSBvbGQgdHJhbnNhY3Rpb24gYmFja2VuZCBib290c3RyYXAgY29kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmluYWxseSByZW1vdmUgYWxsIGxl
ZnRvdmVyIGNvZGUgZnJvbSB0aGUgSW5kZXhlZERCICJnaWFudAorICAgICAgICBhc3luYyByZWZh
Y3RvciBvZiAyMDEyLiIgVGhpcyBpbmNsdWRlcyByZW1vdmFsIG9mIGFsbAorICAgICAgICBJREJU
cmFuc2FjdGlvbiogaW50ZXJmYWNlcyB0aGF0IHdlcmUgc2hhcmVkIGJldHdlZW4KKyAgICAgICAg
dGhlIGZyb250ZW5kIGFuZCBiYWNrZW5kIGFuZCBhIGZldyBzdHJhZ2dsaW5nIG1ldGhvZHMKKyAg
ICAgICAgbGlrZSBvblVwZ3JhZGVOZWVkZWQgYW5kIG9uU3VjY2VzcyB0aGF0IHdlcmUgbGVmdCBm
cm9tCisgICAgICAgIHRoZSBsYXN0IHN0YWdlIG9mIHJlZmFjdG9yaW5nLgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjptZXRhZGF0YSk6CisgICAgICAg
IChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChJREJUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOiBSZW1vdmVk
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3Iu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAxMy0wMS0zMSAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNlYXJjaGluZyBmb3IgPHU+IGluIGVsZW1lbnRz
IHBhbmVsIGZpbmRzIGFsbCB0YWdzIGNvbnRhaW5pbmcgInUiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDE2MWYyZGJjMjQwZmU0N2E5NDQwZmU4ZjM0Y2MxYzFhY2U0YWNiYmYuLmE3MTAx
YmQ3ZGNmZmU4ZjYwNzhmNmM2MWMwNDg3YThiNGM3ZDgyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNDQgQEAKIDIwMTMtMDEtMzEgIEFsZWMgRmxldHQgIDxhbGVjZmxl
dHRAY2hyb21pdW0ub3JnPgogCisgICAgICAgIEluZGV4ZWREQjogcmVtb3ZlIG9sZCB0cmFuc2Fj
dGlvbiBiYWNrZW5kIGJvb3RzdHJhcCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYWxsIGRlcHJlY2F0ZWQgV2ViS2l0IEFQSXMgZnJv
bQorICAgICAgICB0aGUgSURCIGJhY2tlbmQuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAg
ICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIHB1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1Ymxp
Yy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAg
ICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUJh
Y2tlbmRQcm94eSk6CisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAg
ICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlv
bkNhbGxiYWNrc0ltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rp
b25JbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBs
Lmg6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDoK
KyAgICAgICAgKiB0ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKworMjAxMy0wMS0z
MSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgSW5kZXhl
ZERCOiBSZW1vdmUgV2ViS2l0IEFQSSBmb3Igb2xkIG9uU3VjY2Vzcy9vblVwZ3JhZGVOZWVkZWQK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODM5OQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFj
a3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmlu
ZGV4IGQ1ZDQ3YzI0YWQ4N2I5YTQ4MmIyNjlmMjljMTUwN2M3YzM4MjE0NzUuLjMzM2Q3NjY2YzVi
M2ZjMTYxMjI2ZDllMjYwYTdiYTk3YjMyYTM0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklE
QktleVBhdGguaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IGZkNjc2NDBhOTEwOGVkYmFiZjc2
YzAxZTEzN2UzZjY0ZTQ3MTkxMzkuLmY4ZGM3MTkxNGI5Y2VmNDZhYTEwYTE3YTBlNTMwODk3YzE0
ZDk5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC01NDgsMTEgKzU0OCw2IEBAIFBhc3NS
ZWZQdHI8SURCQmFja2luZ1N0b3JlPiBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpiYWNraW5nU3Rv
cmUoKSBjb25zdAogICAgIHJldHVybiBtX2JhY2tpbmdTdG9yZTsKIH0KIAotSURCRGF0YWJhc2VN
ZXRhZGF0YSBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjptZXRhZGF0YSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbWV0YWRhdGE7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3Jl
YXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBh
dXRvSW5jcmVtZW50KQogewogICAgIElEQl9UUkFDRSgiSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
Y3JlYXRlT2JqZWN0U3RvcmUiKTsKQEAgLTExNjcsMTMgKzExNjIsNiBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5nQ2FsbHMoKQogICAgIH0KIH0KIAotLy8gRklY
TUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTIzLgotUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURCVHJh
bnNhY3Rpb246Ok1vZGUgbW9kZSkKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2Fj
dGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5z
aWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4gdHJhbnNhY3Rpb24gPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpjcmVhdGUodHJhbnNh
Y3Rpb25JZCwgY2FsbGJhY2tzLCBvYmplY3RTdG9yZUlkcywgc3RhdGljX2Nhc3Q8SURCVHJhbnNh
Y3Rpb246Ok1vZGU+KG1vZGUpLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBlODZhNWVl
YmE5NDdiODdkOTMxYjc4ODZiMTFhNGU0ZTQxMzAwM2RjLi41YmIxNjU0MGZlODdhZWUxMmZjZTk0
MGViM2JmMmIxOWE2ODUwYjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC00MSw3ICs0MSw2IEBA
IGNsYXNzIElEQkJhY2tpbmdTdG9yZTsKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3MgSURCRmFj
dG9yeUJhY2tlbmRJbXBsOwogY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDsKLWNsYXNz
IElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQ29v
cmRpbmF0b3I7CiAKIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGwgOiBwdWJsaWMgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlIHsKQEAgLTYwLDEzICs1OSwxMSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIG9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCB2
ZXJzaW9uKTsKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNlKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
Pik7CisgICAgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEoKSBjb25zdCB7IHJl
dHVybiBtX21ldGFkYXRhOyB9CiAKICAgICAvLyBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UK
LSAgICB2aXJ0dWFsIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYs
IGJvb2wgYXV0b0luY3JlbWVudCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJREJUcmFuc2FjdGlvbjo6
TW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwogICAgIHZpcnR1
YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggMDRmNWU5OWM3YTY0YzZhYTgwMTMwMjcyNmUzODk5
YjhlYzkzYmQwYS4uYjI5ZWRiYmUxOTdiNjQ4Y2MzNTVhYjdjZDBiZDhhOTNiZjBlYjZlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTQwLDcgKzQwLDYgQEAgY2xhc3MgSURCRGF0
YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlQYXRoOwogY2xhc3Mg
SURCS2V5UmFuZ2U7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBzdHJ1
Y3QgSURCRGF0YWJhc2VNZXRhZGF0YTsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAg
LTUyLDExICs1MSw4IEBAIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjCiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIElE
QkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdCA9IDA7Ci0KICAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0
b0luY3JlbWVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgPSAwOwotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5z
YWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmpl
Y3RTdG9yZUlkcywgSURCVHJhbnNhY3Rpb246Ok1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgK
aW5kZXggM2QyZTRkMzQ1ZGI2YzJkMGQ0MmY5ODkyN2NlYjBmNzgwYjA1MTlhZC4uNTRjYjE0MzNl
ODRkYjNiZTIxOGFlMzZmN2EyNjY4ZWMxZmUyZGFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
aApAQCAtMzksNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkRhdGFi
YXNlQmFja2VuZEltcGw7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOwotY2xhc3Mg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwogc3RydWN0IElEQk9iamVjdFN0b3JlTWV0
YWRhdGE7CiAKIC8vIEZJWE1FOiB0aGlzIG5hbWVzcGFjZSBpcyB0ZW1wb3JhcnkgdW50aWwgd2Ug
bW92ZSBpdHMgY29udGVudHMgb3V0IHRvIHRoZWlyIG93biBob21lLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggYzk5ODBmYmJm
ZDNhODMwM2ZmYThjZmE1ZmZmYmI0ZjQwZDI2MjA5Zi4uMmQ1OWI3ZjUwZGJkZjRjMzAxMTQyMmI5
OGQxNWRiNTJjNTE0Nzc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEu
aCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlNjcmlw
dFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KQEAgLTQ0LDEyICs0MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIElEQkN1cnNvcjsKIGNsYXNzIElEQkRhdGFiYXNlOworY2xhc3MgSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlOworY2xhc3MgSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIElEQk9iamVjdFN0
b3JlOwogY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKLWNsYXNzIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTsKIHN0cnVjdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOwogCi1jbGFzcyBJREJUcmFu
c2FjdGlvbiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBJREJUcmFuc2FjdGlvbkNh
bGxiYWNrcywgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2Ns
YXNzIElEQlRyYW5zYWN0aW9uIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIFJlZkNv
dW50ZWQ8SURCVHJhbnNhY3Rpb24+LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QgewogcHVibGljOgogICAgIGVudW0gTW9kZSB7CiAgICAgICAgIFJFQURfT05MWSA9
IDAsCkBAIC0xMDcsNyArMTA3LDYgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIoY29tcGxldGUpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIoZXJyb3IpOwogCi0gICAgLy8gSURCVHJhbnNhY3Rpb25DYWxsYmFja3MKICAgICB2aXJ0dWFs
IHZvaWQgb25BYm9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKICAgICB2aXJ0dWFs
IHZvaWQgb25Db21wbGV0ZSgpOwogCkBAIC0xMjMsOCArMTIyLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBPVkVSUklERTsKIAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25D
YWxsYmFja3M+OjpyZWY7Ci0gICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkNhbGxi
YWNrcz46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb24+OjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbj46OmRlcmVmOwogCiBwcml2YXRl
OgogICAgIElEQlRyYW5zYWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQ2NF90LCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIE1vZGUsIElEQkRhdGFiYXNlKiwgSURCT3BlbkRCUmVxdWVz
dCosIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaApp
bmRleCAyNjQxODFlYTFlYmJiYTU0N2I4NDg0ZTM3ZjJmZmM3Y2IwMTBiNjUxLi4zY2VmOTc2MmFl
MTAyN2U4ODg0ZTk4MjZmNDc5MWY2MzY0YTM0YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
CkBAIC0yOSwxMCArMjksOSBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5j
bHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQlRy
YW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgi
Ci0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKICNpbmNsdWRlICJUaW1lci5o
IgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00
MSwyMCArNDAsMTYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRGF0YWJhc2VC
YWNrZW5kSW1wbDsKK2NsYXNzIElEQkN1cnNvckJhY2tlbmRJbXBsOworY2xhc3MgSURCRGF0YWJh
c2VDYWxsYmFja3M7CiAKLWNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwgOiBwdWJsaWMg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlIHsKK2NsYXNzIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEltcGwgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4gY3JlYXRlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIElEQlRyYW5zYWN0aW9uOjpNb2RlLCBJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsKik7Ci0gICAgc3RhdGljIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwqIGZyb20oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBpbnRlcmZhY2UpCi0g
ICAgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bCo+KGludGVyZmFjZSk7Ci0gICAgfQogICAgIHZpcnR1YWwgfklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGwoKTsKIAotICAgIC8vIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZQogICAgIHZp
cnR1YWwgdm9pZCBhYm9ydCgpOwogICAgIHZvaWQgY29tbWl0KCk7Ci0gICAgdmlydHVhbCB2b2lk
IHNldENhbGxiYWNrcyhJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyogY2FsbGJhY2tzKSB7IH0KIAog
ICAgIGNsYXNzIE9wZXJhdGlvbiB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU2NDMxMzUyMGU0YjYw
ZGVkNDk2NzUyY2RiZjdhMjYzNjcwMjYxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZV9oCi0jZGVmaW5l
IElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZV9oCi0KLSNpbmNsdWRlICJJREJDYWxsYmFj
a3MuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJREJDdXJzb3JC
YWNrZW5kSW1wbDsKLWNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwotCi10eXBlZGVmIGlu
dCBFeGNlcHRpb25Db2RlOwotCi0vLyBUaGlzIGlzIGltcGxlbWVudGVkIGJ5IElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwgYW5kIG9wdGlvbmFsbHkgb3RoZXJzIChpbiBvcmRlciB0byBwcm94eQot
Ly8gY2FsbHMgYWNyb3NzIHByb2Nlc3MgYmFycmllcnMpLiBBbGwgY2FsbHMgdG8gdGhlc2UgY2xh
c3NlcyBzaG91bGQgYmUgbm9uLWJsb2NraW5nIGFuZAotLy8gdHJpZ2dlciB3b3JrIG9uIGEgYmFj
a2dyb3VuZCB0aHJlYWQgaWYgbmVjZXNzYXJ5LgotY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgYWJvcnQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrcyopID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmCi0KLSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2VfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxs
YmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmMWRkMTNiZDEyNzMx
N2I5ZTJhZDNlMTRhZTEwMmZiOTM1MzJhZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25DYWxsYmFja3MuaAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzX2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rpb25DYWxs
YmFja3NfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJE
YXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyA6IHB1YmxpYyBSZWZD
b3VudGVkPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25D
b21wbGV0ZSgpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0K
LSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
LmgKaW5kZXggOTFkYzBlMGQ5MDM4ZTRmYTQ0NGNhNjlmMjY5NTJjYmVlOWQxOGYzMi4uNDk0Y2Zm
YjIxNmM4N2Q5NzZmMjlkMTAwM2ViZmRiMDM1ZGUwMmE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0
b3IuaApAQCAtMzUsNyArMzUsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsOwotY2xhc3MgSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7CiBj
bGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOwogCiAvLyBUcmFuc2FjdGlvbnMgYXJlIGV4ZWN1
dGVkIGluIHRoZSBvcmRlciB0aGUgd2VyZSBjcmVhdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYzNiOGZj
MDIwYzEyNmE2NGQ2MTlhN2Q3MGJlYmJjOTdiZGJkZjIxZC4uODI0NTVlMGJhZGU4MTJiMTQ0MjQ3
MmI4NzQ1Y2YyZTY4ODFmYTg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMDYzLDggKzMwNjMsNyBAQCBl
bmFibGU/KElOREVYRURfREFUQUJBU0UpIHsKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBc
Ci0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggXAotICAgICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorICAgICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCiAKICAgICBTT1VSQ0VTICs9IFwK
ICAgICAgICAgYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDU1YjI5YjRjZTczMzUzYzFjYzBjZTRkNzFlMzRkOGQ1MGFiNGRhYmQuLjEyYjZk
MDIyYWRkZjY3NjZiYTA1YmE4Yzk0N2VlMmQ3MmNkOTNiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTc2OSw4ICs3NjksNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oJywKLSAgICAgICAgICAgICdNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oJywKICAgICAgICAg
ICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAy
NTM2MjQ0ZDI5MDExMjU3YWQ5NzllMjQxNjUzMzlhMGE4MTVlOTJiLi41NGJmNjcwYzc5YzExZDIz
N2FmZGU4MzJhMTI0ZjI0YWQ1YWMzNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTE3LDcgKzM1MTcsNiBAQAogCQk5NzEy
QTVGNjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTlEMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbi5oICovOyB9OwogCQk5NzEyQTVGODE1MDA0RURBMDA0OEFGMTAgLyog
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5RjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTk3MTJBNUY5MTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTVBMDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbC5oICovOyB9OwotCQk5NzEyQTVGQTE1MDA0RURBMDA0OEFGMTAgLyog
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTVBMTE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi87IH07CiAJCTk3MTJBNUZCMTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1QTIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzLmggKi87IH07CiAJCTk3MTJBNUZDMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNUEzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJOTcxMkE1RkQxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNUE0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmggKi87IH07CkBAIC0xMDkwNSw3ICsxMDkwNCw2IEBACiAJCTk3
MTJBNTlFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gSURCVHJhbnNhY3Rpb24uaWRsOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU5
RjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
LmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTVBMDE1MDA0RURBMDA0OEFG
MTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmg7IHBhdGggPSBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTk3MTJBNUExMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcxMkE1QTIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmg7
IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTVBMzE1MDA0RURBMDA0OEFGMTAgLyogSURC
VHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzEyQTVBNDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25Db29y
ZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODMxOSw3ICsxODMx
Nyw2IEBACiAJCQkJOTcxMkE1OUUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uLmlk
bCAqLywKIAkJCQk5NzEyQTU5RjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbC5jcHAgKi8sCiAJCQkJOTcxMkE1QTAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwuaCAqLywKLQkJCQk5NzEyQTVBMTE1MDA0RURBMDA0OEFGMTAgLyog
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggKi8sCiAJCQkJOTcxMkE1QTIxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmggKi8sCiAJCQkJOTcxMkE1QTMx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwICovLAogCQkJ
CTk3MTJBNUE0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgg
Ki8sCkBAIC0yNDQxNiw3ICsyNDQxMyw2IEBACiAJCQkJOTcxMkE1RjQxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUY2MTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RjkxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICov
LAotCQkJCTk3MTJBNUZBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUZCMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RkQx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3MTJBNUZGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJWZXJzaW9uQ2hhbmdlRXZl
bnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDkxZDhh
NDRiNDNiYTIwOWRiNzUzMmE3M2Q2Nzc2Mzk3YzE1OTI3YTcuLmJlYmRlYjJlZWQ5NmU1NGM1NTRj
ZTI0NTE4MGUxOGM1Y2UwZWEwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4
OCw4ICsxODgsNiBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCS2V5UGF0aC5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQktleVJhbmdlLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSURCTWV0YWRhdGEuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJJREJUcmFuc2FjdGlvbi5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSWNvbkxvYWRp
bmdDb21wbGV0aW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSWNvblVSTC5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkltYWdlRGVjb2Rlci5oJywKQEAgLTM3NSwxMCAr
MzczLDYgQEAKICAgICAgICAgICAgICAgICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgnLAotICAgICAg
ICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwJywKLSAgICAgICAg
ICAgICAgICAnc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgnLAotICAgICAgICAgICAg
ICAgICdzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHAnLAotICAgICAgICAgICAg
ICAgICdzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5oJywKICAgICAgICAgICAgICAg
ICAnc3JjL0luc3BlY3RvckNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudEltcGwuY3BwJywKQEAgLTUxNiwxMCArNTEwLDYgQEAKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYklEQktleVBhdGguY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQktl
eVJhbmdlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJNZXRhZGF0YS5jcHAnLAot
ICAgICAgICAgICAgICAgICdzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcCcsCi0gICAgICAg
ICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCcsCi0gICAgICAgICAgICAgICAg
J3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwJywKLSAgICAgICAgICAgICAg
ICAnc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYkltYWdlRGVjb2Rlci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW1h
Z2VTa2lhLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNr
cy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5k
ZXggMTFkNzE2ZDM5ZTZhNWJiNjQyZTM4OTMxODk2NTk2YmVhMmI4NGYyNi4uMTIyMDc1YzkxMWEx
Y2RkZDhiMDVlZDE1YTA5MTgyMDFkMjM5MGRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTM4LDcgKzM4LDYgQEAgY2xhc3MgV2Vi
SURCRGF0YWJhc2VFcnJvcjsKIGNsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7
CiBjbGFzcyBXZWJJREJJbmRleDsKLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwogY2xhc3MgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlOwogc3RydWN0IFdlYklEQk1ldGFkYXRhOwogCkBAIC02Myw3
ICs2Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKGxvbmcg
bG9uZyBvbGRWZXJzaW9uKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgV2ViVmVjdG9yPFdlYklEQktl
eT4mIGtleXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJREJLZXk+JiBwcmltYXJ5S2V5cywgY29uc3Qg
V2ViVmVjdG9yPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mIHZhbHVlcykgeyBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25VcGdyYWRlTmVlZGVkKGxv
bmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJUcmFuc2FjdGlvbiosIFdlYklEQkRhdGFiYXNlKikg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25VcGdy
YWRlTmVlZGVkKGxvbmcgbG9uZyBvbGRWZXJzaW9uLCBXZWJJREJEYXRhYmFzZSosIGNvbnN0IFdl
YklEQk1ldGFkYXRhJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDg1
MTk2ZDUyMzJiNzgxOWZjZjlkN2NjMDNkYmI3NTMxOTMzMjdkYmYuLmM0Y2UxYjhhOGFiMjNhZmJi
Y2YyYWEyNmExYWMyNGMxMDViZmE5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIldlYkRP
TVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAi
V2ViSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApAQCAtNDEsMjIgKzQwLDE0IEBAIGNsYXNzIFdlYklEQkRhdGFiYXNl
RXJyb3I7CiBjbGFzcyBXZWJJREJLZXk7CiBjbGFzcyBXZWJJREJLZXlQYXRoOwogY2xhc3MgV2Vi
SURCS2V5UmFuZ2U7Ci1jbGFzcyBXZWJJREJUcmFuc2FjdGlvbjsKIAogLy8gU2VlIGNvbW1lbnQg
aW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IG9mIHRoZXNlIGNsYXNz
ZXMuCiBjbGFzcyBXZWJJREJEYXRhYmFzZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURC
RGF0YWJhc2UoKSB7IH0KIAotICAgIHZpcnR1YWwgV2ViSURCTWV0YWRhdGEgbWV0YWRhdGEoKSBj
b25zdAotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICByZXR1cm4gV2ViSURCTWV0YWRhdGEoKTsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBh
dXRvSW5jcmVtZW50KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBs
b25nIG9iamVjdFN0b3JlSWQpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNy
ZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4m
LCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlk
LCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8bG9u
ZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCVHJhbnNhY3Rpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYyMjhiYWM5
Y2ViNjM0NDU0NmJiZDY0YzdkNzhiNTU1NjViNzU5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJUcmFuc2FjdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgV2ViSURCVHJhbnNhY3Rpb25faAotI2RlZmluZSBXZWJJREJUcmFuc2FjdGlvbl9oCi0K
LSNpbmNsdWRlICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5nLmgi
Ci0jaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IGNs
YXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsgfQotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7Ci0KLS8vIFNlZSBjb21tZW50
IGluIFdlYklEQkZhY3RvcnkgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyBvZiB0aGVzZSBjbGFz
c2VzLgotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb24gewotcHVibGljOgotICAgIHZpcnR1YWwgfldl
YklEQlRyYW5zYWN0aW9uKCkgeyB9Ci0KLSAgICBlbnVtIFRhc2tUeXBlIHsKLSAgICAgICAgTm9y
bWFsVGFzayA9IDAsCi0gICAgICAgIFByZWVtcHRpdmVUYXNrCi0gICAgfTsKLQotICAgIHZpcnR1
YWwgdm9pZCBjb21taXQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZp
cnR1YWwgdm9pZCBhYm9ydCgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyopIHsg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICAvLyBGSVhNRTogdGhpcyBpcyBu
ZXZlciBjYWxsZWQgZnJvbSBXZWJDb3JlLiBGaW5kIGEgY2xlYW5lciBzb2x1dGlvbi4KLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogZ2V0SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAw
OwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5nRXZlbnRzKGludCkgeyBXRUJL
SVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotcHJvdGVjdGVkOgotICAgIFdlYklEQlRyYW5z
YWN0aW9uKCkge30KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2Vi
SURCVHJhbnNhY3Rpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDcxOWZhYmE5ZWY3NWE3OWZmZDk5YTZlNGU0ZTFiODNlY2VlZDY1ZjEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaAorKysgL2Rldi9udWxs
CkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzX2gKLSNkZWZpbmUgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NfaAotCi0jaW5jbHVkZSAi
Li4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbW1vbi5oIgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKLQotY2xhc3MgV2ViSURC
VHJhbnNhY3Rpb25DYWxsYmFja3MgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb25BYm9ydChjb25zdCBX
ZWJJREJEYXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgb25Db21wbGV0ZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYklEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNz
ZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXggZjM3NmE1OThhNWQzYTI3ZWM1ZGRmZDExOThjYjk4
N2YxZWY2NzU0NS4uNjE1MTNmYTBlMmRlMjBmYzNhMGFmMjY4YWYxZjk1M2ZhMGUxN2JmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAKQEAgLTU0LDEyICs1NCwxMiBAQAogI2VuZGlmCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIklEQkN1cnNvci5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVk
ZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJLZXkuaCIKICNp
bmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJY29uVVJMLmgi
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZS5o
IgpAQCAtOTUsMTIgKzk1LDEyIEBACiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25FcnJvci5oIgog
I2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKICNpbmNsdWRlICJXZWJJREJDdXJz
b3IuaCIKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFi
YXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIldl
YklEQktleS5oIgogI2luY2x1ZGUgIldlYklEQktleVBhdGguaCIKICNpbmNsdWRlICJXZWJJREJN
ZXRhZGF0YS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
SWNvblVSTC5oIgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYk1l
ZGlhUGxheWVyLmgiCkBAIC01MDUsOCArNTA1LDggQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJJREJDdXJzb3I6Ok5leHROb0R1cGxpY2F0ZSwgSURCQ3Vyc29yOjpORVhUX05PX0QK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCQ3Vyc29yOjpQcmV2LCBJREJDdXJz
b3I6OlBSRVYpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJDdXJzb3I6OlBy
ZXZOb0R1cGxpY2F0ZSwgSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURSk7CiAKLUNPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCVHJhbnNhY3Rpb246OlByZWVtcHRpdmVUYXNrLCBJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlByZWVtcHRpdmVUYXNrKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViSURCVHJhbnNhY3Rpb246Ok5vcm1hbFRhc2ssIElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZTo6Tm9ybWFsVGFzayk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdlYklEQkRhdGFiYXNlOjpQcmVlbXB0aXZlVGFzaywgSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOjpQcmVlbXB0aXZlVGFzayk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYklEQkRhdGFiYXNlOjpOb3JtYWxUYXNrLCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6
Ok5vcm1hbFRhc2spOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggNjcw
NTE2MjZmZmNiYjA3N2JhYzNlZjJhM2RiNDM3YzViOGNkOGQ0Zi4uZWE4Zjg1NGQ1ZDU1OGJmMjg0
NDZiNzNiNzBkZjJjMzNhYmU2MDQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIklE
QkRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgi
CiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJX
ZWJJREJDdXJzb3JJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaCIK
QEAgLTQ2LDcgKzQ1LDcgQEAKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgog
I2luY2x1ZGUgIldlYklEQkRhdGFiYXNlSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgot
I2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uSW1wbC5oIgorI2luY2x1ZGUgIldlYklEQk1ldGFk
YXRhLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IDg1MmRiZDRlZDE2ODU5MzY0MmU1OGMx
OTQ3NTI4NmJkOTBjMmIzODAuLmNiNzVjMmNmOGUwZGJlMDk4MTEyYmUwNDZhNWRiMDMwZTUwOTU3
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFj
a2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFz
ZUJhY2tlbmRQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFz
ZUNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCTWV0
YWRhdGEuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIgogI2luY2x1
ZGUgIldlYkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNs
dWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCkBAIC00Miw3ICs0MSw2IEBACiAjaW5jbHVkZSAi
V2ViSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VF
cnJvci5oIgogI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJh
bnNhY3Rpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTYyLDExICs2MCw2
IEBAIElEQkRhdGFiYXNlQmFja2VuZFByb3h5Ojp+SURCRGF0YWJhc2VCYWNrZW5kUHJveHkoKQog
ewogfQogCi1JREJEYXRhYmFzZU1ldGFkYXRhIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjptZXRh
ZGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViSURCRGF0YWJhc2UtPm1ldGFkYXRhKCk7
Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZU9iamVjdFN0b3JlKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKIHsK
ICAgICBpZiAobV93ZWJJREJEYXRhYmFzZSkKQEAgLTc5LDE1ICs3Miw2IEBAIHZvaWQgSURCRGF0
YWJhc2VCYWNrZW5kUHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvCiAgICAgICAgIG1fd2ViSURCRGF0YWJhc2UtPmRlbGV0ZU9iamVjdFN0b3Jl
KHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQpOwogfQogCi1QYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNyZWF0ZVRy
YW5zYWN0aW9uKGludDY0X3QgaWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJ
ZHMsIElEQlRyYW5zYWN0aW9uOjpNb2RlIG1vZGUpCi17Ci0gICAgT3duUHRyPFdlYklEQlRyYW5z
YWN0aW9uPiB0cmFuc2FjdGlvbiA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZVRy
YW5zYWN0aW9uKGlkLCBvYmplY3RTdG9yZUlkcywgbW9kZSkpOwotICAgIGlmICghdHJhbnNhY3Rp
b24pCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5OjpjcmVhdGUodHJhbnNhY3Rpb24ucmVsZWFzZSgpKTsKLX0KLQogdm9pZCBJREJEYXRh
YmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCBpZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4m
IG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIG1fd2ViSURCRGF0
YWJhc2UtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsKGNhbGxiYWNrcyksIG9iamVjdFN0b3JlSWRzLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCmluZGV4IGU3M2Zl
MTFiNmQzNTc0OWQ3ZTVhNDdiZjAxNTkxMzYwMzE4YmQwZjYuLjZkMmQ4ZWQwYTAyMTllYjM4YjY3
YjQ5NGNjM2RhZDNhZGJmZmRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaApAQCAtNDIsMTIgKzQyLDggQEAgcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCRGF0YWJhc2U+KTsKICAgICB2aXJ0dWFsIH5J
REJEYXRhYmFzZUJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJREJEYXRh
YmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
T2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UGF0aCYsIGJvb2wgYXV0
b0luY3JlbWVudCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICAvLyBGSVhNRTogUmVt
b3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Ok1vZGUpOwogICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRh
dGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQg
bW9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0
YWJhc2VDYWxsYmFja3M+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMmEwNThjZjdjMDhiZDJjNGY5N2VkNjc5ODQwY2Q4OTdiMjNkNjI3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQotCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLSNpbmNsdWRlICJX
ZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKLSNp
bmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZT4gSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNyZWF0
ZShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbikKLXsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KHRyYW5zYWN0aW9uKSk7
Ci19Ci0KLUlEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eShQYXNzT3duUHRyPFdlYklEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbikKLSAgICA6IG1f
d2ViSURCVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCi17Ci0gICAgQVNTRVJUKG1fd2ViSURCVHJh
bnNhY3Rpb24pOwotfQotCi1JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6fklEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5KCkKLXsKLX0KLQotdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94
eTo6Y29tbWl0KCkKLXsKLSAgICBtX3dlYklEQlRyYW5zYWN0aW9uLT5jb21taXQoKTsKLX0KLQot
dm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6YWJvcnQoKQotewotICAgIG1fd2ViSURC
VHJhbnNhY3Rpb24tPmFib3J0KCk7Ci19Ci0KLXZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJv
eHk6OnNldENhbGxiYWNrcyhJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyogY2FsbGJhY2tzKQotewot
ICAgIG1fd2ViSURCVHJhbnNhY3Rpb24tPnNldENhbGxiYWNrcyhuZXcgV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2YzNkODQxMjA3N2U0NjkwNDUwNmIwODJlZWY3MmQz
Y2I0ZTQyYzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaAor
KysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5X2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHlfaAot
Ci0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQlRy
YW5zYWN0aW9uOwotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSA6IHB1YmxpYyBX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgewotcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlKFBh
c3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+KTsKLSAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpOwotICAgIHZpcnR1
YWwgdm9pZCBhYm9ydCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3MoV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsKLQotICAgIFdlYklEQlRyYW5zYWN0aW9uKiBnZXRX
ZWJJREJUcmFuc2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViSURCVHJhbnNhY3Rpb24uZ2V0
KCk7IH0KLQotcHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eShQYXNzT3du
UHRyPFdlYklEQlRyYW5zYWN0aW9uPik7Ci0KLSAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+
IG1fd2ViSURCVHJhbnNhY3Rpb247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmCi0KLSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
UHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmNkYjI3M2I0ZDVmZmE3
ZTU0MTBlMGIwMDdkZjA3MzhlNmYxMTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5Lmgi
Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQkRhdGFiYXNl
RXJyb3IuaCIKLSNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
UHJveHk+IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdl
YklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5KGNhbGxiYWNrcykpOwotfQotCi1J
REJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5OjpJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5
KFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IGNhbGxiYWNrcykKLSAgICA6
IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKLXsKLX0KLQotSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQ
cm94eTo6fklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkoKQotewotfQotCi12b2lkIElEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6Om9uQWJvcnQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVy
cm9yPiBpZGJEYXRhYmFzZUVycm9yKQotewotICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KFdlYklE
QkRhdGFiYXNlRXJyb3IoaWRiRGF0YWJhc2VFcnJvcikpOwotfQotCi12b2lkIElEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzUHJveHk6Om9uQ29tcGxldGUoKQotewotICAgIG1fY2FsbGJhY2tzLT5vbkNv
bXBsZXRlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDExOWM4Y2E3NWJiMjk3OTlmOTUwZjA5MTgxOGUwODVhMDRhNjJlOTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5oCisrKyAvZGV2L251bGwK
QEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
LSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eV9o
Ci0jZGVmaW5lIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHlfaAotCi0jaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
OwotCi1jbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5IDogcHVibGljIFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5PiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrcz4pOwotICAgIHZpcnR1YWwgfklEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzUHJveHkoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCRGF0YWJhc2VFcnJvcj4pOwotICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKCk7Ci0K
LXByaXZhdGU6Ci0gICAgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eShQYXNzT3duUHRyPFdl
YklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPik7Ci0KLSAgICBPd25QdHI8V2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3M+IG1fY2FsbGJhY2tzOwotfTsKLQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
aW5kZXggY2QxNmQzZDhjZGFmNTE4OTdhZjc4OTZlZDJmNDlkZGFmZjJhZGViNC4uNjFmNTVjODRk
Y2Y4ODcwZTcxZGFkNTFhYTJiYzVhNTVjZjYzNjgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTM0LDEzICszNCwxMSBA
QAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiSURCRGF0
YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQktleS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1
ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklEQktleS5oIgotI2lu
Y2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggNmI4MTg5M2E1YjBh
YjU3OTNmOWI4YTZmY2I5MjBkZDMwNWViZjgxYS4uOTdhYmRmNzI5OWQxOTg4MDQ0MTA3Yjg0MmRk
YmYzM2FmNGI5MWIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuY3BwCkBAIC0zNSwxNCArMzUsMTIgQEAKICNpbmNsdWRlICJJREJEYXRh
YmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRl
ICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZS5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1
ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAi
V2ViSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkltcGwuaCIKIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU4LDExICs1Niw2IEBAIFdlYklEQkRhdGFi
YXNlSW1wbDo6fldlYklEQkRhdGFiYXNlSW1wbCgpCiB7CiB9CiAKLVdlYklEQk1ldGFkYXRhIFdl
YklEQkRhdGFiYXNlSW1wbDo6bWV0YWRhdGEoKSBjb25zdAotewotICAgIHJldHVybiBtX2RhdGFi
YXNlQmFja2VuZC0+bWV0YWRhdGEoKTsKLX0KLQogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNy
ZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0
U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQ
YXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0
ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgs
IGF1dG9JbmNyZW1lbnQpOwpAQCAtNzQsMTggKzY3LDYgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUlt
cGw6OmRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcg
b2IKIH0KIAogCi0vLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi1XZWJJREJUcmFuc2FjdGlvbiogV2Vi
SURCRGF0YWJhc2VJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdl
YlZlY3Rvcjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkK
LXsKLSAgICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJZExpc3Qob2JqZWN0U3RvcmVJZHMu
c2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9iamVjdFN0b3JlSWRzLnNpemUo
KTsgKytpKQotICAgICAgICBvYmplY3RTdG9yZUlkTGlzdFtpXSA9IG9iamVjdFN0b3JlSWRzW2ld
OwotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9u
ID0gbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZVRyYW5zYWN0aW9uKGlkLCBvYmplY3RTdG9yZUlk
TGlzdCwgc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb246Ok1vZGU+KG1vZGUpKTsKLSAgICBpZiAo
IXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbmV3IFdlYklEQlRy
YW5zYWN0aW9uSW1wbCh0cmFuc2FjdGlvbik7Ci19Ci0KIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBs
OjpjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tz
KiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBvYmplY3RTdG9yZUlkcywg
dW5zaWduZWQgc2hvcnQgbW9kZSkKIHsKICAgICBWZWN0b3I8aW50NjRfdD4gb2JqZWN0U3RvcmVJ
ZExpc3Qob2JqZWN0U3RvcmVJZHMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggMDQ2NWY1ZTI4NzJlNTJhOGU1NjZlYmM3
ZGY1OGFjMzI5ZDJhYWJhNS4uMWZkNTk0OTc2MGU2MzAzYTQ4NjAwZjNhZjJjNWRhM2QwODM2OTY5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5
LmgiCiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFi
YXNlLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlIDxwdWJsaWMv
V2ViQ29tbW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CkBAIC00Myw3ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2Vi
SURCRGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwogY2xhc3Mg
V2ViSURCRGF0YWJhc2VNZXRhZGF0YTsKLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwogCiAvLyBT
ZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhl
c2UgY2xhc3Nlcy4KIGNsYXNzIFdlYklEQkRhdGFiYXNlSW1wbCA6IHB1YmxpYyBXZWJJREJEYXRh
YmFzZSB7CkBAIC01MSwxMiArNDksOCBAQCBwdWJsaWM6CiAgICAgV2ViSURCRGF0YWJhc2VJbXBs
KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U+LCBX
VEY6OlBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eT4pOwogICAgIHZpcnR1YWwg
fldlYklEQkRhdGFiYXNlSW1wbCgpOwogCi0gICAgdmlydHVhbCBXZWJJREJNZXRhZGF0YSBtZXRh
ZGF0YSgpIGNvbnN0OwotCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcg
bG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3Ry
aW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQs
IGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0
aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0g
ICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25n
IGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpOwog
ICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIFdlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBz
aG9ydCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VDbG9zZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBjbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRkNDFlOWZjNjE3OWFlNjkxNTgxYzViMjAzZGMzN2Y1YzhiOWVmYTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgiCi0KLSNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJy
b3IuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6OldlYklEQlRyYW5zYWN0aW9uQ2FsbGJh
Y2tzSW1wbChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiBjYWxsYmFja3MpCi0g
ICAgOiBtX2NhbGxiYWNrcyhjYWxsYmFja3MpCi17Ci19Ci0KLVdlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzSW1wbDo6fldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbCgpCi17Ci19Ci0KLXZv
aWQgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsOjpvbkFib3J0KGNvbnN0IFdlYklEQkRh
dGFiYXNlRXJyb3ImIGVycm9yKQotewotICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KGVycm9yKTsK
LX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6Om9uQ29tcGxldGUoKQot
ewotICAgIG1fY2FsbGJhY2tzLT5vbkNvbXBsZXRlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
SW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmM4NDNjM2I3MzdjNzExMGVm
ZTQ3ZGFjODJlZjkxODU0OGE0ZmU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsX2gKLSNkZWZpbmUgV2ViSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NJbXBsX2gKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQot
Ci0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsgfQotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsIDogcHVibGljIFdlYklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzIHsKLXB1YmxpYzoKLSAgICBXZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc0ltcGwoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz4p
OwotICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbCgpOwotCi0gICAg
dmlydHVhbCB2b2lkIG9uQWJvcnQoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpOwotICAgIHZp
cnR1YWwgdm9pZCBvbkNvbXBsZXRlKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNlbmRp
ZiAvLyBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDlkZmQ2N2JkZDhiMmU1NTc0Yzg0ZjgyZDFiZjE5ZDViNTk3ODkx
MzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViSURCVHJhbnNhY3Rpb25JbXBsLmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLQotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQ
cm94eS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCi0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViSURCVHJhbnNh
Y3Rpb25JbXBsOjpXZWJJREJUcmFuc2FjdGlvbkltcGwoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCi0gICAgOiBtX2JhY2tlbmQoYmFja2VuZCkKLXsK
LX0KLQotV2ViSURCVHJhbnNhY3Rpb25JbXBsOjp+V2ViSURCVHJhbnNhY3Rpb25JbXBsKCkKLXsK
LX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkltcGw6OmNvbW1pdCgpCi17Ci0gICAgbV9iYWNr
ZW5kLT5jb21taXQoKTsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlvbkltcGw6OmFib3J0KCkK
LXsKLSAgICBtX2JhY2tlbmQtPmFib3J0KCk7Ci19Ci0KLXZvaWQgV2ViSURCVHJhbnNhY3Rpb25J
bXBsOjpzZXRDYWxsYmFja3MoV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqIGNhbGxiYWNrcykK
LXsKLSAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IGlkYkNhbGxiYWNrcyA9IElE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsK
LSAgICBtX2JhY2tlbmQtPnNldENhbGxiYWNrcyhpZGJDYWxsYmFja3MuZ2V0KCkpOwotfQotCi1J
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIFdlYklEQlRyYW5zYWN0aW9uSW1wbDo6Z2V0
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9i
YWNrZW5kLmdldCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTZmMDZhNmVlZjQ1ZDE5OGFmNTNkNjcyNDg5ZGM5NTIyMzU2MjdhZi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFdlYklEQlRyYW5zYWN0aW9uSW1wbF9oCi0jZGVmaW5lIFdlYklEQlRy
YW5zYWN0aW9uSW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1
ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbW1vbi5oPgot
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERhdGFiYXNl
IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklEQlRy
YW5zYWN0aW9uSW1wbDogcHVibGljIFdlYklEQlRyYW5zYWN0aW9uIHsKLXB1YmxpYzoKLSAgICBX
ZWJJREJUcmFuc2FjdGlvbkltcGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4pOwotICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uSW1w
bCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpOwotICAgIHZpcnR1YWwgdm9pZCBhYm9y
dCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3MoV2ViSURCVHJhbnNhY3Rpb25DYWxs
YmFja3MqKTsKLQotICAgIHZpcnR1YWwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiBnZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSBjb25zdDsKLQotcHJp
dmF0ZToKLSAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+IG1fYmFja2VuZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNlbmRpZiAvLyBXZWJJREJUcmFuc2FjdGlv
bkltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9y
dE9uQ29ycnVwdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9y
dE9uQ29ycnVwdFRlc3QuY3BwCmluZGV4IDcxNTc0YWNhM2FmOGU4OThlYzQ2YzZlZmRkNmYyN2Fm
ZDg0Y2U4N2EuLjkxZDk0YjQwODBlNzg0YzI2ZWU1MmI5N2M2NTQwNGVhYjYwNjNhOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0
VGVzdC5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgcHVibGljOgogICAgICAgICBFWFBFQ1RfVFJVRShm
YWxzZSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJL
ZXk+KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBQYXNzUmVmUHRyPElE
QktleT4sIGNvbnN0IElEQktleVBhdGgmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KGludDY0X3QpIE9WRVJSSURFIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXggODhiMjhjODhmZWIwZDhh
MWMxZWQ5ZDMyYmYxNWUzOGI3NzdjNDRiZS4uNDU0OTU1M2I5YzQ4YjczNTQyYjA1NGQ1MmUzZjk2
Mzc5MGM2NTZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJE
YXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xMzgsOCArMTM4LDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgSURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJu
IElEQkRhdGFiYXNlTWV0YWRhdGEoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RT
dG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSBPVkVS
UklERSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVSUklERSB7IH0KLSAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiwgSURCVHJhbnNhY3Rpb246Ok1vZGUpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYsIHVuc2lnbmVkIHNo
b3J0IG1vZGUpIE9WRVJSSURFIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KSBPVkVSUklERQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185904</attachid>
            <date>2013-01-31 17:21:57 -0800</date>
            <delta_ts>2013-01-31 19:03:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103923-20130131171840.patch</filename>
            <type>text/plain</type>
            <size>68095</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI5ZGYzM2QyODZhZjhl
NGYyMmYwMmY3NGI2ZWQzYmU5YTExMzhjNS4uOTg5Y2FmYjczNGQ2OGVjNDQ4MTgyMGJhN2YwZWRj
OWYxN2FlZGY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAxLTMxICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IHJl
bW92ZSBvbGQgdHJhbnNhY3Rpb24gYmFja2VuZCBib290c3RyYXAgY29kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIEZpbmFsbHkgcmVtb3ZlIGFsbCBs
ZWZ0b3ZlciBjb2RlIGZyb20gdGhlIEluZGV4ZWREQiAiZ2lhbnQKKyAgICAgICAgYXN5bmMgcmVm
YWN0b3Igb2YgMjAxMi4iIFRoaXMgaW5jbHVkZXMgcmVtb3ZhbCBvZiBhbGwKKyAgICAgICAgSURC
VHJhbnNhY3Rpb24qIGludGVyZmFjZXMgdGhhdCB3ZXJlIHNoYXJlZCBiZXR3ZWVuCisgICAgICAg
IHRoZSBmcm9udGVuZCBhbmQgYmFja2VuZCBhbmQgYSBmZXcgc3RyYWdnbGluZyBtZXRob2RzCisg
ICAgICAgIGxpa2Ugb25VcGdyYWRlTmVlZGVkIGFuZCBvblN1Y2Nlc3MgdGhhdCB3ZXJlIGxlZnQg
ZnJvbQorICAgICAgICB0aGUgbGFzdCBzdGFnZSBvZiByZWZhY3RvcmluZy4KKworICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6bWV0YWRhdGEpOgorICAgICAg
ICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoSURCVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmg6IFJlbW92ZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTMtMDEtMzEgIERtaXRyeSBadm9yeWdpbiAgPHp2b3J5Z2luQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzZWFyY2hpbmcgZm9yIDx1PiBpbiBlbGVtZW50
cyBwYW5lbCBmaW5kcyBhbGwgdGFncyBjb250YWluaW5nICJ1IgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCAxNjFmMmRiYzI0MGZlNDdhOTQ0MGZlOGYzNGNjMWMxYWNlNGFjYmJmLi4yNzY3
ZmY3ODRmNDg1NjczNmM2MDRlZDZiYmE3Y2E3NDFkMTQ5Y2JlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDEzLTAxLTMxICBBbGVjIEZsZXR0ICA8YWxlY2Zs
ZXR0QGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBvbGQgdHJhbnNh
Y3Rpb24gYmFja2VuZCBib290c3RyYXAgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRy
aSBHbGF6a292LgorCisgICAgICAgIFJlbW92ZSBhbGwgZGVwcmVjYXRlZCBXZWJLaXQgQVBJcyBm
cm9tCisgICAgICAgIHRoZSBJREIgYmFja2VuZC4KKworICAgICAgICAqIFdlYktpdC5neXA6Cisg
ICAgICAgICogcHVibGljL1dlYklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogcHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogcHVi
bGljL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmg6IFJlbW92ZWQuCisgICAgICAgICogc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94
eS5jcHA6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcDoKKyAgICAg
ICAgKiBzcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKElEQkRhdGFiYXNl
QmFja2VuZFByb3h5KToKKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHku
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5o
OiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5o
OiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAg
ICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzSW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0
aW9uQ2FsbGJhY2tzSW1wbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2Fj
dGlvbkltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJUcmFuc2FjdGlvbklt
cGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3Bw
OgorICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOgorCisyMDEzLTAx
LTMxICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKwogICAgICAgICBJbmRl
eGVkREI6IFJlbW92ZSBXZWJLaXQgQVBJIGZvciBvbGQgb25TdWNjZXNzL29uVXBncmFkZU5lZWRl
ZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk5
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxi
YWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgK
aW5kZXggZDVkNDdjMjRhZDg3YjlhNDgyYjI2OWYyOWMxNTA3YzdjMzgyMTQ3NS4uMzMzZDc2NjZj
NWIzZmMxNjEyMjZkOWUyNjBhN2JhOTdiMzJhMzRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNs
dWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAi
SURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5o
IgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggZmQ2NzY0MGE5MTA4ZWRiYWJm
NzZjMDFlMTM3ZTNmNjRlNDcxOTEzOS4uZjhkYzcxOTE0YjljZWY0NmFhMTBhMTdhMGU1MzA4OTdj
MTRkOTk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTU0OCwxMSArNTQ4LDYgQEAgUGFz
c1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmJhY2tpbmdT
dG9yZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2luZ1N0b3JlOwogfQogCi1JREJEYXRhYmFz
ZU1ldGFkYXRhIElEQkRhdGFiYXNlQmFja2VuZEltcGw6Om1ldGFkYXRhKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9tZXRhZGF0YTsKLX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpj
cmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29s
IGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgSURCX1RSQUNFKCJJREJEYXRhYmFzZUJhY2tlbmRJbXBs
OjpjcmVhdGVPYmplY3RTdG9yZSIpOwpAQCAtMTE2NywxMyArMTE2Miw2IEBAIHZvaWQgSURCRGF0
YWJhc2VCYWNrZW5kSW1wbDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiAgICAgfQogfQogCi0vLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5MjMuCi1QYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCBJREJU
cmFuc2FjdGlvbjo6TW9kZSBtb2RlKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiAwOwotfQotCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZVRyYW5z
YWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1
bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsPiB0cmFuc2FjdGlvbiA9IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNyZWF0ZSh0cmFu
c2FjdGlvbklkLCBjYWxsYmFja3MsIG9iamVjdFN0b3JlSWRzLCBzdGF0aWNfY2FzdDxJREJUcmFu
c2FjdGlvbjo6TW9kZT4obW9kZSksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IGU4NmE1
ZWViYTk0N2I4N2Q5MzFiNzg4NmIxMWE0ZTRlNDEzMDAzZGMuLjViYjE2NTQwZmU4N2FlZTEyZmNl
OTQwZWIzYmYyYjE5YTY4NTBiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTQxLDcgKzQxLDYg
QEAgY2xhc3MgSURCQmFja2luZ1N0b3JlOwogY2xhc3MgSURCRGF0YWJhc2U7CiBjbGFzcyBJREJG
YWN0b3J5QmFja2VuZEltcGw7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOwotY2xh
c3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwogY2xhc3MgSURCVHJhbnNhY3Rpb25D
b29yZGluYXRvcjsKIAogY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbCA6IHB1YmxpYyBJREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UgewpAQCAtNjAsMTMgKzU5LDExIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgb3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90
IHZlcnNpb24pOwogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2UoUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+KTsKKyAgICBjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWV0YWRhdGE7IH0KIAogICAgIC8vIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZQotICAgIHZpcnR1YWwgSURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRo
JiwgYm9vbCBhdXRvSW5jcmVtZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3Rv
cmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwotICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9u
SWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIElEQlRyYW5zYWN0aW9u
OjpNb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSk7CiAgICAgdmly
dHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCAwNGY1ZTk5YzdhNjRjNmFhODAxMzAyNzI2ZTM4
OTliOGVjOTNiZDBhLi5iMjllZGJiZTE5N2I2NDhjYzM1NWFiN2NkMGJkOGE5M2JmMGViNmUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNDAsNyArNDAsNiBAQCBjbGFzcyBJREJE
YXRhYmFzZUNhbGxiYWNrczsKIGNsYXNzIElEQktleTsKIGNsYXNzIElEQktleVBhdGg7CiBjbGFz
cyBJREJLZXlSYW5nZTsKLWNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIHN0
cnVjdCBJREJEYXRhYmFzZU1ldGFkYXRhOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpA
QCAtNTIsMTEgKzUxLDggQEAgY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlIDogcHVi
bGljIFJlZkNvdW50ZWQ8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWMKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAotICAgIHZpcnR1YWwg
SURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0ID0gMDsKLQogICAgIHZpcnR1YWwg
dm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBh
dXRvSW5jcmVtZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSA9IDA7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJh
bnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9i
amVjdFN0b3JlSWRzLCBJREJUcmFuc2FjdGlvbjo6TW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRz
LCB1bnNpZ25lZCBzaG9ydCBtb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
aAppbmRleCAzZDJlNGQzNDVkYjZjMmQwZDQyZjk4OTI3Y2ViMGY3ODBiMDUxOWFkLi41NGNiMTQz
M2U4NGRiM2JlMjE4YWUzNmY3YTI2NjhlYzFmZTJkYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5oCkBAIC0zOSw3ICszOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRGF0
YWJhc2VCYWNrZW5kSW1wbDsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw7Ci1jbGFz
cyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBzdHJ1Y3QgSURCT2JqZWN0U3RvcmVN
ZXRhZGF0YTsKIAogLy8gRklYTUU6IHRoaXMgbmFtZXNwYWNlIGlzIHRlbXBvcmFyeSB1bnRpbCB3
ZSBtb3ZlIGl0cyBjb250ZW50cyBvdXQgdG8gdGhlaXIgb3duIGhvbWUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAppbmRleCBjOTk4MGZi
YmZkM2E4MzAzZmZhOGNmYTVmZmZiYjRmNDBkMjYyMDlmLi4yZDU5YjdmNTBkYmRmNGMzMDExNDIy
Yjk4ZDE1ZGI1MmM1MTQ3NzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJJREJNZXRhZGF0
YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgpAQCAtNDQsMTIgKzQzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSURCQ3Vyc29yOwogY2xhc3MgSURCRGF0YWJhc2U7CitjbGFzcyBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U7CitjbGFzcyBJREJEYXRhYmFzZUVycm9yOwogY2xhc3MgSURCT2JqZWN0
U3RvcmU7CiBjbGFzcyBJREJPcGVuREJSZXF1ZXN0OwotY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOwogc3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGE7CiAKLWNsYXNzIElEQlRy
YW5zYWN0aW9uIDogcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIElEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzLCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewor
Y2xhc3MgSURCVHJhbnNhY3Rpb24gOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVm
Q291bnRlZDxJREJUcmFuc2FjdGlvbj4sIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2
ZURPTU9iamVjdCB7CiBwdWJsaWM6CiAgICAgZW51bSBNb2RlIHsKICAgICAgICAgUkVBRF9PTkxZ
ID0gMCwKQEAgLTEwNyw3ICsxMDcsNiBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUihjb21wbGV0ZSk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihlcnJvcik7CiAKLSAgICAvLyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrcwogICAgIHZpcnR1
YWwgdm9pZCBvbkFib3J0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOwogICAgIHZpcnR1
YWwgdm9pZCBvbkNvbXBsZXRlKCk7CiAKQEAgLTEyMyw4ICsxMjIsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIE9WRVJSSURFOwogCi0gICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlv
bkNhbGxiYWNrcz46OnJlZjsKLSAgICB1c2luZyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzPjo6ZGVyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbj46OnJl
ZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uPjo6ZGVyZWY7CiAKIHByaXZh
dGU6CiAgICAgSURCVHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludDY0X3Qs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgTW9kZSwgSURCRGF0YWJhc2UqLCBJREJPcGVuREJSZXF1
ZXN0KiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5o
CmluZGV4IDI2NDE4MWVhMWViYmJhNTQ3Yjg0ODRlMzdmMmZmYzdjYjAxMGI2NTEuLjNjZWY5NzYy
YWUxMDI3ZTg4ODRlOTgyNmY0NzkxZjYzNjRhMzRiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
LmgKQEAgLTI5LDEwICsyOSw5IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNp
bmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURC
VHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAg
LTQxLDIwICs0MCwxNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOworY2xhc3MgSURCQ3Vyc29yQmFja2VuZEltcGw7CitjbGFzcyBJREJEYXRh
YmFzZUNhbGxiYWNrczsKIAotY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCA6IHB1Ymxp
YyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UgeworY2xhc3MgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbCA6IHB1YmxpYyBSZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsPiBjcmVhdGUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgSURCVHJhbnNhY3Rpb246Ok1vZGUs
IElEQkRhdGFiYXNlQmFja2VuZEltcGwqKTsKLSAgICBzdGF0aWMgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbCogZnJvbShJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIGludGVyZmFjZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsKj4oaW50ZXJmYWNlKTsKLSAgICB9CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbCgpOwogCi0gICAgLy8gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlCiAgICAg
dmlydHVhbCB2b2lkIGFib3J0KCk7CiAgICAgdm9pZCBjb21taXQoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Q2FsbGJhY2tzKElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKiBjYWxsYmFja3MpIHsgfQog
CiAgICAgY2xhc3MgT3BlcmF0aW9uIHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTY0MzEzNTIwZTRi
NjBkZWQ0OTY3NTJjZGJmN2EyNjM2NzAyNjE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlX2gKLSNkZWZp
bmUgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlX2gKLQotI2luY2x1ZGUgIklEQkNhbGxi
YWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIElEQkN1cnNv
ckJhY2tlbmRJbXBsOwotY2xhc3MgSURCVHJhbnNhY3Rpb25DYWxsYmFja3M7Ci0KLXR5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7Ci0KLS8vIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbCBhbmQgb3B0aW9uYWxseSBvdGhlcnMgKGluIG9yZGVyIHRvIHByb3h5
Ci0vLyBjYWxscyBhY3Jvc3MgcHJvY2VzcyBiYXJyaWVycykuIEFsbCBjYWxscyB0byB0aGVzZSBj
bGFzc2VzIHNob3VsZCBiZSBub24tYmxvY2tpbmcgYW5kCi0vLyB0cmlnZ2VyIHdvcmsgb24gYSBi
YWNrZ3JvdW5kIHRocmVhZCBpZiBuZWNlc3NhcnkuCi1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBhYm9ydCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FsbGJhY2tzKElEQlRyYW5z
YWN0aW9uQ2FsbGJhY2tzKikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYKLQotI2VuZGlmIC8vIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNh
bGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25DYWxsYmFja3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWYxZGQxM2JkMTI3
MzE3YjllMmFkM2UxNGFlMTAyZmI5MzUzMmFkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbkNhbGxiYWNrcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0g
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NfaAotI2RlZmluZSBJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc19oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklE
QkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzIDogcHVibGljIFJl
ZkNvdW50ZWQ8SURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5JREJUcmFuc2FjdGlvbkNhbGxiYWNrcygpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIG9uQWJv
cnQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBv
bkNvbXBsZXRlKCkgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYK
LQotI2VuZGlmIC8vIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0
b3IuaAppbmRleCA5MWRjMGUwZDkwMzhlNGZhNDQ0Y2E2OWYyNjk1MmNiZWU5ZDE4ZjMyLi40OTRj
ZmZiMjE2Yzg3ZDk3NmYyOWQxMDAzZWJmZGIwMzVkZTAyYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5oCkBAIC0zNSw3ICszNSw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGw7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsK
IGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw7CiAKIC8vIFRyYW5zYWN0aW9ucyBhcmUgZXhl
Y3V0ZWQgaW4gdGhlIG9yZGVyIHRoZSB3ZXJlIGNyZWF0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjM2I4
ZmMwMjBjMTI2YTY0ZDYxOWE3ZDcwYmViYmM5N2JkYmRmMjFkLi44MjQ1NWUwYmFkZTgxMmIxNDQy
NDcyYjg3NDVjZjJlNjg4MWZhODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTMwNjMsOCArMzA2Myw3IEBA
IGVuYWJsZT8oSU5ERVhFRF9EQVRBQkFTRSkgewogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
IFwKLSAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBcCi0gICAgICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCisgICAg
ICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKIAogICAgIFNPVVJDRVMgKz0g
XAogICAgICAgICBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNTViMjliNGNlNzMzNTNjMWNjMGNlNGQ3MWUzNGQ4ZDUwYWI0ZGFiZC4uMTJi
NmQwMjJhZGRmNjc2NmJhMDViYThjOTQ3ZWUyZDcyY2Q5M2I2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNzY5LDggKzc2OSw2IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW1wbC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwuaCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwJywKICAgICAgICAgICAg
ICdNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDI1MzYyNDRkMjkwMTEyNTdhZDk3OWUyNDE2NTMzOWEwYTgxNWU5MmIuLjU0YmY2NzBjNzljMTFk
MjM3YWZkZTgzMmExMjRmMjRhZDVhYzM2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1MTcsNyArMzUxNyw2IEBACiAJCTk3
MTJBNUY2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OUQxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYW5zYWN0aW9uLmggKi87IH07CiAJCTk3MTJBNUY4MTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTlGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmNwcCAqLzsgfTsKIAkJOTcxMkE1RjkxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNUEwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmggKi87IH07Ci0JCTk3MTJBNUZBMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNUExMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgfTsKIAkJOTcxMkE1RkIxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTVBMjE1MDA0RURBMDA0OEFGMTAgLyogSURC
VHJhbnNhY3Rpb25DYWxsYmFja3MuaCAqLzsgfTsKIAkJOTcxMkE1RkMxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1QTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwICovOyB9OwogCQk5NzEyQTVGRDE1MDA0RURBMDA0OEFG
MTAgLyogSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1QTQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuaCAqLzsgfTsKQEAgLTEwOTA1LDcgKzEwOTA0LDYgQEAKIAkJ
OTcxMkE1OUUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IG5hbWUgPSBJREJUcmFuc2FjdGlvbi5pZGw7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJB
NTlGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGwuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNUEwMTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDsgcGF0aCA9IE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOTcxMkE1QTExNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NzEyQTVBMjE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCVHJhbnNhY3Rpb25DYWxsYmFja3Mu
aDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNUEzMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwOyBwYXRoID0gTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MTJBNUE0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkNv
b3JkaW5hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzE5LDcgKzE4
MzE3LDYgQEAKIAkJCQk5NzEyQTU5RTE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb24u
aWRsICovLAogCQkJCTk3MTJBNTlGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsLmNwcCAqLywKIAkJCQk5NzEyQTVBMDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbC5oICovLAotCQkJCTk3MTJBNUExMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCAqLywKIAkJCQk5NzEyQTVBMjE1MDA0
RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCAqLywKIAkJCQk5NzEyQTVB
MzE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAgKi8sCiAJ
CQkJOTcxMkE1QTQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3Iu
aCAqLywKQEAgLTI0NDE2LDcgKzI0NDEzLDYgQEAKIAkJCQk5NzEyQTVGNDE1MDA0RURBMDA0OEFG
MTAgLyogSURCVHJhY2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RjYxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVGOTE1
MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJOTcxMkE1RkExNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RkIxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVG
RDE1MDA0RURBMDA0OEFGMTAgLyogSURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTcxMkE1RkYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlZlcnNpb25DaGFuZ2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOTFk
OGE0NGI0M2JhMjA5ZGI3NTMyYTczZDY3NzYzOTdjMTU5MjdhNy4uYmViZGViMmVlZDk2ZTU0YzU1
NGNlMjQ1MTgwZTE4YzVjZTBlYTBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAt
MTg4LDggKzE4OCw2IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXlQYXRoLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCS2V5UmFuZ2UuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJJREJNZXRhZGF0YS5oJywKLSAgICAgICAgICAgICAgICAncHVibGlj
L1dlYklEQlRyYW5zYWN0aW9uLmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCVHJh
bnNhY3Rpb25DYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJY29uTG9h
ZGluZ0NvbXBsZXRpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJY29uVVJMLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW1hZ2VEZWNvZGVyLmgnLApAQCAtMzc1LDEw
ICszNzMsNiBAQAogICAgICAgICAgICAgICAgICdzcmMvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaCcsCi0gICAg
ICAgICAgICAgICAgJ3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAnLAotICAgICAg
ICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCcsCi0gICAgICAgICAg
ICAgICAgJ3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcCcsCi0gICAgICAgICAg
ICAgICAgJ3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmgnLAogICAgICAgICAgICAg
ICAgICdzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
SW5zcGVjdG9yQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50SW1wbC5jcHAnLApAQCAtNTE2LDEwICs1MTAsNiBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCS2V5UGF0aC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURC
S2V5UmFuZ2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQk1ldGFkYXRhLmNwcCcs
Ci0gICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwJywKLSAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oJywKLSAgICAgICAgICAgICAg
ICAnc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5jcHAnLAotICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmgnLAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSW1hZ2VEZWNvZGVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
bWFnZVNraWEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklucHV0RWxlbWVudC5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJh
Y2tzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaApp
bmRleCAxMWQ3MTZkMzllNmE1YmI2NDJlMzg5MzE4OTY1OTZiZWEyYjg0ZjI2Li4xMjIwNzVjOTEx
YTFjZGRkOGIwNWVkMTVhMDkxODIwMWQyMzkwZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaApAQCAtMzgsNyArMzgsNiBAQCBjbGFzcyBX
ZWJJREJEYXRhYmFzZUVycm9yOwogY2xhc3MgV2ViSURCS2V5OwogY2xhc3MgV2ViSURCS2V5UGF0
aDsKIGNsYXNzIFdlYklEQkluZGV4OwotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb247CiBjbGFzcyBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBzdHJ1Y3QgV2ViSURCTWV0YWRhdGE7CiAKQEAgLTYz
LDcgKzYyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQobG9u
ZyBsb25nIG9sZFZlcnNpb24pIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBXZWJWZWN0b3I8V2ViSURC
S2V5PiYga2V5cywgY29uc3QgV2ViVmVjdG9yPFdlYklEQktleT4mIHByaW1hcnlLZXlzLCBjb25z
dCBXZWJWZWN0b3I8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiYgdmFsdWVzKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQo
bG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQlRyYW5zYWN0aW9uKiwgV2ViSURCRGF0YWJhc2Uq
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblVw
Z3JhZGVOZWVkZWQobG9uZyBsb25nIG9sZFZlcnNpb24sIFdlYklEQkRhdGFiYXNlKiwgY29uc3Qg
V2ViSURCTWV0YWRhdGEmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2Uu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXgg
ODUxOTZkNTIzMmI3ODE5ZmNmOWQ3Y2MwM2RiYjc1MzE5MzMyN2RiZi4uYzRjZTFiOGE4YWIyM2Fm
YmJjZjJhYTI2YTFhYzI0YzEwNWJmYTliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiV2Vi
RE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRl
ICJXZWJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSwyMiArNDAsMTQgQEAgY2xhc3MgV2ViSURCRGF0YWJh
c2VFcnJvcjsKIGNsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBX
ZWJJREJLZXlSYW5nZTsKLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwogCiAvLyBTZWUgY29tbWVu
dCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgb2YgdGhlc2UgY2xh
c3Nlcy4KIGNsYXNzIFdlYklEQkRhdGFiYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJ
REJEYXRhYmFzZSgpIHsgfQogCi0gICAgdmlydHVhbCBXZWJJREJNZXRhZGF0YSBtZXRhZGF0YSgp
IGNvbnN0Ci0gICAgewotICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybiBXZWJJREJNZXRhZGF0YSgpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RT
dG9yZUlkLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29s
IGF1dG9JbmNyZW1lbnQpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25n
IGxvbmcgb2JqZWN0U3RvcmVJZCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAg
ICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiog
Y3JlYXRlVHJhbnNhY3Rpb24obG9uZyBsb25nIGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25n
PiYsIHVuc2lnbmVkIHNob3J0IG1vZGUpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyBy
ZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcg
aWQsIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxs
b25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCkgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJUcmFuc2FjdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjIyOGJh
YzljZWI2MzQ0NTQ2YmJkNjRjN2Q3OGI1NTU2NWI3NTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQlRyYW5zYWN0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBXZWJJREJUcmFuc2FjdGlvbl9oCi0jZGVmaW5lIFdlYklEQlRyYW5zYWN0aW9uX2gK
LQotI2luY2x1ZGUgIi4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTdHJpbmcu
aCIKLSNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsg
Y2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOyB9Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsKLQotLy8gU2VlIGNvbW1l
bnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IG9mIHRoZXNlIGNs
YXNzZXMuCi1jbGFzcyBXZWJJREJUcmFuc2FjdGlvbiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+
V2ViSURCVHJhbnNhY3Rpb24oKSB7IH0KLQotICAgIGVudW0gVGFza1R5cGUgewotICAgICAgICBO
b3JtYWxUYXNrID0gMCwKLSAgICAgICAgUHJlZW1wdGl2ZVRhc2sKLSAgICB9OwotCi0gICAgdmly
dHVhbCB2b2lkIGNvbW1pdCgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAg
dmlydHVhbCB2b2lkIGFib3J0KCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2FsbGJhY2tzKFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKikg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotICAgIC8vIEZJWE1FOiB0aGlzIGlz
IG5ldmVyIGNhbGxlZCBmcm9tIFdlYkNvcmUuIEZpbmQgYSBjbGVhbmVyIHNvbHV0aW9uLgotICAg
IHZpcnR1YWwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiBnZXRJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIGFkZFBlbmRpbmdFdmVudHMoaW50KSB7IFdF
QktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgV2ViSURCVHJh
bnNhY3Rpb24oKSB7fQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBX
ZWJJREJUcmFuc2FjdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzE5ZmFiYTllZjc1YTc5ZmZkOTlhNmU0ZTRlMWI4M2VjZWVkNjVmMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oCisrKyAvZGV2L251
bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURCVHJhbnNhY3Rpb25DYWxs
YmFja3NfaAotI2RlZmluZSBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc19oCi0KLSNpbmNsdWRl
ICIuLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uLmgiCi0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwotCi1jbGFzcyBXZWJJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrcyB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViSURCVHJh
bnNhY3Rpb25DYWxsYmFja3MoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGNvbnN0
IFdlYklEQkRhdGFiYXNlRXJyb3ImKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBvbkNvbXBsZXRlKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViSURCVHJh
bnNhY3Rpb25DYWxsYmFja3NfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBmMzc2YTU5OGE1ZDNhMjdlYzVkZGZkMTE5OGNi
OTg3ZjFlZjY3NTQ1Li42MTUxM2ZhMGUyZGUyMGZjM2EwYWYyNjhhZjFmOTUzZmEwZTE3YmY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcApAQCAtNTQsMTIgKzU0LDEyIEBACiAjZW5kaWYKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNs
dWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQktleS5oIgog
I2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1
ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkljb25VUkwu
aCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
LmgiCkBAIC05NSwxMiArOTUsMTIgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkVycm9yLmgi
CiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogI2luY2x1ZGUgIldlYklEQkN1
cnNvci5oIgorI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJXZWJJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAi
V2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5UGF0aC5oIgogI2luY2x1ZGUgIldlYklE
Qk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJX
ZWJJY29uVVJMLmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2Vi
TWVkaWFQbGF5ZXIuaCIKQEAgLTUwNSw4ICs1MDUsOCBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdlYklEQkN1cnNvcjo6TmV4dE5vRHVwbGljYXRlLCBJREJDdXJzb3I6Ok5FWFRfTk9f
RAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJDdXJzb3I6OlByZXYsIElEQkN1
cnNvcjo6UFJFVik7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQkN1cnNvcjo6
UHJldk5vRHVwbGljYXRlLCBJREJDdXJzb3I6OlBSRVZfTk9fRFVQTElDQVRFKTsKIAotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJUcmFuc2FjdGlvbjo6UHJlZW1wdGl2ZVRhc2ss
IElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHJlZW1wdGl2ZVRhc2spOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJUcmFuc2FjdGlvbjo6Tm9ybWFsVGFzaywgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpOb3JtYWxUYXNrKTsKK0NPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViSURCRGF0YWJhc2U6OlByZWVtcHRpdmVUYXNrLCBJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U6OlByZWVtcHRpdmVUYXNrKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV2ViSURCRGF0YWJhc2U6Ok5vcm1hbFRhc2ssIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6Tm9ybWFsVGFzayk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCA2
NzA1MTYyNmZmY2JiMDc3YmFjM2VmMmEzZGI0MzdjNWI4Y2Q4ZDRmLi5lYThmODU0ZDVkNTU4YmYy
ODQ0NmI3M2I3MGRmMmMzM2FiZTYwNDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3Iu
aCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUg
IldlYklEQkN1cnNvckltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5o
IgpAQCAtNDYsNyArNDUsNyBAQAogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXhjZXB0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5Lmgi
Ci0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25JbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCTWV0
YWRhdGEuaCIKICNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKaW5kZXggODUyZGJkNGVkMTY4NTkzNjQyZTU4
YzE5NDc1Mjg2YmQ5MGMyYjM4MC4uY2I3NWMyY2Y4ZTBkYmUwOTgxMTJiZTA0NmE1ZGIwMzBlNTA5
NTc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFi
YXNlQmFja2VuZFByb3h5LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFi
YXNlQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJN
ZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgiCiAjaW5j
bHVkZSAiV2ViRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgogI2lu
Y2x1ZGUgIldlYklEQkNhbGxiYWNrc0ltcGwuaCIKQEAgLTQyLDcgKzQxLDYgQEAKICNpbmNsdWRl
ICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFz
ZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJXZWJJREJU
cmFuc2FjdGlvbi5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjIsMTEgKzYw
LDYgQEAgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6On5JREJEYXRhYmFzZUJhY2tlbmRQcm94eSgp
CiB7CiB9CiAKLUlEQkRhdGFiYXNlTWV0YWRhdGEgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6Om1l
dGFkYXRhKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJJREJEYXRhYmFzZS0+bWV0YWRhdGEo
KTsKLX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRlT2JqZWN0U3RvcmUo
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQog
ewogICAgIGlmIChtX3dlYklEQkRhdGFiYXNlKQpAQCAtNzksMTUgKzcyLDYgQEAgdm9pZCBJREJE
YXRhYmFzZUJhY2tlbmRQcm94eTo6ZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBpbnQ2NF90IG8KICAgICAgICAgbV93ZWJJREJEYXRhYmFzZS0+ZGVsZXRlT2JqZWN0U3Rv
cmUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRl
VHJhbnNhY3Rpb24oaW50NjRfdCBpZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9y
ZUlkcywgSURCVHJhbnNhY3Rpb246Ok1vZGUgbW9kZSkKLXsKLSAgICBPd25QdHI8V2ViSURCVHJh
bnNhY3Rpb24+IHRyYW5zYWN0aW9uID0gYWRvcHRQdHIobV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRl
VHJhbnNhY3Rpb24oaWQsIG9iamVjdFN0b3JlSWRzLCBtb2RlKSk7Ci0gICAgaWYgKCF0cmFuc2Fj
dGlvbikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gSURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHk6OmNyZWF0ZSh0cmFuc2FjdGlvbi5yZWxlYXNlKCkpOwotfQotCiB2b2lkIElEQkRh
dGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IGlkLCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgb2JqZWN0U3RvcmVJZHMsIHVuc2lnbmVkIHNob3J0IG1vZGUpCiB7CiAgICAgbV93ZWJJREJE
YXRhYmFzZS0+Y3JlYXRlVHJhbnNhY3Rpb24oaWQsIG5ldyBXZWJJREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSwgb2JqZWN0U3RvcmVJZHMsIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggZTcz
ZmUxMWI2ZDM1NzQ5ZDdlNWE0N2JmMDE1OTEzNjAzMThiZDBmNi4uNmQyZDhlZDBhMDIxOWViMzhi
NjdiNDk0Y2MzZGFkM2FkYmZmZGRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCkBAIC00MiwxMiArNDIsOCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlPiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJEYXRhYmFzZT4pOwogICAgIHZpcnR1YWwg
fklEQkRhdGFiYXNlQmFja2VuZFByb3h5KCk7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OklEQkRh
dGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdDsKLQogICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJDb3JlOjpJREJLZXlQYXRoJiwgYm9vbCBh
dXRvSW5jcmVtZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwotICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBWZWN0
b3I8aW50NjRfdD4mLCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6TW9kZSk7CiAgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
RGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1bnNpZ25lZCBzaG9y
dCBtb2RlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJE
YXRhYmFzZUNhbGxiYWNrcz4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAyYTA1OGNmN2MwOGJkMmM0Zjk3ZWQ2Nzk4NDBjZDg5N2IyM2Q2MjcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCi0KLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUg
IldlYklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgot
I2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oIgotCi11c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6Y3Jl
YXRlKFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKQotewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkodHJhbnNhY3Rpb24p
KTsKLX0KLQotSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5KFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKQotICAgIDog
bV93ZWJJREJUcmFuc2FjdGlvbih0cmFuc2FjdGlvbikKLXsKLSAgICBBU1NFUlQobV93ZWJJREJU
cmFuc2FjdGlvbik7Ci19Ci0KLUlEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Ojp+SURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkoKQotewotfQotCi12b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZFBy
b3h5Ojpjb21taXQoKQotewotICAgIG1fd2ViSURCVHJhbnNhY3Rpb24tPmNvbW1pdCgpOwotfQot
Ci12b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjphYm9ydCgpCi17Ci0gICAgbV93ZWJJ
REJUcmFuc2FjdGlvbi0+YWJvcnQoKTsKLX0KLQotdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eTo6c2V0Q2FsbGJhY2tzKElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKiBjYWxsYmFja3MpCi17
Ci0gICAgbV93ZWJJREJUcmFuc2FjdGlvbi0+c2V0Q2FsbGJhY2tzKG5ldyBXZWJJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZjM2Q4NDEyMDc3ZTQ2OTA0NTA2YjA4MmVlZjcy
ZDNjYjRlNDJjNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHlfaAotI2RlZmluZSBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eV9o
Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZS5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURC
VHJhbnNhY3Rpb247Ci0KLWNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5IDogcHVibGlj
IFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGUo
UGFzc093blB0cjxXZWJJREJUcmFuc2FjdGlvbj4pOwotICAgIHZpcnR1YWwgfklEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KCk7Ci0gICAgdmly
dHVhbCB2b2lkIGFib3J0KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyopOwotCi0gICAgV2ViSURCVHJhbnNhY3Rpb24qIGdl
dFdlYklEQlRyYW5zYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV93ZWJJREJUcmFuc2FjdGlvbi5n
ZXQoKTsgfQotCi1wcml2YXRlOgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KFBhc3NP
d25QdHI8V2ViSURCVHJhbnNhY3Rpb24+KTsKLQotICAgIE93blB0cjxXZWJJREJUcmFuc2FjdGlv
bj4gbV93ZWJJREJUcmFuc2FjdGlvbjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0j
ZW5kaWYKLQotI2VuZGlmIC8vIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViY2RiMjczYjRkNWZm
YTdlNTQxMGUwYjAwN2RmMDczOGU2ZjExOTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHku
aCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCRGF0YWJh
c2VFcnJvci5oIgotI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJX
ZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NQcm94eT4gSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eTo6Y3JlYXRlKFBhc3NPd25QdHI8
V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IGNhbGxiYWNrcykKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkoY2FsbGJhY2tzKSk7Ci19Ci0K
LUlEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJv
eHkoUGFzc093blB0cjxXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz4gY2FsbGJhY2tzKQotICAg
IDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQotewotfQotCi1JREJUcmFuc2FjdGlvbkNhbGxiYWNr
c1Byb3h5Ojp+SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eSgpCi17Ci19Ci0KLXZvaWQgSURC
VHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eTo6b25BYm9ydChQYXNzUmVmUHRyPElEQkRhdGFiYXNl
RXJyb3I+IGlkYkRhdGFiYXNlRXJyb3IpCi17Ci0gICAgbV9jYWxsYmFja3MtPm9uQWJvcnQoV2Vi
SURCRGF0YWJhc2VFcnJvcihpZGJEYXRhYmFzZUVycm9yKSk7Ci19Ci0KLXZvaWQgSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NQcm94eTo6b25Db21wbGV0ZSgpCi17Ci0gICAgbV9jYWxsYmFja3MtPm9u
Q29tcGxldGUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTE5YzhjYTc1YmIyOTc5OWY5NTBmMDkxODE4ZTA4NWEwNGE2MmU5NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0
aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5
X2gKLSNkZWZpbmUgSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eV9oCi0KLSNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3M7Ci0KLWNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHkgOiBwdWJsaWMgV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25DYWxsYmFja3MgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHk+IGNyZWF0ZShQYXNzT3duUHRyPFdlYklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzPik7Ci0gICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25DYWxs
YmFja3NQcm94eSgpOwotCi0gICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJEYXRhYmFzZUVycm9yPik7Ci0gICAgdmlydHVhbCB2b2lkIG9uQ29tcGxldGUoKTsK
LQotcHJpdmF0ZToKLSAgICBJREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5KFBhc3NPd25QdHI8
V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3M+KTsKLQotICAgIE93blB0cjxXZWJJREJUcmFuc2Fj
dGlvbkNhbGxiYWNrcz4gbV9jYWxsYmFja3M7Ci19OwotCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYKLQotI2VuZGlmIC8vIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzUHJveHlfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNw
cAppbmRleCBjZDE2ZDNkOGNkYWY1MTg5N2FmNzg5NmVkMmY0OWRkYWZmMmFkZWI0Li42MWY1NWM4
NGRjZjg4NzBlNzFkYWQ1MWFhMmJjNWE1NWNmNjM2ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtMzQsMTMgKzM0LDEx
IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCi0jaW5jbHVkZSAiSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJXZWJET01TdHJpbmdMaXN0LmgiCiAjaW5j
bHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2UuaCIKICNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0j
aW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCA2YjgxODkzYTVi
MGFiNTc5M2Y5YjhhNmZjYjkyMGRkMzA1ZWJmODFhLi45N2FiZGY3Mjk5ZDE5ODgwNDQxMDdiODQy
ZGRiZjMzYWY0YjkxYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTM1LDE0ICszNSwxMiBAQAogI2luY2x1ZGUgIklEQkRh
dGFiYXNlQ2FsbGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1
ZGUgIklEQk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlLmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2VDYWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5j
bHVkZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRl
ICJXZWJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uSW1wbC5oIgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTgsMTEgKzU2LDYgQEAgV2ViSURCRGF0
YWJhc2VJbXBsOjp+V2ViSURCRGF0YWJhc2VJbXBsKCkKIHsKIH0KIAotV2ViSURCTWV0YWRhdGEg
V2ViSURCRGF0YWJhc2VJbXBsOjptZXRhZGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGF0
YWJhc2VCYWNrZW5kLT5tZXRhZGF0YSgpOwotfQotCiB2b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6
Y3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmIGtl
eVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKIHsKICAgICBtX2RhdGFiYXNlQmFja2VuZC0+Y3Jl
YXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgbmFtZSwga2V5UGF0
aCwgYXV0b0luY3JlbWVudCk7CkBAIC03NCwxOCArNjcsNiBAQCB2b2lkIFdlYklEQkRhdGFiYXNl
SW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9u
ZyBvYgogfQogCiAKLS8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KLVdlYklEQlRyYW5zYWN0aW9uKiBX
ZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3Qg
V2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBzaG9ydCBtb2Rl
KQotewotICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9yZUlkTGlzdChvYmplY3RTdG9yZUlk
cy5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2JqZWN0U3RvcmVJZHMuc2l6
ZSgpOyArK2kpCi0gICAgICAgIG9iamVjdFN0b3JlSWRMaXN0W2ldID0gb2JqZWN0U3RvcmVJZHNb
aV07Ci0gICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rp
b24gPSBtX2RhdGFiYXNlQmFja2VuZC0+Y3JlYXRlVHJhbnNhY3Rpb24oaWQsIG9iamVjdFN0b3Jl
SWRMaXN0LCBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbjo6TW9kZT4obW9kZSkpOwotICAgIGlm
ICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBuZXcgV2ViSURC
VHJhbnNhY3Rpb25JbXBsKHRyYW5zYWN0aW9uKTsKLX0KLQogdm9pZCBXZWJJREJEYXRhYmFzZUlt
cGw6OmNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3MqIGNhbGxiYWNrcywgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIG9iamVjdFN0b3JlSWRz
LCB1bnNpZ25lZCBzaG9ydCBtb2RlKQogewogICAgIFZlY3RvcjxpbnQ2NF90PiBvYmplY3RTdG9y
ZUlkTGlzdChvYmplY3RTdG9yZUlkcy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCAwNDY1ZjVlMjg3MmU1MmE4ZTU2NmVi
YzdkZjU4YWMzMjlkMmFhYmE1Li4xZmQ1OTQ5NzYwZTYzMDNhNDg2MDBmM2FmMmM1ZGEzZDA4MzY5
Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2UuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJDb21tb24uaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTQzLDcgKzQyLDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrczsKIGNsYXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CiBjbGFz
cyBXZWJJREJEYXRhYmFzZU1ldGFkYXRhOwotY2xhc3MgV2ViSURCVHJhbnNhY3Rpb247CiAKIC8v
IFNlZSBjb21tZW50IGluIFdlYklEQkZhY3RvcnkgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0
aGVzZSBjbGFzc2VzLgogY2xhc3MgV2ViSURCRGF0YWJhc2VJbXBsIDogcHVibGljIFdlYklEQkRh
dGFiYXNlIHsKQEAgLTUxLDEyICs0OSw4IEBAIHB1YmxpYzoKICAgICBXZWJJREJEYXRhYmFzZUlt
cGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZT4s
IFdURjo6UGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5Pik7CiAgICAgdmlydHVh
bCB+V2ViSURCRGF0YWJhc2VJbXBsKCk7CiAKLSAgICB2aXJ0dWFsIFdlYklEQk1ldGFkYXRhIG1l
dGFkYXRhKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUobG9u
ZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJ
ZCwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQpOwotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBt
ZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4K
LSAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9uKiBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxv
bmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSk7
CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgV2ViSURC
RGF0YWJhc2VDYWxsYmFja3MqLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVk
IHNob3J0IG1vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBmb3JjZUNsb3NlKCk7CiAgICAgdmlydHVh
bCB2b2lkIGNsb3NlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGQ0MWU5ZmM2MTc5YWU2OTE1ODFjNWIyMDNkYzM3ZjVjOGI5ZWZhNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuaCIKLQotI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1
ZGUgIklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VF
cnJvci5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLVdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6V2ViSURCVHJhbnNhY3Rpb25DYWxs
YmFja3NJbXBsKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IGNhbGxiYWNrcykK
LSAgICA6IG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKLXsKLX0KLQotV2ViSURCVHJhbnNhY3Rpb25D
YWxsYmFja3NJbXBsOjp+V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsKCkKLXsKLX0KLQot
dm9pZCBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGw6Om9uQWJvcnQoY29uc3QgV2ViSURC
RGF0YWJhc2VFcnJvciYgZXJyb3IpCi17Ci0gICAgbV9jYWxsYmFja3MtPm9uQWJvcnQoZXJyb3Ip
OwotfQotCi12b2lkIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbDo6b25Db21wbGV0ZSgp
Ci17Ci0gICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1w
bC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NJbXBsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmYzg0M2MzYjczN2M3MTEw
ZWZlNDdkYWM4MmVmOTE4NTQ4YTRmZTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3NJbXBsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGxfaAotI2RlZmluZSBXZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrc0ltcGxfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0KLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7IGNsYXNzIElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOyB9Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwgOiBwdWJsaWMgV2Vi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3MgewotcHVibGljOgotICAgIFdlYklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tz
Pik7Ci0gICAgdmlydHVhbCB+V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3NJbXBsKCk7Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgb25BYm9ydChjb25zdCBXZWJJREJEYXRhYmFzZUVycm9yJik7Ci0gICAg
dmlydHVhbCB2b2lkIG9uQ29tcGxldGUoKTsKLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25DYWxsYmFja3M+IG1fY2FsbGJhY2tzOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2Vu
ZGlmIC8vIFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWRmZDY3YmRkOGIyZTU1NzRjODRmODJkMWJmMTlkNWI1OTc4
OTEzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJXZWJJREJUcmFuc2FjdGlvbkltcGwuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQotCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNr
c1Byb3h5LmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJJREJUcmFu
c2FjdGlvbkltcGw6OldlYklEQlRyYW5zYWN0aW9uSW1wbChQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKLSAgICA6IG1fYmFja2VuZChiYWNrZW5kKQot
ewotfQotCi1XZWJJREJUcmFuc2FjdGlvbkltcGw6On5XZWJJREJUcmFuc2FjdGlvbkltcGwoKQot
ewotfQotCi12b2lkIFdlYklEQlRyYW5zYWN0aW9uSW1wbDo6Y29tbWl0KCkKLXsKLSAgICBtX2Jh
Y2tlbmQtPmNvbW1pdCgpOwotfQotCi12b2lkIFdlYklEQlRyYW5zYWN0aW9uSW1wbDo6YWJvcnQo
KQotewotICAgIG1fYmFja2VuZC0+YWJvcnQoKTsKLX0KLQotdm9pZCBXZWJJREJUcmFuc2FjdGlv
bkltcGw6OnNldENhbGxiYWNrcyhXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyogY2FsbGJhY2tz
KQotewotICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkNhbGxiYWNrcz4gaWRiQ2FsbGJhY2tzID0g
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykp
OwotICAgIG1fYmFja2VuZC0+c2V0Q2FsbGJhY2tzKGlkYkNhbGxiYWNrcy5nZXQoKSk7Ci19Ci0K
LUlEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogV2ViSURCVHJhbnNhY3Rpb25JbXBsOjpn
ZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSBjb25zdAotewotICAgIHJldHVybiBt
X2JhY2tlbmQuZ2V0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxNmYwNmE2ZWVmNDVkMTk4YWY1M2Q2NzI0ODlkYzk1MjIzNTYyN2FmLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgV2ViSURCVHJhbnNhY3Rpb25JbXBsX2gKLSNkZWZpbmUgV2ViSURC
VHJhbnNhY3Rpb25JbXBsX2gKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5j
bHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tbW9uLmg+
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJh
c2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgotY2xhc3MgV2ViSURC
VHJhbnNhY3Rpb25JbXBsOiBwdWJsaWMgV2ViSURCVHJhbnNhY3Rpb24gewotcHVibGljOgotICAg
IFdlYklEQlRyYW5zYWN0aW9uSW1wbChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7Ci0gICAgdmlydHVhbCB+V2ViSURCVHJhbnNhY3Rpb25J
bXBsKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGFi
b3J0KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldENhbGxiYWNrcyhXZWJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrcyopOwotCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqIGdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpIGNvbnN0OwotCi1w
cml2YXRlOgotICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gbV9iYWNrZW5kOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2VuZGlmIC8vIFdlYklEQlRyYW5zYWN0
aW9uSW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFi
b3J0T25Db3JydXB0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFi
b3J0T25Db3JydXB0VGVzdC5jcHAKaW5kZXggNzE1NzRhY2EzYWY4ZTg5OGVjNDZjNmVmZGQ2ZjI3
YWZkODRjZTg3YS4uOTFkOTRiNDA4MGU3ODRjMjZlZTUyYjk3YzY1NDA0ZWFiNjA2M2E5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1
cHRUZXN0LmNwcApAQCAtNjIsNyArNjIsNiBAQCBwdWJsaWM6CiAgICAgICAgIEVYUEVDVF9UUlVF
KGZhbHNlKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QktleT4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8
SURCS2V5PiwgY29uc3QgSURCS2V5UGF0aCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoaW50NjRfdCkgT1ZFUlJJREUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCA4OGIyOGM4OGZlYjBk
OGExYzFlZDlkMzJiZjE1ZTM4Yjc3N2M0NGJlLi40NTQ5NTUzYjljNDhiNzM1NDJiMDU0ZDUyZTNm
OTYzNzkwYzY1NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lE
QkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTEzOCw4ICsxMzgsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1
cm4gSURCRGF0YWJhc2VNZXRhZGF0YSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVj
dFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpIE9W
RVJSSURFIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIE9WRVJSSURFIHsgfQotICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBWZWN0
b3I8aW50NjRfdD4mLCBJREJUcmFuc2FjdGlvbjo6TW9kZSkgT1ZFUlJJREUgeyByZXR1cm4gMDsg
fQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWduZWQg
c2hvcnQgbW9kZSkgT1ZFUlJJREUgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4pIE9WRVJSSURFCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>