<?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>122819</bug_id>
          
          <creation_ts>2013-10-15 00:47:40 -0700</creation_ts>
          <short_desc>SearchPopupMenu is renamed SuggestionPopupMenu for more general useage</short_desc>
          <delta_ts>2014-01-10 09:04:15 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98934</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="ChangSeok Oh">changseok</reporter>
          <assigned_to name="ChangSeok Oh">changseok</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>939886</commentid>
    <comment_count>0</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2013-10-15 00:47:40 -0700</bug_when>
    <thetext>Current SearchPopupMenu is assumed to be used for only search suggestion based on previous user inputs.
But I&apos;d like to extend it for more general purpose. SuggestionPopupMenu will be able to include datalist and all kind of previous user input(of course including search).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941191</commentid>
    <comment_count>1</comment_count>
      <attachid>214570</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2013-10-18 07:43:36 -0700</bug_when>
    <thetext>Created attachment 214570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966390</commentid>
    <comment_count>2</comment_count>
      <attachid>214570</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2014-01-10 09:04:02 -0800</bug_when>
    <thetext>Comment on attachment 214570
Patch

The approach is changed not to use GtkPopup</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214570</attachid>
            <date>2013-10-18 07:43:36 -0700</date>
            <delta_ts>2014-01-10 09:04:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122819-20131018234333.patch</filename>
            <type>text/plain</type>
            <size>129677</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwNTg4NWFjMmYxZjcz
