<?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>194129</bug_id>
          
          <creation_ts>2019-01-31 17:18:52 -0800</creation_ts>
          <short_desc>Move XPCService entry points from mac directory to new Cocoa directory</short_desc>
          <delta_ts>2019-02-01 15:34:30 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1500922</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-31 17:18:52 -0800</bug_when>
    <thetext>Move XPCService entry points from mac directory to new Cocoa directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500926</commentid>
    <comment_count>1</comment_count>
      <attachid>360813</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-31 17:19:40 -0800</bug_when>
    <thetext>Created attachment 360813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501143</commentid>
    <comment_count>2</comment_count>
      <attachid>360868</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-01 09:48:08 -0800</bug_when>
    <thetext>Created attachment 360868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501280</commentid>
    <comment_count>3</comment_count>
      <attachid>360868</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-01 14:20:35 -0800</bug_when>
    <thetext>Comment on attachment 360868
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501325</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-01 15:33:11 -0800</bug_when>
    <thetext>http://trac.webkit.org/r240885</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501326</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-01 15:34:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/47752389&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360813</attachid>
            <date>2019-01-31 17:19:40 -0800</date>
            <delta_ts>2019-02-01 09:48:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194129-20190131171938.patch</filename>
            <type>text/plain</type>
            <size>69607</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDA4MzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAxLTMxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBYUENTZXJ2
aWNlIGVudHJ5IHBvaW50cyBmcm9tIG1hYyBkaXJlY3RvcnkgdG8gbmV3IENvY29hIGRpcmVjdG9y
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9OZXR3b3JrU2VydmljZS54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9QbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L1dlYkNvbnRlbnRTZXJ2aWNlLnhjY29uZmlnOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvQ29jb2E6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RW50cnlQb2ludC9tYWMuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWM6
IFJlbW92ZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMuCisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYzogUmVtb3ZlZC4KKyAgICAgICAgKiBT
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMuCisgICAgICAgICogU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oOgor
ICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbToKKyAgICAgICAgKiBTaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9tYWM6IFJlbW92ZWQuCisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2E6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjOiBSZW1vdmVkLgorCiAyMDE5LTAxLTMxICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHIyNDA4
MDUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJldmlzaW9uIDI0MDI4NSkKKysrIFNvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBA
QCBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzCiAKIE5ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3dubG9hZENvY29hLm1tCiAKLU5ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCitOZXR3
b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRy
eVBvaW50Lm1tCiAKIE5ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQogCkBA
IC04MSw3ICs4MSw3IEBAIFBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KIAogUGxhdGZv
cm0vdW5peC9FbnZpcm9ubWVudFV0aWxpdGllcy5jcHAKIAotUGx1Z2luUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIEBuby11bmlmeQor
UGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW0gQG5vLXVuaWZ5CiAKIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eU1hYy5tbSBAbm8tdW5pZnkKIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NN
YWMubW0gQG5vLXVuaWZ5CkBAIC0xNDcsOCArMTQ3LDggQEAgU2hhcmVkL0NvY29hL1dLTlNVUkxF
eHRyYXMubW0KIFNoYXJlZC9Db2NvYS9XS05TVVJMUmVxdWVzdC5tbQogU2hhcmVkL0NvY29hL1dL
T2JqZWN0Lm1tCiAKLVNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VFbnRyeVBvaW50Lm1tCi1TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBD
U2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQorU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQorU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQogCiBTaGFyZWQvaW9z
L0NoaWxkUHJvY2Vzc0lPUy5tbQogU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbi5tbQpAQCAtNDkwLDcgKzQ5MCw3IEBAIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIKIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
bQogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KIAotV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQorV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRy
eVBvaW50Lm1tCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
QmFubmVyLmNwcAogCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL05ldHdvcmtT
ZXJ2aWNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvTmV0d29ya1NlcnZpY2UueGNjb25maWcJKHJldmlzaW9uIDI0MDI4NSkKKysrIFNvdXJjZS9X
ZWJLaXQvQ29uZmlndXJhdGlvbnMvTmV0d29ya1NlcnZpY2UueGNjb25maWcJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDggKzM3LDggQEAgT1RIRVJfQ09ERV9TSUdOX0ZMQUdTID0gJChXS19MSUJSQVJZ
X1ZBTAogCiBQUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmc7CiBQUk9E
VUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOwotSU5GT1BMSVNUX0ZJTEVb
c2RrPWlwaG9uZSpdID0gTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9O
ZXR3b3JrU2VydmljZS9JbmZvLWlPUy5wbGlzdDsKLUlORk9QTElTVF9GSUxFW3Nkaz1tYWNvc3gq
XSA9IE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZp
Y2UvSW5mby1PU1gucGxpc3Q7CitJTkZPUExJU1RfRklMRVtzZGs9aXBob25lKl0gPSBOZXR3b3Jr
UHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1p
T1MucGxpc3Q7CitJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0gPSBOZXR3b3JrUHJvY2Vzcy9F
bnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1PU1gucGxpc3Q7
CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdTX1ZFUlNJT05F
RF9GUkFNRVdPUktfUEFUSCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktTX0xERkxBR1MpOwog
T1RIRVJfTERGTEFHU1tzZGs9bWFjb3N4Kl0gPSAkKGluaGVyaXRlZCkgJChCVUlMVF9QUk9EVUNU
U19ESVIpL1NlY0l0ZW1TaGltLmR5bGliOwpJbmRleDogU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9QbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZwkocmV2aXNpb24gMjQw
Mjg1KQorKysgU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNlLjY0Lnhj
Y29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIFZBTElEX0FSQ0hTX21hY29z
eF9OTyA9IHg4Nl82NDsKIAogUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
NjQ7CiBQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOwotSU5GT1BM
SVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2lu
U2VydmljZS42NC5JbmZvLnBsaXN0OworSU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0Vu
dHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlLjY0LkluZm8ucGxpc3Q7CiAK
IFdLX0FQUEtJVF9MREZMQUdTID0gJChXS19BUFBLSVRfTERGTEFHU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIFdLX0FQUEtJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgQXBwS2l0OwpJbmRl
eDogU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJDb250ZW50U2VydmljZS54Y2NvbmZp
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYkNvbnRlbnRT
ZXJ2aWNlLnhjY29uZmlnCShyZXZpc2lvbiAyNDAyODUpCisrKyBTb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYkNvbnRlbnRTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw4ICs0MSw4IEBAIFBST0RVQ1RfTkFNRV9Ob3JtYWwgPSBjb20uYXBwbGUuV2ViS2l0LlcKIFBS
T0RVQ1RfTkFNRV9EZXZlbG9wbWVudCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZl
bG9wbWVudDsKIAogUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsK
LUlORk9QTElTVF9GSUxFW3Nkaz1pcGhvbmUqXSA9IFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdDsKLUlORk9QTElTVF9G
SUxFW3Nkaz1tYWNvc3gqXSA9IFdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9X
ZWJDb250ZW50U2VydmljZS9JbmZvLU9TWC5wbGlzdDsKK0lORk9QTElTVF9GSUxFW3Nkaz1pcGhv
bmUqXSA9IFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRT
ZXJ2aWNlL0luZm8taU9TLnBsaXN0OworSU5GT1BMSVNUX0ZJTEVbc2RrPW1hY29zeCpdID0gV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5m
by1PU1gucGxpc3Q7CiAKIFdLX0FQUEtJVF9MREZMQUdTID0gJChXS19BUFBLSVRfTERGTEFHU18k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX0FQUEtJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdv
cmsgQXBwS2l0OwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9OZXR3b3JrU2VydmljZS9JbmZvLU9TWC5wbGlzdAkocmV2aXNpb24gMjQwMjg1KQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdv
cmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0CShub25leGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQ
VUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29t
L0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGlj
dD4KLQk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVf
VkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTkgQXBwbGUgSW5jLjwvc3RyaW5nPgotCTxrZXk+
Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5n
PgotCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4ke0VYRUNVVEFCTEVf
TkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+
JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZv
RGljdGlvbmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVOYW1lPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5
PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4KLQk8a2V5
PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke1NIT1JUX1ZFUlNJ
T05fU1RSSU5HfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KLQk8c3Ry
aW5nPj8/Pz88L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+
JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVk
PC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgotCTxzdHJpbmc+
TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgotCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgotCTxz
dHJpbmc+TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1l
bnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5YUENTZXJ2aWNlPC9rZXk+Ci0JPGRpY3Q+Ci0JCTxr
ZXk+U2VydmljZVR5cGU8L2tleT4KLQkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgotCQk8
a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248L2tleT4KLQkJPHRydWUvPgotCQk8a2V5PlJ1bkxvb3BU
eXBlPC9rZXk+Ci0JCTxzdHJpbmc+TlNSdW5Mb29wPC9zdHJpbmc+Ci0JCTxrZXk+X011bHRpcGxl
SW5zdGFuY2VzPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8taU9TLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2Vy
dmljZS9JbmZvLWlPUy5wbGlzdAkocmV2aXNpb24gMjQwMjg1KQorKysgU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0lu
Zm8taU9TLnBsaXN0CShub25leGlzdGVudCkKQEAgLTEsNDMgKzAsMCBAQAotPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0Fw
cGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVy
dHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNG
QnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENv
cHlyaWdodCAyMDAzLTIwMTkgQXBwbGUgSW5jLjwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVEZXZl
bG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX0JV
TkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZl
cnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVOYW1lPC9r
ZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlUGFj
a2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2hv
cnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwv
c3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KLQk8c3RyaW5nPj8/Pz88L3N0
cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVS
U0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+Ci0JPHRy
dWUvPgotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgotCTxzdHJpbmc+TlNBcHBsaWNhdGlv
bjwvc3RyaW5nPgotCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgotCTxzdHJpbmc+TmV0d29y
a1NlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KLQk8
dHJ1ZS8+Ci0JPGtleT5YUENTZXJ2aWNlPC9rZXk+Ci0JPGRpY3Q+Ci0JCTxrZXk+U2VydmljZVR5
cGU8L2tleT4KLQkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgotCQk8a2V5PlJ1bkxvb3BU
eXBlPC9rZXk+Ci0JCTxzdHJpbmc+TlNSdW5Mb29wPC9zdHJpbmc+Ci0JCTxrZXk+X011bHRpcGxl
SW5zdGFuY2VzPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJ
bmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZp
Y2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAyNDAyODUpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBv
aW50Lm1tCShub25leGlzdGVudCkKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBv
cnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgotI2ltcG9y
dCAiTmV0d29ya1Byb2Nlc3MuaCIKLSNpbXBvcnQgIldLQmFzZS5oIgotI2ltcG9ydCAiWFBDU2Vy
dmljZUVudHJ5UG9pbnQuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIE5ldHdvcmtT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJE
ZWxlZ2F0ZSB7Ci1wdWJsaWM6Ci0gICAgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRl
KE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBp
bml0aWFsaXplck1lc3NhZ2UpCi0gICAgICAgIDogWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdh
dGUoV1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKQotICAgIHsKLSAgICB9
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
LQotZXh0ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyKHhw
Y19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2Fn
ZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLQotdm9pZCBOZXR3b3JrU2Vy
dmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90
IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKQot
ewotICAgIC8vIFJlbW92ZSB0aGUgU2VjSXRlbVNoaW0gZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElC
UkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFueSBwcm9jZXNzZXMgc3Bhd25lZCBieQot
ICAgIC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBhbmQg
Y3Jhc2guCi0gICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0
cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9TZWNJdGVtU2hpbS5keWxpYiIpOwotICAg
IFhQQ1NlcnZpY2VJbml0aWFsaXplcjxOZXR3b3JrUHJvY2VzcywgTmV0d29ya1NlcnZpY2VJbml0
aWFsaXplckRlbGVnYXRlPihhZG9wdE9TT2JqZWN0KGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1l
c3NhZ2UsIHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50
cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0JKHJl
dmlzaW9uIDI0MDI4NSkJKGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbToyNDAyODUpCisr
KyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2Vydmlj
ZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJFbnZpcm9u
bWVudFV0aWxpdGllcy5oIgorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbXBvcnQgIldL
QmFzZS5oIgorI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSA6IHB1Ymxp
YyBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSB7CitwdWJsaWM6CisgICAgTmV0d29ya1Nl
cnZpY2VJbml0aWFsaXplckRlbGVnYXRlKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNv
bm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpCisgICAgICAgIDogWFBD
U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUoV1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6
ZXJNZXNzYWdlKQorICAgIHsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworZXh0ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBOZXR3
b3JrU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29i
amVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNz
YWdlKTsKKwordm9pZCBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3Qg
Y29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90
IHByaW9yaXR5Qm9vc3RNZXNzYWdlKQoreworICAgIC8vIFJlbW92ZSB0aGUgU2VjSXRlbVNoaW0g
ZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFu
eSBwcm9jZXNzZXMgc3Bhd25lZCBieQorICAgIC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5
IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCisgICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6
OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9T
ZWNJdGVtU2hpbS5keWxpYiIpOworICAgIFhQQ1NlcnZpY2VJbml0aWFsaXplcjxOZXR3b3JrUHJv
Y2VzcywgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlPihhZG9wdE9TT2JqZWN0KGNv
bm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UsIHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKK30K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL05ldHdv
cmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0CShyZXZpc2lvbiAyNDAyODUpCShmcm9tIFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2Vy
dmljZS9JbmZvLU9TWC5wbGlzdDoyNDAyODUpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZvLU9TWC5w
bGlzdAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RU
RCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt
MS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVH
ZXRJbmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0
IDIwMDMtMjAxOSBBcHBsZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZURldmVsb3BtZW50
UmVnaW9uPC9rZXk+CisJPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUV4
ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgorCTxr
ZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfQlVORExFX0lE
RU5USUZJRVJ9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwv
a2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKwk8
c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlw
ZTwva2V5PgorCTxzdHJpbmc+WFBDITwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNp
b25TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgor
CTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwv
c3RyaW5nPgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4KKwk8dHJ1ZS8+CisJ
PGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+CisJPHN0cmluZz5OU0FwcGxpY2F0aW9uPC9zdHJp
bmc+CisJPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+CisJPHN0cmluZz5OZXR3b3JrU2Vydmlj
ZUluaXRpYWxpemVyPC9zdHJpbmc+CisJPGtleT5MU1VJRWxlbWVudDwva2V5PgorCTx0cnVlLz4K
Kwk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KKwk8ZGljdD4KKwkJPGtleT5TZXJ2aWNlVHlwZTwva2V5
PgorCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+CisJCTxrZXk+Sm9pbkV4aXN0aW5nU2Vz
c2lvbjwva2V5PgorCQk8dHJ1ZS8+CisJCTxrZXk+UnVuTG9vcFR5cGU8L2tleT4KKwkJPHN0cmlu
Zz5OU1J1bkxvb3A8L3N0cmluZz4KKwkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4KKwkJ
PHRydWUvPgorCTwvZGljdD4KKzwvZGljdD4KKzwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3JrU2Vydmlj
ZS9JbmZvLWlPUy5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZvLWlPUy5w
bGlzdAkocmV2aXNpb24gMjQwMjg1KQkoZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1pT1MucGxpc3Q6
MjQwMjg1KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1pT1MucGxpc3QJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
KzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0
dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZl
cnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5Pgor
CTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTkgQXBwbGUgSW5j
Ljwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgorCTxzdHJp
bmc+RW5nbGlzaDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0
cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmll
cjwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgor
CTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjYuMDwv
c3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfTkFN
RX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPlhQ
QyE8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0
cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaWdu
YXR1cmU8L2tleT4KKwk8c3RyaW5nPj8/Pz88L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lv
bjwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KKwk8a2V5PkxTRmls
ZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNQcmluY2lwYWxDbGFz
czwva2V5PgorCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50
cnlQb2ludDwva2V5PgorCTxzdHJpbmc+TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5n
PgorCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5YUENTZXJ2aWNlPC9r
ZXk+CisJPGRpY3Q+CisJCTxrZXk+U2VydmljZVR5cGU8L2tleT4KKwkJPHN0cmluZz5BcHBsaWNh
dGlvbjwvc3RyaW5nPgorCQk8a2V5PlJ1bkxvb3BUeXBlPC9rZXk+CisJCTxzdHJpbmc+TlNSdW5M
b29wPC9zdHJpbmc+CisJCTxrZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+CisJCTx0cnVlLz4K
Kwk8L2RpY3Q+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS42NC5JbmZvLnBs
aXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuNjQuSW5mby5wbGlzdAkocmV2aXNpb24gMjQw
Mjg1KQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvUGx1Z2luU2VydmljZS42NC5JbmZvLnBsaXN0CShub25leGlzdGVudCkKQEAgLTEsNTgg
KzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQ
RSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cu
YXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEu
MCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgotCTxzdHJpbmc+
JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTkgQXBwbGUgSW5jLjwvc3RyaW5n
PgotCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+RW5nbGlz
aDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4ke0VY
RUNVVEFCTEVfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5Pgot
CTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgot
CTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQQyE8L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke1NI
T1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tl
eT4KLQk8c3RyaW5nPj8/Pz88L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5Pgot
CTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRp
bmVFbmFibGVkPC9rZXk+Ci0JPGZhbHNlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4K
LQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLQk8a2V5PldlYktpdEVudHJ5UG9pbnQ8
L2tleT4KLQk8c3RyaW5nPlBsdWdpblNlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPgotCTxrZXk+
TFNVSUVsZW1lbnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1N1cHBvcnRzQXV0b21hdGljR3Jh
cGhpY3NTd2l0Y2hpbmc8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1N1cHBvcnRzQXBwTmFwPC9r
ZXk+Ci0JPHRydWUvPgotCTxrZXk+WFBDU2VydmljZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PlNl
cnZpY2VUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4KLQkJPGtleT5S
dW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5nPl9OU0FwcGxpY2F0aW9uTWFpbjwvc3RyaW5nPgot
CQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248L2tleT4KLQkJPHRydWUvPgotCQk8a2V5Pl9NdWx0
aXBsZUluc3RhbmNlczwva2V5PgotCQk8dHJ1ZS8+Ci0JCTxrZXk+X0FiYW5kb25Db2FsaXRpb248
L2tleT4KLQkJPHRydWUvPgotCQk8a2V5Pl9IaWdoQml0c0FTTFI8L2tleT4KLQkJPHRydWUvPgot
CQk8a2V5PkVudmlyb25tZW50VmFyaWFibGVzPC9rZXk+Ci0JCTxkaWN0PgotCQkJPGtleT5OU1N0
cmluZ0Rpc2FibGVUYWdnZWQ8L2tleT4KLQkJCTxzdHJpbmc+WUVTPC9zdHJpbmc+Ci0JCTwvZGlj
dD4KLQk8L2RpY3Q+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdC9QbHVn
aW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9p
bnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0JKHJldmlzaW9uIDI0
MDI4NSkKKysrIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCShub25leGlzdGVudCkKQEAgLTEsODQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJFbnZp
cm9ubWVudFV0aWxpdGllcy5oIgotI2ltcG9ydCAiUGx1Z2luUHJvY2Vzcy5oIgotI2ltcG9ydCAi
V0tCYXNlLmgiCi0jaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgotI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KLQotI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgUGx1Z2luU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgOiBw
dWJsaWMgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgewotcHVibGljOgotICAgIFBsdWdp
blNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UpCi0gICAgICAgIDog
WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUoV1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlh
bGl6ZXJNZXNzYWdlKQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0RXh0cmFJ
bml0aWFsaXphdGlvbkRhdGEoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhKQotICAgIHsKLSAgICAgICAgeHBjX29iamVjdF90IGV4dHJhRGF0YUluaXRpYWxp
emF0aW9uRGF0YU9iamVjdCA9IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1ZShtX2luaXRpYWxpemVy
TWVzc2FnZSwgImV4dHJhLWluaXRpYWxpemF0aW9uLWRhdGEiKTsKLQotICAgICAgICBTdHJpbmcg
cGx1Z2luUGF0aCA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXh0cmFEYXRhSW5pdGlhbGl6
YXRpb25EYXRhT2JqZWN0LCAicGx1Z2luLXBhdGgiKTsKLSAgICAgICAgaWYgKHBsdWdpblBhdGgu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBleHRyYUluaXRp
YWxpemF0aW9uRGF0YS5hZGQoInBsdWdpbi1wYXRoIiwgcGx1Z2luUGF0aCk7Ci0KLSAgICAgICAg
U3RyaW5nIGRpc2FibGVTYW5kYm94ID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhleHRyYURh
dGFJbml0aWFsaXphdGlvbkRhdGFPYmplY3QsICJkaXNhYmxlLXNhbmRib3giKTsKLSAgICAgICAg
aWYgKCFkaXNhYmxlU2FuZGJveC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBleHRyYUluaXRpYWxp
emF0aW9uRGF0YS5hZGQoImRpc2FibGUtc2FuZGJveCIsIGRpc2FibGVTYW5kYm94KTsKLQotICAg
ICAgICBTdHJpbmcgZXhwZXJpbWVudGFsU2FuZGJveFBsdWdJbiA9IHhwY19kaWN0aW9uYXJ5X2dl
dF9zdHJpbmcoZXh0cmFEYXRhSW5pdGlhbGl6YXRpb25EYXRhT2JqZWN0LCAiZXhwZXJpbWVudGFs
LXNhbmRib3gtcGx1Z2luIik7Ci0gICAgICAgIGlmICghZXhwZXJpbWVudGFsU2FuZGJveFBsdWdJ
bi5pc0VtcHR5KCkpCi0gICAgICAgICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImV4
cGVyaW1lbnRhbC1zYW5kYm94LXBsdWdpbiJfcywgZXhwZXJpbWVudGFsU2FuZGJveFBsdWdJbik7
Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUU0NB
UEVfUExVR0lOX0FQSSkKLQotZXh0ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBQbHVnaW5TZXJ2aWNl
SW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5p
dGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwotCi12
b2lkIFBsdWdpblNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24s
IHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJv
b3N0TWVzc2FnZSkKLXsKLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICAvLyBG
SVhNRTogQWRkIHN1cHBvcnQgZm9yIHRlYXJkb3duIGZyb20gUGx1Z2luUHJvY2Vzc01haW4ubW0K
LQotICAgIC8vIFJlbW92ZSB0aGUgUGx1Z2luUHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5T
RVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzCi0gICAg
Ly8gc3Bhd25lZCBieSB0aGUgUGx1Z2luUHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBz
aGltIGFuZCBjcmFzaC4KLSAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRp
bmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1BsdWdpblByb2Nlc3NTaGlt
LmR5bGliIik7Ci0gICAgWFBDU2VydmljZUluaXRpYWxpemVyPFBsdWdpblByb2Nlc3MsIFBsdWdp
blNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlPihhZG9wdE9TT2JqZWN0KGNvbm5lY3Rpb24pLCBp
bml0aWFsaXplck1lc3NhZ2UsIHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLSNlbmRpZiAvLyBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS42NC5JbmZvLnBs
aXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS42NC5JbmZvLnBsaXN0CShyZXZpc2lvbiAy
NDAyODUpCShmcm9tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuNjQuSW5mby5wbGlzdDoyNDAyODUpCisrKyBTb3VyY2Uv
V2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1BsdWdpblNl
cnZpY2UuNjQuSW5mby5wbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU4IEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJ
QyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFRE
cy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0Pgor
CTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJT
SU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxOSBBcHBsZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+CisJ
PGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KKwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1F
fTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz4ke1BS
T0RVQ1RfQlVORExFX0lERU5USUZJRVJ9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0
aW9uYXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRs
ZU5hbWU8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZC
dW5kbGVQYWNrYWdlVHlwZTwva2V5PgorCTxzdHJpbmc+WFBDITwvc3RyaW5nPgorCTxrZXk+Q0ZC
dW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9T
VFJJTkd9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+
Pz8/Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke0JV
TkRMRV9WRVJTSU9OfTwvc3RyaW5nPgorCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tl
eT4KKwk8ZmFsc2UvPgorCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxzdHJpbmc+TlNB
cHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgorCTxzdHJp
bmc+UGx1Z2luU2VydmljZUluaXRpYWxpemVyPC9zdHJpbmc+CisJPGtleT5MU1VJRWxlbWVudDwv
a2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TU3VwcG9ydHNBdXRvbWF0aWNHcmFwaGljc1N3aXRjaGlu
Zzwva2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TU3VwcG9ydHNBcHBOYXA8L2tleT4KKwk8dHJ1ZS8+
CisJPGtleT5YUENTZXJ2aWNlPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+U2VydmljZVR5cGU8L2tl
eT4KKwkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgorCQk8a2V5PlJ1bkxvb3BUeXBlPC9r
ZXk+CisJCTxzdHJpbmc+X05TQXBwbGljYXRpb25NYWluPC9zdHJpbmc+CisJCTxrZXk+Sm9pbkV4
aXN0aW5nU2Vzc2lvbjwva2V5PgorCQk8dHJ1ZS8+CisJCTxrZXk+X011bHRpcGxlSW5zdGFuY2Vz
PC9rZXk+CisJCTx0cnVlLz4KKwkJPGtleT5fQWJhbmRvbkNvYWxpdGlvbjwva2V5PgorCQk8dHJ1
ZS8+CisJCTxrZXk+X0hpZ2hCaXRzQVNMUjwva2V5PgorCQk8dHJ1ZS8+CisJCTxrZXk+RW52aXJv
bm1lbnRWYXJpYWJsZXM8L2tleT4KKwkJPGRpY3Q+CisJCQk8a2V5Pk5TU3RyaW5nRGlzYWJsZVRh
Z2dlZDwva2V5PgorCQkJPHN0cmluZz5ZRVM8L3N0cmluZz4KKwkJPC9kaWN0PgorCTwvZGljdD4K
KzwvZGljdD4KKzwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQ
Q1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0JKHJldmlzaW9uIDI0MDI4NSkJKGZy
b20gU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
UGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW06MjQwMjg1KQorKysgU291cmNlL1dlYktpdC9QbHVn
aW5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQ
b2ludC5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIkVudmlyb25tZW50VXRpbGl0aWVzLmgiCisjaW1w
b3J0ICJQbHVnaW5Qcm9jZXNzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKKyNpbXBvcnQgIlhQQ1Nl
cnZpY2VFbnRyeVBvaW50LmgiCisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorCisjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQbHVn
aW5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBYUENTZXJ2aWNlSW5pdGlhbGl6
ZXJEZWxlZ2F0ZSB7CitwdWJsaWM6CisgICAgUGx1Z2luU2VydmljZUluaXRpYWxpemVyRGVsZWdh
dGUoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF90
IGluaXRpYWxpemVyTWVzc2FnZSkKKyAgICAgICAgOiBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxl
Z2F0ZShXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UpCisgICAgeworICAg
IH0KKworICAgIHZpcnR1YWwgYm9vbCBnZXRFeHRyYUluaXRpYWxpemF0aW9uRGF0YShIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiYgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEpCisgICAgeworICAgICAg
ICB4cGNfb2JqZWN0X3QgZXh0cmFEYXRhSW5pdGlhbGl6YXRpb25EYXRhT2JqZWN0ID0geHBjX2Rp
Y3Rpb25hcnlfZ2V0X3ZhbHVlKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiZXh0cmEtaW5pdGlhbGl6
YXRpb24tZGF0YSIpOworCisgICAgICAgIFN0cmluZyBwbHVnaW5QYXRoID0geHBjX2RpY3Rpb25h
cnlfZ2V0X3N0cmluZyhleHRyYURhdGFJbml0aWFsaXphdGlvbkRhdGFPYmplY3QsICJwbHVnaW4t
cGF0aCIpOworICAgICAgICBpZiAocGx1Z2luUGF0aC5pc0VtcHR5KCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgicGx1Z2lu
LXBhdGgiLCBwbHVnaW5QYXRoKTsKKworICAgICAgICBTdHJpbmcgZGlzYWJsZVNhbmRib3ggPSB4
cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV4dHJhRGF0YUluaXRpYWxpemF0aW9uRGF0YU9iamVj
dCwgImRpc2FibGUtc2FuZGJveCIpOworICAgICAgICBpZiAoIWRpc2FibGVTYW5kYm94LmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiZGlzYWJsZS1z
YW5kYm94IiwgZGlzYWJsZVNhbmRib3gpOworCisgICAgICAgIFN0cmluZyBleHBlcmltZW50YWxT
YW5kYm94UGx1Z0luID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhleHRyYURhdGFJbml0aWFs
aXphdGlvbkRhdGFPYmplY3QsICJleHBlcmltZW50YWwtc2FuZGJveC1wbHVnaW4iKTsKKyAgICAg
ICAgaWYgKCFleHBlcmltZW50YWxTYW5kYm94UGx1Z0luLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiZXhwZXJpbWVudGFsLXNhbmRib3gtcGx1Z2lu
Il9zLCBleHBlcmltZW50YWxTYW5kYm94UGx1Z0luKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKKworI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQorCitleHRlcm4g
IkMiIFdLX0VYUE9SVCB2b2lkIFBsdWdpblNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlv
bl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmpl
Y3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7CisKK3ZvaWQgUGx1Z2luU2VydmljZUluaXRpYWxp
emVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVy
TWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKQoreworI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQorICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgdGVh
cmRvd24gZnJvbSBQbHVnaW5Qcm9jZXNzTWFpbi5tbQorCisgICAgLy8gUmVtb3ZlIHRoZSBQbHVn
aW5Qcm9jZXNzIHNoaW0gZnJvbSB0aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50
IHZhcmlhYmxlIHNvIGFueSBwcm9jZXNzZXMKKyAgICAvLyBzcGF3bmVkIGJ5IHRoZSBQbHVnaW5Q
cm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgorICAgIEVudmly
b25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJU
X0xJQlJBUklFUyIsICIvUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIiKTsKKyAgICBYUENTZXJ2aWNl
SW5pdGlhbGl6ZXI8UGx1Z2luUHJvY2VzcywgUGx1Z2luU2VydmljZUluaXRpYWxpemVyRGVsZWdh
dGU+KGFkb3B0T1NPYmplY3QoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSwgcHJpb3Jp
dHlCb29zdE1lc3NhZ2UpOworI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQor
fQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBD
U2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQuaAkocmV2aXNpb24gMjQwMjg1KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvRW50
cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCShu
b25leGlzdGVudCkKQEAgLTEsMTI5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2ltcG9ydCAiQ2hpbGRQcm9jZXNzLmgiCi0jaW1wb3J0ICJXZWJLaXQySW5pdGlhbGl6ZS5o
IgotI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvRXhlY3V0YWJsZUFsbG9jYXRvci5oPgotI2ltcG9y
dCA8d3RmL09TT2JqZWN0UHRyLmg+Ci0jaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4K
LQotI2lmIEhBVkUoVk9VQ0hFUlMpCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSNpbmNs
dWRlIDxvcy92b3VjaGVyX3ByaXZhdGUuaD4KLSNlbHNlCi1leHRlcm4gIkMiIE9TX05PVEhST1cg
dm9pZCB2b3VjaGVyX3JlcGxhY2VfZGVmYXVsdF92b3VjaGVyKHZvaWQpOwotI2VuZGlmCi0jZW5k
aWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFhQQ1NlcnZpY2VJbml0aWFsaXplckRl
bGVnYXRlIHsKLXB1YmxpYzoKLSAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShPU09i
amVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlh
bGl6ZXJNZXNzYWdlKQotICAgICAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24p
KQotICAgICAgICAsIG1faW5pdGlhbGl6ZXJNZXNzYWdlKGluaXRpYWxpemVyTWVzc2FnZSkKLSAg
ICB7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUo
KTsKLQotICAgIHZpcnR1YWwgYm9vbCBjaGVja0VudGl0bGVtZW50cygpOwotCi0gICAgdmlydHVh
bCBib29sIGdldENvbm5lY3Rpb25JZGVudGlmaWVyKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciYgaWRlbnRpZmllcik7Ci0gICAgdmlydHVhbCBib29sIGdldFByb2Nlc3NJZGVudGlmaWVyKFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJik7Ci0gICAgdmlydHVhbCBib29sIGdldENsaWVudElk
ZW50aWZpZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
Q2xpZW50UHJvY2Vzc05hbWUoU3RyaW5nJiBjbGllbnRQcm9jZXNzTmFtZSk7Ci0gICAgdmlydHVh
bCBib29sIGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
JiBleHRyYUluaXRpYWxpemF0aW9uRGF0YSk7Ci0KLXByb3RlY3RlZDoKLSAgICBib29sIGhhc0Vu
dGl0bGVtZW50KGNvbnN0IGNoYXIqIGVudGl0bGVtZW50KTsKLSAgICBib29sIGlzQ2xpZW50U2Fu
ZGJveGVkKCk7Ci0KLSAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX2Nvbm5lY3Rp
b247Ci0gICAgeHBjX29iamVjdF90IG1faW5pdGlhbGl6ZXJNZXNzYWdlOwotfTsKLQotdGVtcGxh
dGU8dHlwZW5hbWUgWFBDU2VydmljZVR5cGUsIHR5cGVuYW1lIFhQQ1NlcnZpY2VJbml0aWFsaXpl
ckRlbGVnYXRlVHlwZT4KLXZvaWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0UHRyPHhw
Y19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3Nh
Z2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSkKLXsKLSAgICBpZiAoaW5pdGlh
bGl6ZXJNZXNzYWdlICYmIHhwY19kaWN0aW9uYXJ5X2dldF9ib29sKGluaXRpYWxpemVyTWVzc2Fn
ZSwgImRpc2FibGUtaml0IikpCi0gICAgICAgIEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6c2V0
SklURW5hYmxlZChmYWxzZSk7Ci0KLSAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5
cGUgZGVsZWdhdGUoV1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKTsKLQot
ICAgIC8vIFdlIGRvbid0IHdhbnQgWFBDIHRvIGJlIGluIGNoYXJnZSBvZiB3aGV0aGVyIHRoZSBw
cm9jZXNzIHNob3VsZCBiZSB0ZXJtaW5hdGVkIG9yIG5vdCwKLSAgICAvLyBzbyBlbnN1cmUgdGhh
dCB3ZSBoYXZlIGFuIG91dHN0YW5kaW5nIHRyYW5zYWN0aW9uIGhlcmUuCi1BTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHhwY190cmFuc2FjdGlvbl9iZWdpbigpOwotQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0KLSAgICBJbml0aWFsaXplV2ViS2l0Migp
OwotCi0gICAgaWYgKCFkZWxlZ2F0ZS5jaGVja0VudGl0bGVtZW50cygpKQotICAgICAgICBleGl0
KEVYSVRfRkFJTFVSRSk7Ci0KLSAgICBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMgcGFyYW1ldGVyczsKLSAgICBpZiAocHJpb3JpdHlCb29zdE1lc3NhZ2UpCi0gICAgICAgIHBh
cmFtZXRlcnMucHJpb3JpdHlCb29zdE1lc3NhZ2UgPSBwcmlvcml0eUJvb3N0TWVzc2FnZTsKLQot
ICAgIGlmICghZGVsZWdhdGUuZ2V0Q29ubmVjdGlvbklkZW50aWZpZXIocGFyYW1ldGVycy5jb25u
ZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLQotICAgIGlm
ICghZGVsZWdhdGUuZ2V0Q2xpZW50SWRlbnRpZmllcihwYXJhbWV0ZXJzLmNsaWVudElkZW50aWZp
ZXIpKQotICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Ci0KLSAgICBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcjsKLSAgICBpZiAoIWRlbGVnYXRlLmdldFByb2Nl
c3NJZGVudGlmaWVyKHByb2Nlc3NJZGVudGlmaWVyKSkKLSAgICAgICAgZXhpdChFWElUX0ZBSUxV
UkUpOwotICAgIHBhcmFtZXRlcnMucHJvY2Vzc0lkZW50aWZpZXIgPSBwcm9jZXNzSWRlbnRpZmll
cjsKLQotICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50UHJvY2Vzc05hbWUocGFyYW1ldGVycy51
aVByb2Nlc3NOYW1lKSkKLSAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotCi0gICAgaWYgKCFk
ZWxlZ2F0ZS5nZXRFeHRyYUluaXRpYWxpemF0aW9uRGF0YShwYXJhbWV0ZXJzLmV4dHJhSW5pdGlh
bGl6YXRpb25EYXRhKSkKLSAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotCi0jaWYgSEFWRShW
T1VDSEVSUykKLSAgICAvLyBTZXQgdGhlIHRhc2sgZGVmYXVsdCB2b3VjaGVyIHRvIHRoZSBjdXJy
ZW50IHZhbHVlIChhcyBwcm9wYWdhdGVkIGJ5IFhQQykuCi0gICAgdm91Y2hlcl9yZXBsYWNlX2Rl
ZmF1bHRfdm91Y2hlcigpOwotI2VuZGlmCi0KLSNpZiBIQVZFKFFPU19DTEFTU0VTKQotICAgIGlm
IChwYXJhbWV0ZXJzLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmNvbnRhaW5zKCJhbHdheXMtcnVu
cy1hdC1iYWNrZ3JvdW5kLXByaW9yaXR5Il9zKSkKLSAgICAgICAgVGhyZWFkOjpzZXRHbG9iYWxN
YXhRT1NDbGFzcyhRT1NfQ0xBU1NfVVRJTElUWSk7Ci0jZW5kaWYKLQotICAgIHBhcmFtZXRlcnMu
cHJvY2Vzc1R5cGUgPSBYUENTZXJ2aWNlVHlwZTo6cHJvY2Vzc1R5cGU7Ci0KLSAgICBYUENTZXJ2
aWNlVHlwZTo6c2luZ2xldG9uKCkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKLX0KLQotaW50IFhQ
Q1NlcnZpY2VNYWluKGludCwgY29uc3QgY2hhcioqKTsKLQotdm9pZCBYUENTZXJ2aWNlRXhpdChP
U09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+JiYgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2Vy
dmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQkocmV2aXNpb24gMjQwMjg1KQorKysgU291cmNl
L1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2
aWNlRW50cnlQb2ludC5tbQkobm9uZXhpc3RlbnQpCkBAIC0xLDE2NiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIK
LSNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBv
aW50LmgiCi0jaW1wb3J0IDxXZWJDb3JlL1Byb2Nlc3MuaD4KLSNpbXBvcnQgPHd0Zi9jb2NvYS9F
bnRpdGxlbWVudHMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6On5YUENTZXJ2aWNlSW5pdGlh
bGl6ZXJEZWxlZ2F0ZSgpCi17Ci19Ci0KLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdh
dGU6OmNoZWNrRW50aXRsZW1lbnRzKCkKLXsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFp
c0NsaWVudFNhbmRib3hlZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIC8vIEZJWE1F
OiBPbmNlIHdlJ3JlIDEwMCUgc3VyZSB0aGF0IGEgcHJvY2VzcyBjYW4ndCBhY2Nlc3MgdGhlIG5l
dHdvcmsgd2UgY2FuIGdldCByaWQgb2YgdGhpcyByZXF1aXJlbWVudCBmb3IgYWxsIHByb2Nlc3Nl
cy4KLSAgICBpZiAoIWhhc0VudGl0bGVtZW50KCJjb20uYXBwbGUuc2VjdXJpdHkubmV0d29yay5j
bGllbnQiKSkgewotICAgICAgICBOU0xvZyhAIkFwcGxpY2F0aW9uIGRvZXMgbm90IGhhdmUgdGhl
ICdjb20uYXBwbGUuc2VjdXJpdHkubmV0d29yay5jbGllbnQnIGVudGl0bGVtZW50LiIpOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBhdXRvIHZhbHVlID0gYWRvcHRPU09iamVjdCh4cGNfY29ubmVjdGlvbl9jb3B5X2Vu
dGl0bGVtZW50X3ZhbHVlKG1fY29ubmVjdGlvbi5nZXQoKSwgImtleWNoYWluLWFjY2Vzcy1ncm91
cHMiKSk7Ci0gICAgaWYgKHZhbHVlICYmIHhwY19nZXRfdHlwZSh2YWx1ZS5nZXQoKSkgPT0gWFBD
X1RZUEVfQVJSQVkpIHsKLSAgICAgICAgeHBjX2FycmF5X2FwcGx5KHZhbHVlLmdldCgpLCBeYm9v
bChzaXplX3QgaW5kZXgsIHhwY19vYmplY3RfdCBvYmplY3QpIHsKLSAgICAgICAgICAgIGlmICh4
cGNfZ2V0X3R5cGUob2JqZWN0KSA9PSBYUENfVFlQRV9TVFJJTkcgJiYgIXN0cmNtcCh4cGNfc3Ry
aW5nX2dldF9zdHJpbmdfcHRyKG9iamVjdCksICJjb20uYXBwbGUuaWRlbnRpdGllcyIpKSB7Ci0g
ICAgICAgICAgICAgICAgSVBDOjpzZXRBbGxvd3NEZWNvZGluZ1NlY0tleVJlZih0cnVlKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgfSk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q29ubmVjdGlv
bklkZW50aWZpZXIoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBpZGVudGlmaWVyKQotewot
ICAgIG1hY2hfcG9ydF90IHBvcnQgPSB4cGNfZGljdGlvbmFyeV9jb3B5X21hY2hfc2VuZChtX2lu
aXRpYWxpemVyTWVzc2FnZSwgInNlcnZlci1wb3J0Iik7Ci0gICAgaWYgKHBvcnQgPT0gTUFDSF9Q
T1JUX05VTEwpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlkZW50aWZpZXIgPSBJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIocG9ydCwgbV9jb25uZWN0aW9uKTsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50
SWRlbnRpZmllcihTdHJpbmcmIGNsaWVudElkZW50aWZpZXIpCi17Ci0gICAgY2xpZW50SWRlbnRp
ZmllciA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcobV9pbml0aWFsaXplck1lc3NhZ2UsICJj
bGllbnQtaWRlbnRpZmllciIpOwotICAgIGlmIChjbGllbnRJZGVudGlmaWVyLmlzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFhQQ1Nl
cnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRQcm9jZXNzSWRlbnRpZmllcihQcm9jZXNzSWRl
bnRpZmllciYgaWRlbnRpZmllcikKLXsKLSAgICBTdHJpbmcgcHJvY2Vzc0lkZW50aWZpZXJTdHJp
bmcgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAicHJv
Y2Vzcy1pZGVudGlmaWVyIik7Ci0gICAgaWYgKHByb2Nlc3NJZGVudGlmaWVyU3RyaW5nLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYm9vbCBvazsKLSAgICBhdXRvIHBh
cnNlZElkZW50aWZpZXIgPSBwcm9jZXNzSWRlbnRpZmllclN0cmluZy50b1VJbnQ2NFN0cmljdCgm
b2spOwotICAgIGlmICghb2spCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlkZW50aWZp
ZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxQcm9jZXNzSWRlbnRpZmllclR5cGU+KHBhcnNlZElk
ZW50aWZpZXIpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFhQQ1NlcnZpY2VJbml0aWFs
aXplckRlbGVnYXRlOjpnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NO
YW1lKQotewotICAgIGNsaWVudFByb2Nlc3NOYW1lID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmlu
ZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgInVpLXByb2Nlc3MtbmFtZSIpOwotICAgIGlmIChjbGll
bnRQcm9jZXNzTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0RXh0
cmFJbml0aWFsaXphdGlvbkRhdGEoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dHJhSW5pdGlh
bGl6YXRpb25EYXRhKQotewotICAgIHhwY19vYmplY3RfdCBleHRyYURhdGFJbml0aWFsaXphdGlv
bkRhdGFPYmplY3QgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUobV9pbml0aWFsaXplck1lc3Nh
Z2UsICJleHRyYS1pbml0aWFsaXphdGlvbi1kYXRhIik7Ci0KLSAgICBTdHJpbmcgaW5zcGVjdG9y
UHJvY2VzcyA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXh0cmFEYXRhSW5pdGlhbGl6YXRp
b25EYXRhT2JqZWN0LCAiaW5zcGVjdG9yLXByb2Nlc3MiKTsKLSAgICBpZiAoIWluc3BlY3RvclBy
b2Nlc3MuaXNFbXB0eSgpKQotICAgICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImlu
c3BlY3Rvci1wcm9jZXNzIl9zLCBpbnNwZWN0b3JQcm9jZXNzKTsKLQotI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICBTdHJpbmcgc2VydmljZVdvcmtlclByb2Nlc3MgPSB4cGNfZGljdGlv
bmFyeV9nZXRfc3RyaW5nKGV4dHJhRGF0YUluaXRpYWxpemF0aW9uRGF0YU9iamVjdCwgInNlcnZp
Y2Utd29ya2VyLXByb2Nlc3MiKTsKLSAgICBpZiAoIXNlcnZpY2VXb3JrZXJQcm9jZXNzLmlzRW1w
dHkoKSkKLSAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJzZXJ2aWNlLXdvcmtl
ci1wcm9jZXNzIl9zLCBzZXJ2aWNlV29ya2VyUHJvY2Vzcyk7Ci0jZW5kaWYKLQotICAgIFN0cmlu
ZyBpc1ByZXdhcm1lZFByb2Nlc3MgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV4dHJhRGF0
YUluaXRpYWxpemF0aW9uRGF0YU9iamVjdCwgImlzLXByZXdhcm1lZCIpOwotICAgIGlmICghaXNQ
cmV3YXJtZWRQcm9jZXNzLmlzRW1wdHkoKSkKLSAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRh
dGEuYWRkKCJpcy1wcmV3YXJtZWQiX3MsIGlzUHJld2FybWVkUHJvY2Vzcyk7Ci0KLSAgICBTdHJp
bmcgc2VjdXJpdHlPcmlnaW4gPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV4dHJhRGF0YUlu
aXRpYWxpemF0aW9uRGF0YU9iamVjdCwgInNlY3VyaXR5LW9yaWdpbiIpOwotICAgIGlmICghc2Vj
dXJpdHlPcmlnaW4uaXNFbXB0eSgpKQotICAgICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5h
ZGQoInNlY3VyaXR5LW9yaWdpbiJfcywgc2VjdXJpdHlPcmlnaW4pOwotCi0gICAgaWYgKCFpc0Ns
aWVudFNhbmRib3hlZCgpKSB7Ci0gICAgICAgIFN0cmluZyB1c2VyRGlyZWN0b3J5U3VmZml4ID0g
eHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhleHRyYURhdGFJbml0aWFsaXphdGlvbkRhdGFPYmpl
Y3QsICJ1c2VyLWRpcmVjdG9yeS1zdWZmaXgiKTsKLSAgICAgICAgaWYgKCF1c2VyRGlyZWN0b3J5
U3VmZml4LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFk
ZCgidXNlci1kaXJlY3Rvcnktc3VmZml4Il9zLCB1c2VyRGlyZWN0b3J5U3VmZml4KTsKLSAgICB9
Ci0KLSAgICBTdHJpbmcgYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5ID0geHBjX2RpY3Rp
b25hcnlfZ2V0X3N0cmluZyhleHRyYURhdGFJbml0aWFsaXphdGlvbkRhdGFPYmplY3QsICJhbHdh
eXMtcnVucy1hdC1iYWNrZ3JvdW5kLXByaW9yaXR5Iik7Ci0gICAgaWYgKCFhbHdheXNSdW5zQXRC
YWNrZ3JvdW5kUHJpb3JpdHkuaXNFbXB0eSgpKQotICAgICAgICBleHRyYUluaXRpYWxpemF0aW9u
RGF0YS5hZGQoImFsd2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiX3MsIGFsd2F5c1J1
bnNBdEJhY2tncm91bmRQcmlvcml0eSk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBY
UENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6aGFzRW50aXRsZW1lbnQoY29uc3QgY2hhciog
ZW50aXRsZW1lbnQpCi17Ci0gICAgcmV0dXJuIFdURjo6aGFzRW50aXRsZW1lbnQobV9jb25uZWN0
aW9uLmdldCgpLCBlbnRpdGxlbWVudCk7Ci19Ci0KLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVy
RGVsZWdhdGU6OmlzQ2xpZW50U2FuZGJveGVkKCkKLXsKLSAgICByZXR1cm4gY29ubmVjdGVkUHJv
Y2Vzc0lzU2FuZGJveGVkKG1fY29ubmVjdGlvbi5nZXQoKSk7Ci19Ci0KLXZvaWQgWFBDU2Vydmlj
ZUV4aXQoT1NPYmplY3RQdHI8eHBjX29iamVjdF90PiYmIHByaW9yaXR5Qm9vc3RNZXNzYWdlKQot
ewotICAgIC8vIE1ha2Ugc3VyZSB0byBkZXN0cm95IHRoZSBwcmlvcml0eSBib29zdCBtZXNzYWdl
IHRvIGF2b2lkIGxlYWtpbmcgYSB0cmFuc2FjdGlvbi4KLSAgICBwcmlvcml0eUJvb3N0TWVzc2Fn
ZSA9IG51bGxwdHI7Ci0gICAgLy8gQmFsYW5jZXMgdGhlIHhwY190cmFuc2FjdGlvbl9iZWdpbigp
IGluIFhQQ1NlcnZpY2VJbml0aWFsaXplci4KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCi0gICAgeHBjX3RyYW5zYWN0aW9uX2VuZCgpOwotQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECi0gICAgeHBjX3RyYW5zYWN0aW9uX2V4aXRfY2xlYW4oKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZU1haW4ubW0JKHJldmlzaW9uIDI0MDI4NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0J
KG5vbmV4aXN0ZW50KQpAQCAtMSwxNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9y
dCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzQ29jb2EuaCIKLSNpbXBvcnQgIlhQQ1Nl
cnZpY2VFbnRyeVBvaW50LmgiCi0KLSNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0
aW9uLmg+Ci0jaW1wb3J0IDx3dGYvT1NPYmplY3RQdHIuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgotCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotI2ltcG9y
dCA8cGFsL3NwaS9tYWMvTlNBcHBsaWNhdGlvblNQSS5oPgotI2VuZGlmCi0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1zdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jb25uZWN0
aW9uX3QgcGVlcikKLXsKLSAgICBzdGF0aWMgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNz
YWdlID0gbnVsbHB0cjsKLQotICAgIHhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWUocGVl
ciwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2
ZW50X2hhbmRsZXIocGVlciwgXih4cGNfb2JqZWN0X3QgZXZlbnQpIHsKLSAgICAgICAgeHBjX3R5
cGVfdCB0eXBlID0geHBjX2dldF90eXBlKGV2ZW50KTsKLSAgICAgICAgaWYgKHR5cGUgPT0gWFBD
X1RZUEVfRVJST1IpIHsKLSAgICAgICAgICAgIGlmIChldmVudCA9PSBYUENfRVJST1JfQ09OTkVD
VElPTl9JTlZBTElEIHx8IGV2ZW50ID09IFhQQ19FUlJPUl9URVJNSU5BVElPTl9JTU1JTkVOVCkg
ewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhpcyBjYXNlIG1vcmUgZ3JhY2Vm
dWxseS4KLSAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQodHlwZSA9PSBYUENfVFlQRV9E
SUNUSU9OQVJZKTsKLQotICAgICAgICAgICAgaWYgKCFzdHJjbXAoeHBjX2RpY3Rpb25hcnlfZ2V0
X3N0cmluZyhldmVudCwgIm1lc3NhZ2UtbmFtZSIpLCAiYm9vdHN0cmFwIikpIHsKLSAgICAgICAg
ICAgICAgICBDRkJ1bmRsZVJlZiB3ZWJLaXRCdW5kbGUgPSBDRkJ1bmRsZUdldEJ1bmRsZVdpdGhJ
ZGVudGlmaWVyKENGU1RSKCJjb20uYXBwbGUuV2ViS2l0IikpOwotICAgICAgICAgICAgICAgIENG
U3RyaW5nUmVmIGVudHJ5UG9pbnRGdW5jdGlvbk5hbWUgPSAoQ0ZTdHJpbmdSZWYpQ0ZCdW5kbGVH
ZXRWYWx1ZUZvckluZm9EaWN0aW9uYXJ5S2V5KENGQnVuZGxlR2V0TWFpbkJ1bmRsZSgpLCBDRlNU
UigiV2ViS2l0RW50cnlQb2ludCIpKTsKLQotICAgICAgICAgICAgICAgIHR5cGVkZWYgdm9pZCAo
KkluaXRpYWxpemVyRnVuY3Rpb24pKHhwY19jb25uZWN0aW9uX3QsIHhwY19vYmplY3RfdCwgeHBj
X29iamVjdF90KTsKLSAgICAgICAgICAgICAgICBJbml0aWFsaXplckZ1bmN0aW9uIGluaXRpYWxp
emVyRnVuY3Rpb25QdHIgPSByZWludGVycHJldF9jYXN0PEluaXRpYWxpemVyRnVuY3Rpb24+KENG
QnVuZGxlR2V0RnVuY3Rpb25Qb2ludGVyRm9yTmFtZSh3ZWJLaXRCdW5kbGUsIGVudHJ5UG9pbnRG
dW5jdGlvbk5hbWUpKTsKLSAgICAgICAgICAgICAgICBpZiAoIWluaXRpYWxpemVyRnVuY3Rpb25Q
dHIpIHsKLSAgICAgICAgICAgICAgICAgICAgTlNMb2coQCJVbmFibGUgdG8gZmluZCBlbnRyeSBw
b2ludCBpbiBXZWJLaXQuZnJhbWV3b3JrIHdpdGggbmFtZTogJUAiLCAoX19icmlkZ2UgTlNTdHJp
bmcgKillbnRyeVBvaW50RnVuY3Rpb25OYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgZXhpdChF
WElUX0ZBSUxVUkUpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGF1dG8g
cmVwbHkgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5X2NyZWF0ZV9yZXBseShldmVudCkp
OwotICAgICAgICAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcocmVwbHkuZ2V0KCks
ICJtZXNzYWdlLW5hbWUiLCAicHJvY2Vzcy1maW5pc2hlZC1sYXVuY2hpbmciKTsKLSAgICAgICAg
ICAgICAgICB4cGNfY29ubmVjdGlvbl9zZW5kX21lc3NhZ2UoeHBjX2RpY3Rpb25hcnlfZ2V0X3Jl
bW90ZV9jb25uZWN0aW9uKGV2ZW50KSwgcmVwbHkuZ2V0KCkpOwotCi0gICAgICAgICAgICAgICAg
aW50IGZkID0geHBjX2RpY3Rpb25hcnlfZHVwX2ZkKGV2ZW50LCAic3Rkb3V0Iik7Ci0gICAgICAg
ICAgICAgICAgaWYgKGZkICE9IC0xKQotICAgICAgICAgICAgICAgICAgICBkdXAyKGZkLCBTVERP
VVRfRklMRU5PKTsKLQotICAgICAgICAgICAgICAgIGZkID0geHBjX2RpY3Rpb25hcnlfZHVwX2Zk
KGV2ZW50LCAic3RkZXJyIik7Ci0gICAgICAgICAgICAgICAgaWYgKGZkICE9IC0xKQotICAgICAg
ICAgICAgICAgICAgICBkdXAyKGZkLCBTVERFUlJfRklMRU5PKTsKLQotICAgICAgICAgICAgICAg
IGluaXRpYWxpemVyRnVuY3Rpb25QdHIocGVlciwgZXZlbnQsIHByaW9yaXR5Qm9vc3RNZXNzYWdl
KTsKLSAgICAgICAgICAgICAgICBpZiAocHJpb3JpdHlCb29zdE1lc3NhZ2UpCi0gICAgICAgICAg
ICAgICAgICAgIHhwY19yZWxlYXNlKHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgLy8gTGVhayBhIGJvb3N0IG9udG8gdGhlIE5ldHdvcmtQcm9jZXNz
LgotICAgICAgICAgICAgaWYgKCFzdHJjbXAoeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhldmVu
dCwgIm1lc3NhZ2UtbmFtZSIpLCAicHJlLWJvb3RzdHJhcCIpKSB7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0KCFwcmlvcml0eUJvb3N0TWVzc2FnZSk7Ci0gICAgICAgICAgICAgICAgcHJpb3JpdHlC
b29zdE1lc3NhZ2UgPSB4cGNfcmV0YWluKGV2ZW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgIH0pOwotCi0gICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKHBlZXIpOwotfQotCi1pbnQg
WFBDU2VydmljZU1haW4oaW50LCBjb25zdCBjaGFyKiopCi17Ci0jaWYgZGVmaW5lZChfX2kzODZf
XykKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgb25seSBiZSBkb25lIGZvciB0aGUgMzItYml0
IHBsdWctaW4gWFBDIHNlcnZpY2Ugc28gd2UgcmVseSBvbiB0aGUgZmFjdCB0aGF0Ci0gICAgLy8g
aXQncyB0aGUgb25seSBvZiB0aGUgWFBDIHNlcnZpY2VzIHRoYXQgYXJlIDMyLWJpdC4gV2Ugc2hv
dWxkIGNvbWUgdXAgd2l0aCBhIG1vcmUgdGFyZ2V0ZWQgI2lmIGNoZWNrLgotICAgIEBhdXRvcmVs
ZWFzZXBvb2wgewotICAgICAgICAvLyBXZSBtdXN0IHNldCB0aGUgc3RhdGUgb2YgQXBwbGVNYWdu
aWZpZWRNb2RlIGJlZm9yZSBOU0FwcGxpY2F0aW9uIGluaXRpYWxpemF0aW9uIHNvIHRoYXQgdGhl
IHZhbHVlIHdpbGwgYmUgaW4KLSAgICAgICAgLy8gcGxhY2UgYmVmb3JlIENvY29hIHN0YXJ0dXAg
bG9naWMgcnVucyBhbmQgY2FjaGVzIHRoZSB2YWx1ZS4KLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gcmVnaXN0ZXJEZWZhdWx0czpAeyBAIkFwcGxlTWFnbmlm
aWVkTW9kZSIgOiBAWUVTIH1dOwotICAgIH0KLSNlbmRpZgotCi0gICAgYXV0byBib290c3RyYXAg
PSBhZG9wdE9TT2JqZWN0KHhwY19jb3B5X2Jvb3RzdHJhcCgpKTsKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGF1dG8gY29udGFpbmVyRW52aXJvbm1lbnRWYXJpYWJsZXMgPSB4cGNfZGlj
dGlvbmFyeV9nZXRfdmFsdWUoYm9vdHN0cmFwLmdldCgpLCAiQ29udGFpbmVyRW52aXJvbm1lbnRW
YXJpYWJsZXMiKTsKLSAgICB4cGNfZGljdGlvbmFyeV9hcHBseShjb250YWluZXJFbnZpcm9ubWVu
dFZhcmlhYmxlcywgXihjb25zdCBjaGFyICprZXksIHhwY19vYmplY3RfdCB2YWx1ZSkgewotICAg
ICAgICBzZXRlbnYoa2V5LCB4cGNfc3RyaW5nX2dldF9zdHJpbmdfcHRyKHZhbHVlKSwgMSk7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0pOwotI2VuZGlmCi0KLSAgICBpZiAoYm9vdHN0cmFw
KSB7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgICAgICBpZiAoY29uc3QgY2hhciogd2ViS2l0QnVu
ZGxlVmVyc2lvbiA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoYm9vdHN0cmFwLmdldCgpLCAi
V2ViS2l0QnVuZGxlVmVyc2lvbiIpKSB7Ci0gICAgICAgICAgICBDRkJ1bmRsZVJlZiB3ZWJLaXRC
dW5kbGUgPSBDRkJ1bmRsZUdldEJ1bmRsZVdpdGhJZGVudGlmaWVyKENGU1RSKCJjb20uYXBwbGUu
V2ViS2l0IikpOwotICAgICAgICAgICAgTlNTdHJpbmcgKmV4cGVjdGVkQnVuZGxlVmVyc2lvbiA9
IChOU1N0cmluZyAqKUNGQnVuZGxlR2V0VmFsdWVGb3JJbmZvRGljdGlvbmFyeUtleSh3ZWJLaXRC
dW5kbGUsIGtDRkJ1bmRsZVZlcnNpb25LZXkpOwotCi0gICAgICAgICAgICBpZiAoc3RyY21wKHdl
YktpdEJ1bmRsZVZlcnNpb24sIGV4cGVjdGVkQnVuZGxlVmVyc2lvbi5VVEY4U3RyaW5nKSkgewot
ICAgICAgICAgICAgICAgIF9XS1NldENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0luZm9y
bWF0aW9uKFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiV2ViS2l0IGZyYW1ld29yayB2ZXJz
aW9uIG1pc21hdGNoOiAnJXMnIiwgd2ViS2l0QnVuZGxlVmVyc2lvbl0pOwotICAgICAgICAgICAg
ICAgIF9fYnVpbHRpbl90cmFwKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZgot
Ci0gICAgICAgIGlmICh4cGNfb2JqZWN0X3QgbGFuZ3VhZ2VzID0geHBjX2RpY3Rpb25hcnlfZ2V0
X3ZhbHVlKGJvb3RzdHJhcC5nZXQoKSwgIk92ZXJyaWRlTGFuZ3VhZ2VzIikpIHsKLSAgICAgICAg
ICAgIEBhdXRvcmVsZWFzZXBvb2wgewotICAgICAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqZXhp
c3RpbmdBcmd1bWVudHMgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSB2
b2xhdGlsZURvbWFpbkZvck5hbWU6TlNBcmd1bWVudERvbWFpbl07Ci0gICAgICAgICAgICAgICAg
TlNNdXRhYmxlRGljdGlvbmFyeSAqbmV3QXJndW1lbnRzID0gW2V4aXN0aW5nQXJndW1lbnRzIG11
dGFibGVDb3B5XTsKLSAgICAgICAgICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG5l
d0xhbmd1YWdlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAg
ICAgICAgICAgICAgIHhwY19hcnJheV9hcHBseShsYW5ndWFnZXMsIF4oc2l6ZV90IGluZGV4LCB4
cGNfb2JqZWN0X3QgdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgW25ld0xhbmd1YWdlcyBh
ZGRPYmplY3Q6W05TU3RyaW5nIHN0cmluZ1dpdGhDU3RyaW5nOnhwY19zdHJpbmdfZ2V0X3N0cmlu
Z19wdHIodmFsdWUpIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
ICAgIFtuZXdBcmd1bWVudHMgc2V0VmFsdWU6bmV3TGFuZ3VhZ2VzLmdldCgpIGZvcktleTpAIkFw
cGxlTGFuZ3VhZ2VzIl07Ci0gICAgICAgICAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFy
ZFVzZXJEZWZhdWx0c10gc2V0Vm9sYXRpbGVEb21haW46bmV3QXJndW1lbnRzIGZvck5hbWU6TlNB
cmd1bWVudERvbWFpbl07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSNpZiBQ
TEFURk9STShNQUMpCi0gICAgLy8gRG9uJ3QgYWxsb3cgQXBwbGUgRXZlbnRzIGluIFdlYktpdCBw
cm9jZXNzZXMuIFRoaXMgY2FuIGJlIHJlbW92ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0vMTQwMTI4
MjM+IGlzIGZpeGVkLgotICAgIHNldGVudigiX19BUFBMRUVWRU5UU1NFUlZJQ0VOQU1FIiwgIiIs
IDEpOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKLSAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIHRhbGsgdG8gdGhlIGRvY2suCi0gICAgaWYgKENsYXNzIG5z
QXBwbGljYXRpb25DbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNBcHBsaWNhdGlvbiIpKSB7
Ci0gICAgICAgIGlmIChbbnNBcHBsaWNhdGlvbkNsYXNzIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3ByZXZlbnREb2NrQ29ubmVjdGlvbnMpXSkKLSAgICAgICAgICAgIFtuc0FwcGxpY2F0
aW9uQ2xhc3MgX3ByZXZlbnREb2NrQ29ubmVjdGlvbnNdOwotICAgIH0KLSNlbmRpZgotI2VuZGlm
Ci0KLSAgICB4cGNfbWFpbihYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKTsKLSAgICByZXR1cm4gMDsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLWludCBtYWluKGludCBhcmdjLCBjb25zdCBj
aGFyKiogYXJndikKLXsKLSAgICByZXR1cm4gV2ViS2l0OjpYUENTZXJ2aWNlTWFpbihhcmdjLCBh
cmd2KTsKLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlRW50cnlQb2ludC5oCShyZXZpc2lvbiAyNDAyODUpCisrKyBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgY2hlY2tFbnRpdGxlbWVudHMoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBn
ZXRDb25uZWN0aW9uSWRlbnRpZmllcihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXImIGlkZW50
aWZpZXIpOworICAgIHZpcnR1YWwgYm9vbCBnZXRDb25uZWN0aW9uSWRlbnRpZmllcihJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50
aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVudElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vy
dmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQubW0JKHJldmlzaW9uIDI0MDI4NSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8KIAogI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgogCiAjaW1wb3J0ICJBcmd1
bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJTYW5kYm94VXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJY
UENTZXJ2aWNlRW50cnlQb2ludC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Qcm9jZXNzLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHJldmlzaW9uIDI0MDI4NSkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+
CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNDAwCisjaWYgUExBVEZPUk0oTUFDKQogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNBcHBs
aWNhdGlvblNQSS5oPgogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjQwMjg1KQorKysgU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
ODAwMyw3ICs4MDAzLDcgQEAKIAkJCQlCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUgLyogWFBDU2Vy
dmljZU1haW4ubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IFhQQ1NlcnZpY2U7Ci0JCQlwYXRoID0g
bWFjL1hQQ1NlcnZpY2U7CisJCQlwYXRoID0gQ29jb2EvWFBDU2VydmljZTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CiAJCUJDODI4MzdDMTZCNDVEQTUwMEEyNzhGRSAvKiBFbnRy
eVBvaW50ICovID0gewpAQCAtODAyOSw3ICs4MDI5LDcgQEAKIAkJCQlCQzgyODNBODE2QjRCRDkx
MDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tICovLAogCQkJKTsKIAkJCW5h
bWUgPSBYUENTZXJ2aWNlOwotCQkJcGF0aCA9IG1hYy9YUENTZXJ2aWNlOworCQkJcGF0aCA9IENv
Y29hL1hQQ1NlcnZpY2U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwogCQlCQzgy
ODNBMjE2QjRCRDkxMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2UgKi8gPSB7CkBAIC04MDQ4LDcg
KzgwNDgsNyBAQAogCQkJCUJDODI4M0VGMTZCNEY4RTIwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNl
RW50cnlQb2ludC5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gWFBDU2VydmljZTsKLQkJCXBhdGgg
PSBtYWMvWFBDU2VydmljZTsKKwkJCXBhdGggPSBDb2NvYS9YUENTZXJ2aWNlOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKIAkJQkM4MjgzRTkxNkI0RjhFMjAwQTI3OEZFIC8qIFBs
dWdpblNlcnZpY2UgKi8gPSB7CkBAIC04MTE1LDcgKzgxMTUsNyBAQAogCQkJCUJDODI4Mzk4MTZC
NDhEQzAwMEEyNzhGRSAvKiBXZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IFhQQ1NlcnZpY2U7Ci0JCQlwYXRoID0gbWFjL1hQQ1NlcnZpY2U7CisJCQlw
YXRoID0gQ29jb2EvWFBDU2VydmljZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CiAJCUJDQUNDNDNGMTZCMjRDQUEwMEI2RTA5MiAvKiBXZWJDb250ZW50U2VydmljZSAqLyA9IHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNl
L1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8tT1NYLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2
aWNlL0luZm8tT1NYLnBsaXN0CShyZXZpc2lvbiAyNDAyODUpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZv
LU9TWC5wbGlzdAkobm9uZXhpc3RlbnQpCkBAIC0xLDU1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBs
ZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5
TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1
bmRsZUZvbGxvd1BhcmVudExvY2FsaXphdGlvbjwva2V5PgotCTx0cnVlLz4KLQk8a2V5PkNGQnVu
ZGxlR2V0SW5mb1N0cmluZzwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHly
aWdodCAyMDAzLTIwMTkgQXBwbGUgSW5jLjwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVEZXZlbG9w
bWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5k
bGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4K
LQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRM
RV9JREVOVElGSUVSfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNp
b248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+
Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlUGFja2Fn
ZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2hvcnRW
ZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3Ry
aW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KLQk8c3RyaW5nPj8/Pz88L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lP
Tn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+Ci0JPHRydWUv
PgotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgotCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwv
c3RyaW5nPgotCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgotCTxzdHJpbmc+V2ViQ29udGVu
dFNlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KLQk8
dHJ1ZS8+Ci0JPGtleT5OU1N1cHBvcnRzQXV0b21hdGljR3JhcGhpY3NTd2l0Y2hpbmc8L2tleT4K
LQk8dHJ1ZS8+Ci0JPGtleT5OU1N1cHBvcnRzQXBwTmFwPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+
TlNNYWluTmliRmlsZTwva2V5PgotCTxzdHJpbmc+V2ViQ29udGVudFByb2Nlc3M8L3N0cmluZz4K
LQk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJPGtleT5Kb2luRXhpc3RpbmdTZXNz
aW9uPC9rZXk+Ci0JCTx0cnVlLz4KLQkJPGtleT5TZXJ2aWNlVHlwZTwva2V5PgotCQk8c3RyaW5n
PkFwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JCTxrZXk+UnVuTG9vcFR5cGU8L2tleT4KLQkJPHN0cmlu
Zz4ke1JVTkxPT1BfVFlQRX08L3N0cmluZz4KLQkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tl
eT4KLQkJPHRydWUvPgotCQk8a2V5Pl9IaWdoQml0c0FTTFI8L2tleT4KLQkJPHRydWUvPgotCTwv
ZGljdD4KLTwvZGljdD4KLTwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLWlPUy5wbGlz
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdAkocmV2aXNpb24gMjQw
Mjg1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZp
Y2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1pT1MucGxpc3QJKG5vbmV4aXN0ZW50KQpAQCAtMSw0
OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NU
WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3
dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0i
MS4wIj4KLTxkaWN0PgotCTxrZXk+Q0ZCdW5kbGVGb2xsb3dQYXJlbnRMb2NhbGl6YXRpb248L2tl
eT4KLQk8dHJ1ZS8+Ci0JPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5n
PiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE5IEFwcGxlIEluYy48L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xp
c2g8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtF
WEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4K
LQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4K
LQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJp
bmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJp
bmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtT
SE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9r
ZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4K
LQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50
aW5lRW5hYmxlZDwva2V5PgotCTx0cnVlLz4KLQk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4K
LQk8c3RyaW5nPldlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KLQk8a2V5PlhQ
Q1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJPGtleT5TZXJ2aWNlVHlwZTwva2V5PgotCQk8c3Ry
aW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JCTxrZXk+UnVuTG9vcFR5cGU8L2tleT4KLQkJPHN0
cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KLQkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4K
LQkJPHRydWUvPgotCQk8a2V5Pl9IaWdoQml0c0FTTFI8L2tleT4KLQkJPHRydWUvPgotCTwvZGlj
dD4KLQk8a2V5PlVJQmFja2dyb3VuZE1vZGVzPC9rZXk+Ci0JPGFycmF5PgotCQk8c3RyaW5nPmF1
ZGlvPC9zdHJpbmc+Ci0JPC9hcnJheT4KLQk8a2V5PkNhbkluaGVyaXRBcHBsaWNhdGlvblN0YXRl
RnJvbU90aGVyUHJvY2Vzc2VzPC9rZXk+Ci0JPHRydWUvPgotPC9kaWN0PgotPC9wbGlzdD4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dl
YkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVu
dHJ5UG9pbnQubW0JKHJldmlzaW9uIDI0MDI4NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5t
bQkobm9uZXhpc3RlbnQpCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLQotI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIldL
QmFzZS5oIgotI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgotI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5
UG9pbnQuaCIKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVUaHJlYWRTeXN0ZW1JbnRlcmZhY2UuaD4KLSNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBo
aWNzU2VydmljZXNTUEkuaD4KLSNlbmRpZgotCi1leHRlcm4gIkMiIFdLX0VYUE9SVCB2b2lkIFdl
YkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4
cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29z
dE1lc3NhZ2UpOwotCi12b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5l
Y3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNf
b2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpCi17Ci0gICAgLy8gUmVtb3ZlIHRoZSBXZWJQ
cm9jZXNzU2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQgdmFy
aWFibGUgc28gYW55IHByb2Nlc3NlcyBzcGF3bmVkIGJ5Ci0gICAgLy8gdGhlIHRoaXMgcHJvY2Vz
cyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KLSAgICBXZWJLaXQ6OkVu
dmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5T
RVJUX0xJQlJBUklFUyIsICIvV2ViUHJvY2Vzc1NoaW0uZHlsaWIiKTsKLQotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgR1NJbml0aWFsaXplKCk7Ci0gICAgSW5pdFdlYkNvcmVUaHJlYWRT
eXN0ZW1JbnRlcmZhY2UoKTsKLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQotCi0gICAg
V2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXI8V2ViS2l0OjpXZWJQcm9jZXNzLCBXZWJLaXQ6
OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlPihhZG9wdE9TT2JqZWN0KGNvbm5lY3Rpb24p
LCBpbml0aWFsaXplck1lc3NhZ2UsIHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLX0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29u
dGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRy
eVBvaW50Lm1tCShyZXZpc2lvbiAyNDAyODUpCShmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5t
bToyNDAyODUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9Y
UENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBv
cnQgIkVudmlyb25tZW50VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJXS0Jhc2UuaCIKKyNpbXBvcnQg
IldlYlByb2Nlc3MuaCIKKyNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkU3lzdGVt
SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+
CisjZW5kaWYKKworZXh0ZXJuICJDIiBXS19FWFBPUlQgdm9pZCBXZWJDb250ZW50U2VydmljZUlu
aXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRp
YWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKKwordm9p
ZCBXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlv
biwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5
Qm9vc3RNZXNzYWdlKQoreworICAgIC8vIFJlbW92ZSB0aGUgV2ViUHJvY2Vzc1NoaW0gZnJvbSB0
aGUgRFlMRF9JTlNFUlRfTElCUkFSSUVTIGVudmlyb25tZW50IHZhcmlhYmxlIHNvIGFueSBwcm9j
ZXNzZXMgc3Bhd25lZCBieQorICAgIC8vIHRoZSB0aGlzIHByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGlu
c2VydCB0aGUgc2hpbSBhbmQgY3Jhc2guCisgICAgV2ViS2l0OjpFbnZpcm9ubWVudFV0aWxpdGll
czo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAi
L1dlYlByb2Nlc3NTaGltLmR5bGliIik7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IEdTSW5pdGlhbGl6ZSgpOworICAgIEluaXRXZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNlKCk7
CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworICAgIFdlYktpdDo6WFBDU2Vydmlj
ZUluaXRpYWxpemVyPFdlYktpdDo6V2ViUHJvY2VzcywgV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlh
bGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNz
YWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8t
T1NYLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBv
aW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1PU1gucGxpc3QJKHJl
dmlzaW9uIDI0MDI4NSkJKGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1PU1gucGxpc3Q6MjQwMjg1KQor
KysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9X
ZWJDb250ZW50U2VydmljZS9JbmZvLU9TWC5wbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDU1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBF
IHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5h
cHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4w
Ij4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVGb2xsb3dQYXJlbnRMb2NhbGl6YXRpb248L2tleT4K
Kwk8dHJ1ZS8+CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7
QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE5IEFwcGxlIEluYy48L3N0cmluZz4K
Kwk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KKwk8c3RyaW5nPkVuZ2xpc2g8
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxzdHJpbmc+JHtFWEVD
VVRBQkxFX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8
c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KKwk8a2V5PkNGQnVu
ZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5YUEMhPC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+JHtTSE9S
VF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+
CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8
c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5l
RW5hYmxlZDwva2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KKwk8
c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KKwk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tl
eT4KKwk8c3RyaW5nPldlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KKwk8a2V5
PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNTdXBwb3J0c0F1dG9tYXRpY0dy
YXBoaWNzU3dpdGNoaW5nPC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNTdXBwb3J0c0FwcE5hcDwv
a2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TTWFpbk5pYkZpbGU8L2tleT4KKwk8c3RyaW5nPldlYkNv
bnRlbnRQcm9jZXNzPC9zdHJpbmc+CisJPGtleT5YUENTZXJ2aWNlPC9rZXk+CisJPGRpY3Q+CisJ
CTxrZXk+Sm9pbkV4aXN0aW5nU2Vzc2lvbjwva2V5PgorCQk8dHJ1ZS8+CisJCTxrZXk+U2Vydmlj
ZVR5cGU8L2tleT4KKwkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgorCQk8a2V5PlJ1bkxv
b3BUeXBlPC9rZXk+CisJCTxzdHJpbmc+JHtSVU5MT09QX1RZUEV9PC9zdHJpbmc+CisJCTxrZXk+
X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+CisJCTx0cnVlLz4KKwkJPGtleT5fSGlnaEJpdHNBU0xS
PC9rZXk+CisJCTx0cnVlLz4KKwk8L2RpY3Q+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250
ZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0lu
Zm8taU9TLnBsaXN0CShyZXZpc2lvbiAyNDAyODUpCShmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8taU9T
LnBsaXN0OjI0MDI4NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1pT1MucGxpc3QJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG
LTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9F
TiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBs
aXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlRm9sbG93UGFyZW50TG9j
YWxpemF0aW9uPC9rZXk+CisJPHRydWUvPgorCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9r
ZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAxOSBBcHBs
ZSBJbmMuPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+CisJ
PHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4K
Kwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJZGVu
dGlmaWVyPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfQlVORExFX0lERU5USUZJRVJ9PC9zdHJp
bmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+
Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVD
VF9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgorCTxzdHJp
bmc+WFBDITwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4K
Kwk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRs
ZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVW
ZXJzaW9uPC9rZXk+CisJPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgorCTxrZXk+
TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5XZWJLaXRFbnRy
eVBvaW50PC9rZXk+CisJPHN0cmluZz5XZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyPC9zdHJp
bmc+CisJPGtleT5YUENTZXJ2aWNlPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+U2VydmljZVR5cGU8
L2tleT4KKwkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgorCQk8a2V5PlJ1bkxvb3BUeXBl
PC9rZXk+CisJCTxzdHJpbmc+TlNSdW5Mb29wPC9zdHJpbmc+CisJCTxrZXk+X011bHRpcGxlSW5z
dGFuY2VzPC9rZXk+CisJCTx0cnVlLz4KKwkJPGtleT5fSGlnaEJpdHNBU0xSPC9rZXk+CisJCTx0
cnVlLz4KKwk8L2RpY3Q+CisJPGtleT5VSUJhY2tncm91bmRNb2Rlczwva2V5PgorCTxhcnJheT4K
KwkJPHN0cmluZz5hdWRpbzwvc3RyaW5nPgorCTwvYXJyYXk+CisJPGtleT5DYW5Jbmhlcml0QXBw
bGljYXRpb25TdGF0ZUZyb21PdGhlclByb2Nlc3Nlczwva2V5PgorCTx0cnVlLz4KKzwvZGljdD4K
KzwvcGxpc3Q+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360868</attachid>
            <date>2019-02-01 09:48:08 -0800</date>
            <delta_ts>2019-02-01 14:20:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194129-20190201094807.patch</filename>
            <type>text/plain</type>
            <size>70287</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDA4NTcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTAyLTAxICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBYUENTZXJ2