ZjM0ZTU1NDAzNmI3Mjg5ZmZmZGQ3YzZhNS4uNjAzNDI3ODNlOGIzMzg1YmM0OWZmMTEzODAyNzkz
NDYxODQ1YzljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTEwLTE4ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2sub2hAY29sbGFib3JhLmNvbT4KKworICAgICAgICBTZWFyY2hQ
b3B1cE1lbnUgaXMgcmVuYW1lZCBTdWdnZXN0aW9uUG9wdXBNZW51IGZvciBtb3JlIGdlbmVyYWwg
dXNlYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjI4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
IHByb3Bvc2UgcmVuYW1pbmcgU2VhcmNoUG9wdXBNZW51IGFzIFN1Z2dlc3Rpb25Qb3B1cE1lbnUg
c2luY2UgU3VnZ2VzdGlvblBvcHVwTWVudSBpcyBtb3JlCisgICAgICAgIHJlYXNvbmFibGUgYW5k
IGdlbmVyYWwgZm9yIGl0cyB1c2FnZS4gVGhlIHJlbmFtZWQgY2xhc3Mgd2lsbCBiZSB1c2VkIGZv
ciBzaG93aW5nCisgICAgICAgIG5vdCBvbmx5IHByZXZpb3VzIHNlYXJjaCBidXQgYWxzbyBkYXRh
bGlzdCBlbGVtZW50cyBpbiBhIHNhbWUgcG9wdXAuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNp
bmNlIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlZC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIFBs
YXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTdWdnZXN0aW9uUG9wdXBN
ZW51KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9D
aHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVTdWdnZXN0aW9uUG9w
dXBNZW51KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vU3VnZ2VzdGlvblBvcHVwTWVudS5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmguCisgICAg
ICAgIChXZWJDb3JlOjpTdWdnZXN0aW9uUG9wdXBNZW51Ojp+U3VnZ2VzdGlvblBvcHVwTWVudSk6
CisgICAgICAgICogcGxhdGZvcm0vYmxhY2tiZXJyeS9TdWdnZXN0aW9uUG9wdXBNZW51QmxhY2tC
ZXJyeS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5
L1NlYXJjaFBvcHVwTWVudUJsYWNrQmVycnkuY3BwLgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2Vz
dGlvblBvcHVwTWVudUJsYWNrQmVycnk6OlN1Z2dlc3Rpb25Qb3B1cE1lbnVCbGFja0JlcnJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OlN1Z2dlc3Rpb25Qb3B1cE1lbnVCbGFja0JlcnJ5Ojpwb3B1cE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2VzdGlvblBvcHVwTWVudUJsYWNrQmVycnk6OmVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2VzdGlvblBvcHVwTWVudUJsYWNrQmVycnk6
OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdWdnZXN0aW9uUG9wdXBN
ZW51QmxhY2tCZXJyeTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9i
bGFja2JlcnJ5L1N1Z2dlc3Rpb25Qb3B1cE1lbnVCbGFja0JlcnJ5Lmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1NlYXJjaFBvcHVwTWVudUJsYWNrQmVy
cnkuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU3VnZ2VzdGlvblBvcHVwTWVudUd0ay5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9wdXBNZW51
R3RrLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlN1Z2dlc3Rpb25Qb3B1cE1lbnVHdGs6OlN1Z2dl
c3Rpb25Qb3B1cE1lbnVHdGspOgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2VzdGlvblBvcHVwTWVu
dUd0azo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OlN1Z2dlc3Rpb25Qb3B1cE1lbnVH
dGs6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdWdnZXN0aW9uUG9w
dXBNZW51R3RrOjpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2Vz
dGlvblBvcHVwTWVudUd0azo6ZW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1N1Z2dl
c3Rpb25Qb3B1cE1lbnVHdGsuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU3VnZ2Vz
dGlvblBvcHVwTWVudVdpbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlN1Z2dlc3Rp
b25Qb3B1cE1lbnVXaW46OlN1Z2dlc3Rpb25Qb3B1cE1lbnVXaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6U3VnZ2VzdGlvblBvcHVwTWVudVdpbjo6cG9wdXBNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OlN1Z2dlc3Rpb25Qb3B1cE1lbnVXaW46OmVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6YXV0
b3NhdmVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2VzdGlvblBvcHVwTWVudVdpbjo6c2F2
ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN1Z2dlc3Rpb25Qb3B1cE1lbnVX
aW46OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1N1Z2dlc3Rp
b25Qb3B1cE1lbnVXaW4uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TZWFyY2hQb3B1cE1lbnVXaW4uaC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2VhcmNo
RmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OlJlbmRlclNl
YXJjaEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjp+UmVuZGVy
U2VhcmNoRmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OmFkZFNl
YXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTZWFyY2hGaWVsZDo6c2hvd1Bv
cHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjpoaWRlUG9wdXApOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OnVwZGF0ZUZyb21FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjp2YWx1ZUNoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OnBvcHVwRGlkSGlkZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmg6CisKIDIwMTMtMTAtMTggIEJyZW5kYW4g
TG9uZyAgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0dUS10g
QWRkIEdSZWZQdHI6Om91dFB0cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2MzRmYmU5YzNmNWUyOTlmMTRjZDZl
YmQ2YjYwMjI1ZWMzOTk1YjYuLjJmYTIyM2E4NWUzMjA1YTkwZmI0M2JkMzgxZmEwOGU1YjBkNDE1
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTAtMTggIENoYW5nU2VvayBPaCAg
PGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEuY29tPgorCisgICAgICAgIFNlYXJjaFBvcHVwTWVudSBp
cyByZW5hbWVkIFN1Z2dlc3Rpb25Qb3B1cE1lbnUgZm9yIG1vcmUgZ2VuZXJhbCB1c2VhZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjgxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1F
ZmwuY21ha2U6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMTMtMTAtMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEV4
cG9zZSAtW1dlYlBsdWdpblBhY2thZ2UgYnVuZGxlXSBhcyBTUEkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IDRhYzhjMjNkMTQ0MzVjNzljNTc0ZDFlZjBhMTYyY2MyNjY1NDIwYWYu
LjFkMDVkZmYwZTMyOGM1YTFlYjkxNjkzZmRlMzgyYWU3YzM2M2M2ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTEwLTE4ICBDaGFuZ1Nlb2sg
T2ggIDxjaGFuZ3Nlb2sub2hAY29sbGFib3JhLmNvbT4KKworICAgICAgICBTZWFyY2hQb3B1cE1l
bnUgaXMgcmVuYW1lZCBTdWdnZXN0aW9uUG9wdXBNZW51IGZvciBtb3JlIGdlbmVyYWwgdXNlYWdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI4MTkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlU3VnZ2VzdGlvblBvcHVwTWVudSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oOgorCiAyMDEzLTEw
LTE3ICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQGJsYWNrYmVycnkuY29tPgogCiAgICAgICAgIFtC
bGFja0JlcnJ5XSBJbXByb3ZlIHRoZSB2aWV3cG9ydCBvZiBzb21lIHdlYnNpdGVzIGxpa2UgbW9i
aWxlc3lydXAuY29tLzIwMTMvMDgvMjUvbW90by14LXJldmlldy8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRl
eCBmOGYwOWQ5N2QwZjNiZTRlZDA2MzM3ZTEyMzUxNjVmYWJhYmJmZmY5Li4yMDM4M2NiMGEzNjFk
M2MzOGJkYjE2YzBlNDYwMzRiYWVlZWMzODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMTMtMTAtMTggIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEu
Y29tPgorCisgICAgICAgIFNlYXJjaFBvcHVwTWVudSBpcyByZW5hbWVkIFN1Z2dlc3Rpb25Qb3B1
cE1lbnUgZm9yIG1vcmUgZ2VuZXJhbCB1c2VhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6Y3JlYXRlU3VnZ2VzdGlvblBv
cHVwTWVudSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvU3VnZ2VzdGlvblBvcHVwTWVudUVmbC5jcHA6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVF
ZmwuY3BwLgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2VzdGlvblBvcHVwTWVudUVmbDo6U3VnZ2Vz
dGlvblBvcHVwTWVudUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpTdWdnZXN0aW9uUG9wdXBNZW51
RWZsOjpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6U3VnZ2VzdGlvblBvcHVwTWVudUVm
bDo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN1Z2dlc3Rpb25Qb3B1
cE1lbnVFZmw6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdWdnZXN0
aW9uUG9wdXBNZW51RWZsOjplbmFibGVkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9TdWdn
ZXN0aW9uUG9wdXBNZW51RWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVFZmwuaC4KKwogMjAxMy0xMC0xNiAgSm9jaGVuIEVp
c2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBIHBhZ2Ugc2hvdWxkIGV4
aXQgZnVsbHNjcmVlbiBtb2RlIGlmIGl0IG9wZW5zIGEgbmV3IHBvcHVwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggMGU0ZTE4ZDMyM2UzNDc2YTM5MWFkYWM4MmQ2Y2Y2N2U2YTQ3MzQ4MS4uZjljZjQxNzRk
ZGJmMThmMDNmODYwNDYxN2FmZjhhZGZlYWQ1NGUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEzLTEwLTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2sub2hAY29sbGFi
b3JhLmNvbT4KKworICAgICAgICBTZWFyY2hQb3B1cE1lbnUgaXMgcmVuYW1lZCBTdWdnZXN0aW9u
UG9wdXBNZW51IGZvciBtb3JlIGdlbmVyYWwgdXNlYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlU3VnZ2VzdGlvblBv
cHVwTWVudSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisK
IDIwMTMtMTAtMTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAg
IE1hc3NhZ2UgdGhlIEd0ayBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAwZWUzYmVkNTFmMWY3
M2VhN2QxNmRlYzVkMmFmMTk5OTQ5OGIwODg5Li42MGRiNTc2N2QyYzVkYWM4NDc5Y2M3YmUyMzhi
ZTA2N2M0MWM3NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMTAt
MTggIENoYW5nU2VvayBPaCAgPGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEuY29tPgorCisgICAgICAg
IFNlYXJjaFBvcHVwTWVudSBpcyByZW5hbWVkIFN1Z2dlc3Rpb25Qb3B1cE1lbnUgZm9yIG1vcmUg
Z2VuZXJhbCB1c2VhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyMjgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvU3VnZ2VzdGlvblBvcHVwTWVudU1hYy5oOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51TWFj
LmguCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvU3VnZ2VzdGlvblBvcHVwTWVudU1hYy5tbTog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVw
TWVudU1hYy5tbS4KKyAgICAgICAgKFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWM6OlN1Z2dlc3Rpb25Q
b3B1cE1lbnVNYWMpOgorICAgICAgICAoU3VnZ2VzdGlvblBvcHVwTWVudU1hYzo6flN1Z2dlc3Rp
b25Qb3B1cE1lbnVNYWMpOgorICAgICAgICAoYXV0b3NhdmVLZXkpOgorICAgICAgICAoU3VnZ2Vz
dGlvblBvcHVwTWVudU1hYzo6cG9wdXBNZW51KToKKyAgICAgICAgKFN1Z2dlc3Rpb25Qb3B1cE1l
bnVNYWM6OmVuYWJsZWQpOgorICAgICAgICAoU3VnZ2VzdGlvblBvcHVwTWVudU1hYzo6c2F2ZVJl
Y2VudFNlYXJjaGVzKToKKyAgICAgICAgKFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWM6OmxvYWRSZWNl
bnRTZWFyY2hlcyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTdWdnZXN0aW9uUG9wdXBNZW51KToKKwogMjAxMy0xMC0x
NiAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBIHBh
Z2Ugc2hvdWxkIGV4aXQgZnVsbHNjcmVlbiBtb2RlIGlmIGl0IG9wZW5zIGEgbmV3IHBvcHVwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggMjFhNmMzYzZmYjg5M2E2MGJlOWE1MDQzMzRkN2FhM2MyMGI3N2E3
ZC4uNTA2MzJkNGNjYjVlYzBkNjE0MzIyYTdmYTc5NDVmMzMyZjAyOWNiZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTEwLTE4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nl
b2sub2hAY29sbGFib3JhLmNvbT4KKworICAgICAgICBTZWFyY2hQb3B1cE1lbnUgaXMgcmVuYW1l
ZCBTdWdnZXN0aW9uUG9wdXBNZW51IGZvciBtb3JlIGdlbmVyYWwgdXNlYWdlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI4MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVN1Z2dl
c3Rpb25Qb3B1cE1lbnUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorCiAyMDEzLTEwLTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IHRoZSBXaW5kb3dzIGJ1aWxkIGFmdGVyIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1NzU0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5k
ZXggMDFhMDVkMDZkZjAyMTJjODM0MjZiMTc5YmVmMDU5NmY3NjFjMDJjNS4uN2M4YmE5OTkwMzU1
MzQzNmYyMzVmNDg3N2YxNDA3NzQ1MDg2ZGRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMy0xMC0xOCAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rLm9oQGNvbGxh
Ym9yYS5jb20+CisKKyAgICAgICAgU2VhcmNoUG9wdXBNZW51IGlzIHJlbmFtZWQgU3VnZ2VzdGlv
blBvcHVwTWVudSBmb3IgbW9yZSBnZW5lcmFsIHVzZWFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRX
aW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpjcmVhdGVTdWdn
ZXN0aW9uUG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRX
aW5DRS5oOgorCiAyMDEzLTEwLTAzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmVtb3ZlIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbiBmcm9tIHRoZSBXS0J1bmRs
ZVBhZ2VVSUNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDNmOGYxNDM2Y2FjOGM4OGRkYjk2MGY0Y2RhM2Iz
YjU0MTcxOTQwZTYuLjkyMDU0OThlZjRkMGU5NjZiNjNjODJhNmI2ZTVhYzMxYmViNmIzMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMy0xMC0xOCAgQ2hhbmdTZW9rIE9oICA8Y2hh
bmdzZW9rLm9oQGNvbGxhYm9yYS5jb20+CisKKyAgICAgICAgU2VhcmNoUG9wdXBNZW51IGlzIHJl
bmFtZWQgU3VnZ2VzdGlvblBvcHVwTWVudSBmb3IgbW9yZSBnZW5lcmFsIHVzZWFnZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyODE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTdWdnZXN0aW9uUG9wdXBN
ZW51KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5U
ZXh0RmllbGQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3VnZ2Vz
dGlvblBvcHVwTWVudS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAuCisgICAgICAgIChXZWJLaXQ6
OldlYlN1Z2dlc3Rpb25Qb3B1cE1lbnU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlN1
Z2dlc3Rpb25Qb3B1cE1lbnU6OldlYlN1Z2dlc3Rpb25Qb3B1cE1lbnUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTdWdnZXN0aW9uUG9wdXBNZW51Ojpwb3B1cE1lbnUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTdWdnZXN0aW9uUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTdWdnZXN0aW9uUG9wdXBNZW51Ojpsb2FkUmVjZW50U2VhcmNoZXMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTdWdnZXN0aW9uUG9wdXBNZW51OjplbmFibGVkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN1Z2dlc3Rpb25Qb3B1cE1lbnUuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2Vh
cmNoUG9wdXBNZW51LmguCisKIDIwMTMtMTAtMTcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IFByb3h5IGxheWVyIGNv
bnRlbnRzIHRvIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCA3ZWQzMzc1ZThhMzFiNDVjNWQ1NGI5OTBhM2QyOWIyMDZhZjIyZjc3Li41MzY0MDE3MmNiMDk1
OGIxMmEzMjZjYjIzNTM3N2E2ZDkxYjgyYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTYwMTUsNyArNjAxNSw2IEBAIHBsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NlYXJj
aFBvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAgXApAQCAtNjAyOSw2ICs2MDI4LDcgQEAg
cGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU291bmQuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaCBcCisJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU3VnZ2VzdGlvblBvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
U0xLZXlHZW5lcmF0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRDaGVjay5oIFwKQEAgLTYxNzMsMTEg
KzYxNzMsMTEgQEAgcGxhdGZvcm1ndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nl
YXJjaFBvcHVwTWVudUd0ay5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TZWFy
Y2hQb3B1cE1lbnVHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1
ZmZlckd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRUaW1lckd0
ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Tb3VuZEd0ay5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TdWdnZXN0aW9uUG9wdXBNZW51R3RrLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1N1Z2dlc3Rpb25Qb3B1cE1lbnVHdGsuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Vc2VyQWdlbnRHdGsuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1C
bGFja0JlcnJ5LmNtYWtlCmluZGV4IDhjZDJmZGNmN2VjZTc5Njk0NDkxMDM0NWY5NTZkNTMyNGE3
MmViNjEuLjQzNjgyZGYzMTFjMjRlOTNhMjY5ZmNlYTliZTQ1OWMzOGViYTk1ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTEyMyw3ICsxMjMsNyBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1J1bkxvb3BC
bGFja0JlcnJ5LmNwcAogICAgIHBsYXRmb3JtL2JsYWNrYmVycnkvU1NMS2V5R2VuZXJhdG9yQmxh
Y2tCZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1Njcm9sbGJhclRoZW1lQmxhY2tC
ZXJyeS5jcHAKLSAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1NlYXJjaFBvcHVwTWVudUJsYWNrQmVy
cnkuY3BwCisgICAgcGxhdGZvcm0vYmxhY2tiZXJyeS9TdWdnZXN0aW9uUG9wdXBNZW51QmxhY2tC
ZXJyeS5jcHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1NoYXJlZFRpbWVyQmxhY2tCZXJyeS5j
cHAKICAgICBwbGF0Zm9ybS9ibGFja2JlcnJ5L1NvdW5kQmxhY2tCZXJyeS5jcHAKICAgICBwbGF0
Zm9ybS9ibGFja2JlcnJ5L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsu
Y21ha2UKaW5kZXggOGZmODFmOGUwNTAyNjI2YThmZDEzNTg4OTY0MmEwMGI5MzRiODNkYS4uNGM5
NWYwMzZmODU2ZjM4YTI5NDFhNGY4ZjI1NzQ1NzMyNTA0ODA2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1H
VEsuY21ha2UKQEAgLTE2OSw3ICsxNjksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
ICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3Rr
L1Njcm9sbGJhclRoZW1lR3RrMi5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVH
dGszLmNwcAotICAgIHBsYXRmb3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwCisgICAgcGxh
dGZvcm0vZ3RrL1N1Z2dlc3Rpb25Qb3B1cE1lbnVHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1No
YXJlZEJ1ZmZlckd0ay5jcHAKICAgICBwbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwCiAg
ICAgcGxhdGZvcm0vZ3RrL1NvdW5kR3RrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRl
eCA4ZGFiZWQzZTQxZThmOTNjYWNlYzQxM2MzOWU1MWU0ZTdhYzZlZTc1Li4xYWVlNjhlMjVjYTAw
YjM1NTg1ZTVjZGQ2MjkxNGM4NTA0N2U3OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpA
QCAtNTQsNyArNTQsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9y
bS93aW4vUnVuTG9vcFdpbi5jcHAKICAgICBwbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2lu
LmNwcAogICAgIHBsYXRmb3JtL3dpbi9TY3JvbGxiYXJUaGVtZVdpbi5jcHAKLSAgICBwbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51V2luLmNwcAorICAgIHBsYXRmb3JtL3dpbi9TdWdnZXN0aW9u
UG9wdXBNZW51V2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9TaGFyZWRCdWZmZXJXaW4uY3BwCiAg
ICAgcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcAogICAgIHBsYXRmb3JtL3dpbi9Tb3Vu
ZFdpbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCmluZGV4IGFjZmI0MTVjYWE0MTZmYzliZTM5NDgwM2QwM2EzOWFmYjUyY2NmYjEuLmEyOGIx
NDY2ZmQ3YThlZTFmNzVmYTVlNmMzODgyOTBjMzk0MWFhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzI5OCw3ICs3Mjk4LDcgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxSdW5Mb29wV2luLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTY3JvbGxiYXJUaGVt
ZVNhZmFyaS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5c
U2Nyb2xsYmFyVGhlbWVXaW4uY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cd2luXFNlYXJjaFBvcHVwTWVudVdpbi5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVx3aW5cU3VnZ2VzdGlvblBvcHVwTWVudVdpbi5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU2hhcmVkQnVmZmVyV2luLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTaGFyZWRUaW1lcldp
bi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3aW5cU291bmRX
aW4uY3BwIiAvPgpAQCAtMTg3NDAsNyArMTg3NDAsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNjcm9sbFR5cGVzLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTY3JvbGxWaWV3LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxTZWFyY2hQb3B1cE1lbnUuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNoYXJlZEJ1ZmZlci5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2hhcmVkQnVmZmVyQ2h1bmtSZWFkZXIuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNoYXJlZFRpbWVyLmgiIC8+CkBA
IC0xODc3MSw3ICsxODc3MSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVx3aW5cUG9wdXBNZW51V2luLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVTYWZhcmkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHBsYXRmb3JtXHdpblxTY3JvbGxiYXJUaGVtZVdpbi5oIiAvPgotICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNlYXJjaFBvcHVwTWVudVdpbi5oIiAvPgorICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFN1Z2dlc3Rpb25Qb3B1cE1lbnVX
aW4uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTb2Z0TGlu
a2luZy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFN0cnVj
dHVyZWRFeGNlcHRpb25IYW5kbGVyU3VwcHJlc3Nvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cd2luXFN5c3RlbUluZm8uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA0
ZGVlZTA2NjNkYTg2YTNmMTFiZmZjNTg3OTU2MzY5OTc2M2E0MGJhLi5jYmQyOGVlMmQ4NjEyM2Qy
MjE4YjMwNTUxOGQ3ZjhjNWVjOWM0NDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xMjM2LDcgKzEyMzYs
NyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJhclRo
ZW1lV2luLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXHdpbjwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNlYXJj
aFBvcHVwTWVudVdpbi5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
d2luXFN1Z2dlc3Rpb25Qb3B1cE1lbnVXaW4uY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1c
d2luPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVx3aW5cU2hhcmVkQnVmZmVyV2luLmNwcCI+CkBAIC03OTg5LDcgKzc5ODksNyBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cU2Nyb2xsVmlldy5oIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFNlYXJjaFBvcHVwTWVudS5oIj4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXFN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCI+CiAgICAg
ICA8RmlsdGVyPnBsYXRmb3JtPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxTaGFyZWRCdWZmZXIuaCI+CkBAIC04MDc5LDcgKzgw
NzksNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJh
clRoZW1lV2luLmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVx3aW48L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXHdpblxTZWFy
Y2hQb3B1cE1lbnVXaW4uaCI+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVx3
aW5cU3VnZ2VzdGlvblBvcHVwTWVudVdpbi5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cd2lu
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVx3aW5cU29mdExpbmtpbmcuaCI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDBjNTNlYmRmNDRjNjRkYzQ3NjAzOGFh
Y2IyYWI5NTgyOTkyNmI0OS4uZTVmNDFhMzQ2YTcxY2M5NzI4Y2U4MmUzMGRmODk0YTZiZDI2MzNm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzA4NCw2ICszMDg0LDcgQEAKIAkJOTNGOUI3QTAwQkE2MDMyNjAwODU0MDY0IC8q
IEpTQ0RBVEFTZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAg
Ki87IH07CiAJCTkzRjlCN0ExMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI3OUYwQkE2
MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmggKi87IH07CiAJCTkzRkRBRkNBMEIxMTMw
NzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0
b3JJbnNlcnRBY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5NjkyQUZBRTE4MTExQzNGMDA5RkZDNDUgLyogU3VnZ2VzdGlvblBvcHVwTWVu
dS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY3MkIw
QzMxODEwRjYwRTAwNTIzRDEzIC8qIFN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NkFCQTQyMzE0QkNCODBFMDBE
NTYyMDQgLyogR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTZBQkE0MjIxNEJDQjgwRTAwRDU2MjA0
IC8qIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCAqLzsgfTsKIAkJOTcwM0UxQkYx
NURDNEUzNzAwMUYyNEM4IC8qIEpTVm9pZENhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3RTlFQzhCMTVEQzQ5MkYwMDRGMkU3MSAvKiBK
U1ZvaWRDYWxsYmFjay5jcHAgKi87IH07CiAJCTk3MDU5OTc3MTA3RDk3NTIwMEE1MEE3QyAvKiBQ
b2xpY3lDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzA1OTk3MzEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2FsbGJhY2suY3BwICov
OyB9OwpAQCAtMzk3OCw3ICszOTc5LDYgQEAKIAkJQUI0Q0I0RUIwQjhCREEzRDAwOUY0MEIwIC8q
IEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFCNENCNEVBMEI4QkRBM0QwMDlGNDBCMCAvKiBKU0hUTUxTZWxl
Y3RFbGVtZW50Q3VzdG9tLmggKi87IH07CiAJCUFCNjdEMUE4MDk3RjNBRTMwMEY5MzkyRSAvKiBS
ZW5kZXJUZXh0Q29udHJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQjY3RDFBNjA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wu
Y3BwICovOyB9OwogCQlBQjY3RDFBOTA5N0YzQUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRy
b2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCNjdE
MUE3MDk3RjNBRTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5oICovOyB9OwotCQlBQjcx
NzA4OTBCMzExODA4MDAxNzEyM0UgLyogU2VhcmNoUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjcxNzA4ODBCMzExODA4MDAxNzEyM0Ug
LyogU2VhcmNoUG9wdXBNZW51LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQUYyMjA3MEMw
M0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gKi87IH07CiAJCUFCQjU0MTlFMEFDRERGRTQw
MDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFCQjU0MTlDMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0
Qm94LmNwcCAqLzsgfTsKIAkJQUJCNTQxOUYwQUNEREZFNDAwMjgyMEVCIC8qIFJlbmRlckxpc3RC
b3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFCQjU0
MTlEMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggKi87IH07CkBAIC05Njc3LDYg
Kzk2NzcsNyBAQAogCQk5M0Y5Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFGQzkwQjExMzA3NDAwRTI3NDZGIC8qIEVk
aXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRp
dG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEM0QzAy
QkVEODkzNkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdHcmFwaGljc0VsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTY3MkIwQzMxODEwRjYwRTAwNTIzRDEzIC8qIFN1Z2dlc3Rpb25Q
b3B1cE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3VnZ2VzdGlvblBv
cHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NkFCQTQyMjE0QkNCODBF
MDBENTYyMDQgLyogR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3MzEwN0Q5NzUyMDBBNTBB
N0MgLyogUG9saWN5Q2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUG9saWN5Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzA1OTk3NDEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwNjg0LDcgKzEwNjg1LDYgQEAKIAkJQUI0Q0I0RUEwQjhCREEzRDAwOUY0
MEIwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQUI2N0QxQTYwOTdGM0FFMzAwRjkzOTJFIC8qIFJlbmRlclRleHRDb250
cm9sLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0
Q29udHJvbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCNjdEMUE3MDk3RjNB
RTMwMEY5MzkyRSAvKiBSZW5kZXJUZXh0Q29udHJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQUI3MTcwODgwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVwTWVudS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9wdXBNZW51Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCQUYyMjA3MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hyb21lTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQkI1NDE5QzBBQ0RERkU0MDAyODIw
RUIgLyogUmVuZGVyTGlzdEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyTGlzdEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFC
QjU0MTlEMEFDRERGRTQwMDI4MjBFQiAvKiBSZW5kZXJMaXN0Qm94LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJMaXN0Qm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xOTg1MCw3ICsxOTg1MCw2IEBACiAJCQkJOTNDMDlDODUwQjA2NTdBQTAwNUFC
RDREIC8qIFNjcm9sbFR5cGVzLmggKi8sCiAJCQkJQkMyNDQxQzMwRThCNjVEMDAwNTUzMjBGIC8q
IFNjcm9sbFZpZXcuY3BwICovLAogCQkJCUJDNkQ2RTI1MDlBRjk0MzUwMEY1OTc1OSAvKiBTY3Jv
bGxWaWV3LmggKi8sCi0JCQkJQUI3MTcwODgwQjMxMTgwODAwMTcxMjNFIC8qIFNlYXJjaFBvcHVw
TWVudS5oICovLAogCQkJCTFBNEE5NTRCMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIu
Y3BwICovLAogCQkJCTFBNEE5NTRDMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCAq
LywKIAkJCQkzNzU2OUUwMDEzQUYxNzJDMDBDREJBOEUgLyogU2hhcmVkQnVmZmVyQ2h1bmtSZWFk
ZXIuY3BwICovLApAQCAtMTk4NTksNiArMTk4NTgsNyBAQAogCQkJCTRCMzA0M0M2MEFFMDM3MDMw
MEE4MjY0NyAvKiBTb3VuZC5oICovLAogCQkJCUY1ODc4NjYyMDJERTNCMTEwMUVBNDEyMiAvKiBT
U0xLZXlHZW5lcmF0b3IuaCAqLywKIAkJCQk5M0IyRDgxNTBGOTkyMEQyMDA2QUU2QjIgLyogU3Vk
ZGVuVGVybWluYXRpb24uaCAqLywKKwkJCQk5NjcyQjBDMzE4MTBGNjBFMDA1MjNEMTMgLyogU3Vn
Z2VzdGlvblBvcHVwTWVudS5oICovLAogCQkJCTk3NjI3Qjk3MTRGQjU0MjQwMDJDRENBMSAvKiBT
dXBwbGVtZW50YWJsZS5oICovLAogCQkJCUJDRTY1RDMxMEVBRDEyMTEwMDdFNDUzMyAvKiBUaGVt
ZS5jcHAgKi8sCiAJCQkJQkNFNjU4RkUwRUE5MjQ4QTAwN0U0NTMzIC8qIFRoZW1lLmggKi8sCkBA
IC0yMzA0OSw2ICsyMzA0OSw3IEBACiAJCQkJQkNEOUMyQzEwQzE3QjY5RTAwNUM5MEEyIC8qIEpT
TmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDdGODBENzU3RTM0MDBGREY5
NTkgLyogSlNOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTQzOUMzMTE2Q0Y0OTQw
MDQ4Qzc1MCAvKiBKU05vZGVDdXN0b20uaCBpbiBIZWFkZXJzICovLAorCQkJCTk2OTJBRkFFMTgx
MTFDM0YwMDlGRkM0NSAvKiBTdWdnZXN0aW9uUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNDExNUI3MzA5Rjg0Q0Q2MDBDQTRGQzEgLyogSlNOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0I3NzM2MjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTc1MEQ4RTBBOTBFNTIxMDAwRkYyMTUgLyogSlNOb2Rl
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMjM5MTIsNyArMjM5MTMsNiBAQAogCQkJCTkz
QzA5Qzg2MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM2RDZFMjYwOUFGOTQzNTAwRjU5NzU5IC8qIFNjcm9sbFZpZXcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUY1NUIzREQyMTI1MUYxMkQwMDNFRjI2OSAvKiBTZWFyY2hJbnB1dFR5cGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUFCNzE3MDg5MEIzMTE4MDgwMDE3MTIzRSAvKiBTZWFyY2hQb3B1cE1l
bnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkYzNkVCMTQ2ODYyMjUwMDVFOTNCNCAvKiBTZWN1
cml0eUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDBFMEZCMEU5NzJDMzUwMDI2NURF
QSAvKiBTZWN1cml0eU9yaWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMEUwRkMwRTk3MkMz
NTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luSGFzaC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDM3MDI3MmM3MmNlNGFjNGY3OWRmNmVl
MDUzZTBkYmU3MWFlZjdkODYuLmU1MDlkMTVjODI1MmU1NTkyN2MwNDlmOWJjMDllM2YzYjg1ODM0
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC03NSw3ICs3NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpIHsgfQogfTsK
IAotY2xhc3MgRW1wdHlTZWFyY2hQb3B1cE1lbnUgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsK
K2NsYXNzIEVtcHR5U3VnZ2VzdGlvblBvcHVwTWVudSA6IHB1YmxpYyBTdWdnZXN0aW9uUG9wdXBN
ZW51IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCkgeyByZXR1
cm4gbV9wb3B1cC5nZXQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKSB7IH0KQEAgLTkxLDkg
KzkxLDkgQEAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEVtcHR5UG9wdXBNZW51KCkpOwogfQogCi1QYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gRW1w
dHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdAorUGFzc1JlZlB0cjxTdWdnZXN0aW9uUG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6
Y3JlYXRlU3VnZ2VzdGlvblBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRW1wdHlTZWFyY2hQb3B1cE1lbnUoKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFbXB0eVN1Z2dlc3Rpb25Qb3B1cE1lbnUoKSk7CiB9CiAKICNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRl
eCBjZDQ1YTE2N2NiYjk5NDA1YzVlNDVhOGZmYTJkYTI1NDQyMGIzYWIzLi5lMDEyMTE4MDg2YThl
NzA4ZDBjYjI4YWE5MjY5OGE5OWNmYzAxMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgT1ZFUlJJREUgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFN1Z2dlc3Rpb25Qb3B1cE1lbnU+IGNyZWF0ZVN1Z2dlc3Rpb25Qb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVz
YmFyVGV4dChjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
CmluZGV4IGM3MTQ2NGZlMTI1NTY2NGE4M2Y5NzZlZWFlMjRlNmE2N2YxNjhjZTcuLjY3ODBhY2M1
MGMyMzllZDFkZWFiYjA1NTRmMDkwNGVjM2QxOTg2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
QEAgLTU5NywxMCArNTk3LDEwIEBAIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKICAgICByZXR1cm4gbV9j
bGllbnQuY3JlYXRlUG9wdXBNZW51KGNsaWVudCk7CiB9CiAKLVBhc3NSZWZQdHI8U2VhcmNoUG9w
dXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkgY29uc3QKK1Bhc3NSZWZQdHI8U3VnZ2VzdGlvblBvcHVwTWVudT4gQ2hyb21lOjpjcmVh
dGVTdWdnZXN0aW9uUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewog
ICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwotICAgIHJldHVybiBtX2NsaWVudC5j
cmVhdGVTZWFyY2hQb3B1cE1lbnUoY2xpZW50KTsKKyAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRl
U3VnZ2VzdGlvblBvcHVwTWVudShjbGllbnQpOwogfQogCiBib29sIENocm9tZTo6cmVxdWlyZXNG
dWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA0NjQ0MDBm
ZjliM2UwMTM2Yzg3YzNiNTFhZTRkYmQ3ZDA2MmY3ZjgzLi45MjYzODFjNjNiZWNjODMwY2UwYjY3
MTU1OTc2M2RjMDUzMGY0OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTU0LDcgKzU0LDcgQEAg
Y2xhc3MgUGFnZTsKIGNsYXNzIFBvcHVwTWVudTsKIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNs
YXNzIFBvcHVwT3BlbmluZ09ic2VydmVyOwotY2xhc3MgU2VhcmNoUG9wdXBNZW51OworY2xhc3Mg
U3VnZ2VzdGlvblBvcHVwTWVudTsKIAogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7
CiBzdHJ1Y3QgRnJhbWVMb2FkUmVxdWVzdDsKQEAgLTE3Nyw3ICsxNzcsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7
CiAgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8UG9wdXBN
ZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAgUGFzc1Jl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFN1Z2dlc3Rpb25Qb3B1cE1lbnU+IGNyZWF0ZVN1
Z2dlc3Rpb25Qb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKICAgICB2b2lkIHJl
Z2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZWRlMGY4ZGIxNWIyZjBhYWY4Y2Y1
MmFhNzE4ZGY5YWIzM2JlNTVhNy4uY2E0NmJmMTg3ZmMyYjc5ZDY5Mzg2MmVlNWE2NDVjZjNiNGYx
ZmE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zNCw3ICszNCw3IEBACiAj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVu
dS5oIgorI2luY2x1ZGUgIlN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJDb3Jl
S2V5Ym9hcmRVSU1vZGUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CkBAIC0zMjIsNyArMzIyLDcgQEAgcHVibGljOgogICAgIC8vIENoZWNr
cyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51TGlzdDo6
c2hvd1BvcHVwKCkuCiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3VnZ2VzdGlvblBvcHVwTWVudT4gY3JlYXRlU3Vn
Z2VzdGlvblBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCosIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TZWFyY2hQb3B1cE1lbnUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjE5OWZhYjcwNTg4ZjE3MzFkZTRiMDYxOWVhYWQxZjMxZjk1OTM2YS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
ZWFyY2hQb3B1cE1lbnUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSAqCi0gKi8KLQotI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVfaAotI2RlZmluZSBTZWFyY2hQb3B1
cE1lbnVfaAotCi0jaW5jbHVkZSAiUG9wdXBNZW51LmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2VhcmNoUG9wdXBNZW51IDogcHVi
bGljIFJlZkNvdW50ZWQ8U2VhcmNoUG9wdXBNZW51PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+
U2VhcmNoUG9wdXBNZW51KCkge30KLSAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGVuYWJs
ZWQoKSA9IDA7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VnZ2VzdGlvblBvcHVwTWVudS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VnZ2VzdGlvblBvcHVwTWVudS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVh
YzVlODMzNWJmZjUxZmE4OWEwOTc0MGUxYTYyYzlhMzg2MTZhMDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWdnZXN0aW9uUG9wdXBNZW51LmgKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFN1Z2dlc3Rpb25Qb3B1cE1lbnVf
aAorI2RlZmluZSBTdWdnZXN0aW9uUG9wdXBNZW51X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudS5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFN1Z2dlc3Rpb25Qb3B1cE1lbnUgOiBwdWJsaWMgUmVmQ291bnRlZDxTdWdnZXN0aW9uUG9w
dXBNZW51PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3VnZ2VzdGlvblBvcHVwTWVudSgpIHsg
fQorICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpID0gMDsKK307CisKK30K
KworI2VuZGlmIC8vIFN1Z2dlc3Rpb25Qb3B1cE1lbnVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9TZWFyY2hQb3B1cE1lbnVCbGFja0JlcnJ5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvU2VhcmNoUG9wdXBNZW51QmxhY2tC
ZXJyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MTkxNjdlM2U0NDljOGU3
YjQ4MTBhOWNlNjJhZGU1NzAwODNmNzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9TZWFyY2hQ
b3B1cE1lbnVCbGFja0JlcnJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUJsYWNrQmVycnkuaCIKLQotI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TZWFyY2hQb3B1cE1lbnVCbGFja0JlcnJ5OjpT
ZWFyY2hQb3B1cE1lbnVCbGFja0JlcnJ5KFBvcHVwTWVudUNsaWVudCogY2xpZW50KQotICAgIDog
bV9wb3B1cChhZG9wdFJlZihuZXcgUG9wdXBNZW51QmxhY2tCZXJyeShjbGllbnQpKSkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1Qb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUJsYWNr
QmVycnk6OnBvcHVwTWVudSgpCi17Ci0gICAgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7Ci19Ci0KLWJv
b2wgU2VhcmNoUG9wdXBNZW51QmxhY2tCZXJyeTo6ZW5hYmxlZCgpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgU2VhcmNoUG9wdXBNZW51Qmxh
Y2tCZXJyeTo6c2F2ZVJlY2VudFNlYXJjaGVzKEF0b21pY1N0cmluZyBjb25zdCYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFNlYXJj
aFBvcHVwTWVudUJsYWNrQmVycnk6OmxvYWRSZWNlbnRTZWFyY2hlcyhBdG9taWNTdHJpbmcgY29u
c3QmLCBWZWN0b3I8U3RyaW5nPiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9TZWFyY2hQb3B1cE1lbnVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L1NlYXJjaFBvcHVwTWVudUJsYWNrQmVycnkuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2NlZDBhODFiYjdmZDRiMWYwOWNjNzdkOWYzMWJjODVhOTE3
ZjQxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1NlYXJjaFBvcHVwTWVudUJsYWNrQmVycnku
aAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDksIDIwMTAgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVCbGFja0JlcnJ5
X2gKLSNkZWZpbmUgU2VhcmNoUG9wdXBNZW51QmxhY2tCZXJyeV9oCi0KLSNpbmNsdWRlICJQb3B1
cE1lbnVCbGFja0JlcnJ5LmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2VhcmNoUG9wdXBNZW51QmxhY2tCZXJyeSA6IHB1Ymxp
YyBTZWFyY2hQb3B1cE1lbnUgewotcHVibGljOgotICAgIFNlYXJjaFBvcHVwTWVudUJsYWNrQmVy
cnkoUG9wdXBNZW51Q2xpZW50Kik7Ci0KLSAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVh
bCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKLQot
cHJpdmF0ZToKLSAgICBSZWZQdHI8UG9wdXBNZW51QmxhY2tCZXJyeT4gbV9wb3B1cDsKLX07Ci0K
LX0KLQotI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudUJsYWNrQmVycnlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9TdWdnZXN0aW9uUG9wdXBNZW51Qmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1N1Z2dlc3Rp
b25Qb3B1cE1lbnVCbGFja0JlcnJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjkwOWExNDg1MzBiYzE4MjY4
MDlkZGQ4YmYwZjQ4YzQ0MjY1ZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYmxhY2tiZXJyeS9TdWdnZXN0aW9uUG9wdXBNZW51QmxhY2tCZXJyeS5jcHAKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3VnZ2VzdGlvblBvcHVwTWVudUJs
YWNrQmVycnkuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKKyNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdWdnZXN0
aW9uUG9wdXBNZW51QmxhY2tCZXJyeTo6U3VnZ2VzdGlvblBvcHVwTWVudUJsYWNrQmVycnkoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX3BvcHVwKGFkb3B0UmVmKG5ldyBQb3B1cE1l
bnVCbGFja0JlcnJ5KGNsaWVudCkpKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1Bv
cHVwTWVudSogU3VnZ2VzdGlvblBvcHVwTWVudUJsYWNrQmVycnk6OnBvcHVwTWVudSgpCit7Cisg
ICAgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7Cit9CisKK2Jvb2wgU3VnZ2VzdGlvblBvcHVwTWVudUJs
YWNrQmVycnk6OmVuYWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFN1Z2dlc3Rpb25Qb3B1cE1lbnVCbGFja0JlcnJ5OjpzYXZlUmVj
ZW50U2VhcmNoZXMoQXRvbWljU3RyaW5nIGNvbnN0JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgU3VnZ2VzdGlvblBvcHVwTWVudUJs
YWNrQmVycnk6OmxvYWRSZWNlbnRTZWFyY2hlcyhBdG9taWNTdHJpbmcgY29uc3QmLCBWZWN0b3I8
U3RyaW5nPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9T
dWdnZXN0aW9uUG9wdXBNZW51QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9TdWdnZXN0aW9uUG9wdXBNZW51QmxhY2tCZXJyeS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhl
ZTllZTViZDA1OTUwMzY5ZTViMGIzNjU2YmJiZjIwN2FhYjUxOTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1N1Z2dlc3Rpb25Qb3B1cE1lbnVC
bGFja0JlcnJ5LmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSwg
MjAxMCBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFN1Z2dlc3Rpb25Qb3B1cE1lbnVCbGFja0JlcnJ5
X2gKKyNkZWZpbmUgU3VnZ2VzdGlvblBvcHVwTWVudUJsYWNrQmVycnlfaAorCisjaW5jbHVkZSAi
UG9wdXBNZW51QmxhY2tCZXJyeS5oIgorI2luY2x1ZGUgIlN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdWdnZXN0aW9uUG9wdXBNZW51QmxhY2tC
ZXJyeSA6IHB1YmxpYyBTdWdnZXN0aW9uUG9wdXBNZW51IHsKK3B1YmxpYzoKKyAgICBTdWdnZXN0
aW9uUG9wdXBNZW51QmxhY2tCZXJyeShQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwg
UG9wdXBNZW51KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJj
aEl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFs
IGJvb2wgZW5hYmxlZCgpOworCitwcml2YXRlOgorICAgIFJlZlB0cjxQb3B1cE1lbnVCbGFja0Jl
cnJ5PiBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU3VnZ2VzdGlvblBvcHVwTWVudUJs
YWNrQmVycnlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJj
aFBvcHVwTWVudUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQxMzc3M2U1OGM2
MDVjNDA4MTNhOWMwN2I4OTAwM2Q2MWZkODEwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudUd0ay5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TZWFyY2hQb3B1cE1lbnVHdGs6OlNl
YXJjaFBvcHVwTWVudUd0ayhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fcG9wdXAo
YWRvcHRSZWYobmV3IFBvcHVwTWVudUd0ayhjbGllbnQpKSkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCi1Qb3B1cE1lbnUqIFNlYXJjaFBvcHVwTWVudUd0azo6cG9wdXBNZW51KCkKLXsK
LSAgICByZXR1cm4gbV9wb3B1cC5nZXQoKTsKLX0KLQotdm9pZCBTZWFyY2hQb3B1cE1lbnVHdGs6
OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBTZWFyY2hQb3B1cE1l
bnVHdGs6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3Ry
aW5nPiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9vbCBTZWFyY2hQb3B1cE1l
bnVHdGs6OmVuYWJsZWQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Vh
cmNoUG9wdXBNZW51R3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2VhcmNoUG9w
dXBNZW51R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1M2M2M2Q3YzJiN2I4
NGU0MjYzNTYyNjNhOWQ2YjkyNDkyMTFlOGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1NlYXJjaFBvcHVw
TWVudUd0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAq
LwotCi0jaWZuZGVmIFNlYXJjaFBvcHVwTWVudUd0a19oCi0jZGVmaW5lIFNlYXJjaFBvcHVwTWVu
dUd0a19oCi0KLSNpbmNsdWRlICJQb3B1cE1lbnVHdGsuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1
cE1lbnUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTZWFyY2hQb3B1cE1lbnVH
dGsgOiBwdWJsaWMgU2VhcmNoUG9wdXBNZW51IHsKLXB1YmxpYzoKLSAgICBTZWFyY2hQb3B1cE1l
bnVHdGsoUG9wdXBNZW51Q2xpZW50Kik7Ci0KLSAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBN
ZW51KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmly
dHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsK
LQotcHJpdmF0ZToKLSAgICBSZWZQdHI8UG9wdXBNZW51R3RrPiBtX3BvcHVwOwotfTsKLQotfQot
Ci0jZW5kaWYgLy8gU2VhcmNoUG9wdXBNZW51R3RrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9TdWdnZXN0aW9uUG9wdXBNZW51R3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9TdWdnZXN0aW9uUG9wdXBNZW51R3RrLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YjI2YWNiNDU2MWUwNGE5YmQ2NmEzNzY4Yjc3NzNlN2JlYWMzZDNhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1N1Z2dlc3Rpb25Qb3B1cE1lbnVHdGsuY3Bw
CkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN1Z2dlc3Rpb25Qb3B1
cE1lbnVHdGsuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworU3VnZ2VzdGlvblBvcHVwTWVudUd0azo6U3VnZ2VzdGlvblBvcHVwTWVudUd0
ayhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoYWRvcHRSZWYobmV3IFBv
cHVwTWVudUd0ayhjbGllbnQpKSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitQb3B1
cE1lbnUqIFN1Z2dlc3Rpb25Qb3B1cE1lbnVHdGs6OnBvcHVwTWVudSgpCit7CisgICAgcmV0dXJu
IG1fcG9wdXAuZ2V0KCk7Cit9CisKK3ZvaWQgU3VnZ2VzdGlvblBvcHVwTWVudUd0azo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFN1Z2dlc3Rpb25Qb3B1cE1lbnVH
dGs6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5n
PiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBTdWdnZXN0aW9uUG9wdXBN
ZW51R3RrOjplbmFibGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1N1
Z2dlc3Rpb25Qb3B1cE1lbnVHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TdWdn
ZXN0aW9uUG9wdXBNZW51R3RrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzIwYTczYzQ5OWZiYWU4ODcyOWNmZWIw
YWQ0MjliYTAwYjU2YTZjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TdWdnZXN0aW9uUG9wdXBNZW51R3RrLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworCisjaWZuZGVmIFN1Z2dlc3Rpb25Qb3B1cE1lbnVHdGtfaAorI2RlZmluZSBT
dWdnZXN0aW9uUG9wdXBNZW51R3RrX2gKKworI2luY2x1ZGUgIlBvcHVwTWVudUd0ay5oIgorI2lu
Y2x1ZGUgIlN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTdWdnZXN0aW9uUG9wdXBNZW51R3RrIDogcHVibGljIFN1Z2dlc3Rpb25Qb3B1cE1lbnUg
eworcHVibGljOgorICAgIFN1Z2dlc3Rpb25Qb3B1cE1lbnVHdGsoUG9wdXBNZW51Q2xpZW50Kik7
CisKKyAgICB2aXJ0dWFsIFBvcHVwTWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lk
IHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cyk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8
UG9wdXBNZW51R3RrPiBtX3BvcHVwOworfTsKKworfQorCisjZW5kaWYgLy8gU3VnZ2VzdGlvblBv
cHVwTWVudUd0a19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQ
b3B1cE1lbnVXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGMzMDVhYzI5
NTc1NmZmMTY1YzA1N2U3ODljZjkwYjJhNGRlN2I0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQ
b3B1cE1lbnVXaW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51V2luLmgiCi0KLSNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotI2lmIFVTRShDRikKLSNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1TZWFyY2hQb3B1cE1l
bnVXaW46OlNlYXJjaFBvcHVwTWVudVdpbihQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6
IG1fcG9wdXAoYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKSkKLXsKLX0KLQotUG9w
dXBNZW51KiBTZWFyY2hQb3B1cE1lbnVXaW46OnBvcHVwTWVudSgpCi17Ci0gICAgcmV0dXJuIG1f
cG9wdXAuZ2V0KCk7Ci19Ci0KLWJvb2wgU2VhcmNoUG9wdXBNZW51V2luOjplbmFibGVkKCkKLXsK
LSNpZiBVU0UoQ0YpCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsK
LSNlbmRpZgotfQotCi0jaWYgVVNFKENGKQotc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
YXV0b3NhdmVLZXkoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJldHVybiBTdHJpbmcoImNv
bS5hcHBsZS5XZWJLaXQuc2VhcmNoRmllbGQ6IiArIG5hbWUpLmNyZWF0ZUNGU3RyaW5nKCk7Ci19
Ci0jZW5kaWYKLQotdm9pZCBTZWFyY2hQb3B1cE1lbnVXaW46OnNhdmVSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cykKLXsKLSAgICBpZiAobmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotI2lmIFVT
RShDRikKLSAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlQXJyYXlSZWY+IGl0ZW1zOwotCi0gICAgc2l6
ZV90IHNpemUgPSBzZWFyY2hJdGVtcy5zaXplKCk7Ci0gICAgaWYgKHNpemUpIHsKLSAgICAgICAg
aXRlbXMgPSBhZG9wdENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKDAsIHNpemUsICZrQ0ZUeXBlQXJy
YXlDYWxsQmFja3MpKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kp
Ci0gICAgICAgICAgICBDRkFycmF5QXBwZW5kVmFsdWUoaXRlbXMuZ2V0KCksIHNlYXJjaEl0ZW1z
W2ldLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwotICAgIH0KLQotICAgIENGUHJlZmVyZW5jZXNT
ZXRBcHBWYWx1ZShhdXRvc2F2ZUtleShuYW1lKS5nZXQoKSwgaXRlbXMuZ2V0KCksIGtDRlByZWZl
cmVuY2VzQ3VycmVudEFwcGxpY2F0aW9uKTsKLSAgICBDRlByZWZlcmVuY2VzQXBwU3luY2hyb25p
emUoa0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24pOwotI2VuZGlmCi19Ci0KLXZvaWQg
U2VhcmNoUG9wdXBNZW51V2luOjpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCi17Ci0gICAgaWYgKG5hbWUuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSNpZiBVU0UoQ0YpCi0gICAgc2VhcmNoSXRlbXMu
Y2xlYXIoKTsKLSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gaXRlbXMgPSBhZG9wdENGKHJlaW50
ZXJwcmV0X2Nhc3Q8Q0ZBcnJheVJlZj4oQ0ZQcmVmZXJlbmNlc0NvcHlBcHBWYWx1ZShhdXRvc2F2
ZUtleShuYW1lKS5nZXQoKSwga0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24pKSk7Ci0K
LSAgICBpZiAoIWl0ZW1zIHx8IENGR2V0VHlwZUlEKGl0ZW1zLmdldCgpKSAhPSBDRkFycmF5R2V0
VHlwZUlEKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBzaXplID0gQ0ZBcnJheUdl
dENvdW50KGl0ZW1zLmdldCgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsr
aSkgewotICAgICAgICBDRlN0cmluZ1JlZiBpdGVtID0gKENGU3RyaW5nUmVmKUNGQXJyYXlHZXRW
YWx1ZUF0SW5kZXgoaXRlbXMuZ2V0KCksIGkpOwotICAgICAgICBpZiAoQ0ZHZXRUeXBlSUQoaXRl
bSkgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSkKLSAgICAgICAgICAgIHNlYXJjaEl0ZW1zLmFwcGVu
ZChpdGVtKTsKLSAgICB9Ci0jZW5kaWYKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudVdpbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyOTlhMTMzN2Q3OTFmODJhNzNlOGFlNWE0YTljNzNmZjc0ODhkMTNjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVXaW4uaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBTZWFyY2hQb3B1cE1lbnVXaW5faAotI2Rl
ZmluZSBTZWFyY2hQb3B1cE1lbnVXaW5faAotCi0jaW5jbHVkZSAiUG9wdXBNZW51V2luLmgiCi0j
aW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgU2VhcmNoUG9wdXBNZW51V2luIDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7Ci1wdWJsaWM6
Ci0gICAgU2VhcmNoUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVudCopOwotCi0gICAgdmlydHVh
bCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpOwotICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2Vh
cmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2Vh
cmNoSXRlbXMpOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpOwotICAgIHZpcnR1
YWwgYm9vbCBlbmFibGVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRyPFBvcHVwTWVudVdpbj4g
bV9wb3B1cDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFNlYXJjaFBvcHVwTWVudVdpbl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3VnZ2VzdGlvblBvcHVwTWVudVdp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3VnZ2VzdGlvblBvcHVwTWVudVdp
bi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmY1NjhjZTljMWI0M2JjNjFkODRiNDJkMzI1MGZmZDA5OWM4Zjk4
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TdWdnZXN0
aW9uUG9wdXBNZW51V2luLmNwcApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTdWdnZXN0aW9uUG9wdXBNZW51V2luLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmcuaD4KKworI2lmIFVTRShDRikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdWdnZXN0aW9uUG9wdXBNZW51
V2luOjpTdWdnZXN0aW9uUG9wdXBNZW51V2luKFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorICAg
IDogbV9wb3B1cChhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpKQoreworfQorCitQ
b3B1cE1lbnUqIFN1Z2dlc3Rpb25Qb3B1cE1lbnVXaW46OnBvcHVwTWVudSgpCit7CisgICAgcmV0
dXJuIG1fcG9wdXAuZ2V0KCk7Cit9CisKK2Jvb2wgU3VnZ2VzdGlvblBvcHVwTWVudVdpbjo6ZW5h
YmxlZCgpCit7CisjaWYgVVNFKENGKQorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKworI2lmIFVTRShDRikKK3N0YXRpYyBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGF1dG9zYXZlS2V5KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4g
U3RyaW5nKCJjb20uYXBwbGUuV2ViS2l0LnNlYXJjaEZpZWxkOiIgKyBuYW1lKS5jcmVhdGVDRlN0
cmluZygpOworfQorI2VuZGlmCisKK3ZvaWQgU3VnZ2VzdGlvblBvcHVwTWVudVdpbjo6c2F2ZVJl
Y2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKQoreworICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuOworCisjaWYgVVNFKENGKQorICAgIFJldGFpblB0cjxDRk11dGFibGVBcnJheVJlZj4gaXRl
bXM7CisKKyAgICBzaXplX3Qgc2l6ZSA9IHNlYXJjaEl0ZW1zLnNpemUoKTsKKyAgICBpZiAoc2l6
ZSkgeworICAgICAgICBpdGVtcyA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZU11dGFibGUoMCwgc2l6
ZSwgJmtDRlR5cGVBcnJheUNhbGxCYWNrcykpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHNpemU7ICsraSkKKyAgICAgICAgICAgIENGQXJyYXlBcHBlbmRWYWx1ZShpdGVtcy5nZXQo
KSwgc2VhcmNoSXRlbXNbaV0uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgfQorCisgICAg
Q0ZQcmVmZXJlbmNlc1NldEFwcFZhbHVlKGF1dG9zYXZlS2V5KG5hbWUpLmdldCgpLCBpdGVtcy5n
ZXQoKSwga0NGUHJlZmVyZW5jZXNDdXJyZW50QXBwbGljYXRpb24pOworICAgIENGUHJlZmVyZW5j
ZXNBcHBTeW5jaHJvbml6ZShrQ0ZQcmVmZXJlbmNlc0N1cnJlbnRBcHBsaWNhdGlvbik7CisjZW5k
aWYKK30KKwordm9pZCBTdWdnZXN0aW9uUG9wdXBNZW51V2luOjpsb2FkUmVjZW50U2VhcmNoZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCit7
CisgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyNpZiBVU0UoQ0Yp
CisgICAgc2VhcmNoSXRlbXMuY2xlYXIoKTsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gaXRl
bXMgPSBhZG9wdENGKHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZBcnJheVJlZj4oQ0ZQcmVmZXJlbmNlc0Nv
cHlBcHBWYWx1ZShhdXRvc2F2ZUtleShuYW1lKS5nZXQoKSwga0NGUHJlZmVyZW5jZXNDdXJyZW50
QXBwbGljYXRpb24pKSk7CisKKyAgICBpZiAoIWl0ZW1zIHx8IENGR2V0VHlwZUlEKGl0ZW1zLmdl
dCgpKSAhPSBDRkFycmF5R2V0VHlwZUlEKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNpemVf
dCBzaXplID0gQ0ZBcnJheUdldENvdW50KGl0ZW1zLmdldCgpKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBDRlN0cmluZ1JlZiBpdGVtID0gKENGU3Ry
aW5nUmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoaXRlbXMuZ2V0KCksIGkpOworICAgICAgICBp
ZiAoQ0ZHZXRUeXBlSUQoaXRlbSkgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSkKKyAgICAgICAgICAg
IHNlYXJjaEl0ZW1zLmFwcGVuZChpdGVtKTsKKyAgICB9CisjZW5kaWYKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1N1Z2dlc3Rpb25Qb3B1cE1lbnVXaW4u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TdWdnZXN0aW9uUG9wdXBNZW51V2luLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTJmY2NhYmNhZDI0NWEzNTg1ZjgyMDcwNjBlNWE1MDAwMWVkYjJkNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TdWdnZXN0aW9uUG9w
dXBNZW51V2luLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IFN1Z2dlc3Rpb25Qb3B1cE1lbnVXaW5faAorI2RlZmluZSBTdWdnZXN0aW9uUG9wdXBNZW51V2lu
X2gKKworI2luY2x1ZGUgIlBvcHVwTWVudVdpbi5oIgorI2luY2x1ZGUgIlN1Z2dlc3Rpb25Qb3B1
cE1lbnUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdWdnZXN0aW9uUG9wdXBN
ZW51V2luIDogcHVibGljIFN1Z2dlc3Rpb25Qb3B1cE1lbnUgeworcHVibGljOgorICAgIFN1Z2dl
c3Rpb25Qb3B1cE1lbnVXaW4oUG9wdXBNZW51Q2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIFBvcHVw
TWVudSogcG9wdXBNZW51KCk7CisgICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVt
cyk7CisgICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcyk7CisgICAgdmlydHVhbCBib29s
IGVuYWJsZWQoKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8UG9wdXBNZW51V2luPiBtX3BvcHVw
OworfTsKKworfQorCisjZW5kaWYgLy8gU3VnZ2VzdGlvblBvcHVwTWVudVdpbl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBkMmVjOTU0
YTgzY2ZiMjAzNjJiMGVhNmJjNjY4ODMwM2EzYTNlZTBmLi5lM2FkNWRlM2IxYjQ0NDZlOGZlY2Iz
MzgxZTUwYjJiMTM5ZTI3NTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU2VhcmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTZWFyY2hGaWVsZC5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQAogI2luY2x1ZGUgIlJlbmRlclNj
cm9sbGJhci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CisjaW5jbHVkZSAiU3VnZ2VzdGlvblBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlRleHRDb250cm9s
SW5uZXJFbGVtZW50cy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNTQsMTcgKzU0LDE3
IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFJlbmRlclNlYXJjaEZpZWxkOjpSZW5k
ZXJTZWFyY2hGaWVsZChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lKGVsZW1lbnQpCi0gICAgLCBtX3NlYXJjaFBvcHVwSXNWaXNpYmxl
KGZhbHNlKQotICAgICwgbV9zZWFyY2hQb3B1cCgwKQorICAgICwgbV9zdWdnZXN0aW9uUG9wdXBJ
c1Zpc2libGUoZmFsc2UpCisgICAgLCBtX3N1Z2dlc3Rpb25Qb3B1cCgwKQogewogICAgIEFTU0VS
VChlbGVtZW50LmlzU2VhcmNoRmllbGQoKSk7CiB9CiAKIFJlbmRlclNlYXJjaEZpZWxkOjp+UmVu
ZGVyU2VhcmNoRmllbGQoKQogewotICAgIGlmIChtX3NlYXJjaFBvcHVwKSB7Ci0gICAgICAgIG1f
c2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5kaXNjb25uZWN0Q2xpZW50KCk7Ci0gICAgICAgIG1f
c2VhcmNoUG9wdXAgPSAwOworICAgIGlmIChtX3N1Z2dlc3Rpb25Qb3B1cCkgeworICAgICAgICBt
X3N1Z2dlc3Rpb25Qb3B1cC0+cG9wdXBNZW51KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKKyAgICAg
ICAgbV9zdWdnZXN0aW9uUG9wdXAgPSAwOwogICAgIH0KIH0KIApAQCAtMTAxLDI3ICsxMDEsMjcg
QEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6YWRkU2VhcmNoUmVzdWx0KCkKICAgICAgICAgbV9y
ZWNlbnRTZWFyY2hlcy5yZW1vdmVMYXN0KCk7CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUgPSBhdXRvc2F2ZU5hbWUoKTsKLSAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1f
c2VhcmNoUG9wdXAgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlU2VhcmNoUG9w
dXBNZW51KHRoaXMpOworICAgIGlmICghbV9zdWdnZXN0aW9uUG9wdXApCisgICAgICAgIG1fc3Vn
Z2VzdGlvblBvcHVwID0gZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNyZWF0ZVN1Z2dlc3Rp
b25Qb3B1cE1lbnUodGhpcyk7CiAKLSAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNo
ZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CisgICAgbV9zdWdnZXN0aW9uUG9wdXAtPnNhdmVS
ZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKIH0KIAogdm9pZCBSZW5kZXJT
ZWFyY2hGaWVsZDo6c2hvd1BvcHVwKCkKIHsKLSAgICBpZiAobV9zZWFyY2hQb3B1cElzVmlzaWJs
ZSkKKyAgICBpZiAobV9zdWdnZXN0aW9uUG9wdXBJc1Zpc2libGUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IGRvY3Vt
ZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAg
aWYgKCFtX3N1Z2dlc3Rpb25Qb3B1cCkKKyAgICAgICAgbV9zdWdnZXN0aW9uUG9wdXAgPSBkb2N1
bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlU3VnZ2VzdGlvblBvcHVwTWVudSh0aGlzKTsK
IAotICAgIGlmICghbV9zZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQorICAgIGlmICghbV9zdWdnZXN0
aW9uUG9wdXAtPmVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zZWFyY2hQb3B1
cElzVmlzaWJsZSA9IHRydWU7CisgICAgbV9zdWdnZXN0aW9uUG9wdXBJc1Zpc2libGUgPSB0cnVl
OwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7Ci0gICAg
bV9zZWFyY2hQb3B1cC0+bG9hZFJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMp
OworICAgIG1fc3VnZ2VzdGlvblBvcHVwLT5sb2FkUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNl
bnRTZWFyY2hlcyk7CiAKICAgICAvLyBUcmltIHRoZSByZWNlbnQgc2VhcmNoZXMgbGlzdCBpZiB0
aGUgbWF4aW11bSBzaXplIGhhcyBjaGFuZ2VkIHNpbmNlIHdlIGxhc3Qgc2F2ZWQuCiAgICAgaWYg
KHN0YXRpY19jYXN0PGludD4obV9yZWNlbnRTZWFyY2hlcy5zaXplKCkpID4gaW5wdXRFbGVtZW50
KCkubWF4UmVzdWx0cygpKSB7CkBAIC0xMjksMTYgKzEyOSwxNiBAQCB2b2lkIFJlbmRlclNlYXJj
aEZpZWxkOjpzaG93UG9wdXAoKQogICAgICAgICAgICAgbV9yZWNlbnRTZWFyY2hlcy5yZW1vdmVM
YXN0KCk7CiAgICAgICAgIH0gd2hpbGUgKHN0YXRpY19jYXN0PGludD4obV9yZWNlbnRTZWFyY2hl
cy5zaXplKCkpID4gaW5wdXRFbGVtZW50KCkubWF4UmVzdWx0cygpKTsKIAotICAgICAgICBtX3Nl
YXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7Cisg
ICAgICAgIG1fc3VnZ2VzdGlvblBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNl
bnRTZWFyY2hlcyk7CiAgICAgfQogCi0gICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNo
b3cocGl4ZWxTbmFwcGVkSW50UmVjdChhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKSwgJnZpZXco
KS5mcmFtZVZpZXcoKSwgLTEpOworICAgIG1fc3VnZ2VzdGlvblBvcHVwLT5wb3B1cE1lbnUoKS0+
c2hvdyhwaXhlbFNuYXBwZWRJbnRSZWN0KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KCkpLCAmdmll
dygpLmZyYW1lVmlldygpLCAtMSk7CiB9CiAKIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OmhpZGVQ
b3B1cCgpCiB7Ci0gICAgaWYgKG1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAt
PnBvcHVwTWVudSgpLT5oaWRlKCk7CisgICAgaWYgKG1fc3VnZ2VzdGlvblBvcHVwKQorICAgICAg
ICBtX3N1Z2dlc3Rpb25Qb3B1cC0+cG9wdXBNZW51KCktPmhpZGUoKTsKIH0KIAogTGF5b3V0VW5p
dCBSZW5kZXJTZWFyY2hGaWVsZDo6Y29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25zdApAQCAtMTY2
LDggKzE2Niw4IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OnVwZGF0ZUZyb21FbGVtZW50KCkK
ICAgICBpZiAoY2FuY2VsQnV0dG9uRWxlbWVudCgpKQogICAgICAgICB1cGRhdGVDYW5jZWxCdXR0
b25WaXNpYmlsaXR5KCk7CiAKLSAgICBpZiAobV9zZWFyY2hQb3B1cElzVmlzaWJsZSkKLSAgICAg
ICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CisgICAg
aWYgKG1fc3VnZ2VzdGlvblBvcHVwSXNWaXNpYmxlKQorICAgICAgICBtX3N1Z2dlc3Rpb25Qb3B1
cC0+cG9wdXBNZW51KCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyU2Vh
cmNoRmllbGQ6OnVwZGF0ZUNhbmNlbEJ1dHRvblZpc2liaWxpdHkoKSBjb25zdApAQCAtMjA1LDkg
KzIwNSw5IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBs
aXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50cykKICAgICAgICAgICAgIG1fcmVjZW50U2VhcmNoZXMu
Y2xlYXIoKTsKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZl
TmFtZSgpOwogICAgICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1
cCA9IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhp
cyk7Ci0gICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5h
bWUsIG1fcmVjZW50U2VhcmNoZXMpOworICAgICAgICAgICAgICAgIGlmICghbV9zdWdnZXN0aW9u
UG9wdXApCisgICAgICAgICAgICAgICAgICAgIG1fc3VnZ2VzdGlvblBvcHVwID0gZG9jdW1lbnQo
KS5wYWdlKCktPmNocm9tZSgpLmNyZWF0ZVN1Z2dlc3Rpb25Qb3B1cE1lbnUodGhpcyk7CisgICAg
ICAgICAgICAgICAgbV9zdWdnZXN0aW9uUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBt
X3JlY2VudFNlYXJjaGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7
CkBAIC0zMTEsNyArMzExLDcgQEAgaW50IFJlbmRlclNlYXJjaEZpZWxkOjpzZWxlY3RlZEluZGV4
KCkgY29uc3QKIAogdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6cG9wdXBEaWRIaWRlKCkKIHsKLSAg
ICBtX3NlYXJjaFBvcHVwSXNWaXNpYmxlID0gZmFsc2U7CisgICAgbV9zdWdnZXN0aW9uUG9wdXBJ
c1Zpc2libGUgPSBmYWxzZTsKIH0KIAogYm9vbCBSZW5kZXJTZWFyY2hGaWVsZDo6aXRlbUlzU2Vw
YXJhdG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNlYXJjaEZpZWxkLmgKaW5kZXggZDQxMTRkMzk1OWFjYThhOGRlMmMxZTBhMTIx
YjAxNWI1YzU3Y2ZiOS4uMTJiMzUxNDUxZmI4ZjE5ODFmNTcxMTg2OWYwYjliMDc5OThhMjA5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmgKQEAgLTI5
LDcgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTElucHV0RWxlbWVu
dDsKLWNsYXNzIFNlYXJjaFBvcHVwTWVudTsKK2NsYXNzIFN1Z2dlc3Rpb25Qb3B1cE1lbnU7CiAK
IGNsYXNzIFJlbmRlclNlYXJjaEZpZWxkIEZJTkFMIDogcHVibGljIFJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZSwgcHJpdmF0ZSBQb3B1cE1lbnVDbGllbnQgewogcHVibGljOgpAQCAtNDEsNyAr
NDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRTZWFyY2hSZXN1bHQoKTsKICAgICB2b2lkIHN0
b3BTZWFyY2hFdmVudFRpbWVyKCk7CiAKLSAgICBib29sIHBvcHVwSXNWaXNpYmxlKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWFyY2hQb3B1cElzVmlzaWJsZTsgfQorICAgIGJvb2wgcG9wdXBJc1Zpc2li
bGUoKSBjb25zdCB7IHJldHVybiBtX3N1Z2dlc3Rpb25Qb3B1cElzVmlzaWJsZTsgfQogICAgIHZv
aWQgc2hvd1BvcHVwKCk7CiAgICAgdm9pZCBoaWRlUG9wdXAoKTsKIApAQCAtODUsOCArODUsOCBA
QCBwcml2YXRlOgogICAgIEhUTUxFbGVtZW50KiByZXN1bHRzQnV0dG9uRWxlbWVudCgpIGNvbnN0
OwogICAgIEhUTUxFbGVtZW50KiBjYW5jZWxCdXR0b25FbGVtZW50KCkgY29uc3Q7CiAKLSAgICBi
b29sIG1fc2VhcmNoUG9wdXBJc1Zpc2libGU7Ci0gICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
bV9zZWFyY2hQb3B1cDsKKyAgICBib29sIG1fc3VnZ2VzdGlvblBvcHVwSXNWaXNpYmxlOworICAg
IFJlZlB0cjxTdWdnZXN0aW9uUG9wdXBNZW51PiBtX3N1Z2dlc3Rpb25Qb3B1cDsKICAgICBWZWN0
b3I8U3RyaW5nPiBtX3JlY2VudFNlYXJjaGVzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggNmJjNTBlNTg3MmRiMDQ2ZjJmMjYwYjQzZjcxOGM3MTFmNDU2MmQ2My4uZDI0YWFlNzNj
M2U2NGYwOTI3YWY5MzhlOTgzZDg5NGM4YzIxZjY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0xMjEsOCArMTIxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwv
V2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzRWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1l
bnVFZmwuY3BwCi0gICAgZWZsL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5jcHAK
ICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvU3RvcmFnZVRyYWNrZXJDbGllbnRFZmwuY3BwCisgICAg
ZWZsL1dlYkNvcmVTdXBwb3J0L1N1Z2dlc3Rpb25Qb3B1cE1lbnVFZmwuY3BwCiAgICAgZWZsL1dl
YkNvcmVTdXBwb3J0L1ZpYnJhdGlvbkNsaWVudEVmbC5jcHAKIAogICAgIGVmbC9ld2svZXdrX2F1
dGguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAxMDRiYzU0NDc1ZWI0ZTA0OGE0ZjYwYTE2MmU5NjMxMjc0YTY4MDczLi5iYTA3MjQ0
YWQ1NTU2OTk5OWNmNzMwMGM3ODVjOGY1YmIxZTczMjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNiw4ICsxMzYsNiBAQAogCQk3
QThGRjBEMTEwNzUwMjRBMDBBODBBMDggLyogV2ViSW5zcGVjdG9yUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E4RkYwRDAxMDc1MDI0QTAw
QTgwQTA4IC8qIFdlYkluc3BlY3RvclByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAxQ0I4NTE3MzQzNUM5MDBDNUQ4MDcgLyogUG9w
dXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzAxQ0I4MTE3MzQzNUM5MDBDNUQ4MDcgLyogUG9wdXBNZW51TWFjLmggKi87IH07CiAJCTdD
MDFDQjg2MTczNDM1QzkwMEM1RDgwNyAvKiBQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAxQ0I4MjE3MzQzNUM5MDBDNUQ4MDcg
LyogUG9wdXBNZW51TWFjLm1tICovOyB9OwotCQk3QzAxQ0I4NzE3MzQzNUM5MDBDNUQ4MDcgLyog
U2VhcmNoUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QzAxQ0I4MzE3MzQzNUM5MDBDNUQ4MDcgLyogU2VhcmNoUG9wdXBNZW51TWFj
LmggKi87IH07Ci0JCTdDMDFDQjg4MTczNDM1QzkwMEM1RDgwNyAvKiBTZWFyY2hQb3B1cE1lbnVN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAx
Q0I4NDE3MzQzNUM5MDBDNUQ4MDcgLyogU2VhcmNoUG9wdXBNZW51TWFjLm1tICovOyB9OwogCQk3
RTZGRUYwODA4OTg1QTcyMDBDNDRDM0YgLyogV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U2RkVGMDUwODk4NUE3
MjAwQzQ0QzNGIC8qIFdlYlNjcmlwdERlYnVnRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTZGRUYwOTA4OTg1QTcyMDBDNDRDM0Yg
LyogV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFNkZFRjA2MDg5ODVBNzIwMEM0NEMzRiAvKiBXZWJTY3JpcHRE
ZWJ1Z0RlbGVnYXRlLm1tICovOyB9OwogCQk5MzA0QjMwMDBCMDIzNDE1MDBGNzg1MEQgLyogV2Vi
SWNvbkRhdGFiYXNlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDRCMkZGMEIwMjM0MTUwMEY3ODUwRCAvKiBXZWJJY29uRGF0YWJhc2VJ
bnRlcm5hbC5oICovOyB9OwpAQCAtMzE1LDYgKzMxMyw4IEBACiAJCTkzRUIxNzhEMDlGODhENDYw
MDkxRjhGRiAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0VCMTc4QzA5Rjg4RDQ2MDA5MUY4RkYgLyogV2ViU3lz
dGVtSW50ZXJmYWNlLm1tICovOyB9OwogCQk5M0VCMTc4RjA5Rjg4RDUxMDA5MUY4RkYgLyogV2Vi
U3lzdGVtSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0VCMTc4RTA5Rjg4RDUxMDA5MUY4RkYgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmgg
Ki87IH07CiAJCTkzRkRFOTMzMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkRFOTMy
MEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAqLzsgfTsKKwkJOTY3MkIw
QzExODEwRUVCOTAwNTIzRDEzIC8qIFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2NzJCMEJGMTgxMEVFQjkwMDUy
M0QxMyAvKiBTdWdnZXN0aW9uUG9wdXBNZW51TWFjLmggKi87IH07CisJCTk2NzJCMEMyMTgxMEVF
QjkwMDUyM0QxMyAvKiBTdWdnZXN0aW9uUG9wdXBNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY3MkIwQzAxODEwRUVCOTAwNTIzRDEzIC8q
IFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWMubW0gKi87IH07CiAJCUExN0ExMUIxMTgwREM4NDgwMEU1
NDk4QyAvKiBXZWJQbHVnaW5QYWNrYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QTExQjAxODBEQzg0ODAwRTU0OThDIC8qIFdlYlBs
dWdpblBhY2thZ2VQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTU2ODdCREExMzVCNzkxQTAwNzRDQkNCIC8qIFdlYk5vZGVIaWdobGln
aHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU2
ODdCRDgxMzVCNzkxQTAwNzRDQkNCIC8qIFdlYk5vZGVIaWdobGlnaHRlci5oICovOyB9OwogCQlB
NTY4N0JEQjEzNUI3OTFBMDA3NENCQ0IgLyogV2ViTm9kZUhpZ2hsaWdodGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU2ODdCRDkxMzVCNzkxQTAw
NzRDQkNCIC8qIFdlYk5vZGVIaWdobGlnaHRlci5tbSAqLzsgfTsKQEAgLTU3MSw4ICs1NzEsNiBA
QAogCQk3QThGRjBEMDEwNzUwMjRBMDBBODBBMDggLyogV2ViSW5zcGVjdG9yUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3JQcml2YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDFDQjgxMTczNDM1QzkwMEM1RDgwNyAvKiBQ
b3B1cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9wdXBNZW51
TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDFDQjgyMTczNDM1QzkwMEM1
RDgwNyAvKiBQb3B1cE1lbnVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQb3B1cE1lbnVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdD
MDFDQjgzMTczNDM1QzkwMEM1RDgwNyAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoUG9wdXBNZW51TWFjLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTdDMDFDQjg0MTczNDM1QzkwMEM1RDgwNyAvKiBTZWFyY2hQb3B1
cE1lbnVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZWFy
Y2hQb3B1cE1lbnVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNkZFRjA1
MDg5ODVBNzIwMEM0NEMzRiAvKiBXZWJTY3JpcHREZWJ1Z0RlbGVnYXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2NyaXB0RGVidWdEZWxl
Z2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKIAkJN0U2RkVGMDYwODk4NUE3MjAwQzQ0QzNGIC8qIFdlYlNjcmlwdERlYnVnRGVsZWdh
dGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlNjcmlwdERlYnVnRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk4MzBFODFFMDA1ODUzQUMwMDBBRDA4
OTEgLyogU2VjdXJpdHkuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBTZWN1cml0eS5mcmFt
ZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TZWN1cml0eS5mcmFtZXdv
cms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC02MzcsNiArNjM1LDggQEAKIAkJ
OTNFQjE3OEMwOUY4OEQ0NjAwOTFGOEZGIC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlN5c3RlbUludGVyZmFjZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFQjE3OEUwOUY4OEQ1MTAwOTFGOEZGIC8q
IFdlYlN5c3RlbUludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJTeXN0ZW1JbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREU5
MzIwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIaXN0b3J5SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTY3MkIwQkYxODEwRUVCOTAwNTIzRDEzIC8qIFN1Z2dlc3Rpb25Qb3B1
cE1lbnVNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3VnZ2VzdGlvblBv
cHVwTWVudU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NjcyQjBDMDE4MTBF
RUI5MDA1MjNEMTMgLyogU3VnZ2VzdGlvblBvcHVwTWVudU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlDQUU5RDA3MDI1MkE0MTMwRUNBMTZFQSAvKiBXZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTlDRjBFMjQ5MDIxMzYxQjAw
RUNBMTZFQSAvKiBXZWJGcmFtZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUExN0ExMUIwMTgwREM4
NDgwMEU1NDk4QyAvKiBXZWJQbHVnaW5QYWNrYWdlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJQbHVnaW5QYWNrYWdlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTI5Miw4ICsxMjkyLDggQEAKIAkJCQlCODI5NThEMjEzMjcwN0Qw
MDAwRDBFNzkgLyogQ29ycmVjdGlvblBhbmVsLm1tICovLAogCQkJCTdDMDFDQjgxMTczNDM1Qzkw
MEM1RDgwNyAvKiBQb3B1cE1lbnVNYWMuaCAqLywKIAkJCQk3QzAxQ0I4MjE3MzQzNUM5MDBDNUQ4
MDcgLyogUG9wdXBNZW51TWFjLm1tICovLAotCQkJCTdDMDFDQjgzMTczNDM1QzkwMEM1RDgwNyAv
KiBTZWFyY2hQb3B1cE1lbnVNYWMuaCAqLywKLQkJCQk3QzAxQ0I4NDE3MzQzNUM5MDBDNUQ4MDcg
LyogU2VhcmNoUG9wdXBNZW51TWFjLm1tICovLAorCQkJCTk2NzJCMEJGMTgxMEVFQjkwMDUyM0Qx
MyAvKiBTdWdnZXN0aW9uUG9wdXBNZW51TWFjLmggKi8sCisJCQkJOTY3MkIwQzAxODEwRUVCOTAw
NTIzRDEzIC8qIFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWMubW0gKi8sCiAJCQkJQ0VEQTEyREExNTJD
QkU2ODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovLAogCQkJCUNFREEx
MkQ5MTUyQ0JFNjgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQubW0gKi8sCiAJ
CQkJQjY4MDQ5NzEwRkZCQ0VDMTAwOUY3RjYyIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUuaCAqLywK
QEAgLTE0NTgsNyArMTQ1OCw2IEBACiAJCQkJN0MwMUNCODUxNzM0MzVDOTAwQzVEODA3IC8qIFBv
cHVwTWVudU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyREJFOUYwRjI1MUUzQTAwMzZGOEE2
IC8qIFByb3h5SW5zdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjk4MzYyMTEzNDZEMUIw
MDg5NDExNSAvKiBQcm94eVJ1bnRpbWVPYmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTdDMDFD
Qjg3MTczNDM1QzkwMEM1RDgwNyAvKiBTZWFyY2hQb3B1cE1lbnVNYWMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFREExMkRDMTUyQ0JFNjgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2Q0U1QzI1MTAwQkM1RjUwMDIxOTkzNiAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNURFRkMxMzExRDUzNDRCMDA4
ODUyNzMgLyogV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNjQ0LDYgKzE2NDMsNyBAQAogCQkJCTNBRTE1RDUwMTJEQkRFRDQwMDkzMjNDOCAvKiBX
ZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzQUIwMkIwMDEy
QzEzMkIyMDBGQkI2OTQgLyogV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzQUJCM0M3QTEzMDlDM0I1MDBFOTNEOTQgLyogV2ViU3RvcmFnZVRyYWNrZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk2NzJCMEMxMTgxMEVFQjkwMDUyM0QxMyAvKiBTdWdn
ZXN0aW9uUG9wdXBNZW51TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTAyNzA4MjRCRjAx
MDA4REYwMzggLyogV2ViU3RyaW5nVHJ1bmNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0VC
MTc4RjA5Rjg4RDUxMDA5MUY4RkYgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzZBMkRFQTBGRDJEMDg0MDBEMzEyREIgLyogV2ViVGV4dENvbXBsZXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE5MDQsNyArMTkwNCw2IEBACiAJCQkJMUEyREJF
QTAwRjI1MUUzQTAwMzZGOEE2IC8qIFByb3h5SW5zdGFuY2UubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkwNzBGNTQ5QzE3RjFFNDJCMDAxNjlFMDQgLyogV2ViVXNlck1lZGlhQ2xpZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE2OTgzNkMxMTM0NkQ1NjAwODk0MTE1IC8qIFByb3h5UnVudGltZU9i
amVjdC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTdDMDFDQjg4MTczNDM1QzkwMEM1RDgwNyAvKiBT
ZWFyY2hQb3B1cE1lbnVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRURBMTJEQjE1MkNCRTY4
MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjZDRTVDMjQxMDBCQzVDRTAwMjE5OTM2IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBNURFRkMxNDExRDUzNDRCMDA4ODUyNzMgLyogV2ViQXBwbGljYXRp
b25DYWNoZVF1b3RhTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjAwNCw2ICsyMDAzLDcg
QEAKIAkJCQk5Mzk4MTBDQTA4MjRCRjAxMDA4REYwMzggLyogV2ViTlNXaW5kb3dFeHRyYXMubSBp
biBTb3VyY2VzICovLAogCQkJCUE1OEE1NzlBMTQzRTcyNzAwMDEyNUY1MCAvKiBXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMEQwMDgyNEJGMDEw
MDhERjAzOCAvKiBXZWJQYW5lbEF1dGhlbnRpY2F0aW9uSGFuZGxlci5tIGluIFNvdXJjZXMgKi8s
CisJCQkJOTY3MkIwQzIxODEwRUVCOTAwNTIzRDEzIC8qIFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0I2RkI0RjEwNjM1MzBDMDAwRkRCM0IgLyogV2ViUERG
RG9jdW1lbnRFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4MTExRjA4MjRCRjAxMDA4
REYwMzggLyogV2ViUERGUmVwcmVzZW50YXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4
MTExRTA4MjRCRjAxMDA4REYwMzggLyogV2ViUERGVmlldy5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGJjODdjZjc1Yjc5MzA0MjlhMWFk
ZmIwNmI1ZjI2ZDcxNzdiYzMwOGEuLjRiNmZmMGJiNmQyNWEwN2FlZWRiYzM4MGRiNDM0MDA3ZTIx
YTk0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTUwLDEwICs1
MCwxMCBAQAogI2luY2x1ZGUgIlBvcHVwTWVudUJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUFuZFBhbi5oIgotI2luY2x1ZGUgIlNlYXJjaFBv
cHVwTWVudUJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkUG9pbnRlci5oIgorI2luY2x1ZGUgIlN1
Z2dlc3Rpb25Qb3B1cE1lbnVCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNsaWVudC5oIgpA
QCAtMzA5LDkgKzMwOSw5IEBAIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjCiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQb3B1cE1lbnVCbGFja0JlcnJ5KGNsaWVudCkpOwogfQogCi1QYXNzUmVmUHRy
PFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUGFzc1JlZlB0cjxTdWdnZXN0
aW9uUG9wdXBNZW51PiBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVTdWdnZXN0aW9uUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2VhcmNoUG9wdXBNZW51QmxhY2tCZXJyeShjbGllbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFN1Z2dlc3Rpb25Qb3B1cE1lbnVCbGFja0JlcnJ5KGNsaWVudCkpOwogfQog
CiB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnNldFRvb2xiYXJzVmlzaWJsZShib29sKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYWY2MmRiNGViZjQ3NzkzYmIzYTc1
YmNkYTE0YzhkNmI0OWVkZTAxZS4uYTA5NWEzNjdmMmE1MDVkNjNlOTI4ODY4MmRjNzYyMmEwMGRh
YTk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0xMzYsNyArMTM2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQ
b3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3VnZ2VzdGlvblBvcHVwTWVudT4gY3JlYXRlU3VnZ2Vz
dGlvblBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCAwYmI3MmQyODUwMDYzY2Y2
YmM5NDdkNDE0MmI4NjBkMjg3OTE5MzJhLi5hZTNiY2Y3ZDkxNWEwZTQ1NDI2NTQ5MWE1Yzk5NmQw
YjhhZmFhMTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTQ3LDggKzQ3LDggQEAKICNpbmNsdWRlICJOYXZpZ2F0
aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQb3B1
cE1lbnVFZmwuaCIKLSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVFZmwuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlN1Z2dlc3Rpb25Qb3B1cE1lbnVFZmwuaCIKICNp
bmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgi
CiAjaW5jbHVkZSAiZXdrX2N1c3RvbV9oYW5kbGVyX3ByaXZhdGUuaCIKQEAgLTYwNyw5ICs2MDcs
OSBAQCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1
cE1lbnVFZmwoY2xpZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJv
bWVDbGllbnRFZmw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkgY29uc3QKK1Bhc3NSZWZQdHI8U3VnZ2VzdGlvblBvcHVwTWVudT4gQ2hyb21lQ2xpZW50RWZs
OjpjcmVhdGVTdWdnZXN0aW9uUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51RWZsKGNsaWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3VnZ2VzdGlvblBvcHVwTWVudUVmbChjbGllbnQp
KTsKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggZjIzY2Qw
Y2IzYmM5ODM2MjcxMzU3MmYzMTBmYTRjMjNiZjQ4ZGI1YS4uNzM1ODk5YzVjZGVkZGQ5Njc3OGUw
YWNlZmY5NjExODZhYWUyOGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJl
Y3Rpb24oKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxTdWdnZXN0aW9uUG9wdXBNZW51PiBjcmVhdGVTdWdnZXN0aW9uUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjBlY2IwOTJkYjIzYzc5NWM0MDdlZDBiODkyODM5MGNmMTY1
YzRmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVFZmwuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDggSU5k
VCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVw
TWVudUVmbC5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1TZWFyY2hQb3B1cE1lbnVFZmw6OlNlYXJjaFBvcHVwTWVudUVmbChQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fcG9wdXAoYWRvcHRSZWYobmV3IFBvcHVwTWVudUVm
bChjbGllbnQpKSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1Qb3B1cE1lbnUqIFNl
YXJjaFBvcHVwTWVudUVmbDo6cG9wdXBNZW51KCkKLXsKLSAgICByZXR1cm4gbV9wb3B1cC5nZXQo
KTsKLX0KLQotdm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KLQotdm9pZCBTZWFyY2hQb3B1cE1lbnVFZmw6OmxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KLQotYm9vbCBTZWFyY2hQb3B1cE1lbnVFZmw6OmVuYWJsZWQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUVmbC5oIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlZWM4NGVkMjAwYjZlMDQ2MzI0MjQ4NzA3Njlk
Mzg5MzNhNTc3OWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51RWZsLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5k
ZWYgU2VhcmNoUG9wdXBNZW51RWZsX2gKLSNkZWZpbmUgU2VhcmNoUG9wdXBNZW51RWZsX2gKLQot
I2luY2x1ZGUgIlBvcHVwTWVudUVmbC5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNlYXJjaFBvcHVwTWVudUVmbCA6IHB1Ymxp
YyBTZWFyY2hQb3B1cE1lbnUgewotcHVibGljOgotICAgIGV4cGxpY2l0IFNlYXJjaFBvcHVwTWVu
dUVmbChQb3B1cE1lbnVDbGllbnQqKTsKLQotICAgIHZpcnR1YWwgUG9wdXBNZW51KiBwb3B1cE1l
bnUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2aXJ0
dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVj
dG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpOwot
Ci1wcml2YXRlOgotICAgIFJlZlB0cjxQb3B1cE1lbnVFZmw+IG1fcG9wdXA7Ci19OwotCi19Ci0K
LSNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvU3VnZ2VzdGlvblBvcHVwTWVudUVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9TdWdnZXN0aW9uUG9wdXBNZW51RWZsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YjViZGQ1ZGFkZWUzYjkyZjEyMDk5NjA0Nzc0YWFkZTU0MWFhYjAxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvU3VnZ2VzdGlvblBv
cHVwTWVudUVmbC5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIw
MDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN1Z2dl
c3Rpb25Qb3B1cE1lbnVFZmwuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3VnZ2VzdGlvblBvcHVwTWVudUVmbDo6U3VnZ2VzdGlvblBv
cHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoYWRvcHRS
ZWYobmV3IFBvcHVwTWVudUVmbChjbGllbnQpKSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitQb3B1cE1lbnUqIFN1Z2dlc3Rpb25Qb3B1cE1lbnVFZmw6OnBvcHVwTWVudSgpCit7Cisg
ICAgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7Cit9CisKK3ZvaWQgU3VnZ2VzdGlvblBvcHVwTWVudUVm
bDo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFN1Z2dlc3Rpb25Q
b3B1cE1lbnVFZmw6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0
b3I8U3RyaW5nPiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBTdWdnZXN0
aW9uUG9wdXBNZW51RWZsOjplbmFibGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiB0cnVlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9TdWdnZXN0aW9uUG9wdXBNZW51RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9TdWdnZXN0aW9uUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI0NjAz
NWMwOWI3M2MyNjNjYzRkNWM5NTZkYzEwYmNlNGU3YTNjOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1N1Z2dlc3Rpb25Qb3B1cE1lbnVFZmwuaApA
QCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgU3VnZ2VzdGlvblBv
cHVwTWVudUVmbF9oCisjZGVmaW5lIFN1Z2dlc3Rpb25Qb3B1cE1lbnVFZmxfaAorCisjaW5jbHVk
ZSAiUG9wdXBNZW51RWZsLmgiCisjaW5jbHVkZSAiU3VnZ2VzdGlvblBvcHVwTWVudS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN1Z2dlc3Rpb25Qb3B1cE1lbnVFZmwgOiBwdWJs
aWMgU3VnZ2VzdGlvblBvcHVwTWVudSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3VnZ2VzdGlv
blBvcHVwTWVudUVmbChQb3B1cE1lbnVDbGllbnQqKTsKKworICAgIHZpcnR1YWwgUG9wdXBNZW51
KiBwb3B1cE1lbnUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsK
KyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5h
YmxlZCgpOworCitwcml2YXRlOgorICAgIFJlZlB0cjxQb3B1cE1lbnVFZmw+IG1fcG9wdXA7Cit9
OworCit9CisKKyNlbmRpZiAvLyBTdWdnZXN0aW9uUG9wdXBNZW51RWZsX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4
IGU0YjFiNWU0ZjYzNjE1ZTg5NmFjZjAzZDZmODg3YjE5NzZlY2VjNGYuLjE5MDJlOGY3M2NjMGQ5
NzU3MGQxZThhODVmYmMyOTk1ZWI4MjRhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtNTEsOCArNTEsOCBAQAog
I2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUd0ay5oIgog
I2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCi0jaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51R3RrLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTdWdnZXN0aW9uUG9wdXBN
ZW51R3RrLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NSFRNTEVsZW1l
bnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKQEAgLTkyNSw5ICs5MjUs
OSBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gQ2hyb21lQ2xpZW50OjpjcmVhdGVQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51QwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9w
dXBNZW51R3RrKGNsaWVudCkpOwogfQogCi1QYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitQYXNzUmVmUHRyPFdlYkNvcmU6OlN1Z2dlc3Rpb25Q
b3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlU3VnZ2VzdGlvblBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFNlYXJjaFBvcHVwTWVudUd0ayhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFN1Z2dlc3Rpb25Qb3B1cE1lbnVHdGsoY2xpZW50KSk7CiB9CiAKICNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShOQVRJVkVfRlVMTFNDUkVFTl9WSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggYWFiYzg0Mjg1ZWZmNDBl
YTI2NmQwMzFlNjcyZDIzNGU4MjQ4ZDBlYi4uYTY4NzhhOWUyOGZlNWZjMzdmODNjZmY2ZGMyOGMy
MDdkZDkxMzlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJVUkwuaCIKICNp
bmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKLSNpbmNsdWRlICJTZWFy
Y2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKQEAgLTEzMyw3ICsxMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24o
KTsKICAgICAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3VnZ2VzdGlvblBvcHVwTWVudT4gY3JlYXRlU3VnZ2VzdGlv
blBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShOQVRJVkVfRlVMTFNDUkVFTl9WSURFTykKICAgICAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgTm9kZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKik7CkBAIC0xNDksNyArMTQ4LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQodW5zaWduZWQpIHsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1l
bnVNYWMuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVu
dU1hYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzFjYzc5ODM4OWZhMjI5ZjMy
ODg1OTY5ZjIyMzQzZWVmOTU0NzM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVw
TWVudU1hYy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAq
LwotCi0jaWZuZGVmIFNlYXJjaFBvcHVwTWVudU1hY19oCi0jZGVmaW5lIFNlYXJjaFBvcHVwTWVu
dU1hY19oCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBQb3B1cE1lbnVDbGllbnQ7Ci19Ci0KLWNsYXNzIFBvcHVwTWVu
dU1hYzsKLQotY2xhc3MgU2VhcmNoUG9wdXBNZW51TWFjIDogcHVibGljIFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudSB7Ci1wdWJsaWM6Ci0gICAgU2VhcmNoUG9wdXBNZW51TWFjKFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCopOwotICAgIH5TZWFyY2hQb3B1cE1lbnVNYWMoKTsKLQotICAgIHZpcnR1
YWwgV2ViQ29yZTo6UG9wdXBNZW51KiBwb3B1cE1lbnUoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmlu
Zz4mIHNlYXJjaEl0ZW1zKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIG92
ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIFJlZlB0cjxQb3B1cE1lbnVNYWM+IG1fcG9wdXA7Ci19
OwotCi0KLSNlbmRpZiAvLyBTZWFyY2hQb3B1cE1lbnVNYWNfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51TWFjLm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvU2VhcmNoUG9wdXBNZW51TWFjLm1tCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjVjYzhiYmIxODMwNGU3ZTExNDMxNjNjMjU4YzZmNmQz
MjU0MjIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudU1hYy5tbQorKysg
L2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudU1h
Yy5oIgotCi0jaW5jbHVkZSAiUG9wdXBNZW51TWFjLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQXRv
bWljU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1TZWFyY2hQb3B1cE1l
bnVNYWM6OlNlYXJjaFBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6
IG1fcG9wdXAoYWRvcHRSZWYobmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKSkKLXsKLX0KLQotU2Vh
cmNoUG9wdXBNZW51TWFjOjp+U2VhcmNoUG9wdXBNZW51TWFjKCkKLXsKLX0KLQotc3RhdGljIE5T
U3RyaW5nICphdXRvc2F2ZUtleShjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIFtA
ImNvbS5hcHBsZS5XZWJLaXQuc2VhcmNoRmllbGQ6IiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpu
YW1lXTsKLX0KLQotUG9wdXBNZW51KiBTZWFyY2hQb3B1cE1lbnVNYWM6OnBvcHVwTWVudSgpCi17
Ci0gICAgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7Ci19Ci0KLWJvb2wgU2VhcmNoUG9wdXBNZW51TWFj
OjplbmFibGVkKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBTZWFyY2hQb3B1cE1l
bnVNYWM6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykKLXsKLSAgICBpZiAobmFtZS5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChzZWFyY2hJdGVtcy5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gcmVtb3ZlT2JqZWN0
Rm9yS2V5OmF1dG9zYXZlS2V5KG5hbWUpXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IFJldGFpblB0cjxOU011dGFibGVBcnJheT4gaXRlbXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c2VhcmNoSXRlbXMuc2l6ZSgpXSk7Ci0gICAgZm9y
IChjb25zdCBhdXRvJiBzZWFyY2hJdGVtOiBzZWFyY2hJdGVtcykKLSAgICAgICAgW2l0ZW1zIGFk
ZE9iamVjdDpzZWFyY2hJdGVtXTsKLQotICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIHNldE9iamVjdDppdGVtcy5nZXQoKSBmb3JLZXk6YXV0b3NhdmVLZXkobmFtZSld
OwotfQotCi12b2lkIFNlYXJjaFBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQotewotICAg
IGlmIChuYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2VhcmNoSXRlbXMu
Y2xlYXIoKTsKLSAgICBmb3IgKE5TU3RyaW5nICppdGVtIGluIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIGFycmF5Rm9yS2V5OmF1dG9zYXZlS2V5KG5hbWUpXSkgewotICAg
ICAgICBpZiAoW2l0ZW0gaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkKLSAgICAgICAg
ICAgIHNlYXJjaEl0ZW1zLmFwcGVuZChpdGVtKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9TdWdnZXN0aW9uUG9wdXBNZW51TWFjLmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9TdWdnZXN0aW9uUG9wdXBNZW51TWFjLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWZhNDcwZTNlODVjM2M3MzkyODllNjk0YjVkMDhkNWIwMjQ0ZDM4MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1N1Z2dlc3Rp
b25Qb3B1cE1lbnVNYWMuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
Zm5kZWYgU3VnZ2VzdGlvblBvcHVwTWVudU1hY19oCisjZGVmaW5lIFN1Z2dlc3Rpb25Qb3B1cE1l
bnVNYWNfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9TdWdnZXN0aW9uUG9wdXBNZW51Lmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKK30KKworY2xhc3MgUG9w
dXBNZW51TWFjOworCitjbGFzcyBTdWdnZXN0aW9uUG9wdXBNZW51TWFjIDogcHVibGljIFdlYkNv
cmU6OlN1Z2dlc3Rpb25Qb3B1cE1lbnUgeworcHVibGljOgorICAgIFN1Z2dlc3Rpb25Qb3B1cE1l
bnVNYWMoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50Kik7CisgICAgflN1Z2dlc3Rpb25Qb3B1cE1l
bnVNYWMoKTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51KiBwb3B1cE1lbnUoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgZW5hYmxlZCgpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIFJlZlB0cjxQb3B1
cE1lbnVNYWM+IG1fcG9wdXA7Cit9OworCisKKyNlbmRpZiAvLyBTdWdnZXN0aW9uUG9wdXBNZW51
TWFjX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1N1Z2dl
c3Rpb25Qb3B1cE1lbnVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9T
dWdnZXN0aW9uUG9wdXBNZW51TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3NzUzOGZhMjA2Y2QxZWZhMjQ4
YWQyMTY0OWY5NzAyNjY2NTYxNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9TdWdnZXN0aW9uUG9wdXBNZW51TWFjLm1tCkBAIC0wLDAgKzEsNzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpbXBvcnQgIlN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWMuaCIKKworI2luY2x1ZGUgIlBv
cHVwTWVudU1hYy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworU3VnZ2VzdGlvblBvcHVwTWVudU1hYzo6U3VnZ2VzdGlv
blBvcHVwTWVudU1hYyhQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fcG9wdXAoYWRv
cHRSZWYobmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKSkKK3sKK30KKworU3VnZ2VzdGlvblBvcHVw
TWVudU1hYzo6flN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWMoKQoreworfQorCitzdGF0aWMgTlNTdHJp
bmcgKmF1dG9zYXZlS2V5KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gW0AiY29t
LmFwcGxlLldlYktpdC5zZWFyY2hGaWVsZDoiIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOm5hbWVd
OworfQorCitQb3B1cE1lbnUqIFN1Z2dlc3Rpb25Qb3B1cE1lbnVNYWM6OnBvcHVwTWVudSgpCit7
CisgICAgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7Cit9CisKK2Jvb2wgU3VnZ2VzdGlvblBvcHVwTWVu
dU1hYzo6ZW5hYmxlZCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU3VnZ2VzdGlv
blBvcHVwTWVudU1hYzo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQoreworICAgIGlmIChuYW1lLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNlYXJjaEl0ZW1zLmlzRW1wdHko
KSkgeworICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSByZW1v
dmVPYmplY3RGb3JLZXk6YXV0b3NhdmVLZXkobmFtZSldOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBpdGVtcyA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpzZWFyY2hJdGVtcy5zaXplKCldKTsK
KyAgICBmb3IgKGNvbnN0IGF1dG8mIHNlYXJjaEl0ZW06IHNlYXJjaEl0ZW1zKQorICAgICAgICBb
aXRlbXMgYWRkT2JqZWN0OnNlYXJjaEl0ZW1dOworCisgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gc2V0T2JqZWN0Oml0ZW1zLmdldCgpIGZvcktleTphdXRvc2F2ZUtl
eShuYW1lKV07Cit9CisKK3ZvaWQgU3VnZ2VzdGlvblBvcHVwTWVudU1hYzo6bG9hZFJlY2VudFNl
YXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0
ZW1zKQoreworICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
c2VhcmNoSXRlbXMuY2xlYXIoKTsKKyAgICBmb3IgKE5TU3RyaW5nICppdGVtIGluIFtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGFycmF5Rm9yS2V5OmF1dG9zYXZlS2V5KG5h
bWUpXSkgeworICAgICAgICBpZiAoW2l0ZW0gaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3Nd
XSkKKyAgICAgICAgICAgIHNlYXJjaEl0ZW1zLmFwcGVuZChpdGVtKTsKKyAgICB9Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDQ1ZGE4ZWJmNGY2ODBiZmY1M2I4MjIyN2FhNDUyZjBjMjEyNDAxYjkuLmFjZWMzMjVjNDJh
YWU5ZTUzZDE0YTk3Njc4M2Y0NTMxOTAyM2E3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODQsNyArMTg0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVX
cml0aW5nRGlyZWN0aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBv
cHVwKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U3VnZ2VzdGlvblBv
cHVwTWVudT4gY3JlYXRlU3VnZ2VzdGlvblBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQqKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSBPVkVSUklERSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDBlOTk2YWQ0
NGJlZmI4MTg3YzNmY2RiYmQ2ZWVhY2UyZGY3ZWY1YjYuLjBkMWVlMGNlOGZhMDc1Y2QwMTU4MTdi
ODIxZWE1ZmRhMDIwZDEzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIkRP
TUVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0
ICJQb3B1cE1lbnVNYWMuaCIKLSNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudU1hYy5oIgorI2ltcG9y
dCAiU3VnZ2VzdGlvblBvcHVwTWVudU1hYy5oIgogI2ltcG9ydCAiV2ViQmFzZVBsdWdpblBhY2th
Z2UuaCIKICNpbXBvcnQgIldlYkRlZmF1bHRVSURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJEZWxl
Z2F0ZUltcGxlbWVudGF0aW9uQ2FjaGluZy5oIgpAQCAtODUzLDkgKzg1Myw5IEBAIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVNYWMoY2xp
ZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQq
IGNsaWVudCkgY29uc3QKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U3VnZ2VzdGlvblBvcHVwTWVudT4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTdWdnZXN0aW9uUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vh
cmNoUG9wdXBNZW51TWFjKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3VnZ2Vz
dGlvblBvcHVwTWVudU1hYyhjbGllbnQpKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNo
b3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMWY0ZTlhOWQwNzY2
NDZhYzhiMjhjNzIyZmQzNzNhODkyOWI5NDMzYi4uNDY0ZmNhNzI3NzU2OTM5NDUwYjJlNmRlYjFk
OGQ4Mjc2NWNkMGUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC01OCw3ICs1OCw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUG9wdXBNZW51V2luLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1
cE1lbnVXaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N1Z2dlc3Rpb25Qb3B1cE1lbnVXaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8d2NoYXIuaD4K
IApAQCAtODE3LDkgKzgxNyw5IEBAIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKTsKIH0KIAotUGFzc1JlZlB0cjxTZWFy
Y2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUGFzc1JlZlB0cjxTdWdnZXN0aW9uUG9wdXBNZW51
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVN1Z2dlc3Rpb25Qb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1
cE1lbnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdWdnZXN0aW9uUG9w
dXBNZW51V2luKGNsaWVudCkpOwogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCA4ODM0MTJkMGNjYTc0NmNlYzI2ZWUwMWEwY2QyNWU1MzQwNjU3YWY1Li4zODFhNDRjZTgx
ZTc4ZGYwMDQ0YmVjYzhlZDlkZTU2ZjgyZTQwNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTYxLDcgKzE2MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51
V3JpdGluZ0RpcmVjdGlvbigpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlN1Z2dlc3Rpb25Qb3B1cE1lbnU+IGNyZWF0ZVN1Z2dlc3Rpb25Qb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29u
c3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAK
aW5kZXggY2Q4NDg3OTQxOTBmY2NjODg2ODNmN2JiYzY2YzMwZWE4NTE3ZTBiMC4uMmE3YTI3NWRk
YjI1NDFiOWVlNzNiZmE2NTNjYzUzNGNhM2FmMDcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk5hdmln
YXRpb25BY3Rpb24uaCIKICNpbmNsdWRlICJQb3B1cE1lbnVXaW4uaCIKLSNpbmNsdWRlICJTZWFy
Y2hQb3B1cE1lbnVXaW4uaCIKKyNpbmNsdWRlICJTdWdnZXN0aW9uUG9wdXBNZW51V2luLmgiCiAj
aW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAt
NDAwLDkgKzQwMCw5IEBAIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWVDbGllbnRXaW5DRTo6
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50CiAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VhcmNoUG9w
dXBNZW51PiBDaHJvbWVDbGllbnRXaW5DRTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCogY2xpZW50KSBjb25zdAorUGFzc1JlZlB0cjxTdWdnZXN0aW9uUG9wdXBNZW51PiBD
aHJvbWVDbGllbnRXaW5DRTo6Y3JlYXRlU3VnZ2VzdGlvblBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVw
TWVudVdpbihjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN1Z2dlc3Rpb25Qb3B1
cE1lbnVXaW4oY2xpZW50KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5o
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5o
CmluZGV4IDJjZDY5YWQyYzVhNDRjZWMzNWZiZjY3ZmIwYzYyZjkyZDgxZTdhNTYuLjAwNGI4MzFk
NWEzODRmZmE2OGE3ODViOGY4NzNhMzY5MTFmMjdhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKQEAgLTE2NSw3
ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRG
b2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVk
UG9wdXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNo
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTdWdnZXN0aW9uUG9wdXBNZW51PiBjcmVhdGVTdWdnZXN0aW9u
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0CmluZGV4IGI3Y2YyMzI2ZDdlNTFhNTQyMWE1NGRhODVkZDZjZTdmMTEzOTA5
NjMuLjI2Njg1ZjYwZjkyNWY0NzY1ZTQwNDNhNTUxYzE2ZDRkZjliZTdjZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CkBAIC01MzksNyArNTM5LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z0luQ2xpZW50LmNwcAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAotICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3VnZ2VzdGlvblBvcHVwTWVudS5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9E
ZWNvZGVyQWRhcHRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDU5MzVl
MzFkN2E0OWFlYThiYTdmZTc5YTgxY2UzZDIxZGI5YTRkY2UuLmYyMzEyYjJiMzg1NjdhODg2ZjQy
Y2IyMDRjNjNhNzAxYjY3NDA2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MTIzNCw4ICsxMjM0LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdJbkNsaWVudC5oIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggXAotCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
LmNwcCBcCi0JU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFy
Y2hQb3B1cE1lbnUuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTdWdnZXN0aW9uUG9wdXBNZW51LmNwcCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTdWdnZXN0aW9uUG9wdXBNZW51LmggXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGll
bnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RlY29kZXJBZGFwdGVy
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTBkNzFlNjZiODM2ZWJjYzVjMTZiNDJjODc2MmViNGYzNDUxOTQwYy4uNjNl
OWEyZTcwNzIwNDg5Nzc1YWMwMGY3NzFkMjk5ZWQyNjE2MGFjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjY3LDYgKzY2Nyw4
IEBACiAJCTkzRkM2N0JFMTJEM0NDRjIwMEE2MDYxMCAvKiBEZWNvZGVyQWRhcHRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGQzY3OUUxMkQzQ0M3
NDAwQTYwNjEwIC8qIERlY29kZXJBZGFwdGVyLmggKi87IH07CiAJCTkzRkM2N0JGMTJEM0NDRjIw
MEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZDNjc5RjEyRDNDQzc0MDBBNjA2MTAgLyogRW5jb2RlckFk
YXB0ZXIuY3BwICovOyB9OwogCQk5M0ZDNjdDMDEyRDNDQ0YyMDBBNjA2MTAgLyogRW5jb2RlckFk
YXB0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RkM2N0EwMTJEM0NDNzQwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5oICovOyB9OworCQk5NjM1
Qjk0NjE4MTE3MTQwMDA4MjhDMzYgLyogV2ViU3VnZ2VzdGlvblBvcHVwTWVudS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjkyQUZBQjE4MTExOTY0
MDA5RkZDNDUgLyogV2ViU3VnZ2VzdGlvblBvcHVwTWVudS5jcHAgKi87IH07CisJCTk2MzVCOTQ3
MTgxMTcxNEYwMDgyOEMzNiAvKiBXZWJTdWdnZXN0aW9uUG9wdXBNZW51LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NjkyQUZBQzE4MTExOTY0MDA5RkZD
NDUgLyogV2ViU3VnZ2VzdGlvblBvcHVwTWVudS5oICovOyB9OwogCQk5RjU0Rjg4RjE2NDg4RTg3
MDA3REY4MUEgLyogQ2hpbGRQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJv
Y2Vzc01hYy5tbSAqLzsgfTsKIAkJOUY1NEY4OTUxNjQ4QUUwRjAwN0RGODFBIC8qIFBsdWdpblBy
b2Nlc3NNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUY1NEY4OTQxNjQ4QUUwRTAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2Vy
TWFjLm1tICovOyB9OwogCQk5RkI1RjM5NDE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJp
dmF0ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlGQjVGMzkyMTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1tICovOyB9
OwpAQCAtMTE0OCw4ICsxMTUwLDYgQEAKIAkJQ0VEQTEyRTMxNTJDRDFCMzAwRDlFMDhEIC8qIFdl
YkFsdGVybmF0aXZlVGV4dENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZl
VGV4dENsaWVudC5oICovOyB9OwogCQlEM0I5NDg0NjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9w
dXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQzQjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovOyB9OwogCQlE
M0I5NDg0NzExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEM0I5NDg0MzExRkY0QjY1MDAwMzJCMzkg
LyogV2ViUG9wdXBNZW51LmggKi87IH07Ci0JCUQzQjk0ODQ4MTFGRjRCNjUwMDAzMkIzOSAvKiBX
ZWJTZWFyY2hQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVu
dS5jcHAgKi87IH07Ci0JCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1
cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQz
Qjk0ODQ1MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLzsgfTsKIAkJ
REY1OEM2MzYxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjU4QzYzNTEzNzFB
Q0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSAqLzsgfTsKIAkJRTExRDM1
QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk2N0UzNzE1MEFCNUUyMDBD
NzMxNjkgLyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgKi87IH07CiAJCUUxMzNGRDhBMTQyM0RE
N0YwMEZDN0JGQiAvKiBXZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25z
ICovOyB9OwpAQCAtMjE1Nyw2ICsyMTU3LDggQEAKIAkJOTNGQzY3OUUxMkQzQ0M3NDAwQTYwNjEw
IC8qIERlY29kZXJBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERl
Y29kZXJBZGFwdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRkM2NzlGMTJE
M0NDNzQwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFbmNvZGVyQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRkM2N0EwMTJEM0NDNzQwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbmNvZGVyQWRhcHRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NjkyQUZBQjE4MTExOTY0MDA5RkZDNDUgLyogV2ViU3Vn
Z2VzdGlvblBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJTdWdnZXN0aW9uUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTY5MkFGQUMxODExMTk2NDAwOUZGQzQ1IC8qIFdlYlN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU3VnZ2VzdGlvblBvcHVwTWVudS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEg
LyogQ2hpbGRQcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ2hpbGRQcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
RjU0Rjg5NDE2NDhBRTBFMDA3REY4MUEgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzTWFuYWdl
ck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZCNUYzOTIxNjlFNkE4MDAw
MkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBXS0NvbnRleHRQcml2YXRlTWFjLm1tOyBwYXRoID0gbWFjL1dLQ29u
dGV4dFByaXZhdGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjc1LDgg
KzI2NzcsNiBAQAogCQlDRURBMTJERjE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVU
ZXh0Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFs
dGVybmF0aXZlVGV4dENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQz
Qjk0ODQyMTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRDNCOTQ4NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQb3B1cE1lbnUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDNCOTQ4NDQxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNl
YXJjaFBvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTZWFyY2hQb3B1cE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlEM0I5
NDg0NTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlYXJjaFBvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hl
ZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJXaGVl
bEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3MUFDQTAw
MEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5p
Y25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UuaWNuczsgbmFtZSA9IFdlYktpdC5pY25zOyBwYXRoID0gUmVzb3VyY2VzL1dlYktpdC5pY25z
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDA4Nyw4ICs0MDg3LDggQEAKIAkJCQkz
MUQ1OTI5RDE2NkUwNjAwMDBFNkJGMDIgLyogV2ViUGx1Z0luQ2xpZW50LmggKi8sCiAJCQkJRDNC
OTQ4NDIxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5jcHAgKi8sCiAJCQkJRDNCOTQ4
NDMxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlBvcHVwTWVudS5oICovLAotCQkJCUQzQjk0ODQ0MTFG
RjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuY3BwICovLAotCQkJCUQzQjk0ODQ1
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCAqLywKKwkJCQk5NjkyQUZB
QjE4MTExOTY0MDA5RkZDNDUgLyogV2ViU3VnZ2VzdGlvblBvcHVwTWVudS5jcHAgKi8sCisJCQkJ
OTY5MkFGQUMxODExMTk2NDAwOUZGQzQ1IC8qIFdlYlN1Z2dlc3Rpb25Qb3B1cE1lbnUuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gV2ViQ29yZVN1cHBvcnQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtNTQ0Myw2ICs1NDQzLDcgQEAKIAkJCQk1MUNCQkExMDE2NTIxOUI2MDA1QkU4RkQg
LyogTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
ODI5REE2MTYzN0M3MEMwMDA5NTNENiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMUEyRUM1NjE0ODk5QzA5MDA4MTBENzEgLyogTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTk2MzVCOTQ3MTgxMTcx
NEYwMDgyOEMzNiAvKiBXZWJTdWdnZXN0aW9uUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTMxMjYxRjE0OEZGODJDMDBCQTJBMzkgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEyRUM1MjE0ODk5ODE5MDA4MTBENzEg
LyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMkQ4NDhCMTI3RjZBNDkwMDFFQjk2MiAvKiBOUElkZW50aWZpZXJEYXRhLmgg
aW4gSGVhZGVycyAqLywKQEAgLTU2OTMsNyArNTY5NCw2IEBACiAJCQkJMzMzNjc2NTgxMzBDOUVD
QjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEwQUZGQkExNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYwNjBFMDE2NTQzMTdGMDBGMzI4MUIgLyogV2Vi
UmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRDNCOTQ4NDkxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjYzNDQ0NTYxMkE4ODVDODAwMDYxMkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0M1NzE1QjExNUFEQUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJmYWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU5NEFCQjExMkExRkI2MDA5REU3QzcgLyogV2ViVUlD
bGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNjYyMiw2ICs2NjIyLDcgQEAKIAkJCQkxQThFRkRG
RTEyNTNDQjZFMDBGNzA2N0YgLyogRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5M0ZDNjdCRDEyRDNDQ0YyMDBBNjA2MTAgLyogRGVjb2RlckFkYXB0ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFODFEOTgxMzFBRTAyMTAwMjQxOTEwIC8qIERpY3Rpb25hcnlQb3B1cElu
Zm8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTYzNUI5NDYxODExNzE0MDAwODI4QzM2IC8qIFdl
YlN1Z2dlc3Rpb25Qb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2N0VFQTExNzAz
NzdCRjAwNzY4MUNBIC8qIERpc2tDYWNoZU1vbml0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
MThFOEYwNzE2QjIwOTM3MDBFOTE0MjkgLyogRG93bmxvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ0N0I1NkMxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1t
IGluIFNvdXJjZXMgKi8sCkBAIC03MDA3LDcgKzcwMDgsNiBAQAogCQkJCTUxMEFGRkI5MTY1NDIw
NDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGQjA4RkYxNjM5REUxQTAwRUMzMjRBIC8qIFdl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlEM0I5NDg0ODEx
RkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDQzU3MTVDMTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDMDMzN0REODEyN0E1MUI2MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU5NEFCQTExMkExRkI2MDA5REU3QzcgLyogV2Vi
VUlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50LmNwcAppbmRleCAzYWY2Y2Y0OWE1MTkyMmY5MGZlNmJiYmI4NGEzMTM3
YmU5ODAzYTQyLi40YjFmZGI2MTliMmEwMjNhODM1MjQ5YTk4NmIxNTFhMDBmY2JhZThjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAKQEAgLTY4LDkg
KzY4LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dEZpZWxkRGlk
RW5kRWRpdGluZyhXZWJQYWdlKiBwYWdlLCBIVE1MSW5wCiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKFdlYlBhZ2UqIHBhZ2UsIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCwgV2ViRnJhbWUqIGZyYW1lKQogeworICAgIHBy
aW50ZigiSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6JXMoJWQpXG4iLCBfX0ZVTkNUSU9O
X18sIF9fTElORV9fKTsKICAgICBpZiAoIW1fY2xpZW50LnRleHREaWRDaGFuZ2VJblRleHRGaWVs
ZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgcHJpbnRmKCJJbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50OjolcyglZClcbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogICAgIFJlZlB0cjxJ
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IG5vZGVIYW5kbGUgPSBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGU6OmdldE9yQ3JlYXRlKGlucHV0RWxlbWVudCk7CiAgICAgbV9jbGllbnQudGV4dERpZENo
YW5nZUluVGV4dEZpZWxkKHRvQVBJKHBhZ2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgdG9B
UEkoZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCBmMjU0MmUwMWE5ZWM5NDM1N2NmOGRjOGU0YjM0OTY5NWM4MmRkYWU0Li5jMTRkNmEx
MTc0ZDZlYjMwMGE2NTgzOGU1ZmZjZjc0ZDFhMGZlZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC00Nyw4ICs0Nyw4IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oIgotI2luY2x1ZGUgIldlYlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldlYlNlY3Vy
aXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV2ViU3VnZ2VzdGlvblBvcHVwTWVudS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JDaG9v
c2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KQEAgLTc1Miw5ICs3
NTIsOSBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZQogICAgIHJldHVybiBXZWJQb3B1cE1lbnU6
OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CiB9CiAKLVBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNo
UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1Bhc3NSZWZQdHI8V2ViQ29yZTo6U3Vn
Z2VzdGlvblBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTdWdnZXN0aW9uUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAogewotICAgIHJldHVy
biBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0dXJu
IFdlYlN1Z2dlc3Rpb25Qb3B1cE1lbnU6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CiB9CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBj
MmEzMDBjNDc0MjJhMmZiMzM0Njk5NDJhMWE4Njc1NDIzYTg1YWI5Li41ZmE0MzA0NTQ4ZWMzOTY0
ZmVmMGZhZjA3MWVkNGRlMGMxNGM2OWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE3Nyw3
ICsxNzcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50
Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGhhc09wZW5lZFBvcHVwKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U3VnZ2VzdGlvblBvcHVwTWVudT4gY3JlYXRlU3VnZ2VzdGlvblBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdCBPVkVSUklERTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBn
cmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCmluZGV4IDk4MWYwMTk2MTQ3MzViY2IzZjNkOGRmNWI3MWU1YzYxNjExYTZhOTguLjAyYTVi
NGY3MTUyMjY2NWM2OTcxOTMwODFmMjAxM2ZkYTVjYjBiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKQEAgLTMxOSw2ICszMTksNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dERpZENo
YW5nZUluVGV4dEZpZWxkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpc0hUTUxJbnB1dEVs
ZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIHByaW50ZigiV2ViRWRpdG9y
Q2xpZW50OjolcyglZClcbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18pOwogICAgIGlmICghVXNl
clR5cGluZ0dlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyVHlwaW5nR2VzdHVyZSgpIHx8
IFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yOjpmb2N1c2VkRWxlbWVudEF0R2VzdHVyZVN0YXJ0
KCkgIT0gZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVu
dS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmOGY4YjMwNDhmZWRkOTFkZDdk
OWUyZGRjOTJlMzNjZmRhNmQyNjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
ZWFyY2hQb3B1cE1lbnUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAq
Ci0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSAqCi0gKi8KLQotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViU2Vh
cmNoUG9wdXBNZW51LmgiCi0KLSNpbmNsdWRlICJXZWJQYWdlLmgiCi0jaW5jbHVkZSAiV2ViUGFn
ZVByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotUGFzc1JlZlB0cjxXZWJTZWFyY2hQb3B1cE1lbnU+IFdlYlNlYXJj
aFBvcHVwTWVudTo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UsIFBvcHVwTWVudUNsaWVudCogY2xpZW50
KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VhcmNoUG9wdXBNZW51KHBhZ2UsIGNs
aWVudCkpOwotfQotCi1XZWJTZWFyY2hQb3B1cE1lbnU6OldlYlNlYXJjaFBvcHVwTWVudShXZWJQ
YWdlKiBwYWdlLCBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fcG9wdXAoV2ViUG9w
dXBNZW51OjpjcmVhdGUocGFnZSwgY2xpZW50KSkKLXsKLX0KLQotUG9wdXBNZW51KiBXZWJTZWFy
Y2hQb3B1cE1lbnU6OnBvcHVwTWVudSgpCi17Ci0gICAgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7Ci19
Ci0KLXZvaWQgV2ViU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpCi17Ci0g
ICAgaWYgKG5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJQYWdlKiBw
YWdlID0gbV9wb3B1cC0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgc2VhcmNo
SXRlbXMpLCBwYWdlLT5wYWdlSUQoKSk7Ci19Ci0KLXZvaWQgV2ViU2VhcmNoUG9wdXBNZW51Ojps
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5n
PiYgcmVzdWx0SXRlbXMpCi17Ci0gICAgaWYgKG5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBXZWJQYWdlKiBwYWdlID0gbV9wb3B1cC0+cGFnZSgpOwotICAgIGlmICghcGFn
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9hZFJl
Y2VudFNlYXJjaGVzKG5hbWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2FkUmVjZW50U2Vh
cmNoZXM6OlJlcGx5KHJlc3VsdEl0ZW1zKSwgcGFnZS0+cGFnZUlEKCkpOwotfQotCi1ib29sIFdl
YlNlYXJjaFBvcHVwTWVudTo6ZW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGY4OTEwZjc4NGY2YzlkNTRkMGE5YmQ0ZGE1MWRmZjExN2FhM2M5
MzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaAor
KysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRl
ZiBXZWJTZWFyY2hQb3B1cE1lbnVfaAotI2RlZmluZSBXZWJTZWFyY2hQb3B1cE1lbnVfaAotCi0j
aW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1l
bnUuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlNlYXJjaFBvcHVwTWVudSA6
IHB1YmxpYyBXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnUgewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlKFdlYlBhZ2UqLCBXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqKTsKLQotICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51KiBwb3B1
cE1lbnUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNv
bnN0IFdURjo6QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgV1RGOjpBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBPVkVSUklERTsKLQotcHJpdmF0
ZToKLSAgICBXZWJTZWFyY2hQb3B1cE1lbnUoV2ViUGFnZSosIFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopOwotCi0gICAgUmVmUHRyPFdlYlBvcHVwTWVudT4gbV9wb3B1cDsKLX07Ci0KLX0KLQot
I2VuZGlmIC8vIFdlYlNlYXJjaFBvcHVwTWVudV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN1Z2dlc3Rpb25Qb3B1cE1lbnUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdWdnZXN0aW9uUG9w
dXBNZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODBhN2U1YWU1MGQzNGU3M2VlMDNkMTZiYTg1NmZjNDVl
M2MyYmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTdWdnZXN0aW9uUG9wdXBNZW51LmNwcApAQCAtMCwwICsxLDc5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJTdWdnZXN0aW9uUG9wdXBNZW51LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJTdWdnZXN0aW9uUG9wdXBN
ZW51PiBXZWJTdWdnZXN0aW9uUG9wdXBNZW51OjpjcmVhdGUoV2ViUGFnZSogcGFnZSwgUG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTdWdnZXN0
aW9uUG9wdXBNZW51KHBhZ2UsIGNsaWVudCkpOworfQorCitXZWJTdWdnZXN0aW9uUG9wdXBNZW51
OjpXZWJTdWdnZXN0aW9uUG9wdXBNZW51KFdlYlBhZ2UqIHBhZ2UsIFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KQorICAgIDogbV9wb3B1cChXZWJQb3B1cE1lbnU6OmNyZWF0ZShwYWdlLCBjbGllbnQp
KQoreworfQorCitQb3B1cE1lbnUqIFdlYlN1Z2dlc3Rpb25Qb3B1cE1lbnU6OnBvcHVwTWVudSgp
Cit7CisgICAgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7Cit9CisKK3ZvaWQgV2ViU3VnZ2VzdGlvblBv
cHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKQoreworICAgIGlmIChuYW1lLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViUGFnZSogcGFnZSA9IG1fcG9wdXAtPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIHNlYXJjaEl0ZW1zKSwgcGFnZS0+cGFnZUlE
KCkpOworfQorCit2b2lkIFdlYlN1Z2dlc3Rpb25Qb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hl
cyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiByZXN1bHRJdGVtcykK
K3sKKyAgICBpZiAobmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlBh
Z2UqIHBhZ2UgPSBtX3BvcHVwLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2FkUmVjZW50U2VhcmNoZXMobmFt
ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvYWRSZWNlbnRTZWFyY2hlczo6UmVwbHkocmVz
dWx0SXRlbXMpLCBwYWdlLT5wYWdlSUQoKSk7Cit9CisKK2Jvb2wgV2ViU3VnZ2VzdGlvblBvcHVw
TWVudTo6ZW5hYmxlZCgpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTdWdnZXN0aW9uUG9wdXBNZW51LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlN1Z2dlc3Rpb25Qb3B1cE1lbnUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTI2
ZDZjZGQzNDc1Yzg1MGQ3YzBlMzA4YzI0NTNjY2Q1ZjY5MTQyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdWdnZXN0aW9uUG9w
dXBNZW51LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFdl
YlN1Z2dlc3Rpb25Qb3B1cE1lbnVfaAorI2RlZmluZSBXZWJTdWdnZXN0aW9uUG9wdXBNZW51X2gK
KworI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU3VnZ2VzdGlv
blBvcHVwTWVudS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3VnZ2VzdGlv
blBvcHVwTWVudSA6IHB1YmxpYyBXZWJDb3JlOjpTdWdnZXN0aW9uUG9wdXBNZW51IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJTdWdnZXN0aW9uUG9wdXBNZW51PiBjcmVhdGUo
V2ViUGFnZSosIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopOworCisgICAgdmlydHVhbCBXZWJD
b3JlOjpQb3B1cE1lbnUqIHBvcHVwTWVudSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
YXZlUmVjZW50U2VhcmNoZXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxv
YWRSZWNlbnRTZWFyY2hlcyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0
cmluZz4mIHNlYXJjaEl0ZW1zKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgp
IE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFdlYlN1Z2dlc3Rpb25Qb3B1cE1lbnUoV2ViUGFn
ZSosIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopOworCisgICAgUmVmUHRyPFdlYlBvcHVwTWVu
dT4gbV9wb3B1cDsKK307CisKK30KKworI2VuZGlmIC8vIFdlYlN1Z2dlc3Rpb25Qb3B1cE1lbnVf
aAo=
</data>
<flag name="review"
          id="244632"
          type_id="1"
          status="-"
          setter="changseok"
    />
          </attachment>
      

    </bug>

</bugzilla>