aWNlIGVudHJ5IHBvaW50cyBmcm9tIG1hYyBkaXJlY3RvcnkgdG8gbmV3IENvY29hIGRpcmVjdG9y
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MTI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9OZXR3b3JrU2VydmljZS54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9QbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L1dlYkNvbnRlbnRTZXJ2aWNlLnhjY29uZmlnOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvQ29jb2E6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RW50cnlQb2ludC9tYWMuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWM6
IFJlbW92ZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMuCisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYzogUmVtb3ZlZC4KKyAgICAgICAgKiBT
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYTogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMuCisgICAgICAgICogU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oOgor
ICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZUVudHJ5UG9pbnQubW06CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbToKKyAgICAgICAgKiBTaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9tYWM6IFJlbW92ZWQuCisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2E6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvbWFjOiBSZW1vdmVkLgorCiAyMDE5LTAyLTAxICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9s
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFJldmVydCBwYXJ0cyBvZiByMjQwODEx
LCBzaW5jZSBpdCBjYXVzZXMga2VybmVsIHBhbmljcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQJKHJldmlzaW9uIDI0MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90
b2NvbHMvTGVnYWN5Q3VzCiAKIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9jb2NvYS9Eb3dubG9h
ZENvY29hLm1tCiAKLU5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0
d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCitOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIE5ldHdvcmtQcm9jZXNz
L2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQogCkBAIC04MSw3ICs4MSw3IEBAIFBsYXRmb3JtL21h
Yy9TdHJpbmdVdGlsaXRpZXMubW0KIAogUGxhdGZvcm0vdW5peC9FbnZpcm9ubWVudFV0aWxpdGll
cy5jcHAKIAotUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNl
cnZpY2VFbnRyeVBvaW50Lm1tIEBuby11bmlmeQorUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gQG5vLXVuaWZ5CiAKIFBs
dWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbSBAbm8tdW5pZnkKIFBs
dWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0gQG5vLXVuaWZ5CkBAIC0xNDcsOCAr
MTQ3LDggQEAgU2hhcmVkL0NvY29hL1dLTlNVUkxFeHRyYXMubW0KIFNoYXJlZC9Db2NvYS9XS05T
VVJMUmVxdWVzdC5tbQogU2hhcmVkL0NvY29hL1dLT2JqZWN0Lm1tCiAKLVNoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCi1TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQor
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50
cnlQb2ludC5tbQorU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9Y
UENTZXJ2aWNlTWFpbi5tbQogCiBTaGFyZWQvaW9zL0F1eGlsaWFyeVByb2Nlc3NJT1MubW0KIFNo
YXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KQEAgLTQ5Myw3ICs0
OTMsNyBAQCBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiBXZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCiAKLVdlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9X
ZWJDb250ZW50U2VydmljZUVudHJ5UG9pbnQubW0KK1dlYlByb2Nlc3MvRW50cnlQb2ludC9Db2Nv
YS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5jcHAKIApJbmRleDogU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9OZXR3b3JrU2VydmljZS54Y2NvbmZpZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL05ldHdvcmtTZXJ2aWNlLnhjY29u
ZmlnCShyZXZpc2lvbiAyNDA4NTApCisrKyBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL05l
dHdvcmtTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBAIE9U
SEVSX0NPREVfU0lHTl9GTEFHUyA9ICQoV0tfTElCUkFSWV9WQUwKIAogUFJPRFVDVF9OQU1FID0g
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nOwogUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9
ICQoUFJPRFVDVF9OQU1FKTsKLUlORk9QTElTVF9GSUxFW3Nkaz1pcGhvbmUqXSA9IE5ldHdvcmtQ
cm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1pT1Mu
cGxpc3Q7Ci1JTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0gPSBOZXR3b3JrUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0OworSU5G
T1BMSVNUX0ZJTEVbc2RrPWlwaG9uZSpdID0gTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2Nv
YS9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8taU9TLnBsaXN0OworSU5GT1BMSVNUX0ZJ
TEVbc2RrPW1hY29zeCpdID0gTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2
aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0OwogCiBPVEhFUl9MREZMQUdTID0gJChp
bmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19WRVJTSU9ORURfRlJBTUVXT1JLX1BBVEgpICQoV0tf
UkVMT0NBVEFCTEVfRlJBTUVXT1JLU19MREZMQUdTKTsKIE9USEVSX0xERkxBR1Nbc2RrPW1hY29z
eCpdID0gJChpbmhlcml0ZWQpICQoQlVJTFRfUFJPRFVDVFNfRElSKS9TZWNJdGVtU2hpbS5keWxp
YjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvUGx1Z2luU2VydmljZS42NC54
Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1BsdWdp
blNlcnZpY2UuNjQueGNjb25maWcJKHJldmlzaW9uIDI0MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNyBAQCBWQUxJRF9BUkNIU19tYWNvc3hfTk8gPSB4ODZfNjQ7CiAKIFBST0RV
Q1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0OwogUFJPRFVDVF9CVU5ETEVfSURF
TlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsKLUlORk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuNjQuSW5mby5wbGlzdDsK
K0lORk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZp
Y2UvUGx1Z2luU2VydmljZS42NC5JbmZvLnBsaXN0OwogCiBXS19BUFBLSVRfTERGTEFHUyA9ICQo
V0tfQVBQS0lUX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19BUFBLSVRfTERGTEFH
U19tYWNvc3ggPSAtZnJhbWV3b3JrIEFwcEtpdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvV2ViQ29udGVudFNlcnZpY2UueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJDb250ZW50U2VydmljZS54Y2NvbmZpZwkocmV2aXNp
b24gMjQwODUwKQorKysgU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJDb250ZW50U2Vy
dmljZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEsOCBAQCBQUk9EVUNUX05B
TUVfTm9ybWFsID0gY29tLmFwcGxlLldlYktpdC5XCiBQUk9EVUNUX05BTUVfRGV2ZWxvcG1lbnQg
PSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQ7CiAKIFBST0RVQ1RfQlVO
RExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7Ci1JTkZPUExJU1RfRklMRVtzZGs9aXBo
b25lKl0gPSBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNl
cnZpY2UvSW5mby1pT1MucGxpc3Q7Ci1JTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0gPSBXZWJQ
cm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1P
U1gucGxpc3Q7CitJTkZPUExJU1RfRklMRVtzZGs9aXBob25lKl0gPSBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdDsK
K0lORk9QTElTVF9GSUxFW3Nkaz1tYWNvc3gqXSA9IFdlYlByb2Nlc3MvRW50cnlQb2ludC9Db2Nv
YS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8tT1NYLnBsaXN0OwogCiBXS19BUFBL
SVRfTERGTEFHUyA9ICQoV0tfQVBQS0lUX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBX
S19BUFBLSVRfTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIEFwcEtpdDsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3Jr
U2VydmljZS9JbmZvLU9TWC5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1P
U1gucGxpc3QJKHJldmlzaW9uIDI0MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZvLU9TWC5wbGlz
dAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBM
SVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAu
ZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUdldElu
Zm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAw
My0yMDE5IEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdp
b248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0
YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5D
RkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJ
RklFUn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+
Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJp
bmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9r
ZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0
cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8
a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJp
bmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0cnVlLz4KLQk8a2V5
Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4K
LQk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KLQk8c3RyaW5nPk5ldHdvcmtTZXJ2aWNlSW5p
dGlhbGl6ZXI8L3N0cmluZz4KLQk8a2V5PkxTVUlFbGVtZW50PC9rZXk+Ci0JPHRydWUvPgotCTxr
ZXk+WFBDU2VydmljZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+Ci0J
CTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4KLQkJPGtleT5Kb2luRXhpc3RpbmdTZXNzaW9u
PC9rZXk+Ci0JCTx0cnVlLz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5nPk5T
UnVuTG9vcDwvc3RyaW5nPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgotCQk8dHJ1
ZS8+Ci0JPC9kaWN0PgotPC9kaWN0PgotPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZv
LWlPUy5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1pT1MucGxpc3QJKHJl
dmlzaW9uIDI0MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZvLWlPUy5wbGlzdAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDQzICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04
Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4i
ICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlz
dCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tl
eT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE5IEFwcGxl
IEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8
c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5Pgot
CTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50
aWZpZXI8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42
LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNU
X05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmlu
Zz5YUEMhPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5Pgot
CTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxl
U2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZl
cnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+Ci0JPGtleT5M
U0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFs
Q2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLQk8a2V5PldlYktp
dEVudHJ5UG9pbnQ8L2tleT4KLQk8c3RyaW5nPk5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0
cmluZz4KLQk8a2V5PkxTVUlFbGVtZW50PC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+WFBDU2Vydmlj
ZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+QXBw
bGljYXRpb248L3N0cmluZz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5nPk5T
UnVuTG9vcDwvc3RyaW5nPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgotCQk8dHJ1
ZS8+Ci0JPC9kaWN0PgotPC9kaWN0PgotPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5
UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQkocmV2aXNp
b24gMjQwODUwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlRW50cnlQb2ludC5tbQkobm9uZXhpc3RlbnQpCkBA
IC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2ltcG9y
dCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzLmgiCi0j
aW1wb3J0ICJXS0Jhc2UuaCIKLSNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCi0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyRGVsZWdh
dGUgOiBwdWJsaWMgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgewotcHVibGljOgotICAg
IE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVj
dGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQotICAg
ICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiks
IGluaXRpYWxpemVyTWVzc2FnZSkKLSAgICB7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Pgotdm9p
ZCBpbml0aWFsaXplQXV4aWxpYXJ5UHJvY2VzczxOZXR3b3JrUHJvY2Vzcz4oQXV4aWxpYXJ5UHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi17Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPE5ldHdvcmtQcm9jZXNzPiBuZXR3b3JrUHJvY2VzcyhXVEZNb3ZlKHBh
cmFtZXRlcnMpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7Ci0KLWV4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgTmV0d29ya1NlcnZpY2VJbml0
aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFs
aXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Ci0KLXZvaWQg
TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhw
Y19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0
TWVzc2FnZSkKLXsKLSAgICAvLyBSZW1vdmUgdGhlIFNlY0l0ZW1TaGltIGZyb20gdGhlIERZTERf
SU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNw
YXduZWQgYnkKLSAgICAvLyB0aGUgdGhpcyBwcm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhl
IHNoaW0gYW5kIGNyYXNoLgotICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0Vu
ZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0uZHls
aWIiKTsKLSAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXI8TmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChjb25uZWN0aW9uKSwgaW5p
dGlhbGl6ZXJNZXNzYWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Ci19CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3Jr
U2VydmljZUVudHJ5UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBv
aW50Lm1tCShyZXZpc2lvbiAyNDA4NTApCShmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW06
MjQwODUwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9y
dCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzLmgiCisj
aW1wb3J0ICJXS0Jhc2UuaCIKKyNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyRGVsZWdh
dGUgOiBwdWJsaWMgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgeworcHVibGljOgorICAg
IE5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVj
dGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAg
ICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiks
IGluaXRpYWxpemVyTWVzc2FnZSkKKyAgICB7CisgICAgfQorfTsKKwordGVtcGxhdGU8Pgordm9p
ZCBpbml0aWFsaXplQXV4aWxpYXJ5UHJvY2VzczxOZXR3b3JrUHJvY2Vzcz4oQXV4aWxpYXJ5UHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPE5ldHdvcmtQcm9jZXNzPiBuZXR3b3JrUHJvY2VzcyhXVEZNb3ZlKHBh
cmFtZXRlcnMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK2V4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgTmV0d29ya1NlcnZpY2VJbml0
aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFs
aXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7CisKK3ZvaWQg
TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhw
Y19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0
TWVzc2FnZSkKK3sKKyAgICAvLyBSZW1vdmUgdGhlIFNlY0l0ZW1TaGltIGZyb20gdGhlIERZTERf
SU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNw
YXduZWQgYnkKKyAgICAvLyB0aGUgdGhpcyBwcm9jZXNzIGRvbid0IHRyeSB0byBpbnNlcnQgdGhl
IHNoaW0gYW5kIGNyYXNoLgorICAgIEVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0Vu
ZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvU2VjSXRlbVNoaW0uZHls
aWIiKTsKKyAgICBYUENTZXJ2aWNlSW5pdGlhbGl6ZXI8TmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChjb25uZWN0aW9uKSwgaW5p
dGlhbGl6ZXJNZXNzYWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Cit9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3Jr
U2VydmljZS9JbmZvLU9TWC5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZv
LU9TWC5wbGlzdAkocmV2aXNpb24gMjQwODUwKQkoZnJvbSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1PU1gu
cGxpc3Q6MjQwODUwKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1PU1gucGxpc3QJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG
LTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9F
TiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBs
aXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwv
a2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTkgQXBw
bGUgSW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5Pgor
CTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+
CisJPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRl
bnRpZmllcjwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3Ry
aW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5n
PjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RV
Q1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3Ry
aW5nPlhQQyE8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+
CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5k
bGVTaWduYXR1cmU8L2tleT4KKwk8c3RyaW5nPj8/Pz88L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxl
VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KKwk8a2V5
PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNQcmluY2lw
YWxDbGFzczwva2V5PgorCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+V2Vi
S2l0RW50cnlQb2ludDwva2V5PgorCTxzdHJpbmc+TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcjwv
c3RyaW5nPgorCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5YUENTZXJ2
aWNlPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+U2VydmljZVR5cGU8L2tleT4KKwkJPHN0cmluZz5B
cHBsaWNhdGlvbjwvc3RyaW5nPgorCQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248L2tleT4KKwkJ
PHRydWUvPgorCQk8a2V5PlJ1bkxvb3BUeXBlPC9rZXk+CisJCTxzdHJpbmc+TlNSdW5Mb29wPC9z
dHJpbmc+CisJCTxrZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+CisJCTx0cnVlLz4KKwk8L2Rp
Y3Q+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1pT1MucGxp
c3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50
L0NvY29hL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1pT1MucGxpc3QJKHJldmlzaW9u
IDI0MDg1MCkJKGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8taU9TLnBsaXN0OjI0MDg1MCkKKysrIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL05l
dHdvcmtTZXJ2aWNlL0luZm8taU9TLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxp
c3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxl
LmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgor
PGRpY3Q+CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KKwk8c3RyaW5nPiR7QlVO
RExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE5IEFwcGxlIEluYy48L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KKwk8c3RyaW5nPkVuZ2xpc2g8L3N0
cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxzdHJpbmc+JHtFWEVDVVRB
QkxFX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3Ry
aW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxl
SW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8a2V5
PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+CisJ
PGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5YUEMhPC9zdHJpbmc+CisJ
PGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+JHtTSE9SVF9W
RVJTSU9OX1NUUklOR308L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJ
PHN0cmluZz4/Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3Ry
aW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5h
YmxlZDwva2V5PgorCTx0cnVlLz4KKwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KKwk8c3Ry
aW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KKwk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4K
Kwk8c3RyaW5nPk5ldHdvcmtTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KKwk8a2V5PkxTVUlF
bGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+WFBDU2VydmljZTwva2V5PgorCTxkaWN0Pgor
CQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+CisJCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4K
KwkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgorCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPgor
CQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgorCQk8dHJ1ZS8+CisJPC9kaWN0PgorPC9k
aWN0PgorPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBv
aW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuNjQuSW5mby5wbGlzdAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9QbHVnaW5TZXJ2aWNlLjY0LkluZm8ucGxpc3QJKHJldmlzaW9uIDI0MDg1MCkKKysrIFNvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNl
cnZpY2UuNjQuSW5mby5wbGlzdAkobm9uZXhpc3RlbnQpCkBAIC0xLDU4ICswLDAgQEAKLTw/eG1s
IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElD
ICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERz
L1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0J
PGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJ
T059LCBDb3B5cmlnaHQgMjAwMy0yMDE5IEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVu
ZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8
a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9
PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPiR7UFJP
RFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rp
b25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxl
TmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NU
UklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/
Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVO
RExFX1ZFUlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5
PgotCTxmYWxzZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmluZz5OU0Fw
cGxpY2F0aW9uPC9zdHJpbmc+Ci0JPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+Ci0JPHN0cmlu
Zz5QbHVnaW5TZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KLQk8a2V5PkxTVUlFbGVtZW50PC9r
ZXk+Ci0JPHRydWUvPgotCTxrZXk+TlNTdXBwb3J0c0F1dG9tYXRpY0dyYXBoaWNzU3dpdGNoaW5n
PC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TlNTdXBwb3J0c0FwcE5hcDwva2V5PgotCTx0cnVlLz4K
LQk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJPGtleT5TZXJ2aWNlVHlwZTwva2V5
PgotCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JCTxrZXk+UnVuTG9vcFR5cGU8L2tl
eT4KLQkJPHN0cmluZz5fTlNBcHBsaWNhdGlvbk1haW48L3N0cmluZz4KLQkJPGtleT5Kb2luRXhp
c3RpbmdTZXNzaW9uPC9rZXk+Ci0JCTx0cnVlLz4KLQkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8
L2tleT4KLQkJPHRydWUvPgotCQk8a2V5Pl9BYmFuZG9uQ29hbGl0aW9uPC9rZXk+Ci0JCTx0cnVl
Lz4KLQkJPGtleT5fSGlnaEJpdHNBU0xSPC9rZXk+Ci0JCTx0cnVlLz4KLQkJPGtleT5FbnZpcm9u
bWVudFZhcmlhYmxlczwva2V5PgotCQk8ZGljdD4KLQkJCTxrZXk+TlNTdHJpbmdEaXNhYmxlVGFn
Z2VkPC9rZXk+Ci0JCQk8c3RyaW5nPllFUzwvc3RyaW5nPgotCQk8L2RpY3Q+Ci0JPC9kaWN0Pgot
PC9kaWN0PgotPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL1BsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAyNDA4NTApCisrKyBTb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5T
ZXJ2aWNlRW50cnlQb2ludC5tbQkobm9uZXhpc3RlbnQpCkBAIC0xLDg0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRp
ZXMuaCIKLSNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKLSNpbXBvcnQgIldLQmFzZS5oIgotI2lt
cG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLSNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+Ci0K
LSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LWNsYXNzIFBsdWdpblNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlIDogcHVibGljIFhQQ1NlcnZp
Y2VJbml0aWFsaXplckRlbGVnYXRlIHsKLXB1YmxpYzoKLSAgICBQbHVnaW5TZXJ2aWNlSW5pdGlh
bGl6ZXJEZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4
cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQotICAgICAgICA6IFhQQ1NlcnZpY2VJbml0
aWFsaXplckRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSkK
LSAgICB7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIGdldEV4dHJhSW5pdGlhbGl6YXRpb25E
YXRhKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRyYUluaXRpYWxpemF0aW9uRGF0YSkKLSAg
ICB7Ci0gICAgICAgIHhwY19vYmplY3RfdCBleHRyYURhdGFJbml0aWFsaXphdGlvbkRhdGFPYmpl
Y3QgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUobV9pbml0aWFsaXplck1lc3NhZ2UsICJleHRy
YS1pbml0aWFsaXphdGlvbi1kYXRhIik7Ci0KLSAgICAgICAgU3RyaW5nIHBsdWdpblBhdGggPSB4
cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV4dHJhRGF0YUluaXRpYWxpemF0aW9uRGF0YU9iamVj
dCwgInBsdWdpbi1wYXRoIik7Ci0gICAgICAgIGlmIChwbHVnaW5QYXRoLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEu
YWRkKCJwbHVnaW4tcGF0aCIsIHBsdWdpblBhdGgpOwotCi0gICAgICAgIFN0cmluZyBkaXNhYmxl
U2FuZGJveCA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXh0cmFEYXRhSW5pdGlhbGl6YXRp
b25EYXRhT2JqZWN0LCAiZGlzYWJsZS1zYW5kYm94Iik7Ci0gICAgICAgIGlmICghZGlzYWJsZVNh
bmRib3guaXNFbXB0eSgpKQotICAgICAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRk
KCJkaXNhYmxlLXNhbmRib3giLCBkaXNhYmxlU2FuZGJveCk7Ci0KLSAgICAgICAgU3RyaW5nIGV4
cGVyaW1lbnRhbFNhbmRib3hQbHVnSW4gPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV4dHJh
RGF0YUluaXRpYWxpemF0aW9uRGF0YU9iamVjdCwgImV4cGVyaW1lbnRhbC1zYW5kYm94LXBsdWdp
biIpOwotICAgICAgICBpZiAoIWV4cGVyaW1lbnRhbFNhbmRib3hQbHVnSW4uaXNFbXB0eSgpKQot
ICAgICAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJleHBlcmltZW50YWwtc2Fu
ZGJveC1wbHVnaW4iX3MsIGV4cGVyaW1lbnRhbFNhbmRib3hQbHVnSW4pOwotCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi11c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkp
Ci0KLWV4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgUGx1Z2luU2VydmljZUluaXRpYWxpemVyKHhw
Y19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2Fn
ZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLQotdm9pZCBQbHVnaW5TZXJ2
aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3Qg
aW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpCi17
Ci0jaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgLy8gRklYTUU6IEFkZCBzdXBw
b3J0IGZvciB0ZWFyZG93biBmcm9tIFBsdWdpblByb2Nlc3NNYWluLm1tCi0KLSAgICAvLyBSZW1v
dmUgdGhlIFBsdWdpblByb2Nlc3Mgc2hpbSBmcm9tIHRoZSBEWUxEX0lOU0VSVF9MSUJSQVJJRVMg
ZW52aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3NlcwotICAgIC8vIHNwYXduZWQgYnkg
dGhlIFBsdWdpblByb2Nlc3MgZG9uJ3QgdHJ5IHRvIGluc2VydCB0aGUgc2hpbSBhbmQgY3Jhc2gu
Ci0gICAgRW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygi
RFlMRF9JTlNFUlRfTElCUkFSSUVTIiwgIi9QbHVnaW5Qcm9jZXNzU2hpbS5keWxpYiIpOwotICAg
IFhQQ1NlcnZpY2VJbml0aWFsaXplcjxQbHVnaW5Qcm9jZXNzLCBQbHVnaW5TZXJ2aWNlSW5pdGlh
bGl6ZXJEZWxlZ2F0ZT4oYWRvcHRPU09iamVjdChjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNz
YWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Ci0jZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCi19CkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2lu
dC9Db2NvYS9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuNjQuSW5mby5wbGlzdAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2
aWNlL1BsdWdpblNlcnZpY2UuNjQuSW5mby5wbGlzdAkocmV2aXNpb24gMjQwODUwKQkoZnJvbSBT
b3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVn
aW5TZXJ2aWNlLjY0LkluZm8ucGxpc3Q6MjQwODUwKQorKysgU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlLjY0LkluZm8u
cGxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9E
VEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0
LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxl
R2V0SW5mb1N0cmluZzwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdo
dCAyMDAzLTIwMTkgQXBwbGUgSW5jLjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVu
dFJlZ2lvbjwva2V5PgorCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVF
eGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9J
REVOVElGSUVSfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248
L2tleT4KKwk8c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJ
PHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5
cGU8L2tleT4KKwk8c3RyaW5nPlhQQyE8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJz
aW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5n
PgorCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KKwk8c3RyaW5nPj8/Pz88L3N0cmluZz4K
Kwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgorCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08
L3N0cmluZz4KKwk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+CisJPGZhbHNlLz4K
Kwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KKwk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0
cmluZz4KKwk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KKwk8c3RyaW5nPlBsdWdpblNlcnZp
Y2VJbml0aWFsaXplcjwvc3RyaW5nPgorCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KKwk8dHJ1ZS8+
CisJPGtleT5OU1N1cHBvcnRzQXV0b21hdGljR3JhcGhpY3NTd2l0Y2hpbmc8L2tleT4KKwk8dHJ1
ZS8+CisJPGtleT5OU1N1cHBvcnRzQXBwTmFwPC9rZXk+CisJPHRydWUvPgorCTxrZXk+WFBDU2Vy
dmljZTwva2V5PgorCTxkaWN0PgorCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+CisJCTxzdHJpbmc+
QXBwbGljYXRpb248L3N0cmluZz4KKwkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgorCQk8c3RyaW5n
Pl9OU0FwcGxpY2F0aW9uTWFpbjwvc3RyaW5nPgorCQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248
L2tleT4KKwkJPHRydWUvPgorCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgorCQk8dHJ1
ZS8+CisJCTxrZXk+X0FiYW5kb25Db2FsaXRpb248L2tleT4KKwkJPHRydWUvPgorCQk8a2V5Pl9I
aWdoQml0c0FTTFI8L2tleT4KKwkJPHRydWUvPgorCQk8a2V5PkVudmlyb25tZW50VmFyaWFibGVz
PC9rZXk+CisJCTxkaWN0PgorCQkJPGtleT5OU1N0cmluZ0Rpc2FibGVUYWdnZWQ8L2tleT4KKwkJ
CTxzdHJpbmc+WUVTPC9zdHJpbmc+CisJCTwvZGljdD4KKwk8L2RpY3Q+Cis8L2RpY3Q+Cis8L3Bs
aXN0PgpJbmRleDogU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2Ev
WFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1BsdWdp
blNlcnZpY2VFbnRyeVBvaW50Lm1tCShyZXZpc2lvbiAyNDA4NTApCShmcm9tIFNvdXJjZS9XZWJL
aXQvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2VF
bnRyeVBvaW50Lm1tOjI0MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorCisjaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgorI2ltcG9ydCAiUGx1Z2luUHJv
Y2Vzcy5oIgorI2ltcG9ydCAiV0tCYXNlLmgiCisjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2lu
dC5oIgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKworI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGx1Z2luU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGUgOiBwdWJsaWMgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgewor
cHVibGljOgorICAgIFBsdWdpblNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKE9TT2JqZWN0UHRy
PHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1l
c3NhZ2UpCisgICAgICAgIDogWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUoV1RGTW92ZShj
b25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgZ2V0RXh0cmFJbml0aWFsaXphdGlvbkRhdGEoSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4mIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKQorICAgIHsKKyAgICAgICAgeHBjX29iamVjdF90
IGV4dHJhRGF0YUluaXRpYWxpemF0aW9uRGF0YU9iamVjdCA9IHhwY19kaWN0aW9uYXJ5X2dldF92
YWx1ZShtX2luaXRpYWxpemVyTWVzc2FnZSwgImV4dHJhLWluaXRpYWxpemF0aW9uLWRhdGEiKTsK
KworICAgICAgICBTdHJpbmcgcGx1Z2luUGF0aCA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmco
ZXh0cmFEYXRhSW5pdGlhbGl6YXRpb25EYXRhT2JqZWN0LCAicGx1Z2luLXBhdGgiKTsKKyAgICAg
ICAgaWYgKHBsdWdpblBhdGguaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoInBsdWdpbi1wYXRoIiwgcGx1Z2lu
UGF0aCk7CisKKyAgICAgICAgU3RyaW5nIGRpc2FibGVTYW5kYm94ID0geHBjX2RpY3Rpb25hcnlf
Z2V0X3N0cmluZyhleHRyYURhdGFJbml0aWFsaXphdGlvbkRhdGFPYmplY3QsICJkaXNhYmxlLXNh
bmRib3giKTsKKyAgICAgICAgaWYgKCFkaXNhYmxlU2FuZGJveC5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImRpc2FibGUtc2FuZGJveCIsIGRpc2Fi
bGVTYW5kYm94KTsKKworICAgICAgICBTdHJpbmcgZXhwZXJpbWVudGFsU2FuZGJveFBsdWdJbiA9
IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXh0cmFEYXRhSW5pdGlhbGl6YXRpb25EYXRhT2Jq
ZWN0LCAiZXhwZXJpbWVudGFsLXNhbmRib3gtcGx1Z2luIik7CisgICAgICAgIGlmICghZXhwZXJp
bWVudGFsU2FuZGJveFBsdWdJbi5pc0VtcHR5KCkpCisgICAgICAgICAgICBleHRyYUluaXRpYWxp
emF0aW9uRGF0YS5hZGQoImV4cGVyaW1lbnRhbC1zYW5kYm94LXBsdWdpbiJfcywgZXhwZXJpbWVu
dGFsU2FuZGJveFBsdWdJbik7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKKworZXh0ZXJuICJDIiBXS19FWFBPUlQg
dm9pZCBQbHVnaW5TZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9u
LCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlC
b29zdE1lc3NhZ2UpOworCit2b2lkIFBsdWdpblNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVj
dGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19v
YmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSkKK3sKKyNpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHRlYXJkb3duIGZyb20gUGx1
Z2luUHJvY2Vzc01haW4ubW0KKworICAgIC8vIFJlbW92ZSB0aGUgUGx1Z2luUHJvY2VzcyBzaGlt
IGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBh
bnkgcHJvY2Vzc2VzCisgICAgLy8gc3Bhd25lZCBieSB0aGUgUGx1Z2luUHJvY2VzcyBkb24ndCB0
cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFzaC4KKyAgICBFbnZpcm9ubWVudFV0aWxpdGll
czo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAi
L1BsdWdpblByb2Nlc3NTaGltLmR5bGliIik7CisgICAgWFBDU2VydmljZUluaXRpYWxpemVyPFBs
dWdpblByb2Nlc3MsIFBsdWdpblNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlPihhZG9wdE9TT2Jq
ZWN0KGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UsIHByaW9yaXR5Qm9vc3RNZXNzYWdl
KTsKKyNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKK30KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZUVudHJ5UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgJKHJl
dmlzaW9uIDI0MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRp
ZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDEzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBvcnQgIkF1
eGlsaWFyeVByb2Nlc3MuaCIKLSNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCi0jaW1wb3J0
IDxKYXZhU2NyaXB0Q29yZS9FeGVjdXRhYmxlQWxsb2NhdG9yLmg+Ci0jaW1wb3J0IDx3dGYvT1NP
YmplY3RQdHIuaD4KLSNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgotCi0jaWYgSEFW
RShWT1VDSEVSUykKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2luY2x1ZGUgPG9zL3Zv
dWNoZXJfcHJpdmF0ZS5oPgotI2Vsc2UKLWV4dGVybiAiQyIgT1NfTk9USFJPVyB2b2lkIHZvdWNo
ZXJfcmVwbGFjZV9kZWZhdWx0X3ZvdWNoZXIodm9pZCk7Ci0jZW5kaWYKLSNlbmRpZgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgewot
cHVibGljOgotICAgIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKE9TT2JqZWN0UHRyPHhw
Y19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3Nh
Z2UpCi0gICAgICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgICAg
ICwgbV9pbml0aWFsaXplck1lc3NhZ2UoaW5pdGlhbGl6ZXJNZXNzYWdlKQotICAgIHsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIH5YUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSgpOwotCi0gICAg
dmlydHVhbCBib29sIGNoZWNrRW50aXRsZW1lbnRzKCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
Q29ubmVjdGlvbklkZW50aWZpZXIoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBpZGVudGlm
aWVyKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXImKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihT
dHJpbmcmIGNsaWVudElkZW50aWZpZXIpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQcm9j
ZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
RXh0cmFJbml0aWFsaXphdGlvbkRhdGEoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGV4dHJhSW5p
dGlhbGl6YXRpb25EYXRhKTsKLQotcHJvdGVjdGVkOgotICAgIGJvb2wgaGFzRW50aXRsZW1lbnQo
Y29uc3QgY2hhciogZW50aXRsZW1lbnQpOwotICAgIGJvb2wgaXNDbGllbnRTYW5kYm94ZWQoKTsK
LQotICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IG1fY29ubmVjdGlvbjsKLSAgICB4
cGNfb2JqZWN0X3QgbV9pbml0aWFsaXplck1lc3NhZ2U7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBYUENTZXJ2aWNlVHlwZT4KLXZvaWQgaW5pdGlhbGl6ZUF1eGlsaWFyeVByb2Nlc3MoQXV4aWxp
YXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi17Ci0gICAg
WFBDU2VydmljZVR5cGU6OnNpbmdsZXRvbigpLmluaXRpYWxpemUoV1RGTW92ZShwYXJhbWV0ZXJz
KSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFhQQ1NlcnZpY2VUeXBlLCB0eXBlbmFtZSBYUENT
ZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZVR5cGU+Ci12b2lkIFhQQ1NlcnZpY2VJbml0aWFsaXpl
cihPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3Qg
aW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpCi17
Ci0gICAgaWYgKGluaXRpYWxpemVyTWVzc2FnZSAmJiB4cGNfZGljdGlvbmFyeV9nZXRfYm9vbChp
bml0aWFsaXplck1lc3NhZ2UsICJkaXNhYmxlLWppdCIpKQotICAgICAgICBKU0M6OkV4ZWN1dGFi
bGVBbGxvY2F0b3I6OnNldEpJVEVuYWJsZWQoZmFsc2UpOwotCi0gICAgWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGVUeXBlIGRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiksIGluaXRpYWxp
emVyTWVzc2FnZSk7Ci0KLSAgICAvLyBXZSBkb24ndCB3YW50IFhQQyB0byBiZSBpbiBjaGFyZ2Ug
b2Ygd2hldGhlciB0aGUgcHJvY2VzcyBzaG91bGQgYmUgdGVybWluYXRlZCBvciBub3QsCi0gICAg
Ly8gc28gZW5zdXJlIHRoYXQgd2UgaGF2ZSBhbiBvdXRzdGFuZGluZyB0cmFuc2FjdGlvbiBoZXJl
LgotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICB4cGNfdHJhbnNhY3Rp
b25fYmVnaW4oKTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotCi0gICAgSW5p
dGlhbGl6ZVdlYktpdDIoKTsKLQotICAgIGlmICghZGVsZWdhdGUuY2hlY2tFbnRpdGxlbWVudHMo
KSkKLSAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotCi0gICAgQXV4aWxpYXJ5UHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgIGlmIChwcmlvcml0eUJvb3N0
TWVzc2FnZSkKLSAgICAgICAgcGFyYW1ldGVycy5wcmlvcml0eUJvb3N0TWVzc2FnZSA9IHByaW9y
aXR5Qm9vc3RNZXNzYWdlOwotCi0gICAgaWYgKCFkZWxlZ2F0ZS5nZXRDb25uZWN0aW9uSWRlbnRp
ZmllcihwYXJhbWV0ZXJzLmNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgZXhpdChFWElU
X0ZBSUxVUkUpOwotCi0gICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRJZGVudGlmaWVyKHBhcmFt
ZXRlcnMuY2xpZW50SWRlbnRpZmllcikpCi0gICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLQot
ICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyOwotICAgIGlm
ICghZGVsZWdhdGUuZ2V0UHJvY2Vzc0lkZW50aWZpZXIocHJvY2Vzc0lkZW50aWZpZXIpKQotICAg
ICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Ci0gICAgcGFyYW1ldGVycy5wcm9jZXNzSWRlbnRpZmll
ciA9IHByb2Nlc3NJZGVudGlmaWVyOwotCi0gICAgaWYgKCFkZWxlZ2F0ZS5nZXRDbGllbnRQcm9j
ZXNzTmFtZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWUpKQotICAgICAgICBleGl0KEVYSVRfRkFJ
TFVSRSk7Ci0KLSAgICBpZiAoIWRlbGVnYXRlLmdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKHBh
cmFtZXRlcnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEpKQotICAgICAgICBleGl0KEVYSVRfRkFJ
TFVSRSk7Ci0KLSNpZiBIQVZFKFZPVUNIRVJTKQotICAgIC8vIFNldCB0aGUgdGFzayBkZWZhdWx0
IHZvdWNoZXIgdG8gdGhlIGN1cnJlbnQgdmFsdWUgKGFzIHByb3BhZ2F0ZWQgYnkgWFBDKS4KLSAg
ICB2b3VjaGVyX3JlcGxhY2VfZGVmYXVsdF92b3VjaGVyKCk7Ci0jZW5kaWYKLQotI2lmIEhBVkUo
UU9TX0NMQVNTRVMpCi0gICAgaWYgKHBhcmFtZXRlcnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEu
Y29udGFpbnMoImFsd2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiX3MpKQotICAgICAg
ICBUaHJlYWQ6OnNldEdsb2JhbE1heFFPU0NsYXNzKFFPU19DTEFTU19VVElMSVRZKTsKLSNlbmRp
ZgotCi0gICAgcGFyYW1ldGVycy5wcm9jZXNzVHlwZSA9IFhQQ1NlcnZpY2VUeXBlOjpwcm9jZXNz
VHlwZTsKLQotICAgIGluaXRpYWxpemVBdXhpbGlhcnlQcm9jZXNzPFhQQ1NlcnZpY2VUeXBlPihX
VEZNb3ZlKHBhcmFtZXRlcnMpKTsKLX0KLQotaW50IFhQQ1NlcnZpY2VNYWluKGludCwgY29uc3Qg
Y2hhcioqKTsKLQotdm9pZCBYUENTZXJ2aWNlRXhpdChPU09iamVjdFB0cjx4cGNfb2JqZWN0X3Q+
JiYgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZUVudHJ5UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFy
ZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2lu
dC5tbQkocmV2aXNpb24gMjQwODUwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2lu
dFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQkobm9uZXhp
c3RlbnQpCkBAIC0xLDE2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgi
Ci0KLSNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzQ0YuaCIKLSNpbXBvcnQgIlNhbmRib3hVdGlsaXRp
ZXMuaCIKLSNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCi0jaW1wb3J0IDxXZWJDb3Jl
L1Byb2Nlc3NJZGVudGlmaWVyLmg+Ci0jaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVhQQ1Nl
cnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjp+WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUo
KQotewotfQotCi1ib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpjaGVja0VudGl0
bGVtZW50cygpCi17Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghaXNDbGllbnRTYW5kYm94
ZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAvLyBGSVhNRTogT25jZSB3ZSdyZSAx
MDAlIHN1cmUgdGhhdCBhIHByb2Nlc3MgY2FuJ3QgYWNjZXNzIHRoZSBuZXR3b3JrIHdlIGNhbiBn
ZXQgcmlkIG9mIHRoaXMgcmVxdWlyZW1lbnQgZm9yIGFsbCBwcm9jZXNzZXMuCi0gICAgaWYgKCFo
YXNFbnRpdGxlbWVudCgiY29tLmFwcGxlLnNlY3VyaXR5Lm5ldHdvcmsuY2xpZW50IikpIHsKLSAg
ICAgICAgTlNMb2coQCJBcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIHRoZSAnY29tLmFwcGxlLnNl
Y3VyaXR5Lm5ldHdvcmsuY2xpZW50JyBlbnRpdGxlbWVudC4iKTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgYXV0byB2
YWx1ZSA9IGFkb3B0T1NPYmplY3QoeHBjX2Nvbm5lY3Rpb25fY29weV9lbnRpdGxlbWVudF92YWx1
ZShtX2Nvbm5lY3Rpb24uZ2V0KCksICJrZXljaGFpbi1hY2Nlc3MtZ3JvdXBzIikpOwotICAgIGlm
ICh2YWx1ZSAmJiB4cGNfZ2V0X3R5cGUodmFsdWUuZ2V0KCkpID09IFhQQ19UWVBFX0FSUkFZKSB7
Ci0gICAgICAgIHhwY19hcnJheV9hcHBseSh2YWx1ZS5nZXQoKSwgXmJvb2woc2l6ZV90IGluZGV4
LCB4cGNfb2JqZWN0X3Qgb2JqZWN0KSB7Ci0gICAgICAgICAgICBpZiAoeHBjX2dldF90eXBlKG9i
amVjdCkgPT0gWFBDX1RZUEVfU1RSSU5HICYmICFzdHJjbXAoeHBjX3N0cmluZ19nZXRfc3RyaW5n
X3B0cihvYmplY3QpLCAiY29tLmFwcGxlLmlkZW50aXRpZXMiKSkgewotICAgICAgICAgICAgICAg
IElQQzo6c2V0QWxsb3dzRGVjb2RpbmdTZWNLZXlSZWYodHJ1ZSk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0pOwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wg
WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENvbm5lY3Rpb25JZGVudGlmaWVyKElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciYgaWRlbnRpZmllcikKLXsKLSAgICBtYWNoX3BvcnRf
dCBwb3J0ID0geHBjX2RpY3Rpb25hcnlfY29weV9tYWNoX3NlbmQobV9pbml0aWFsaXplck1lc3Nh
Z2UsICJzZXJ2ZXItcG9ydCIpOwotICAgIGlmIChwb3J0ID09IE1BQ0hfUE9SVF9OVUxMKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZGVudGlmaWVyID0gSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyKHBvcnQsIG1fY29ubmVjdGlvbik7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJv
b2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudElkZW50aWZpZXIoU3Ry
aW5nJiBjbGllbnRJZGVudGlmaWVyKQotewotICAgIGNsaWVudElkZW50aWZpZXIgPSB4cGNfZGlj
dGlvbmFyeV9nZXRfc3RyaW5nKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LWlkZW50aWZp
ZXIiKTsKLSAgICBpZiAoY2xpZW50SWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6
ZXJEZWxlZ2F0ZTo6Z2V0UHJvY2Vzc0lkZW50aWZpZXIoUHJvY2Vzc0lkZW50aWZpZXImIGlkZW50
aWZpZXIpCi17Ci0gICAgU3RyaW5nIHByb2Nlc3NJZGVudGlmaWVyU3RyaW5nID0geHBjX2RpY3Rp
b25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgInByb2Nlc3MtaWRlbnRpZmll
ciIpOwotICAgIGlmIChwcm9jZXNzSWRlbnRpZmllclN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGJvb2wgb2s7Ci0gICAgYXV0byBwYXJzZWRJZGVudGlmaWVy
ID0gcHJvY2Vzc0lkZW50aWZpZXJTdHJpbmcudG9VSW50NjRTdHJpY3QoJm9rKTsKLSAgICBpZiAo
IW9rKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZGVudGlmaWVyID0gbWFrZU9iamVj
dElkZW50aWZpZXI8UHJvY2Vzc0lkZW50aWZpZXJUeXBlPihwYXJzZWRJZGVudGlmaWVyKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6
Z2V0Q2xpZW50UHJvY2Vzc05hbWUoU3RyaW5nJiBjbGllbnRQcm9jZXNzTmFtZSkKLXsKLSAgICBj
bGllbnRQcm9jZXNzTmFtZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcobV9pbml0aWFsaXpl
ck1lc3NhZ2UsICJ1aS1wcm9jZXNzLW5hbWUiKTsKLSAgICBpZiAoY2xpZW50UHJvY2Vzc05hbWUu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldEV4dHJhSW5pdGlhbGl6YXRp
b25EYXRhKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRyYUluaXRpYWxpemF0aW9uRGF0YSkK
LXsKLSAgICB4cGNfb2JqZWN0X3QgZXh0cmFEYXRhSW5pdGlhbGl6YXRpb25EYXRhT2JqZWN0ID0g
eHBjX2RpY3Rpb25hcnlfZ2V0X3ZhbHVlKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiZXh0cmEtaW5p
dGlhbGl6YXRpb24tZGF0YSIpOwotCi0gICAgU3RyaW5nIGluc3BlY3RvclByb2Nlc3MgPSB4cGNf
ZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV4dHJhRGF0YUluaXRpYWxpemF0aW9uRGF0YU9iamVjdCwg
Imluc3BlY3Rvci1wcm9jZXNzIik7Ci0gICAgaWYgKCFpbnNwZWN0b3JQcm9jZXNzLmlzRW1wdHko
KSkKLSAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJpbnNwZWN0b3ItcHJvY2Vz
cyJfcywgaW5zcGVjdG9yUHJvY2Vzcyk7Ci0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0g
ICAgU3RyaW5nIHNlcnZpY2VXb3JrZXJQcm9jZXNzID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmlu
ZyhleHRyYURhdGFJbml0aWFsaXphdGlvbkRhdGFPYmplY3QsICJzZXJ2aWNlLXdvcmtlci1wcm9j
ZXNzIik7Ci0gICAgaWYgKCFzZXJ2aWNlV29ya2VyUHJvY2Vzcy5pc0VtcHR5KCkpCi0gICAgICAg
IGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgic2VydmljZS13b3JrZXItcHJvY2VzcyJfcywg
c2VydmljZVdvcmtlclByb2Nlc3MpOwotI2VuZGlmCi0KLSAgICBTdHJpbmcgaXNQcmV3YXJtZWRQ
cm9jZXNzID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhleHRyYURhdGFJbml0aWFsaXphdGlv
bkRhdGFPYmplY3QsICJpcy1wcmV3YXJtZWQiKTsKLSAgICBpZiAoIWlzUHJld2FybWVkUHJvY2Vz
cy5pc0VtcHR5KCkpCi0gICAgICAgIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiaXMtcHJl
d2FybWVkIl9zLCBpc1ByZXdhcm1lZFByb2Nlc3MpOwotCi0gICAgU3RyaW5nIHNlY3VyaXR5T3Jp
Z2luID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhleHRyYURhdGFJbml0aWFsaXphdGlvbkRh
dGFPYmplY3QsICJzZWN1cml0eS1vcmlnaW4iKTsKLSAgICBpZiAoIXNlY3VyaXR5T3JpZ2luLmlz
RW1wdHkoKSkKLSAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJzZWN1cml0eS1v
cmlnaW4iX3MsIHNlY3VyaXR5T3JpZ2luKTsKLQotICAgIGlmICghaXNDbGllbnRTYW5kYm94ZWQo
KSkgewotICAgICAgICBTdHJpbmcgdXNlckRpcmVjdG9yeVN1ZmZpeCA9IHhwY19kaWN0aW9uYXJ5
X2dldF9zdHJpbmcoZXh0cmFEYXRhSW5pdGlhbGl6YXRpb25EYXRhT2JqZWN0LCAidXNlci1kaXJl
Y3Rvcnktc3VmZml4Iik7Ci0gICAgICAgIGlmICghdXNlckRpcmVjdG9yeVN1ZmZpeC5pc0VtcHR5
KCkpCi0gICAgICAgICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoInVzZXItZGlyZWN0
b3J5LXN1ZmZpeCJfcywgdXNlckRpcmVjdG9yeVN1ZmZpeCk7Ci0gICAgfQotCi0gICAgU3RyaW5n
IGFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJp
bmcoZXh0cmFEYXRhSW5pdGlhbGl6YXRpb25EYXRhT2JqZWN0LCAiYWx3YXlzLXJ1bnMtYXQtYmFj
a2dyb3VuZC1wcmlvcml0eSIpOwotICAgIGlmICghYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9y
aXR5LmlzRW1wdHkoKSkKLSAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJhbHdh
eXMtcnVucy1hdC1iYWNrZ3JvdW5kLXByaW9yaXR5Il9zLCBhbHdheXNSdW5zQXRCYWNrZ3JvdW5k
UHJpb3JpdHkpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGU6Omhhc0VudGl0bGVtZW50KGNvbnN0IGNoYXIqIGVudGl0bGVtZW50KQot
ewotICAgIHJldHVybiBXVEY6Omhhc0VudGl0bGVtZW50KG1fY29ubmVjdGlvbi5nZXQoKSwgZW50
aXRsZW1lbnQpOwotfQotCi1ib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjppc0Ns
aWVudFNhbmRib3hlZCgpCi17Ci0gICAgcmV0dXJuIGNvbm5lY3RlZFByb2Nlc3NJc1NhbmRib3hl
ZChtX2Nvbm5lY3Rpb24uZ2V0KCkpOwotfQotCi12b2lkIFhQQ1NlcnZpY2VFeGl0KE9TT2JqZWN0
UHRyPHhwY19vYmplY3RfdD4mJiBwcmlvcml0eUJvb3N0TWVzc2FnZSkKLXsKLSAgICAvLyBNYWtl
IHN1cmUgdG8gZGVzdHJveSB0aGUgcHJpb3JpdHkgYm9vc3QgbWVzc2FnZSB0byBhdm9pZCBsZWFr
aW5nIGEgdHJhbnNhY3Rpb24uCi0gICAgcHJpb3JpdHlCb29zdE1lc3NhZ2UgPSBudWxscHRyOwot
ICAgIC8vIEJhbGFuY2VzIHRoZSB4cGNfdHJhbnNhY3Rpb25fYmVnaW4oKSBpbiBYUENTZXJ2aWNl
SW5pdGlhbGl6ZXIuCi1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHhw
Y190cmFuc2FjdGlvbl9lbmQoKTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAot
ICAgIHhwY190cmFuc2FjdGlvbl9leGl0X2NsZWFuKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMv
WFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWlu
Lm1tCShyZXZpc2lvbiAyNDA4NTApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCShub25leGlzdGVudCkK
QEAgLTEsMTY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgot
I2ltcG9ydCAiV2ViUHJvY2Vzc0NvY29hLmgiCi0jaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2lu
dC5oIgotCi0jaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgotI2ltcG9y
dCA8d3RmL09TT2JqZWN0UHRyLmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0
IDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKLSNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TQXBwbGljYXRpb25TUEkuaD4KLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3Rh
dGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNfY29ubmVjdGlvbl90IHBlZXIpCi17
Ci0gICAgc3RhdGljIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSA9IG51bGxwdHI7
Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKHBlZXIsIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCkpOwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKHBl
ZXIsIF4oeHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAgICAgIHhwY190eXBlX3QgdHlwZSA9IHhw
Y19nZXRfdHlwZShldmVudCk7Ci0gICAgICAgIGlmICh0eXBlID09IFhQQ19UWVBFX0VSUk9SKSB7
Ci0gICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5WQUxJRCB8
fCBldmVudCA9PSBYUENfRVJST1JfVEVSTUlOQVRJT05fSU1NSU5FTlQpIHsKLSAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSGFuZGxlIHRoaXMgY2FzZSBtb3JlIGdyYWNlZnVsbHkuCi0gICAgICAg
ICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgYXNzZXJ0KHR5cGUgPT0gWFBDX1RZUEVfRElDVElPTkFSWSk7Ci0K
LSAgICAgICAgICAgIGlmICghc3RyY21wKHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQs
ICJtZXNzYWdlLW5hbWUiKSwgImJvb3RzdHJhcCIpKSB7Ci0gICAgICAgICAgICAgICAgQ0ZCdW5k
bGVSZWYgd2ViS2l0QnVuZGxlID0gQ0ZCdW5kbGVHZXRCdW5kbGVXaXRoSWRlbnRpZmllcihDRlNU
UigiY29tLmFwcGxlLldlYktpdCIpKTsKLSAgICAgICAgICAgICAgICBDRlN0cmluZ1JlZiBlbnRy
eVBvaW50RnVuY3Rpb25OYW1lID0gKENGU3RyaW5nUmVmKUNGQnVuZGxlR2V0VmFsdWVGb3JJbmZv
RGljdGlvbmFyeUtleShDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSwgQ0ZTVFIoIldlYktpdEVudHJ5
UG9pbnQiKSk7Ci0KLSAgICAgICAgICAgICAgICB0eXBlZGVmIHZvaWQgKCpJbml0aWFsaXplckZ1
bmN0aW9uKSh4cGNfY29ubmVjdGlvbl90LCB4cGNfb2JqZWN0X3QsIHhwY19vYmplY3RfdCk7Ci0g
ICAgICAgICAgICAgICAgSW5pdGlhbGl6ZXJGdW5jdGlvbiBpbml0aWFsaXplckZ1bmN0aW9uUHRy
ID0gcmVpbnRlcnByZXRfY2FzdDxJbml0aWFsaXplckZ1bmN0aW9uPihDRkJ1bmRsZUdldEZ1bmN0
aW9uUG9pbnRlckZvck5hbWUod2ViS2l0QnVuZGxlLCBlbnRyeVBvaW50RnVuY3Rpb25OYW1lKSk7
Ci0gICAgICAgICAgICAgICAgaWYgKCFpbml0aWFsaXplckZ1bmN0aW9uUHRyKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIE5TTG9nKEAiVW5hYmxlIHRvIGZpbmQgZW50cnkgcG9pbnQgaW4gV2ViS2l0
LmZyYW1ld29yayB3aXRoIG5hbWU6ICVAIiwgKF9fYnJpZGdlIE5TU3RyaW5nICopZW50cnlQb2lu
dEZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsK
LSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBhdXRvIHJlcGx5ID0gYWRvcHRP
U09iamVjdCh4cGNfZGljdGlvbmFyeV9jcmVhdGVfcmVwbHkoZXZlbnQpKTsKLSAgICAgICAgICAg
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKHJlcGx5LmdldCgpLCAibWVzc2FnZS1uYW1l
IiwgInByb2Nlc3MtZmluaXNoZWQtbGF1bmNoaW5nIik7Ci0gICAgICAgICAgICAgICAgeHBjX2Nv
bm5lY3Rpb25fc2VuZF9tZXNzYWdlKHhwY19kaWN0aW9uYXJ5X2dldF9yZW1vdGVfY29ubmVjdGlv
bihldmVudCksIHJlcGx5LmdldCgpKTsKLQotICAgICAgICAgICAgICAgIGludCBmZCA9IHhwY19k
aWN0aW9uYXJ5X2R1cF9mZChldmVudCwgInN0ZG91dCIpOwotICAgICAgICAgICAgICAgIGlmIChm
ZCAhPSAtMSkKLSAgICAgICAgICAgICAgICAgICAgZHVwMihmZCwgU1RET1VUX0ZJTEVOTyk7Ci0K
LSAgICAgICAgICAgICAgICBmZCA9IHhwY19kaWN0aW9uYXJ5X2R1cF9mZChldmVudCwgInN0ZGVy
ciIpOwotICAgICAgICAgICAgICAgIGlmIChmZCAhPSAtMSkKLSAgICAgICAgICAgICAgICAgICAg
ZHVwMihmZCwgU1RERVJSX0ZJTEVOTyk7Ci0KLSAgICAgICAgICAgICAgICBpbml0aWFsaXplckZ1
bmN0aW9uUHRyKHBlZXIsIGV2ZW50LCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKHByaW9yaXR5Qm9vc3RNZXNzYWdlKQotICAgICAgICAgICAgICAgICAgICB4cGNf
cmVsZWFzZShwcmlvcml0eUJvb3N0TWVzc2FnZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIC8vIExlYWsgYSBib29zdCBvbnRvIHRoZSBOZXR3b3JrUHJvY2Vzcy4KLSAgICAgICAgICAg
IGlmICghc3RyY21wKHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQsICJtZXNzYWdlLW5h
bWUiKSwgInByZS1ib290c3RyYXAiKSkgewotICAgICAgICAgICAgICAgIGFzc2VydCghcHJpb3Jp
dHlCb29zdE1lc3NhZ2UpOwotICAgICAgICAgICAgICAgIHByaW9yaXR5Qm9vc3RNZXNzYWdlID0g
eHBjX3JldGFpbihldmVudCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9KTsKLQot
ICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShwZWVyKTsKLX0KLQotaW50IFhQQ1NlcnZpY2VNYWlu
KGludCwgY29uc3QgY2hhcioqKQotewotI2lmIGRlZmluZWQoX19pMzg2X18pCi0gICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgZG9uZSBmb3IgdGhlIDMyLWJpdCBwbHVnLWluIFhQQyBz
ZXJ2aWNlIHNvIHdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdAotICAgIC8vIGl0J3MgdGhlIG9ubHkg
b2YgdGhlIFhQQyBzZXJ2aWNlcyB0aGF0IGFyZSAzMi1iaXQuIFdlIHNob3VsZCBjb21lIHVwIHdp
dGggYSBtb3JlIHRhcmdldGVkICNpZiBjaGVjay4KLSAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAg
ICAgICAgLy8gV2UgbXVzdCBzZXQgdGhlIHN0YXRlIG9mIEFwcGxlTWFnbmlmaWVkTW9kZSBiZWZv
cmUgTlNBcHBsaWNhdGlvbiBpbml0aWFsaXphdGlvbiBzbyB0aGF0IHRoZSB2YWx1ZSB3aWxsIGJl
IGluCi0gICAgICAgIC8vIHBsYWNlIGJlZm9yZSBDb2NvYSBzdGFydHVwIGxvZ2ljIHJ1bnMgYW5k
IGNhY2hlcyB0aGUgdmFsdWUuCi0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIHJlZ2lzdGVyRGVmYXVsdHM6QHsgQCJBcHBsZU1hZ25pZmllZE1vZGUiIDogQFlF
UyB9XTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGF1dG8gYm9vdHN0cmFwID0gYWRvcHRPU09iamVj
dCh4cGNfY29weV9ib290c3RyYXAoKSk7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBh
dXRvIGNvbnRhaW5lckVudmlyb25tZW50VmFyaWFibGVzID0geHBjX2RpY3Rpb25hcnlfZ2V0X3Zh
bHVlKGJvb3RzdHJhcC5nZXQoKSwgIkNvbnRhaW5lckVudmlyb25tZW50VmFyaWFibGVzIik7Ci0g
ICAgeHBjX2RpY3Rpb25hcnlfYXBwbHkoY29udGFpbmVyRW52aXJvbm1lbnRWYXJpYWJsZXMsIF4o
Y29uc3QgY2hhciAqa2V5LCB4cGNfb2JqZWN0X3QgdmFsdWUpIHsKLSAgICAgICAgc2V0ZW52KGtl
eSwgeHBjX3N0cmluZ19nZXRfc3RyaW5nX3B0cih2YWx1ZSksIDEpOwotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9KTsKLSNlbmRpZgotCi0gICAgaWYgKGJvb3RzdHJhcCkgewotI2lmIFBMQVRG
T1JNKE1BQykKLSAgICAgICAgaWYgKGNvbnN0IGNoYXIqIHdlYktpdEJ1bmRsZVZlcnNpb24gPSB4
cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGJvb3RzdHJhcC5nZXQoKSwgIldlYktpdEJ1bmRsZVZl
cnNpb24iKSkgewotICAgICAgICAgICAgQ0ZCdW5kbGVSZWYgd2ViS2l0QnVuZGxlID0gQ0ZCdW5k
bGVHZXRCdW5kbGVXaXRoSWRlbnRpZmllcihDRlNUUigiY29tLmFwcGxlLldlYktpdCIpKTsKLSAg
ICAgICAgICAgIE5TU3RyaW5nICpleHBlY3RlZEJ1bmRsZVZlcnNpb24gPSAoTlNTdHJpbmcgKilD
RkJ1bmRsZUdldFZhbHVlRm9ySW5mb0RpY3Rpb25hcnlLZXkod2ViS2l0QnVuZGxlLCBrQ0ZCdW5k
bGVWZXJzaW9uS2V5KTsKLQotICAgICAgICAgICAgaWYgKHN0cmNtcCh3ZWJLaXRCdW5kbGVWZXJz
aW9uLCBleHBlY3RlZEJ1bmRsZVZlcnNpb24uVVRGOFN0cmluZykpIHsKLSAgICAgICAgICAgICAg
ICBfV0tTZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3BlY2lmaWNJbmZvcm1hdGlvbihbTlNTdHJp
bmcgc3RyaW5nV2l0aEZvcm1hdDpAIldlYktpdCBmcmFtZXdvcmsgdmVyc2lvbiBtaXNtYXRjaDog
JyVzJyIsIHdlYktpdEJ1bmRsZVZlcnNpb25dKTsKLSAgICAgICAgICAgICAgICBfX2J1aWx0aW5f
dHJhcCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0jZW5kaWYKLQotICAgICAgICBpZiAo
eHBjX29iamVjdF90IGxhbmd1YWdlcyA9IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1ZShib290c3Ry
YXAuZ2V0KCksICJPdmVycmlkZUxhbmd1YWdlcyIpKSB7Ci0gICAgICAgICAgICBAYXV0b3JlbGVh
c2Vwb29sIHsKLSAgICAgICAgICAgICAgICBOU0RpY3Rpb25hcnkgKmV4aXN0aW5nQXJndW1lbnRz
ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gdm9sYXRpbGVEb21haW5G
b3JOYW1lOk5TQXJndW1lbnREb21haW5dOwotICAgICAgICAgICAgICAgIE5TTXV0YWJsZURpY3Rp
b25hcnkgKm5ld0FyZ3VtZW50cyA9IFtleGlzdGluZ0FyZ3VtZW50cyBtdXRhYmxlQ29weV07Ci0g
ICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBuZXdMYW5ndWFnZXMgPSBh
ZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgICAgICAgICB4
cGNfYXJyYXlfYXBwbHkobGFuZ3VhZ2VzLCBeKHNpemVfdCBpbmRleCwgeHBjX29iamVjdF90IHZh
bHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIFtuZXdMYW5ndWFnZXMgYWRkT2JqZWN0OltOU1N0
cmluZyBzdHJpbmdXaXRoQ1N0cmluZzp4cGNfc3RyaW5nX2dldF9zdHJpbmdfcHRyKHZhbHVlKSBl
bmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ11dOwotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICBbbmV3QXJndW1l
bnRzIHNldFZhbHVlOm5ld0xhbmd1YWdlcy5nZXQoKSBmb3JLZXk6QCJBcHBsZUxhbmd1YWdlcyJd
OwotICAgICAgICAgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNd
IHNldFZvbGF0aWxlRG9tYWluOm5ld0FyZ3VtZW50cyBmb3JOYW1lOk5TQXJndW1lbnREb21haW5d
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0jaWYgUExBVEZPUk0oTUFDKQot
ICAgIC8vIERvbid0IGFsbG93IEFwcGxlIEV2ZW50cyBpbiBXZWJLaXQgcHJvY2Vzc2VzLiBUaGlz
IGNhbiBiZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzE0MDEyODIzPiBpcyBmaXhlZC4K
LSAgICBzZXRlbnYoIl9fQVBQTEVFVkVOVFNTRVJWSUNFTkFNRSIsICIiLCAxKTsKLQotI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCi0gICAgLy8gV2UgZG9uJ3Qg
bmVlZCB0byB0YWxrIHRvIHRoZSBkb2NrLgotICAgIGlmIChDbGFzcyBuc0FwcGxpY2F0aW9uQ2xh
c3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIk5TQXBwbGljYXRpb24iKSkgewotICAgICAgICBpZiAo
W25zQXBwbGljYXRpb25DbGFzcyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcmV2ZW50
RG9ja0Nvbm5lY3Rpb25zKV0pCi0gICAgICAgICAgICBbbnNBcHBsaWNhdGlvbkNsYXNzIF9wcmV2
ZW50RG9ja0Nvbm5lY3Rpb25zXTsKLSAgICB9Ci0jZW5kaWYKLSNlbmRpZgotCi0gICAgeHBjX21h
aW4oWFBDU2VydmljZUV2ZW50SGFuZGxlcik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpCi17
Ci0gICAgcmV0dXJuIFdlYktpdDo6WFBDU2VydmljZU1haW4oYXJnYywgYXJndik7Ci19CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5
UG9pbnQuaAkocmV2aXNpb24gMjQwODUwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IGNoZWNrRW50aXRsZW1lbnRzKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Q29ubmVjdGlvbklk
ZW50aWZpZXIoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyJiBpZGVudGlmaWVyKTsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0Q29ubmVjdGlvbklkZW50aWZpZXIoSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyJik7CiAgICAgdmlydHVhbCBib29sIGdldFByb2Nlc3NJZGVudGlmaWVyKFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBib29sIGdldENsaWVudElkZW50aWZp
ZXIoU3RyaW5nJiBjbGllbnRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50
UHJvY2Vzc05hbWUoU3RyaW5nJiBjbGllbnRQcm9jZXNzTmFtZSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCShy
ZXZpc2lvbiAyNDA4NTApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI0LDEwICsyNCwxMCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKIAogI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDRi5o
IgogI2ltcG9ydCAiU2FuZGJveFV0aWxpdGllcy5oIgotI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5
UG9pbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbXBvcnQg
PHd0Zi9jb2NvYS9FbnRpdGxlbWVudHMuaD4KIApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQkocmV2aXNpb24gMjQwODUwKQorKysgU291
cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VNYWluLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDE0MDAKKyNpZiBQTEFURk9STShNQUMpCiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0FwcGxpY2F0
aW9uU1BJLmg+CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNDA4NTApCisrKyBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04MDM1
LDcgKzgwMzUsNyBAQAogCQkJCUJDODI4Mzk2MTZCNDdFQzQwMEEyNzhGRSAvKiBYUENTZXJ2aWNl
TWFpbi5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gWFBDU2VydmljZTsKLQkJCXBhdGggPSBtYWMv
WFBDU2VydmljZTsKKwkJCXBhdGggPSBDb2NvYS9YUENTZXJ2aWNlOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKIAkJQkM4MjgzN0MxNkI0NURBNTAwQTI3OEZFIC8qIEVudHJ5UG9p
bnQgKi8gPSB7CkBAIC04MDYxLDcgKzgwNjEsNyBAQAogCQkJCUJDODI4M0E4MTZCNEJEOTEwMEEy
NzhGRSAvKiBOZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9
IFhQQ1NlcnZpY2U7Ci0JCQlwYXRoID0gbWFjL1hQQ1NlcnZpY2U7CisJCQlwYXRoID0gQ29jb2Ev
WFBDU2VydmljZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CiAJCUJDODI4M0Ey
MTZCNEJEOTEwMEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZSAqLyA9IHsKQEAgLTgwODAsNyArODA4
MCw3IEBACiAJCQkJQkM4MjgzRUYxNkI0RjhFMjAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRy
eVBvaW50Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBYUENTZXJ2aWNlOwotCQkJcGF0aCA9IG1h
Yy9YUENTZXJ2aWNlOworCQkJcGF0aCA9IENvY29hL1hQQ1NlcnZpY2U7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OwogCQlCQzgyODNFOTE2QjRGOEUyMDBBMjc4RkUgLyogUGx1Z2lu
U2VydmljZSAqLyA9IHsKQEAgLTgxNDcsNyArODE0Nyw3IEBACiAJCQkJQkM4MjgzOTgxNkI0OERD
MDAwQTI3OEZFIC8qIFdlYkNvbnRlbnRTZXJ2aWNlRW50cnlQb2ludC5tbSAqLywKIAkJCSk7CiAJ
CQluYW1lID0gWFBDU2VydmljZTsKLQkJCXBhdGggPSBtYWMvWFBDU2VydmljZTsKKwkJCXBhdGgg
PSBDb2NvYS9YUENTZXJ2aWNlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKIAkJ
QkNBQ0M0M0YxNkIyNENBQTAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNlICovID0gewpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2Vi
Q29udGVudFNlcnZpY2UvSW5mby1PU1gucGxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2Uv
SW5mby1PU1gucGxpc3QJKHJldmlzaW9uIDI0MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8tT1NY
LnBsaXN0CShub25leGlzdGVudCkKQEAgLTEsNTUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9E
VEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0
LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxl
Rm9sbG93UGFyZW50TG9jYWxpemF0aW9uPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+Q0ZCdW5kbGVH
ZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0
IDIwMDMtMjAxOSBBcHBsZSBJbmMuPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZURldmVsb3BtZW50
UmVnaW9uPC9rZXk+Ci0JPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUV4
ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgotCTxr
ZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfQlVORExFX0lE
RU5USUZJRVJ9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwv
a2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KLQk8
c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlw
ZTwva2V5PgotCTxzdHJpbmc+WFBDITwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNp
b25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9zdHJpbmc+
Ci0JPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgotCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgot
CTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwv
c3RyaW5nPgotCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4KLQk8dHJ1ZS8+Ci0J
PGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmluZz5OU0FwcGxpY2F0aW9uPC9zdHJp
bmc+Ci0JPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+Ci0JPHN0cmluZz5XZWJDb250ZW50U2Vy
dmljZUluaXRpYWxpemVyPC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxlbWVudDwva2V5PgotCTx0cnVl
Lz4KLQk8a2V5Pk5TU3VwcG9ydHNBdXRvbWF0aWNHcmFwaGljc1N3aXRjaGluZzwva2V5PgotCTx0
cnVlLz4KLQk8a2V5Pk5TU3VwcG9ydHNBcHBOYXA8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU01h
aW5OaWJGaWxlPC9rZXk+Ci0JPHN0cmluZz5XZWJDb250ZW50UHJvY2Vzczwvc3RyaW5nPgotCTxr
ZXk+WFBDU2VydmljZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248
L2tleT4KLQkJPHRydWUvPgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+QXBw
bGljYXRpb248L3N0cmluZz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5nPiR7
UlVOTE9PUF9UWVBFfTwvc3RyaW5nPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5Pgot
CQk8dHJ1ZS8+Ci0JCTxrZXk+X0hpZ2hCaXRzQVNMUjwva2V5PgotCQk8dHJ1ZS8+Ci0JPC9kaWN0
PgotPC9kaWN0PgotPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8taU9TLnBsaXN0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8taU9TLnBsaXN0CShyZXZpc2lvbiAyNDA4NTAp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9X
ZWJDb250ZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ5ICsw
LDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUg
cGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFw
cGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAi
PgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUZvbGxvd1BhcmVudExvY2FsaXphdGlvbjwva2V5Pgot
CTx0cnVlLz4KLQk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgotCTxzdHJpbmc+JHtC
VU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTkgQXBwbGUgSW5jLjwvc3RyaW5nPgot
CTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+RW5nbGlzaDwv
c3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4ke0VYRUNV
VEFCTEVfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxz
dHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5k
bGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxr
ZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4K
LQk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4K
LQk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke1NIT1JU
X1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4K
LQk8c3RyaW5nPj8/Pz88L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxz
dHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVF
bmFibGVkPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgotCTxz
dHJpbmc+V2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPgotCTxrZXk+WFBDU2Vy
dmljZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+
QXBwbGljYXRpb248L3N0cmluZz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5n
Pk5TUnVuTG9vcDwvc3RyaW5nPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgotCQk8
dHJ1ZS8+Ci0JCTxrZXk+X0hpZ2hCaXRzQVNMUjwva2V5PgotCQk8dHJ1ZS8+Ci0JPC9kaWN0Pgot
CTxrZXk+VUlCYWNrZ3JvdW5kTW9kZXM8L2tleT4KLQk8YXJyYXk+Ci0JCTxzdHJpbmc+YXVkaW88
L3N0cmluZz4KLQk8L2FycmF5PgotCTxrZXk+Q2FuSW5oZXJpdEFwcGxpY2F0aW9uU3RhdGVGcm9t
T3RoZXJQcm9jZXNzZXM8L2tleT4KLQk8dHJ1ZS8+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29u
dGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlRW50cnlQ
b2ludC5tbQkocmV2aXNpb24gMjQwODUwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCShu
b25leGlzdGVudCkKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZp
Zy5oIgotCi0jaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgotI2ltcG9ydCAiV0tCYXNl
LmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzLmgiCi0jaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2lu
dC5oIgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZVRocmVhZFN5c3RlbUludGVyZmFjZS5oPgotI2ltcG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NT
ZXJ2aWNlc1NQSS5oPgotI2VuZGlmCi0KLWV4dGVybiAiQyIgV0tfRVhQT1JUIHZvaWQgV2ViQ29u
dGVudFNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19v
YmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVz
c2FnZSk7Ci0KLXZvaWQgV2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVjdGlv
bl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmpl
Y3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSkKLXsKLSAgICAvLyBSZW1vdmUgdGhlIFdlYlByb2Nl
c3NTaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJs
ZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKLSAgICAvLyB0aGUgdGhpcyBwcm9jZXNzIGRv
bid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgotICAgIFdlYktpdDo6RW52aXJv
bm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZygiRFlMRF9JTlNFUlRf
TElCUkFSSUVTIiwgIi9XZWJQcm9jZXNzU2hpbS5keWxpYiIpOwotCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBHU0luaXRpYWxpemUoKTsKLSAgICBJbml0V2ViQ29yZVRocmVhZFN5c3Rl
bUludGVyZmFjZSgpOwotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSAgICBXZWJL
aXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplcjxXZWJLaXQ6OldlYlByb2Nlc3MsIFdlYktpdDo6WFBD
U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGFkb3B0T1NPYmplY3QoY29ubmVjdGlvbiksIGlu
aXRpYWxpemVyTWVzc2FnZSwgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwotfQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50
U2VydmljZUVudHJ5UG9pbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZUVudHJ5UG9p
bnQubW0JKHJldmlzaW9uIDI0MDg1MCkJKGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tOjI0
MDg1MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1Nl
cnZpY2UvV2ViQ29udGVudFNlcnZpY2VFbnRyeVBvaW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAi
RW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIldLQmFzZS5oIgorI2ltcG9ydCAiV2Vi
UHJvY2Vzcy5oIgorI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRTeXN0ZW1JbnRl
cmZhY2UuaD4KKyNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KKyNl
bmRpZgorCitleHRlcm4gIkMiIFdLX0VYUE9SVCB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlh
bGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6
ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOworCit2b2lkIFdl
YkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4
cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29z
dE1lc3NhZ2UpCit7CisgICAgLy8gUmVtb3ZlIHRoZSBXZWJQcm9jZXNzU2hpbSBmcm9tIHRoZSBE
WUxEX0lOU0VSVF9MSUJSQVJJRVMgZW52aXJvbm1lbnQgdmFyaWFibGUgc28gYW55IHByb2Nlc3Nl
cyBzcGF3bmVkIGJ5CisgICAgLy8gdGhlIHRoaXMgcHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0
IHRoZSBzaGltIGFuZCBjcmFzaC4KKyAgICBXZWJLaXQ6OkVudmlyb25tZW50VXRpbGl0aWVzOjpz
dHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsICIvV2Vi
UHJvY2Vzc1NoaW0uZHlsaWIiKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgR1NJ
bml0aWFsaXplKCk7CisgICAgSW5pdFdlYkNvcmVUaHJlYWRTeXN0ZW1JbnRlcmZhY2UoKTsKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorCisgICAgV2ViS2l0OjpYUENTZXJ2aWNlSW5p
dGlhbGl6ZXI8V2ViS2l0OjpXZWJQcm9jZXNzLCBXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXpl
ckRlbGVnYXRlPihhZG9wdE9TT2JqZWN0KGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2Us
IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1PU1gu
cGxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQv
Q29jb2EvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLU9TWC5wbGlzdAkocmV2aXNp
b24gMjQwODUwKQkoZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMv
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLU9TWC5wbGlzdDoyNDA4NTApCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNv
bnRlbnRTZXJ2aWNlL0luZm8tT1NYLnBsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxp
c3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxl
LmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgor
PGRpY3Q+CisJPGtleT5DRkJ1bmRsZUZvbGxvd1BhcmVudExvY2FsaXphdGlvbjwva2V5PgorCTx0
cnVlLz4KKwk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgorCTxzdHJpbmc+JHtCVU5E
TEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTkgQXBwbGUgSW5jLjwvc3RyaW5nPgorCTxr
ZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgorCTxzdHJpbmc+RW5nbGlzaDwvc3Ry
aW5nPgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4ke0VYRUNVVEFC
TEVfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJp
bmc+JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJ
bmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+
Q0ZCdW5kbGVOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPlhQQyE8L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4ke1NIT1JUX1ZF
UlNJT05fU1RSSU5HfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KKwk8
c3RyaW5nPj8/Pz88L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgorCTxzdHJp
bmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KKwk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFi
bGVkPC9rZXk+CisJPHRydWUvPgorCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgorCTxzdHJp
bmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgorCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5Pgor
CTxzdHJpbmc+V2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPgorCTxrZXk+TFNV
SUVsZW1lbnQ8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5OU1N1cHBvcnRzQXV0b21hdGljR3JhcGhp
Y3NTd2l0Y2hpbmc8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5OU1N1cHBvcnRzQXBwTmFwPC9rZXk+
CisJPHRydWUvPgorCTxrZXk+TlNNYWluTmliRmlsZTwva2V5PgorCTxzdHJpbmc+V2ViQ29udGVu
dFByb2Nlc3M8L3N0cmluZz4KKwk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KKwk8ZGljdD4KKwkJPGtl
eT5Kb2luRXhpc3RpbmdTZXNzaW9uPC9rZXk+CisJCTx0cnVlLz4KKwkJPGtleT5TZXJ2aWNlVHlw
ZTwva2V5PgorCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+CisJCTxrZXk+UnVuTG9vcFR5
cGU8L2tleT4KKwkJPHN0cmluZz4ke1JVTkxPT1BfVFlQRX08L3N0cmluZz4KKwkJPGtleT5fTXVs
dGlwbGVJbnN0YW5jZXM8L2tleT4KKwkJPHRydWUvPgorCQk8a2V5Pl9IaWdoQml0c0FTTFI8L2tl
eT4KKwkJPHRydWUvPgorCTwvZGljdD4KKzwvZGljdD4KKzwvcGxpc3Q+CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkNvbnRlbnRT
ZXJ2aWNlL0luZm8taU9TLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1p
T1MucGxpc3QJKHJldmlzaW9uIDI0MDg1MCkJKGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1pT1MucGxp
c3Q6MjQwODUwKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2Ev
WFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLWlPUy5wbGlzdAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDQ5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAi
aHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3Qg
dmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVGb2xsb3dQYXJlbnRMb2NhbGl6
YXRpb248L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4K
Kwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE5IEFwcGxlIElu
Yy48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KKwk8c3Ry
aW5nPkVuZ2xpc2g8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxz
dHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUlkZW50aWZp
ZXI8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4K
Kwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8
L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNUX05B
TUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5Y
UEMhPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxz
dHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2ln
bmF0dXJlPC9rZXk+CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNp
b248L2tleT4KKwk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+CisJPGtleT5MU0Zp
bGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVlLz4KKwk8a2V5PldlYktpdEVudHJ5UG9p
bnQ8L2tleT4KKwk8c3RyaW5nPldlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4K
Kwk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KKwk8ZGljdD4KKwkJPGtleT5TZXJ2aWNlVHlwZTwva2V5
PgorCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+CisJCTxrZXk+UnVuTG9vcFR5cGU8L2tl
eT4KKwkJPHN0cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KKwkJPGtleT5fTXVsdGlwbGVJbnN0YW5j
ZXM8L2tleT4KKwkJPHRydWUvPgorCQk8a2V5Pl9IaWdoQml0c0FTTFI8L2tleT4KKwkJPHRydWUv
PgorCTwvZGljdD4KKwk8a2V5PlVJQmFja2dyb3VuZE1vZGVzPC9rZXk+CisJPGFycmF5PgorCQk8
c3RyaW5nPmF1ZGlvPC9zdHJpbmc+CisJPC9hcnJheT4KKwk8a2V5PkNhbkluaGVyaXRBcHBsaWNh
dGlvblN0YXRlRnJvbU90aGVyUHJvY2Vzc2VzPC9rZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9w
bGlzdD4K
</data>
<flag name="review"
          id="377569"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>