<?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>69382</bug_id>
          
          <creation_ts>2011-10-04 15:21:13 -0700</creation_ts>
          <short_desc>Add static version of JSCell::put</short_desc>
          <delta_ts>2011-10-07 17:05:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>67690</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>477998</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-04 15:21:13 -0700</bug_when>
    <thetext>On the path to de-virtualizing JSCell, we come to put.  We first need to add static versions of the functions to be called by the corresponding virtual methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479604</commentid>
    <comment_count>1</comment_count>
      <attachid>110057</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-06 16:32:07 -0700</bug_when>
    <thetext>Created attachment 110057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480191</commentid>
    <comment_count>2</comment_count>
      <attachid>110189</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-07 12:03:47 -0700</bug_when>
    <thetext>Created attachment 110189
Fix windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480385</commentid>
    <comment_count>3</comment_count>
      <attachid>110189</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-07 16:44:01 -0700</bug_when>
    <thetext>Comment on attachment 110189
Fix windows

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480399</commentid>
    <comment_count>4</comment_count>
      <attachid>110189</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-07 17:05:18 -0700</bug_when>
    <thetext>Comment on attachment 110189
Fix windows

Clearing flags on attachment: 110189

Committed r96992: &lt;http://trac.webkit.org/changeset/96992&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480400</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-07 17:05:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110057</attachid>
            <date>2011-10-06 16:32:07 -0700</date>
            <delta_ts>2011-10-07 12:03:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69382-20111006163207.patch</filename>
            <type>text/plain</type>
            <size>71832</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY4MzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggZmViN2Q5N2M5ZTQwZjdkMzE1NDNlMDczMGIyMzE5MzAw
ZWQxZTA1Ny4uN2U3NWU3NTQ4MDc4YjIwZGQxNTJkMjY2YTc4NjZhYzI2NjljYTY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE4Miw2ICsx
ODIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIAogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUq
LCB1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGRiMzgzNmI2ZmE0ZTE2ZDYzNmQwNjIxYTIzZjFj
Mzk3NWZkMmYzYmIuLjRjNjJkNzYyNzY2ZjE1OWNkMTUwMjdhYmMyNDdkMzRkMzljZGFjYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCkBAIC0yMDMsMTIgKzIwMywxOSBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQog
dGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KIHZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICBwdXQodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+
Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0NhbGxiYWNrT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwpOwogICAgIEpTQ29udGV4
dFJlZiBjdHggPSB0b1JlZihleGVjKTsKLSAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYo
dGhpcyk7CisgICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXNPYmplY3QpOwogICAg
IFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gcHJvcGVydHlOYW1lUmVmOwogICAgIEpTVmFsdWVSZWYg
dmFsdWVSZWYgPSB0b1JlZihleGVjLCB2YWx1ZSk7CiAgICAgCi0gICAgZm9yIChKU0NsYXNzUmVm
IGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50
Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNsYXNz
UmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAgICAg
ICBpZiAoSlNPYmplY3RTZXRQcm9wZXJ0eUNhbGxiYWNrIHNldFByb3BlcnR5ID0ganNDbGFzcy0+
c2V0UHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAgICAg
ICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJvcGVy
dHlOYW1lLnVzdHJpbmcoKSk7CkBAIC0yNDksMTMgKzI1NiwxMyBAQCB2b2lkIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYQogICAgICAgICAgICAgaWYgKFN0YXRpY0Z1bmN0aW9uRW50cnkqIGVudHJ5ID0gc3Rh
dGljRnVuY3Rpb25zLT5nZXQocHJvcGVydHlOYW1lLmltcGwoKSkpIHsKICAgICAgICAgICAgICAg
ICBpZiAoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5KQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+OjpwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlKTsgLy8gcHV0IGFzIG92ZXJyaWRlIHByb3BlcnR5CisgICAgICAgICAgICAgICAgdGhp
c09iamVjdC0+SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXREaXJlY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsgLy8gcHV0IGFzIG92ZXJyaWRlIHByb3BlcnR5
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogICAgIAotICAgIHJldHVybiBQYXJlbnQ6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKKyAgICByZXR1cm4gUGFyZW50OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwppbmRleCAwYmNhMmEyNjlkZGRlODUxMzVmNjYxMzFkNjY2YzAyOTc4
MmVhOTE2Li4yZTM4MmMzNjQ4MWYwNTc5MmQ3OWUyMTA2YWUwMmExY2U2NGU1ZWVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw2OCBAQAogMjAxMS0xMC0wNiAgTWFyayBIYWhu
ZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBzdGF0aWMgdmVy
c2lvbiBvZiBKU0NlbGw6OnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjkzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBib3RoIHZlcnNpb25zIG9mIHB1dCB0
byBhbGwgY2xhc3NlcyB0aGF0IAorICAgICAgICBvdmVycmlkZSB0aGVtIGFuZCBjaGFuZ2VkIHRo
ZSB2aXJ0dWFsIHZlcnNpb25zIHRvIGNhbGwgdGhlIHN0YXRpYyAKKyAgICAgICAgdmVyc2lvbnMu
CisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6cHV0KToKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpwdXQpOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJn
dW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpwdXQpOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgor
ICAgICAgICAoSlNDOjpKU0FjdGl2YXRpb246OnB1dCk6CisgICAgICAgICogcnVudGltZS9KU0Fj
dGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlND
OjpKU0FycmF5OjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6cHV0
KToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6CisgICAgICAgICogcnVudGltZS9K
U0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnB1dCk6CisgICAgICAgICogcnVudGlt
ZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNOb3RB
bk9iamVjdDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OnB1
dCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5
cGU6OnB1dCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29u
c3RydWN0b3I6OnB1dCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJl
Z0V4cE1hdGNoZXNBcnJheTo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6cHV0KToKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5n
T2JqZWN0Lmg6CisKKzIwMTEtMTAtMDYgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKwogICAgICAgICBTbm93IExlb3BhcmQgYnVpbGQgZml4CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBidWlsZCBmaXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CmluZGV4IDY2ODRiMjJlZmEyNGUyZWExYjFkYWQ3OWNhY2I1NThkYmQ5YWNkNzEuLjFjYjFkZDBm
OTA5YjEyMzM5MWVhYTM0YmE5ZTQ2ODAxNDJmMTdiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMzMxLDYgKzMzMSw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0
MjNhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERhdGFFbW0KIF9fWk4zSlND
OEpTT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3Qz
cHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1
dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVqTlNf
N0pTVmFsdWVFCitfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3Rh
dGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQog
X19aTjNKU0M4SlNPYmplY3Q2c19pbmZvRQogX19aTjNKU0M4SlNTdHJpbmc2c19pbmZvRQogX19a
TjNKU0M4UHJvZmlsZXIxM3N0b3BQcm9maWxpbmdFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmlu
Z0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0
aXZhdGlvbi5jcHAKaW5kZXggZDdiODY2ZDI2ODAwYWM4NmNjMWUzNmI5M2ZhMTQ4YjBkNzY1OTg0
Ny4uZDhiMWQ0NzlkYTQ4NTY4MTM0YjllNjI2MjkzYjYwMWEyYTk1MDQ4OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAK
QEAgLTY3LDcgKzY3LDEyIEBAIGJvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiAKIHZvaWQgRGVidWdn
ZXJBY3RpdmF0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBt
X2FjdGl2YXRpb24tPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBw
dXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgRGVi
dWdnZXJBY3RpdmF0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIHN0YXRpY19jYXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5t
X2FjdGl2YXRpb24tPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAog
dm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDk3MTEwYjJmODg5M2UwOWVmNGUzNDU4NTNhYzJkN2Fh
MDkxZDIwZDEuLjJkZTllZWZiNjY4NmNkZjdlYjdkYzI3ZTllYjRlOWRmMzBkODk1NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgVVN0
cmluZyBjbGFzc05hbWUoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNs
dWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cmd1bWVudHMuY3BwCmluZGV4IGY1M2I5YmRjYjZiODgxMjhhNjEzY2E1ZGU1MzNjODU2ZmNkYWI0
M2MuLjkxMDYxM2E1YmQ1Mzc3ZjdkOTgyZTY3NGVhZTI3ZWM4MGI1NTViNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcApAQCAtMjU5LDQ5ICsyNTksNjEg
QEAgdm9pZCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHkKIAogdm9pZCBBcmd1bWVudHM6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGkgPCBkLT5u
dW1Bcmd1bWVudHMgJiYgKCFkLT5kZWxldGVkQXJndW1lbnRzIHx8ICFkLT5kZWxldGVkQXJndW1l
bnRzW2ldKSkgewotICAgICAgICBpZiAoaSA8IGQtPm51bVBhcmFtZXRlcnMpCi0gICAgICAgICAg
ICBkLT5yZWdpc3RlcnNbZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLnNldChleGVjLT5nbG9i
YWxEYXRhKCksIGQtPmFjdGl2YXRpb24gPyBzdGF0aWNfY2FzdDxKU0NlbGwqPihkLT5hY3RpdmF0
aW9uLmdldCgpKSA6IHN0YXRpY19jYXN0PEpTQ2VsbCo+KHRoaXMpLCB2YWx1ZSk7CisgICAgcHV0
KHRoaXMsIGV4ZWMsIGksIHZhbHVlKTsKK30KKwordm9pZCBBcmd1bWVudHM6OnB1dChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAg
ICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxBcmd1bWVudHMqPihjZWxsKTsK
KyAgICBpZiAoaSA8IHRoaXNPYmplY3QtPmQtPm51bUFyZ3VtZW50cyAmJiAoIXRoaXNPYmplY3Qt
PmQtPmRlbGV0ZWRBcmd1bWVudHMgfHwgIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHNb
aV0pKSB7CisgICAgICAgIGlmIChpIDwgdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVycykKKyAg
ICAgICAgICAgIHRoaXNPYmplY3QtPmQtPnJlZ2lzdGVyc1t0aGlzT2JqZWN0LT5kLT5maXJzdFBh
cmFtZXRlckluZGV4ICsgaV0uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpc09iamVjdC0+ZC0+
YWN0aXZhdGlvbiA/IHN0YXRpY19jYXN0PEpTQ2VsbCo+KHRoaXNPYmplY3QtPmQtPmFjdGl2YXRp
b24uZ2V0KCkpIDogY2VsbCwgdmFsdWUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkLT5l
eHRyYUFyZ3VtZW50c1tpIC0gZC0+bnVtUGFyYW1ldGVyc10uc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAgdGhpc09iamVjdC0+ZC0+ZXh0cmFBcmd1bWVu
dHNbaSAtIHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnNdLnNldChleGVjLT5nbG9iYWxEYXRh
KCksIHRoaXNPYmplY3QsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90OwotICAgIEpTT2JqZWN0OjpwdXQoZXhlYywgSWRlbnRpZmllcihl
eGVjLCBVU3RyaW5nOjpudW1iZXIoaSkpLCB2YWx1ZSwgc2xvdCk7CisgICAgSlNPYmplY3Q6OnB1
dCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6Om51bWJlcihpKSks
IHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBBcmd1bWVudHM6OnB1dChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQogeworICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKK30KKyAgICAKK3ZvaWQgQXJndW1lbnRzOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1
ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwogICAgIGJvb2wgaXNBcnJheUluZGV4Owog
ICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJyYXlJbmRleCk7
Ci0gICAgaWYgKGlzQXJyYXlJbmRleCAmJiBpIDwgZC0+bnVtQXJndW1lbnRzICYmICghZC0+ZGVs
ZXRlZEFyZ3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkpIHsKLSAgICAgICAgaWYg
KGkgPCBkLT5udW1QYXJhbWV0ZXJzKQotICAgICAgICAgICAgZC0+cmVnaXN0ZXJzW2QtPmZpcnN0
UGFyYW1ldGVySW5kZXggKyBpXS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBkLT5hY3RpdmF0aW9u
ID8gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oZC0+YWN0aXZhdGlvbi5nZXQoKSkgOiBzdGF0aWNfY2Fz
dDxKU0NlbGwqPih0aGlzKSwgdmFsdWUpOworICAgIGlmIChpc0FycmF5SW5kZXggJiYgaSA8IHRo
aXNPYmplY3QtPmQtPm51bUFyZ3VtZW50cyAmJiAoIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1
bWVudHMgfHwgIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7CisgICAgICAg
IGlmIChpIDwgdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVycykKKyAgICAgICAgICAgIHRoaXNP
YmplY3QtPmQtPnJlZ2lzdGVyc1t0aGlzT2JqZWN0LT5kLT5maXJzdFBhcmFtZXRlckluZGV4ICsg
aV0uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpc09iamVjdC0+ZC0+YWN0aXZhdGlvbiA/IHN0
YXRpY19jYXN0PEpTQ2VsbCo+KHRoaXNPYmplY3QtPmQtPmFjdGl2YXRpb24uZ2V0KCkpIDogc3Rh
dGljX2Nhc3Q8SlNDZWxsKj4odGhpc09iamVjdCksIHZhbHVlKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgZC0+ZXh0cmFBcmd1bWVudHNbaSAtIGQtPm51bVBhcmFtZXRlcnNdLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXMsIHZhbHVlKTsKKyAgICAgICAgICAgIHRoaXNPYmplY3QtPmQt
PmV4dHJhQXJndW1lbnRzW2kgLSB0aGlzT2JqZWN0LT5kLT5udW1QYXJhbWV0ZXJzXS5zZXQoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCB0aGlzT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5n
dGggJiYgIWQtPm92ZXJyb2RlTGVuZ3RoKSB7Ci0gICAgICAgIGQtPm92ZXJyb2RlTGVuZ3RoID0g
dHJ1ZTsKLSAgICAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgRG9udEVudW0pOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCAmJiAhdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVMZW5ndGgpIHsKKyAg
ICAgICAgdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVMZW5ndGggPSB0cnVlOworICAgICAgICB0aGlz
T2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBEb250RW51bSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAocHJvcGVydHlO
YW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgIWQtPm92ZXJyb2RlQ2FsbGVl
KSB7Ci0gICAgICAgIGlmICghZC0+aXNTdHJpY3RNb2RlKSB7Ci0gICAgICAgICAgICBkLT5vdmVy
cm9kZUNhbGxlZSA9IHRydWU7Ci0gICAgICAgICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBEb250RW51bSk7CisgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVlICYmICF0aGlzT2JqZWN0LT5kLT5vdmVy
cm9kZUNhbGxlZSkgeworICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmQtPmlzU3RyaWN0TW9kZSkg
eworICAgICAgICAgICAgdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVDYWxsZWUgPSB0cnVlOworICAg
ICAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgRG9udEVudW0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShleGVjKTsKKyAgICAg
ICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4ZWMpOwog
ICAgIH0KIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNh
bGxlciAmJiBkLT5pc1N0cmljdE1vZGUpCi0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJ
Zk5lY2Vzc2FyeShleGVjKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5jYWxsZXIgJiYgdGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKQorICAgICAgICB0
aGlzT2JqZWN0LT5jcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7CiAKLSAg
ICBKU09iamVjdDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIEpT
T2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7
CiB9CiAKIGJvb2wgQXJndW1lbnRzOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGkpIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRl
eCBmZTk5MGI0NDczZTRhOTgwMTI4YjkzY2NiZDk1NWY5MjYwNmJlNzc2Li5mM2RmM2ZiNzliOGJh
YTgxZjYyMTgwNTg2NDgxNTI5MjM3OWMyY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bcmd1bWVudHMuaApAQCAtMTI5LDcgKzEyOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyB2
b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZv
aWQgY3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggODIyNjlh
NTU1YWEyNWY3MmNjMTVjMjc1N2E3MDYwN2RmYzgxODdhYi4uYjVhZGQ2YzIzY2FhNjY4MWNlNjZh
Nzk0MzM0MDRlYmFkMDUyZjUzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0xNjUsMTYgKzE2NSwyMiBAQCBib29sIEpTQWN0aXZhdGlv
bjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydAogCiB2b2lkIEpTQWN0aXZhdGlvbjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7Ci0gICAgQVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpoZWFwKHZh
bHVlKSA9PSBIZWFwOjpoZWFwKHRoaXMpKTsKKyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgSlNBY3RpdmF0aW9uOjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTQWN0aXZhdGlvbiog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQWN0aXZhdGlvbio+KGNlbGwpOworICAgIEFTU0VS
VCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0gSGVhcDo6aGVhcCh0
aGlzT2JqZWN0KSk7CiAKLSAgICBpZiAoc3ltYm9sVGFibGVQdXQoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlKSkKKyAgICBpZiAodGhpc09iamVjdC0+c3ltYm9sVGFibGVQ
dXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gV2UgZG9uJ3QgY2FsbCB0aHJvdWdoIHRvIEpTT2JqZWN0IGJlY2F1c2Ug
X19wcm90b19fIGFuZCBnZXR0ZXIvc2V0dGVyIAogICAgIC8vIHByb3BlcnRpZXMgYXJlIG5vbi1z
dGFuZGFyZCBleHRlbnNpb25zIHRoYXQgb3RoZXIgaW1wbGVtZW50YXRpb25zIGRvIG5vdAogICAg
IC8vIGV4cG9zZSBpbiB0aGUgYWN0aXZhdGlvbiBvYmplY3QuCi0gICAgQVNTRVJUKCFoYXNHZXR0
ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkpOwotICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCks
IHByb3BlcnR5TmFtZSwgdmFsdWUsIDAsIHRydWUsIHNsb3QpOworICAgIEFTU0VSVCghdGhpc09i
amVjdC0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpKTsKKyAgICB0aGlzT2JqZWN0LT5wdXRE
aXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCB0cnVlLCBz
bG90KTsKIH0KIAogLy8gRklYTUU6IE1ha2UgdGhpcyBmdW5jdGlvbiBob25vciBSZWFkT25seSAo
Y29uc3QpIGFuZCBEb250RW51bQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fj
dGl2YXRpb24uaAppbmRleCAzY2NlMjU1ODNjMjE3ZDQ3OWU5NzcyYzY3YjM5YWZlZmM4Zjc2YWJl
Li44ZmJiZjBkNzRkYjcyNDEzNmIxZjU4ZGUwMWYxNjUzMzRiOWJlODViIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNjUsNiArNjUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNw
cAppbmRleCA5Y2QwNzk1ZjA2ZWFmNTBhY2U5NDFhNmEyMjEzM2RkYjE0YzM4ODE4Li5hYzYxMzhi
ZTk0NWE0YTNhNzU1ODFkZWYwZGQxMjg0NTA2OTExMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMzIyLDEzICszMjIsMTkgQEAgYm9vbCBKU0FycmF5
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXIKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCi0vLyBFQ01BIDE1LjQuNS4x
CiB2b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogeworICAg
IHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKworLy8gRUNN
QSAxNS40LjUuMQordm9pZCBKU0FycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQoreworICAgIEpTQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxKU0FycmF5Kj4oY2VsbCk7CiAgICAgYm9vbCBpc0FycmF5SW5kZXg7CiAgICAgdW5zaWduZWQg
aSA9IHByb3BlcnR5TmFtZS50b0FycmF5SW5kZXgoaXNBcnJheUluZGV4KTsKICAgICBpZiAoaXNB
cnJheUluZGV4KSB7Ci0gICAgICAgIHB1dChleGVjLCBpLCB2YWx1ZSk7CisgICAgICAgIHB1dCh0
aGlzT2JqZWN0LCBleGVjLCBpLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTMzOCwxOCArMzQ0LDI0IEBAIHZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlCiAgICAgICAgICAgICB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgIkludmFsaWQgYXJyYXkgbGVu
Z3RoIikpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHNldExlbmd0
aChuZXdMZW5ndGgpOworICAgICAgICB0aGlzT2JqZWN0LT5zZXRMZW5ndGgobmV3TGVuZ3RoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEpTT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0FycmF5OjpwdXQoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIGNoZWNrQ29u
c2lzdGVuY3koKTsKKyAgICBwdXQodGhpcywgZXhlYywgaSwgdmFsdWUpOworfQogCi0gICAgQXJy
YXlTdG9yYWdlKiBzdG9yYWdlID0gbV9zdG9yYWdlOwordm9pZCBKU0FycmF5OjpwdXQoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgSlNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxsKTsKKyAg
ICB0aGlzT2JqZWN0LT5jaGVja0NvbnNpc3RlbmN5KCk7CisKKyAgICBBcnJheVN0b3JhZ2UqIHN0
b3JhZ2UgPSB0aGlzT2JqZWN0LT5tX3N0b3JhZ2U7CiAKICAgICB1bnNpZ25lZCBsZW5ndGggPSBz
dG9yYWdlLT5tX2xlbmd0aDsKICAgICBpZiAoaSA+PSBsZW5ndGggJiYgaSA8PSBNQVhfQVJSQVlf
SU5ERVgpIHsKQEAgLTM1NywyMCArMzY5LDIwIEBAIHZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgc3RvcmFnZS0+bV9s
ZW5ndGggPSBsZW5ndGg7CiAgICAgfQogCi0gICAgaWYgKGkgPCBtX3ZlY3Rvckxlbmd0aCkgewor
ICAgIGlmIChpIDwgdGhpc09iamVjdC0+bV92ZWN0b3JMZW5ndGgpIHsKICAgICAgICAgV3JpdGVC
YXJyaWVyPFVua25vd24+JiB2YWx1ZVNsb3QgPSBzdG9yYWdlLT5tX3ZlY3RvcltpXTsKICAgICAg
ICAgaWYgKHZhbHVlU2xvdCkgewotICAgICAgICAgICAgdmFsdWVTbG90LnNldChleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIHZhbHVlKTsKLSAgICAgICAgICAgIGNoZWNrQ29uc2lzdGVuY3koKTsK
KyAgICAgICAgICAgIHZhbHVlU2xvdC5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzT2JqZWN0
LCB2YWx1ZSk7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5jaGVja0NvbnNpc3RlbmN5KCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgdmFsdWVTbG90LnNldChleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXMsIHZhbHVlKTsKKyAgICAgICAgdmFsdWVTbG90LnNldChleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXNPYmplY3QsIHZhbHVlKTsKICAgICAgICAgKytzdG9yYWdlLT5t
X251bVZhbHVlc0luVmVjdG9yOwotICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CisgICAgICAg
IHRoaXNPYmplY3QtPmNoZWNrQ29uc2lzdGVuY3koKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHB1dFNsb3dDYXNlKGV4ZWMsIGksIHZhbHVlKTsKKyAgICB0aGlzT2JqZWN0LT5wdXRT
bG93Q2FzZShleGVjLCBpLCB2YWx1ZSk7CiB9CiAKIE5FVkVSX0lOTElORSB2b2lkIEpTQXJyYXk6
OnB1dFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlNTUzMmFiM2JiNTkx
OWIzMWVkMDRkNTVlZmVmNmMyM2UyZDZjMTJmLi40NTIzNTMzYTEwNzAyNzg2NGQ3NzEzZDIzYzdl
ZGY0Njg2ZWM2NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBA
IC05OCw2ICs5OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSk7IC8vIEZJWE1FOiBNYWtlIHByb3RlY3RlZCBhbmQgYWRkIHNldEl0ZW0uCisgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CiAgICAgICAgIApAQCAtMTY5LDYgKzE3MCw4IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJl
RmxhZ3M7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisKICAgICAgICAgdmlydHVh
bCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9k
ZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXggMjc1OTdiYTE3ZDg3YWYyZjZjYzA3
YzMxYzg5ZWVjODhmYzRiNDcwNC4uZTczOWI0MzYxOWFmMmYzNjMwYWQyMzI4NjlkN2E5MzRlMjA1
YzhjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNw
cApAQCAtODcsMTggKzg3LDI5IEBAIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvCiAKIHZvaWQgSlNC
eXRlQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHB1dCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBKU0J5dGVB
cnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sK
KyAgICBKU0J5dGVBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQnl0ZUFycmF5Kj4o
Y2VsbCk7CiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50
b1VJbnQzMihvayk7CiAgICAgaWYgKG9rKSB7Ci0gICAgICAgIHNldEluZGV4KGV4ZWMsIGluZGV4
LCB2YWx1ZSk7CisgICAgICAgIHRoaXNPYmplY3QtPnNldEluZGV4KGV4ZWMsIGluZGV4LCB2YWx1
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgSlNPYmplY3Q6OnB1dChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTQnl0ZUFycmF5Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUp
CiB7Ci0gICAgc2V0SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgcHV0KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOworfQorCit2b2lkIEpTQnl0ZUFycmF5Ojpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBzdGF0aWNfY2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpLT5z
ZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBKU0J5dGVBcnJh
eTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDI0MjQ4YzI4ZjhiNGU1ZjY0YTMzZmFh
OTljYWY0YjgxNGQ1ZDU3OWUuLjZhNjIwNGViYmQ0Y2I0ZjhlNjBkNDQ3ZjNmZDlmOWU4YWM2MWI3
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAt
OTIsNyArOTIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgICAg
IHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYs
IEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDc5YTAxNDQ3NGVkMDAx
NDc1MDE5YjBhOTgwODcyNTY3ODFiNzNiNjIuLjE4ZjdjMDFmYzg0MDVkZjM1ZjdhNDFhMDA3YTgy
ZWRiNTk4NjMxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApA
QCAtOTUsMTIgKzk1LDIyIEBAIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsCiAKIHZvaWQgSlNDZWxs
OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgdG9PYmplY3QoZXhlYywg
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVl
LCBzbG90KTsKKyAgICBwdXQodGhpcywgZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwor
fQorCit2b2lkIEpTQ2VsbDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCit7CisgICAgY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBK
U0NlbGw6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlkZW50aWZpZXIsIEpTVmFsdWUg
dmFsdWUpCiB7Ci0gICAgdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KS0+cHV0KGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsKKyAgICBwdXQodGhpcywgZXhlYywgaWRl
bnRpZmllciwgdmFsdWUpOworfQorCit2b2lkIEpTQ2VsbDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlKQoreworICAg
IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1dChl
eGVjLCBpZGVudGlmaWVyLCB2YWx1ZSk7CiB9CiAKIGJvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0
eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IGNjYzFlOTkwZThiOGJlZjRjNTliODgx
YmE1YmViZjI5NmZjNDhiZWYuLjczN2Q3YTM5YzkzZjk4ODViOGVkNGU2MDZiYzVkNTNiZmJmY2Y0
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC05MSw3ICs5MSwx
MCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8o
KSBjb25zdDsKICAgICAgICAgY29uc3QgTWV0aG9kVGFibGUqIG1ldGhvZFRhYmxlKCkgY29uc3Q7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBw
dXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAgICAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSk7CisgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
dmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
aW5kZXggZmJlZGRlZDgxYzI5MjhhYjVlMGYyNTRmZDEzZTAxNzU0NzAzOTEzYy4uZGJhZTM1NzA1
OWMxM2JlYTNkMDk1M2MzMmM4OGIyYTYxOGUxZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTMwMSwxNyArMzAxLDIzIEBAIHZvaWQgSlNG
dW5jdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0CiAKIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7Ci0gICAgaWYgKGlzSG9zdEZ1bmN0aW9uKCkpIHsKLSAgICAgICAgQmFz
ZTo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIHB1dCh0aGlzLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBKU0Z1bmN0aW9uOjpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpT
RnVuY3Rpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCk7Cisg
ICAgaWYgKHRoaXNPYmplY3QtPmlzSG9zdEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgQmFzZTo6cHV0
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLnByb3RvdHlwZSkgewogICAgICAgICAvLyBNYWtlIHN1cmUgcHJvdG90eXBlIGhhcyBiZWVu
IHJlaWZpZWQsIHN1Y2ggdGhhdCBpdCBjYW4gb25seSBiZSBvdmVyd3JpdHRlbgogICAgICAgICAv
LyBmb2xsb3dpbmcgdGhlIHJ1bGVzIHNldCBvdXQgaW4gRUNNQS0yNjIgOC4xMi45LgogICAgICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KLSAgICBpZiAoanNFeGVjdXRhYmxl
KCktPmlzU3RyaWN0TW9kZSgpKSB7CisgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgp
LT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGV4
ZWMsIFN0cmljdE1vZGVBcmd1bWVudHNBY2Nlc3NFcnJvcik7CiAgICAgICAgICAgICByZXR1cm47
CkBAIC0zMjMsNyArMzI5LDcgQEAgdm9pZCBKU0Z1bmN0aW9uOjpwdXQoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmEKICAgICB9CiAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzIHx8IHBy
b3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKQogICAgICAgICByZXR1
cm47Ci0gICAgQmFzZTo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAg
IEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsK
IH0KIAogYm9vbCBKU0Z1bmN0aW9uOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uaAppbmRleCA5MWMzY2NmZDk1MjRjMmM5Y2QzNTA4NTNiNjA2NTJiYjJl
MTBmYWFiLi42OWZlMGU3NDQ4MWVmZmE3ODAxMTZmZjFhNDcyZDJkMTUyMGY0ZTE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC0xNDMsNiArMTQzLDgg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgaXNIb3N0RnVuY3Rpb25Ob25JbmxpbmUo
KSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwogCiAgICAgICAgIHN0YXRpYyBKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihF
eGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggYzE2OTFjM2M0NGNh
ODYwY2IxOGFmNjE4MGU5N2NiNGQ0MjllODdmNC4uYjc4NDUyYWYxZDkzOThkZGQ1N2EyZDM1YTAy
YzEwNzljMDg1ZTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcApAQCAtMTM2LDExICsxMzYsMTcgQEAgdm9pZCBKU0dsb2JhbE9iamVj
dDo6aW5pdChKU09iamVjdCogdGhpc1ZhbHVlKQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXQo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlQoIUhlYXA6OmhlYXAo
dmFsdWUpIHx8IEhlYXA6OmhlYXAodmFsdWUpID09IEhlYXA6OmhlYXAodGhpcykpOworICAgIHB1
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBKU0ds
b2JhbE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dCkKK3sKKyAgICBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTR2xv
YmFsT2JqZWN0Kj4oY2VsbCk7CisgICAgQVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFw
OjpoZWFwKHZhbHVlKSA9PSBIZWFwOjpoZWFwKHRoaXNPYmplY3QpKTsKIAotICAgIGlmIChzeW1i
b2xUYWJsZVB1dChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgdmFsdWUpKQorICAg
IGlmICh0aGlzT2JqZWN0LT5zeW1ib2xUYWJsZVB1dChleGVjLT5nbG9iYWxEYXRhKCksIHByb3Bl
cnR5TmFtZSwgdmFsdWUpKQogICAgICAgICByZXR1cm47Ci0gICAgSlNWYXJpYWJsZU9iamVjdDo6
cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIEpTVmFyaWFibGVPYmpl
Y3Q6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0K
IAogdm9pZCBKU0dsb2JhbE9iamVjdDo6cHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaAppbmRleCAxNTE5YzM2NzEzNzU4OGQxNWRkY2JlMDJjYjc1ODhmMzk3MTdkZWQ0Li40
ZjczMWM1YzE0YjhiN2Q3YmQ2ZDQ1ZTBjNDYyZTBmNDI2NjY2ZTk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE4Myw2ICsxODMsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisKICAgICAgICAgdmlydHVhbCB2b2lkIHB1
dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAKICAgICAgICAgdmlydHVh
bCB2b2lkIGRlZmluZUdldHRlcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJGdW5jLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKaW5kZXggMGQ1
ODliZjJmYTIzZjc3YmU0ODUwZjdlOGQ4ZmEwNjhjN2E4ZTBmYi4uYjJjZDYwNmRjMWRjYjk5OTM0
MGQ3ZTVhYjUwMTYwZDlhN2JiNjFiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTc2LDEyICs3NiwyMiBAQCBib29sIEpTTm90QW5P
YmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU05vdEFuT2JqZWN0Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiAsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpCit2b2lkIEpTTm90QW5PYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKK3sKKyAgICBwdXQodGhpcywgZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIHNsb3QpOwor
fQorCit2b2lkIEpTTm90QW5PYmplY3Q6OnB1dChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImICwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90JikKIHsKICAgICBBU1NF
UlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKIH0KIAotdm9pZCBKU05vdEFu
T2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCwgSlNWYWx1ZSkKK3ZvaWQgSlNO
b3RBbk9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1
ZSkKK3sKKyAgICBwdXQodGhpcywgZXhlYywgaSwgdmFsdWUpOworfQorCit2b2lkIEpTTm90QW5P
YmplY3Q6OnB1dChKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkLCBKU1ZhbHVlKQog
ewogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IGFkYWZl
YmU0OWJhMDBjZWM5N2FkMjY5ZDlkYzY2MzU1NzZiZjNhMmEuLjAzYjkzM2NhYWVmMzJiMjBjOWJk
Y2EwYmQ4ZmY5ZWM4OGU0NTg5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmgKQEAgLTc1LDcgKzc1LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcHV0
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAK
ICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9w
ZXJ0eShFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDRiYTZmOGE2ZWEwZjBmZTBhNDcwNDdm
YmJlZDQzYTkwY2QyNDg2ODcuLjA5Yzg5ZDI3NmQ5NTVlYWFjOTJmNmQ5NmFkOTgwNGIwOTgyMzVk
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTEw
MywxMSArMTAzLDE3IEBAIHN0YXRpYyB2b2lkIHRocm93U2V0dGVyRXJyb3IoRXhlY1N0YXRlKiBl
eGVjKQogICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJzZXR0aW5n
IGEgcHJvcGVydHkgdGhhdCBoYXMgb25seSBhIGdldHRlciIpKTsKIH0KIAotLy8gRUNNQSA4LjYu
Mi4yCiB2b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
KyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKKy8v
IEVDTUEgOC42LjIuMgordm9pZCBKU09iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTT2JqZWN0Kj4oY2VsbCk7CiAgICAgQVNTRVJUKHZhbHVlKTsKLSAgICBBU1NFUlQo
IUhlYXA6OmhlYXAodmFsdWUpIHx8IEhlYXA6OmhlYXAodmFsdWUpID09IEhlYXA6OmhlYXAodGhp
cykpOworICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkg
PT0gSGVhcDo6aGVhcCh0aGlzT2JqZWN0KSk7CiAgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
ID0gZXhlYy0+Z2xvYmFsRGF0YSgpOwogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKSB7CkBAIC0xMTUsMjMgKzEyMSwyMyBAQCB2
b2lkIEpTT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdQogICAgICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgJiYg
IXZhbHVlLmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICghaXNF
eHRlbnNpYmxlKCkpIHsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pc0V4dGVuc2libGUoKSkg
ewogICAgICAgICAgICAgaWYgKHNsb3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgICAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9y
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAg
IGlmICghc2V0UHJvdG90eXBlV2l0aEN5Y2xlQ2hlY2soZ2xvYmFsRGF0YSwgdmFsdWUpKQorICAg
ICAgICBpZiAoIXRoaXNPYmplY3QtPnNldFByb3RvdHlwZVdpdGhDeWNsZUNoZWNrKGdsb2JhbERh
dGEsIHZhbHVlKSkKICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlRXJyb3IoZXhl
YywgImN5Y2xpYyBfX3Byb3RvX18gdmFsdWUiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IHNldHRlcnMgb3IgZ2V0dGVycyBpbiB0aGUg
cHJvdG90eXBlIGNoYWluCiAgICAgSlNWYWx1ZSBwcm90b3R5cGU7Ci0gICAgZm9yIChKU09iamVj
dCogb2JqID0gdGhpczsgIW9iai0+c3RydWN0dXJlKCktPmhhc0dldHRlclNldHRlclByb3BlcnRp
ZXMoKTsgb2JqID0gYXNPYmplY3QocHJvdG90eXBlKSkgeworICAgIGZvciAoSlNPYmplY3QqIG9i
aiA9IHRoaXNPYmplY3Q7ICFvYmotPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0
aWVzKCk7IG9iaiA9IGFzT2JqZWN0KHByb3RvdHlwZSkpIHsKICAgICAgICAgcHJvdG90eXBlID0g
b2JqLT5wcm90b3R5cGUoKTsKICAgICAgICAgaWYgKHByb3RvdHlwZS5pc051bGwoKSkgewotICAg
ICAgICAgICAgaWYgKCFwdXREaXJlY3RJbnRlcm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCAwLCB0cnVlLCBzbG90LCBnZXRKU0Z1bmN0aW9uKHZhbHVlKSkgJiYgc2xvdC5pc1N0
cmljdE1vZGUoKSkKKyAgICAgICAgICAgIGlmICghdGhpc09iamVjdC0+cHV0RGlyZWN0SW50ZXJu
YWwoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgdHJ1ZSwgc2xvdCwgZ2V0SlNG
dW5jdGlvbih2YWx1ZSkpICYmIHNsb3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgICAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9y
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTM5LDEzICsxNDUsMTMgQEAg
dm9pZCBKU09iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHUKICAgICAKICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOwog
ICAgIEpTQ2VsbCogc3BlY2lmaWNWYWx1ZTsKLSAgICBpZiAoKHN0cnVjdHVyZSgpLT5nZXQoZ2xv
YmFsRGF0YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY1ZhbHVlKSAhPSBXVEY6
Om5vdEZvdW5kKSAmJiBhdHRyaWJ1dGVzICYgUmVhZE9ubHkpIHsKKyAgICBpZiAoKHRoaXNPYmpl
Y3QtPnN0cnVjdHVyZSgpLT5nZXQoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVz
LCBzcGVjaWZpY1ZhbHVlKSAhPSBXVEY6Om5vdEZvdW5kKSAmJiBhdHRyaWJ1dGVzICYgUmVhZE9u
bHkpIHsKICAgICAgICAgaWYgKHNsb3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgICAgICB0aHJv
d0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9w
ZXJ0eVdyaXRlRXJyb3IpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoSlNP
YmplY3QqIG9iaiA9IHRoaXM7IDsgb2JqID0gYXNPYmplY3QocHJvdG90eXBlKSkgeworICAgIGZv
ciAoSlNPYmplY3QqIG9iaiA9IHRoaXNPYmplY3Q7IDsgb2JqID0gYXNPYmplY3QocHJvdG90eXBl
KSkgewogICAgICAgICBpZiAoSlNWYWx1ZSBncyA9IG9iai0+Z2V0RGlyZWN0KGdsb2JhbERhdGEs
IHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgICAgIGlmIChncy5pc0dldHRlclNldHRlcigpKSB7
CiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIHNldHRlckZ1bmMgPSBhc0dldHRlclNldHRlcihn
cyktPnNldHRlcigpOyAgICAgICAgCkBAIC0xNjAsNyArMTY2LDcgQEAgdm9pZCBKU09iamVjdDo6
cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHUKICAgICAgICAgICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CiAKICAgICAgICAg
ICAgICAgICAvLyBJZiB0aGlzIGlzIFdlYkNvcmUncyBnbG9iYWwgb2JqZWN0IHRoZW4gd2UgbmVl
ZCB0byBzdWJzdGl0dXRlIHRoZSBzaGVsbC4KLSAgICAgICAgICAgICAgICBjYWxsKGV4ZWMsIHNl
dHRlckZ1bmMsIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcy0+dG9UaGlzT2JqZWN0KGV4ZWMpLCBh
cmdzKTsKKyAgICAgICAgICAgICAgICBjYWxsKGV4ZWMsIHNldHRlckZ1bmMsIGNhbGxUeXBlLCBj
YWxsRGF0YSwgdGhpc09iamVjdC0+dG9UaGlzT2JqZWN0KGV4ZWMpLCBhcmdzKTsKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKQEAgLTE3NCwxNSArMTgwLDIwIEBAIHZv
aWQgSlNPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgCi0g
ICAgaWYgKCFwdXREaXJlY3RJbnRlcm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCAwLCB0cnVlLCBzbG90LCBnZXRKU0Z1bmN0aW9uKHZhbHVlKSkgJiYgc2xvdC5pc1N0cmljdE1v
ZGUoKSkKKyAgICBpZiAoIXRoaXNPYmplY3QtPnB1dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIDAsIHRydWUsIHNsb3QsIGdldEpTRnVuY3Rpb24odmFsdWUp
KSAmJiBzbG90LmlzU3RyaWN0TW9kZSgpKQogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBT
dHJpY3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwogICAgIHJldHVybjsKIH0KIAog
dm9pZCBKU09iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlKQogeworICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlKTsKK30KKwordm9pZCBKU09iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCit7CiAgICAgUHV0UHJv
cGVydHlTbG90IHNsb3Q7Ci0gICAgcHV0KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJv
cGVydHlOYW1lKSwgdmFsdWUsIHNsb3QpOworICAgIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2Vs
bCktPnB1dChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVl
LCBzbG90KTsKIH0KIAogdm9pZCBKU09iamVjdDo6cHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVy
dHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggMzA5NjFkNmFmYjYyMjEyNDQzZTI0ZjFkMjA0NjVkYzY1YWNhOWI3Zi4uZjA0MDhkMWVhZjIz
MzIxOWJlYjQ5ZTBmNWI3MmJjMDU3ZjFjZjA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC0xMDYsNyArMTA2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFs
RGF0YSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcywgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRh
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdGF0aWNTY29wZU9iamVjdC5jcHAKaW5kZXggNTYxNWMxMTY3ODNlNjk4ODc0N2Y3N2YyMTFk
ODAyMmY2YTFlOTAxNS4uMzUzZThjNTdlZmRkMTVkNjM4ZjdiNTlhOGQzNmYwOWE1MjQ5OGU1OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5jcHAKQEAgLTUxLDYgKzUxLDEyIEBAIEpTT2JqZWN0KiBKU1N0YXRpY1Njb3BlT2Jq
ZWN0Ojp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogCiB2b2lkIEpTU3RhdGlj
U2NvcGVPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHB1
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBKU1N0
YXRpY1Njb3BlT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIEpTU3RhdGljU2NvcGVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU1N0YXRpY1Njb3BlT2JqZWN0Kj4oY2VsbCk7CiAgICAgaWYgKHNsb3QuaXNTdHJpY3RN
b2RlKCkpIHsKICAgICAgICAgLy8gRG91YmxlIGxvb2t1cCBpbiBzdHJpY3QgbW9kZSwgYnV0IHRo
aXMgb25seSBvY2N1cnMgd2hlbgogICAgICAgICAvLyBhKSBpbmRpcmVjdGx5IHdyaXRpbmcgdG8g
YW4gZXhjZXB0aW9uIHNsb3QKQEAgLTYwLDEzICs2NiwxMyBAQCB2b2lkIEpTU3RhdGljU2NvcGVP
YmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSgogICAgICAgICAvLyBhIHBvaW50ZXIgY29tcGFyZS4KICAgICAgICAgUHJvcGVydHlTbG90
IHNsb3Q7CiAgICAgICAgIGJvb2wgaXNXcml0YWJsZSA9IHRydWU7Ci0gICAgICAgIHN5bWJvbFRh
YmxlR2V0KHByb3BlcnR5TmFtZSwgc2xvdCwgaXNXcml0YWJsZSk7CisgICAgICAgIHRoaXNPYmpl
Y3QtPnN5bWJvbFRhYmxlR2V0KHByb3BlcnR5TmFtZSwgc2xvdCwgaXNXcml0YWJsZSk7CiAgICAg
ICAgIGlmICghaXNXcml0YWJsZSkgewogICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVh
dGVUeXBlRXJyb3IoZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHN5bWJvbFRh
YmxlUHV0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpCisgICAgaWYg
KHRoaXNPYmplY3QtPnN5bWJvbFRhYmxlUHV0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlO
YW1lLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuaAppbmRleCAwZjkzY2U3Zjg0YWU4ODAzNmRkN2E5ODI0MmEzYjhhZWRlZmQ0ZWNj
Li4zYTNmYzZlMmFkMjNjMTUzNDI0YzM2ODUyMjBhMzNhYWUzMjJiMWI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC00
Niw2ICs0Niw4IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRv
VGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOworCiAgICAgICAgIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCiAgICAg
ICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIHsgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5
cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IGZl
ZGEyNzU0MDA0NTljMWQzNTU4NTRlYWZjNjAyMTM5OTgzMDUxMGMuLjI0YTY2MmIxNWQ2NGI5OGMw
MzUwMDI1Y2JjZmI1NmJkNzUzMDYyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtNzcsMTIgKzc3LDE4IEBAIHZvaWQgT2Jq
ZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KikKIAogdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQogewotICAgIEpTTm9uRmluYWxPYmplY3Q6OnB1dChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIE9iamVjdFByb3RvdHlw
ZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpOworICAg
IEpTTm9uRmluYWxPYmplY3Q6OnB1dChjZWxsLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTsKIAotICAgIGlmIChtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lcykgeworICAg
IGlmICh0aGlzT2JqZWN0LT5tX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lcykgewogICAg
ICAgICBib29sIGlzVUludDMyOwogICAgICAgICBwcm9wZXJ0eU5hbWUudG9VSW50MzIoaXNVSW50
MzIpOwotICAgICAgICBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lcyA9ICFpc1VJbnQz
MjsKKyAgICAgICAgdGhpc09iamVjdC0+bV9oYXNOb1Byb3BlcnRpZXNXaXRoVUludDMyTmFtZXMg
PSAhaXNVSW50MzI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IDRjMTJkZmI0Njc5MmRjMWI4ZTFlZTEzMjBlOGQ0
MjRiYTZiOWZjMWUuLmQ4ZGVhNGNmNDcxOWQ1ZDRjMzZkNGE1MzA0ZThiYjNkNzNhNDAyZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCkBA
IC01MSw2ICs1MSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIE9i
amVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisKICAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDBl
YTlhMTBkZGUyMmNlZGRkN2M4MmExY2ZiZTYwZDc1ZGM2NzMwOC4uN2Y1YjdlYTY0Mjk1NDhjODI3
ODdjYTlkZDA2MTg5NjE2MGFjNmMwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjg5LDcgKzI4OSwxMiBAQCBKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBzbG90QmFzZSwgY29uc3QgSQogCiB2b2lkIFJlZ0V4cENvbnN0cnVjdG9yOjpwdXQoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBsb29rdXBQdXQ8UmVnRXhwQ29uc3RydWN0
b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIEV4ZWNTdGF0
ZTo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgc2xvdCk7CisgICAgcHV0KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworfQorCit2b2lkIFJlZ0V4cENv
bnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQoreworICAgIGxvb2t1cFB1dDxSZWdFeHBDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4o
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgRXhlY1N0YXRlOjpyZWdFeHBDb25zdHJ1Y3RvclRh
YmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KGNlbGwpLCBzbG90KTsK
IH0KIAogdm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGJhc2VPYmplY3QsIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCBkZWU0ODQ0NTFkNThmOWYz
NDMxZGVmYjllODVlZDU1MjFkY2QzMmIyLi4xODc2NTFiYThkMjQ3MTg2NmI3MzFhM2M5Y2Q4NzVh
OTMxMzRlYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmgKQEAgLTcyLDYgKzcyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0
YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggYWQ5NGUwN2RhN2MxM2Y5YjFiM2M0ZTcwYjY2ZTU2NmFm
YTdhOWY4Yy4uM2EzMzc1YmRkMWM2MjNkYmFjYTY2MmVmYzI0MzgyZmI4ZTkwMGYwNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgK
QEAgLTY2LDE2ICs2NiwyOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHYsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewotICAgICAgICAgICAg
aWYgKHN1YmNsYXNzRGF0YSgpKQotICAgICAgICAgICAgICAgIGZpbGxBcnJheUluc3RhbmNlKGV4
ZWMpOwotICAgICAgICAgICAgSlNBcnJheTo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdiwgc2xv
dCk7CisgICAgICAgICAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2LCBzbG90KTsK
ICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHYsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKKyAgICAgICAgeworICAgICAgICAgICAgUmVnRXhwTWF0Y2hl
c0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2Vs
bCk7CisgICAgICAgICAgICBpZiAodGhpc09iamVjdC0+c3ViY2xhc3NEYXRhKCkpCisgICAgICAg
ICAgICAgICAgdGhpc09iamVjdC0+ZmlsbEFycmF5SW5zdGFuY2UoZXhlYyk7CisgICAgICAgICAg
ICBKU0FycmF5OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2LCBzbG90KTsK
KyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQogICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAoc3ViY2xhc3NEYXRhKCkpCi0gICAgICAgICAgICAgICAgZmlsbEFycmF5SW5z
dGFuY2UoZXhlYyk7Ci0gICAgICAgICAgICBKU0FycmF5OjpwdXQoZXhlYywgcHJvcGVydHlOYW1l
LCB2KTsKKyAgICAgICAgICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHYpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2KQorICAgICAg
ICB7CisgICAgICAgICAgICBSZWdFeHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxSZWdFeHBNYXRjaGVzQXJyYXkqPihjZWxsKTsKKyAgICAgICAgICAgIGlmICh0aGlzT2Jq
ZWN0LT5zdWJjbGFzc0RhdGEoKSkKKyAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5maWxsQXJy
YXlJbnN0YW5jZShleGVjKTsKKyAgICAgICAgICAgIEpTQXJyYXk6OnB1dCh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHYpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBib29s
IGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHAKaW5kZXggMmI4NDMyNGZmZTg5MTdkNTMxYzhjNzczM2ZhNTAxNGNmODFiNTAzNC4uMDhkZWE2
ZGNlMWRiOGViM2UwZjRmNGYyNTM2YWVkMzZjODEyZmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC0xNjIsNyArMTYyLDEyIEBAIEpT
VmFsdWUgcmVnRXhwT2JqZWN0TGFzdEluZGV4KEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2Us
IGNvbnN0IElkZW50aWZpZXImKQogCiB2b2lkIFJlZ0V4cE9iamVjdDo6cHV0KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgbG9va3VwUHV0PFJlZ0V4cE9iamVjdCwgSlNPYmpl
Y3Q+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIEV4ZWNTdGF0ZTo6cmVnRXhwVGFibGUoZXhl
YyksIHRoaXMsIHNsb3QpOworICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKK30KKwordm9pZCBSZWdFeHBPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgbG9va3VwUHV0PFJlZ0V4cE9iamVjdCwg
SlNPYmplY3Q+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIEV4ZWNTdGF0ZTo6cmVnRXhwVGFi
bGUoZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cE9iamVjdCo+KGNlbGwpLCBzbG90KTsKIH0KIAog
dm9pZCBzZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
YmFzZU9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggZThhZjZkNmJjMWYzNzRiOTkyMWM5MGMzYjYwNGQyZWY1
NWI4YzUzOS4uZjJkYjJkZGM1OWM3ZjY4NGRjYjczZTBkMmY4YzViZDA1YzVmODllNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY4LDYgKzY4
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQg
cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERB
VEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXggYTY0OTk5ZWFjN2FkNmYwZTNhMTExNWM3ODRm
NDBiYzFhZjUwZGY1Ni4uNjJiMWYzYTExZjQ1YTA3NzMzOWU3ODRmNzQxYTFlZmJhMWIwM2Q5OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBA
IC02NCw5ICs2NCwxNCBAQCBib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcAogCiB2b2lkIFN0cmluZ09i
amVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcHV0KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworfQorCit2b2lkIFN0cmluZ09iamVj
dDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKICAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpCiAgICAg
ICAgIHJldHVybjsKLSAgICBKU09iamVjdDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOworICAgIEpTT2JqZWN0OjpwdXQoY2VsbCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7CiB9CiAKIGJvb2wgU3RyaW5nT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggZmY5MWRiMzI0ZjhjMGE4OWMy
N2IwODEyMWU4MGQxOTI4ODkzMjM5NC4uMTZkOTliNjQ1YTM5YTIzOWEzN2M1MTNiZGI1N2ViNTMz
YjBiNzBjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmgKQEAgLTUxLDYgKzUxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZwppbmRleCA1MmVkMTJhZTY5N2NjY2JlNjY0ZDI5NTkxNzM5NGM0ZWExOGMyMmQy
Li4xMzY3ZjliMzNlYjFlODJhOTM1Y2IxNGI5MGFiODllNDA1MTA2MzdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0xMC0wNiAgTWFyayBIYWhuZW5iZXJn
ICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBv
ZiBKU0NlbGw6OnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjkzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBib3RoIHZlcnNpb25zIG9mIHB1dCB0byBhbGwg
Y2xhc3NlcyB0aGF0IAorICAgICAgICBvdmVycmlkZSB0aGVtIGFuZCBjaGFuZ2VkIHRoZSB2aXJ0
dWFsIHZlcnNpb25zIHRvIGNhbGwgdGhlIHN0YXRpYyAKKyAgICAgICAgdmVyc2lvbnMuCisKKyAg
ICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6OnB1dCk6
CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorCiAyMDExLTEwLTA1ICBHYXZpbiBCYXJyYWNs
b3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgZXhwbGljaXQgSlNH
bG9iYWxUaGlzIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9i
amVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5k
ZXggNjMyNTk5NGYxZTFjZjljMjA5MGZkODJmNmEwMjNjOTViNDAxMmQyYS4uZWE5ZTg4ZGJjNGM3
NTM5ZDFlN2YwYWYxYmQwYzgwNDQyZWI4ZTUwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmNwcApAQCAtMTUxLDE1ICsxNTEsMjEgQEAgYm9vbCBVc2VyT2JqZWN0SW1wOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXIKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCi12b2lkIFVzZXJPYmplY3RJbXA6OnB1dChFeGVjU3RhdGUgKmV4
ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JikKK3ZvaWQgVXNlck9iamVjdEltcDo6cHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29u
c3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7Ci0gICAgaWYgKCFmSlNVc2VyT2JqZWN0KQorICAgIHB1dCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBVc2VyT2JqZWN0SW1wOjpw
dXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JikKK3sKKyAgICBVc2VyT2Jq
ZWN0SW1wKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8VXNlck9iamVjdEltcCo+KGNlbGwpOwor
ICAgIGlmICghdGhpc09iamVjdC0+ZkpTVXNlck9iamVjdCkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIENGU3RyaW5nUmVmIGNmUHJvcE5hbWUgPSBJZGVudGlmaWVyVG9DRlN0cmluZyhwcm9w
ZXJ0eU5hbWUpOwogICAgIEpTVXNlck9iamVjdCAqanNWYWx1ZU9iaiA9IEtKU1ZhbHVlVG9KU09i
amVjdCh2YWx1ZSwgZXhlYyk7CiAKLSAgICBmSlNVc2VyT2JqZWN0LT5TZXRQcm9wZXJ0eShjZlBy
b3BOYW1lLCBqc1ZhbHVlT2JqKTsKKyAgICB0aGlzT2JqZWN0LT5mSlNVc2VyT2JqZWN0LT5TZXRQ
cm9wZXJ0eShjZlByb3BOYW1lLCBqc1ZhbHVlT2JqKTsKIAogICAgIGlmIChqc1ZhbHVlT2JqKSBq
c1ZhbHVlT2JqLT5SZWxlYXNlKCk7CiAgICAgUmVsZWFzZUNGVHlwZShjZlByb3BOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDJkNTZkNGEwOWQ3NjZkNzQ3ZWM3
NTUzNTlkMjEwNTU1MDFmYTEyOGUuLjI4YWZjYTVkNjZlMDRiMGMxYzZmZGMxODQzOWVlNDQ0M2Uz
ZjgzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNTcsNiArNTcs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBKU1ZhbHVlIGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0
ZSAqZXhlYyk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUg
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgdm9pZCBw
dXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogCiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQ
cmVmZXJyZWRQcmltaXRpdmVUeXBlIHByZWZlcnJlZFR5cGUgPSBOb1ByZWZlcmVuY2UpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlICpleGVjKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBmYmY1Yzg5M2E4NjQ1ODZkNmZlNTI5ZmU2N2IwYzY0ODQ4MjZiYmVhLi4zNDU2
OWQ4YWI2MzE1ZjZjOTQwNjdkOWNhM2I2NTkxOTExZThkYTM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzIgQEAKKzIwMTEtMTAtMDYgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjpwdXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgor
CisgICAgICAgIEFkZGVkIHN0YXRpYyB2ZXJzaW9uIG9mIGJvdGggdmVyc2lvbnMgb2YgcHV0IHRv
IGFsbCBjbGFzc2VzIHRoYXQgCisgICAgICAgIG92ZXJyaWRlIHRoZW0gYW5kIGNoYW5nZWQgdGhl
IHZpcnR1YWwgdmVyc2lvbnMgdG8gY2FsbCB0aGUgc3RhdGljIAorICAgICAgICB2ZXJzaW9ucy4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RPYmo6OnB1dCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
OgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6cHV0KToKKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6cHV0KToKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1l
X29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpwdXQp
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDExLTEwLTA1ICBHYXZp
biBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgZXhw
bGljaXQgSlNHbG9iYWxUaGlzIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDFjODc2MGYyZDUzZTY0Zjg3NTk2NjJm
YzAyNTA5OTE3NWZkYWRjOTIuLmE5YTM2MDI4OGU3MjZhOWI0Nzg2NmIwODQyYzY3OGFlODI5NGYx
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC03OTQsNyArNzk0LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBH
ZXR0ZXJzCiAgICAgaWYgKCRoYXNTZXR0ZXIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3Qm
KTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1
dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSk7XG4iKSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleFNldHRlciJ9Owor
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5k
ZXhTZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIHB1dERl
bGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn07CiAgICAgfQogCkBAIC0xMDUwLDYg
KzEwNTIsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgIiAgICB9XG4iKTsKICAgICBp
ZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZVB1
dEZ1bmN0aW9uIn0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFs
IHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOworICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCos
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIGJvb2wgcHV0RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
XG4iKTsKICAgICB9CiAKQEAgLTE0NzMsOSArMTQ3NiwxNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0
aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24ifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
InZvaWQgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAocHV0RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCkpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
InZvaWQgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KGNlbGwp
O1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0LT5w
dXREZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSlcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7Ci0gICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIEJhc2U6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBz
bG90KTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpwdXQodGhp
c09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIApAQCAtMTczNiwyNCArMTc0NSwz
MCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgaWYgKCEkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9KSB7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBz
bG90KVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkgewogICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIG9rO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHVuc2lnbmVkIGluZGV4ID0g
cHJvcGVydHlOYW1lLnRvVUludDMyKG9rKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAob2spIHtcbiIpOwotICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaW5kZXhTZXR0ZXIoZXhlYywgaW5kZXgsIHZhbHVl
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
dGhpc09iamVjdC0+aW5kZXhTZXR0ZXIoZXhlYywgaW5kZXgsIHZhbHVlKTtcbiIpOwogICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRGVsZWdhdGluZ1B1dEZ1bmN0aW9uIn0pIHsKLSAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHB1dERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHNsb3QpKVxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0LT5wdXREZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KSlcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuO1xuIik7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAgICAgaWYgKCRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGxvb2t1cFB1dDwkY2xhc3NOYW1lLCBCYXNlPihleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAiIC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0
aGlzLCBzbG90KTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBsb29rdXBQdXQ8JGNsYXNzTmFtZSwgQmFzZT4oZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgIiAuIGhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgc2xvdCk7XG4i
KTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBCYXNlOjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xv
dCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFz
ZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKICAgICAgICAgICAgIH0KQEAgLTE3NjEsOCArMTc3NiwxMyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn0pIHsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpXG4iKTsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7XG4i
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpbmRleFNldHRlcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTtcbiIp
OworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpwdXQoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgdGhpc09iamVjdC0+aW5kZXhTZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm47XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDg1ZGEzMDExY2Q1MWZiZjBmZmExODZmMjc2NmVh
YTg4NTZlMGQ2YTQuLmMwMjRhNDUxZDc5MDMyZmVhNThmNGJhOWIyODQ5ZmJlNTEwNjI2OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCkBAIC03NjMsOCArNzYzLDE0IEBAIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyCiAK
IHZvaWQgSlNUZXN0T2JqOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwotICAgIGxvb2t1cFB1
dDxKU1Rlc3RPYmosIEJhc2U+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsICZKU1Rlc3RPYmpU
YWJsZSwgdGhpcywgc2xvdCk7CisgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHNsb3QpOworfQorCit2b2lkIEpTVGVzdE9iajo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1Rlc3RPYmoqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAgIGxvb2t1cFB1dDxKU1Rlc3RPYmosIEJhc2U+
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsICZKU1Rlc3RPYmpUYWJsZSwgdGhpc09iamVjdCwg
c2xvdCk7CiB9CiAKIHZvaWQgc2V0SlNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggYjQ3OTc1M2Y0
NjJjNzAxYzI3ZmMyMmU3NzBhOWE2NTRmNmM4NzNkMS4uYzNkMWIyNGNiYjE3MWE2NGYyNjkyM2Y4
N2ZhZWI1NzFhZDVjOGQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3Qm
KTsKKyAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsK
IAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5oCmluZGV4IGMxYWRlYjNlMDhjM2QxYTRkYTMzYjIwMjI0NTE0ZmM0MzI2YzFiMWQuLjU0
M2YxNmY5ZTJjNGI5OTVhZjZmNDM5NTA4YTZhYTkwNjg0NGVhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMjYsNiArMTI2LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBDYWxsVHlwZSBn
ZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCBjZjdmMjJlOGE3ZDVhZTk3
OWQ0ZmQxZDk3OWIwOTZhYjcyYWE0OTI5Li4xMDI4MDUyMzcwNDg0NzliMzJhMmQ1YWMxNzZhOTU5
ODA3ZWIxM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
CkBAIC0yMjMsNiArMjIzLDEwIEBAIHZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXQoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlCiB7CiB9CiAKK3Zv
aWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCit7Cit9CisKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmpDRmFsbGJhY2tPYmplY3QoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGI2ODgyZWRm
ZTA3NTUxZTZiYzA0ZWFjZjIyZmRlMzdiYzdkMTEyZDkuLjBkZDRiNjg1YmRmNjI5NTZhZjRiMGZh
ZTM0YjFjN2Y4MjA4ZTM0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKQEAgLTEzMiw2ICsxMzIsMTIgQEAgYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVMKIAogdm9pZCBS
dW50aW1lQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHB1
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBSdW50
aW1lQXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3Qp
Cit7CisgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZUFy
cmF5Kj4oY2VsbCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoKSB7CiAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihl
eGVjLCAiUmFuZ2UgZXJyb3IiKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE0MCwyMSArMTQ2LDI3
IEBAIHZvaWQgUnVudGltZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUKICAgICBib29sIG9rOwogICAgIHVuc2lnbmVkIGlu
ZGV4ID0gcHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChvayk7CiAgICAgaWYgKG9rKSB7Ci0gICAg
ICAgIGdldENvbmNyZXRlQXJyYXkoKS0+c2V0VmFsdWVBdChleGVjLCBpbmRleCwgdmFsdWUpOwor
ICAgICAgICB0aGlzT2JqZWN0LT5nZXRDb25jcmV0ZUFycmF5KCktPnNldFZhbHVlQXQoZXhlYywg
aW5kZXgsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBKU09iamVj
dDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIEpTT2JqZWN0Ojpw
dXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZv
aWQgUnVudGltZUFycmF5OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNW
YWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoaW5kZXggPj0gZ2V0TGVuZ3RoKCkpIHsKKyAgICBwdXQo
dGhpcywgZXhlYywgaW5kZXgsIHZhbHVlKTsKK30KKwordm9pZCBSdW50aW1lQXJyYXk6OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFs
dWUpCit7CisgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGlt
ZUFycmF5Kj4oY2VsbCk7CisgICAgaWYgKGluZGV4ID49IHRoaXNPYmplY3QtPmdldExlbmd0aCgp
KSB7CiAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiUmFu
Z2UgZXJyb3IiKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgZ2V0Q29uY3Jl
dGVBcnJheSgpLT5zZXRWYWx1ZUF0KGV4ZWMsIGluZGV4LCB2YWx1ZSk7CisgICAgdGhpc09iamVj
dC0+Z2V0Q29uY3JldGVBcnJheSgpLT5zZXRWYWx1ZUF0KGV4ZWMsIGluZGV4LCB2YWx1ZSk7CiB9
CiAKIGJvb2wgUnVudGltZUFycmF5OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGEwODc3
YTA2MmRkNjk5YzE3NWRlMTZkZjNjYWZhYWRmMTBjYzhkYzIuLjI5NTU3NDNiZTBmN2ViMTE1NjEz
YWI0MzhmZWJkMWJjMWJlNGYyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
aApAQCAtNTQsNyArNTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlKTsKKyAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJv
cGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUpOwog
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApp
bmRleCBkZjExZmViNmNhOThlYWM5MjJhOGEwZjM2YzNiMDc5ZDNkYzVjZjVlLi4yYzZjOTc2OTkx
ZDM3YWI5MDhiYWFjZmEzZjkzMTJkY2E5NzQzN2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5jcHAKQEAgLTIxMiwxMiArMjEyLDE4IEBAIGJvb2wgUnVudGltZU9iamVj
dDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRp
ZmllciYKIAogdm9pZCBSdW50aW1lT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKLSAgICBpZiAoIW1faW5zdGFuY2UpIHsKKyAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgUnVudGltZU9iamVjdDo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBSdW50aW1l
T2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGNlbGwpOwor
ICAgIGlmICghdGhpc09iamVjdC0+bV9pbnN0YW5jZSkgewogICAgICAgICB0aHJvd0ludmFsaWRB
Y2Nlc3NFcnJvcihleGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBSZWZQ
dHI8SW5zdGFuY2U+IGluc3RhbmNlID0gbV9pbnN0YW5jZTsKKyAgICBSZWZQdHI8SW5zdGFuY2U+
IGluc3RhbmNlID0gdGhpc09iamVjdC0+bV9pbnN0YW5jZTsKICAgICBpbnN0YW5jZS0+YmVnaW4o
KTsKIAogICAgIC8vIFNldCB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5LgpAQCAtMjI1LDcgKzIz
MSw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlCiAgICAgaWYgKGFGaWVsZCkKICAgICAgICAg
YUZpZWxkLT5zZXRWYWx1ZVRvSW5zdGFuY2UoZXhlYywgaW5zdGFuY2UuZ2V0KCksIHZhbHVlKTsK
ICAgICBlbHNlIGlmICghaW5zdGFuY2UtPnNldFZhbHVlT2ZVbmRlZmluZWRGaWVsZChleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlKSkKLSAgICAgICAgaW5zdGFuY2UtPnB1dCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICAgICAgaW5zdGFuY2UtPnB1dCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIAogICAgIGluc3RhbmNlLT5l
bmQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggMWFjMjFh
ZDQ4ZjI4MzdjOTYwMDhhZTM1MDgxZmMwYzAzOTNhNjFhMy4uOWM3YWM0OWJiZTc1YTYwODVmYmFm
NTMxZTNlYjE4ZjI3MzA4MTVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2
b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAg
IHZpcnR1YWwgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0
aXZlVHlwZSkgY29uc3Q7CiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwo
Q2FsbERhdGEmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110189</attachid>
            <date>2011-10-07 12:03:47 -0700</date>
            <delta_ts>2011-10-07 17:05:18 -0700</delta_ts>
            <desc>Fix windows</desc>
            <filename>bug-69382-20111007120347.patch</filename>
            <type>text/plain</type>
            <size>72898</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY4MzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggZmViN2Q5N2M5ZTQwZjdkMzE1NDNlMDczMGIyMzE5MzAw
ZWQxZTA1Ny4uN2U3NWU3NTQ4MDc4YjIwZGQxNTJkMjY2YTc4NjZhYzI2NjljYTY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE4Miw2ICsx
ODIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIAogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUq
LCB1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGRiMzgzNmI2ZmE0ZTE2ZDYzNmQwNjIxYTIzZjFj
Mzk3NWZkMmYzYmIuLjRjNjJkNzYyNzY2ZjE1OWNkMTUwMjdhYmMyNDdkMzRkMzljZGFjYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCkBAIC0yMDMsMTIgKzIwMywxOSBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQog
dGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KIHZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICBwdXQodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+
Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0NhbGxiYWNrT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwpOwogICAgIEpTQ29udGV4
dFJlZiBjdHggPSB0b1JlZihleGVjKTsKLSAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYo
dGhpcyk7CisgICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXNPYmplY3QpOwogICAg
IFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gcHJvcGVydHlOYW1lUmVmOwogICAgIEpTVmFsdWVSZWYg
dmFsdWVSZWYgPSB0b1JlZihleGVjLCB2YWx1ZSk7CiAgICAgCi0gICAgZm9yIChKU0NsYXNzUmVm
IGpzQ2xhc3MgPSBjbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50
Q2xhc3MpIHsKKyAgICBmb3IgKEpTQ2xhc3NSZWYganNDbGFzcyA9IHRoaXNPYmplY3QtPmNsYXNz
UmVmKCk7IGpzQ2xhc3M7IGpzQ2xhc3MgPSBqc0NsYXNzLT5wYXJlbnRDbGFzcykgewogICAgICAg
ICBpZiAoSlNPYmplY3RTZXRQcm9wZXJ0eUNhbGxiYWNrIHNldFByb3BlcnR5ID0ganNDbGFzcy0+
c2V0UHJvcGVydHkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lUmVmKQogICAgICAg
ICAgICAgICAgIHByb3BlcnR5TmFtZVJlZiA9IE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUocHJvcGVy
dHlOYW1lLnVzdHJpbmcoKSk7CkBAIC0yNDksMTMgKzI1NiwxMyBAQCB2b2lkIEpTQ2FsbGJhY2tP
YmplY3Q8UGFyZW50Pjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYQogICAgICAgICAgICAgaWYgKFN0YXRpY0Z1bmN0aW9uRW50cnkqIGVudHJ5ID0gc3Rh
dGljRnVuY3Rpb25zLT5nZXQocHJvcGVydHlOYW1lLmltcGwoKSkpIHsKICAgICAgICAgICAgICAg
ICBpZiAoZW50cnktPmF0dHJpYnV0ZXMgJiBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5KQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+OjpwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlKTsgLy8gcHV0IGFzIG92ZXJyaWRlIHByb3BlcnR5CisgICAgICAgICAgICAgICAgdGhp
c09iamVjdC0+SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpwdXREaXJlY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsgLy8gcHV0IGFzIG92ZXJyaWRlIHByb3BlcnR5
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogICAgIAotICAgIHJldHVybiBQYXJlbnQ6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKKyAgICByZXR1cm4gUGFyZW50OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwppbmRleCAwYmNhMmEyNjlkZGRlODUxMzVmNjYxMzFkNjY2YzAyOTc4
MmVhOTE2Li4yZTM4MmMzNjQ4MWYwNTc5MmQ3OWUyMTA2YWUwMmExY2U2NGU1ZWVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw2OCBAQAogMjAxMS0xMC0wNiAgTWFyayBIYWhu
ZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBzdGF0aWMgdmVy
c2lvbiBvZiBKU0NlbGw6OnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjkzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBib3RoIHZlcnNpb25zIG9mIHB1dCB0
byBhbGwgY2xhc3NlcyB0aGF0IAorICAgICAgICBvdmVycmlkZSB0aGVtIGFuZCBjaGFuZ2VkIHRo
ZSB2aXJ0dWFsIHZlcnNpb25zIHRvIGNhbGwgdGhlIHN0YXRpYyAKKyAgICAgICAgdmVyc2lvbnMu
CisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6cHV0KToKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpwdXQpOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJn
dW1lbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpwdXQpOgorICAgICAgICAqIHJ1
bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgor
ICAgICAgICAoSlNDOjpKU0FjdGl2YXRpb246OnB1dCk6CisgICAgICAgICogcnVudGltZS9KU0Fj
dGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlND
OjpKU0FycmF5OjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAq
IHJ1bnRpbWUvSlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6cHV0
KToKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6CisgICAgICAgICogcnVudGltZS9K
U0NlbGwuY3BwOgorICAgICAgICAoSlNDOjpKU0NlbGw6OnB1dCk6CisgICAgICAgICogcnVudGlt
ZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNOb3RB
bk9iamVjdDo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dCk6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2NvcGVPYmplY3Q6OnB1
dCk6CisgICAgICAgICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5
cGU6OnB1dCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29u
c3RydWN0b3I6OnB1dCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJl
Z0V4cE1hdGNoZXNBcnJheTo6cHV0KToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6cHV0KToKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpwdXQpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5n
T2JqZWN0Lmg6CisKKzIwMTEtMTAtMDYgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKwogICAgICAgICBTbm93IExlb3BhcmQgYnVpbGQgZml4CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBidWlsZCBmaXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CmluZGV4IDY2ODRiMjJlZmEyNGUyZWExYjFkYWQ3OWNhY2I1NThkYmQ5YWNkNzEuLjFjYjFkZDBm
OTA5YjEyMzM5MWVhYTM0YmE5ZTQ2ODAxNDJmMTdiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMzMxLDYgKzMzMSw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0
MjNhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERhdGFFbW0KIF9fWk4zSlND
OEpTT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3Qz
cHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1
dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVqTlNf
N0pTVmFsdWVFCitfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3Rh
dGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQog
X19aTjNKU0M4SlNPYmplY3Q2c19pbmZvRQogX19aTjNKU0M4SlNTdHJpbmc2c19pbmZvRQogX19a
TjNKU0M4UHJvZmlsZXIxM3N0b3BQcm9maWxpbmdFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmlu
Z0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKaW5kZXggNjYwNjg1ZTcyYTExZWFiNzcwYjdjMzg2MzlkNTViNDgzZTAwYjE0Zi4uZDU1Y2Vi
MzcyMjY5ZDQxNTcyZjAwZGM3ZDkyMWU3MzQwODg4NzZkZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTI3NSw2ICsyNzUsNyBA
QCBFWFBPUlRTCiAgICAgP3B1dEBKU0NlbGxASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRl
bnRpZmllckAyQFZKU1ZhbHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKICAgICA/cHV0QEpT
Q2VsbEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBJVkpTVmFsdWVAMkBAWgogICAgID9wdXRASlNH
bG9iYWxPYmplY3RASlNDQEBVQUVYUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1Zh
bHVlQDJAQUFWUHV0UHJvcGVydHlTbG90QDJAQFoKKyAgICA/cHV0QEpTT2JqZWN0QEpTQ0BAU0FY
UEFWSlNDZWxsQDJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQFZKU1ZhbHVlQDJAQUFW
UHV0UHJvcGVydHlTbG90QDJAQFoKICAgICA/cHV0QEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNT
dGF0ZUAyQEFCVklkZW50aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBa
CiAgICAgP3B1dEBKU09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBJVkpTVmFsdWVAMkBA
WgogICAgID9wdXRAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFWFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50
aWZpZXJAMkBWSlNWYWx1ZUAyQEFBVlB1dFByb3BlcnR5U2xvdEAyQEBaCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4
IGQ3Yjg2NmQyNjgwMGFjODZjYzFlMzZiOTNmYTE0OGIwZDc2NTk4NDcuLmQ4YjFkNDc5ZGE0ODU2
ODEzNGI5ZTYyNjI5M2I2MDFhMmE5NTA0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC02Nyw3ICs2NywxMiBA
QCBib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcAogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgbV9hY3RpdmF0aW9uLT5wdXQo
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CisgICAgcHV0KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworfQorCit2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6
cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBz
dGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5wdXQo
ZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgRGVidWdnZXJBY3Rp
dmF0aW9uOjpwdXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
aAppbmRleCA5NzExMGIyZjg4OTNlMDllZjRlMzQ1ODUzYWMyZDdhYTA5MWQyMGQxLi4yZGU5ZWVm
YjY2ODZjZGY3ZWI3ZGMyN2U5ZWI0ZTlkZjMwZDg5NTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00NSw2ICs0NSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhB
dHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVy
dGllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAppbmRl
eCBmNTNiOWJkY2I2Yjg4MTI4YTYxM2NhNWRlNTMzYzg1NmZjZGFiNDNjLi45MTA2MTNhNWJkNTM3
N2Y3ZDk4MmU2NzRlYWUyN2VjODBiNTU1YjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTI1OSw0OSArMjU5LDYxIEBAIHZvaWQgQXJndW1lbnRz
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5CiAKIHZvaWQgQXJndW1lbnRzOjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChpIDwgZC0+bnVtQXJndW1lbnRzICYmICgh
ZC0+ZGVsZXRlZEFyZ3VtZW50cyB8fCAhZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkpIHsKLSAgICAg
ICAgaWYgKGkgPCBkLT5udW1QYXJhbWV0ZXJzKQotICAgICAgICAgICAgZC0+cmVnaXN0ZXJzW2Qt
PmZpcnN0UGFyYW1ldGVySW5kZXggKyBpXS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBkLT5hY3Rp
dmF0aW9uID8gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oZC0+YWN0aXZhdGlvbi5nZXQoKSkgOiBzdGF0
aWNfY2FzdDxKU0NlbGwqPih0aGlzKSwgdmFsdWUpOworICAgIHB1dCh0aGlzLCBleGVjLCBpLCB2
YWx1ZSk7Cit9CisKK3ZvaWQgQXJndW1lbnRzOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCit7CisgICAgQXJndW1lbnRzKiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7CisgICAgaWYgKGkgPCB0aGlz
T2JqZWN0LT5kLT5udW1Bcmd1bWVudHMgJiYgKCF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1l
bnRzIHx8ICF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzW2ldKSkgeworICAgICAgICBp
ZiAoaSA8IHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnMpCisgICAgICAgICAgICB0aGlzT2Jq
ZWN0LT5kLT5yZWdpc3RlcnNbdGhpc09iamVjdC0+ZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGld
LnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXNPYmplY3QtPmQtPmFjdGl2YXRpb24gPyBzdGF0
aWNfY2FzdDxKU0NlbGwqPih0aGlzT2JqZWN0LT5kLT5hY3RpdmF0aW9uLmdldCgpKSA6IGNlbGws
IHZhbHVlKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgZC0+ZXh0cmFBcmd1bWVudHNbaSAt
IGQtPm51bVBhcmFtZXRlcnNdLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIHZhbHVlKTsK
KyAgICAgICAgICAgIHRoaXNPYmplY3QtPmQtPmV4dHJhQXJndW1lbnRzW2kgLSB0aGlzT2JqZWN0
LT5kLT5udW1QYXJhbWV0ZXJzXS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzT2JqZWN0LCB2
YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xv
dDsKLSAgICBKU09iamVjdDo6cHV0KGV4ZWMsIElkZW50aWZpZXIoZXhlYywgVVN0cmluZzo6bnVt
YmVyKGkpKSwgdmFsdWUsIHNsb3QpOworICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhl
YywgSWRlbnRpZmllcihleGVjLCBVU3RyaW5nOjpudW1iZXIoaSkpLCB2YWx1ZSwgc2xvdCk7CiB9
CiAKIHZvaWQgQXJndW1lbnRzOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
KyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisgICAg
Cit2b2lkIEFyZ3VtZW50czo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgc2xvdCkKK3sKKyAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxBcmd1
bWVudHMqPihjZWxsKTsKICAgICBib29sIGlzQXJyYXlJbmRleDsKICAgICB1bnNpZ25lZCBpID0g
cHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5kZXgpOwotICAgIGlmIChpc0FycmF5
SW5kZXggJiYgaSA8IGQtPm51bUFyZ3VtZW50cyAmJiAoIWQtPmRlbGV0ZWRBcmd1bWVudHMgfHwg
IWQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgIGlmIChpIDwgZC0+bnVtUGFyYW1l
dGVycykKLSAgICAgICAgICAgIGQtPnJlZ2lzdGVyc1tkLT5maXJzdFBhcmFtZXRlckluZGV4ICsg
aV0uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZC0+YWN0aXZhdGlvbiA/IHN0YXRpY19jYXN0PEpT
Q2VsbCo+KGQtPmFjdGl2YXRpb24uZ2V0KCkpIDogc3RhdGljX2Nhc3Q8SlNDZWxsKj4odGhpcyks
IHZhbHVlKTsKKyAgICBpZiAoaXNBcnJheUluZGV4ICYmIGkgPCB0aGlzT2JqZWN0LT5kLT5udW1B
cmd1bWVudHMgJiYgKCF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzIHx8ICF0aGlzT2Jq
ZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzW2ldKSkgeworICAgICAgICBpZiAoaSA8IHRoaXNPYmpl
Y3QtPmQtPm51bVBhcmFtZXRlcnMpCisgICAgICAgICAgICB0aGlzT2JqZWN0LT5kLT5yZWdpc3Rl
cnNbdGhpc09iamVjdC0+ZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLnNldChleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXNPYmplY3QtPmQtPmFjdGl2YXRpb24gPyBzdGF0aWNfY2FzdDxKU0NlbGwq
Pih0aGlzT2JqZWN0LT5kLT5hY3RpdmF0aW9uLmdldCgpKSA6IHN0YXRpY19jYXN0PEpTQ2VsbCo+
KHRoaXNPYmplY3QpLCB2YWx1ZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGQtPmV4dHJh
QXJndW1lbnRzW2kgLSBkLT5udW1QYXJhbWV0ZXJzXS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCB2YWx1ZSk7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5kLT5leHRyYUFyZ3VtZW50c1tp
IC0gdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVyc10uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
dGhpc09iamVjdCwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoICYmICFkLT5vdmVycm9k
ZUxlbmd0aCkgewotICAgICAgICBkLT5vdmVycm9kZUxlbmd0aCA9IHRydWU7Ci0gICAgICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgdmFsdWUsIERvbnRFbnVt
KTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgg
JiYgIXRoaXNPYmplY3QtPmQtPm92ZXJyb2RlTGVuZ3RoKSB7CisgICAgICAgIHRoaXNPYmplY3Qt
PmQtPm92ZXJyb2RlTGVuZ3RoID0gdHJ1ZTsKKyAgICAgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgRG9udEVudW0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuY2FsbGVlICYmICFkLT5vdmVycm9kZUNhbGxlZSkgewotICAgICAgICBpZiAo
IWQtPmlzU3RyaWN0TW9kZSkgewotICAgICAgICAgICAgZC0+b3ZlcnJvZGVDYWxsZWUgPSB0cnVl
OwotICAgICAgICAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgRG9udEVudW0pOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmNhbGxlZSAmJiAhdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVDYWxsZWUpIHsKKyAg
ICAgICAgaWYgKCF0aGlzT2JqZWN0LT5kLT5pc1N0cmljdE1vZGUpIHsKKyAgICAgICAgICAgIHRo
aXNPYmplY3QtPmQtPm92ZXJyb2RlQ2FsbGVlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPnB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgdmFsdWUsIERv
bnRFbnVtKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjcmVhdGVT
dHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3NhcnkoZXhlYyk7CisgICAgICAgIHRoaXNPYmplY3QtPmNy
ZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShleGVjKTsKICAgICB9CiAKLSAgICBpZiAo
cHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxsZXIgJiYgZC0+aXNTdHJp
Y3RNb2RlKQotICAgICAgICBjcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7
CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyICYm
IHRoaXNPYmplY3QtPmQtPmlzU3RyaWN0TW9kZSkKKyAgICAgICAgdGhpc09iamVjdC0+Y3JlYXRl
U3RyaWN0TW9kZUNhbGxlcklmTmVjZXNzYXJ5KGV4ZWMpOwogCi0gICAgSlNPYmplY3Q6OnB1dChl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBKU09iamVjdDo6cHV0KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBib29sIEFyZ3Vt
ZW50czo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKSAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggZmU5OTBiNDQ3M2U0YTk4
MDEyOGI5M2NjYmQ5NTVmOTI2MDZiZTc3Ni4uZjNkZjNmYjc5YjhiYWE4MWY2MjE4MDU4NjQ4MTUy
OTIzNzljMmNmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgK
QEAgLTEyOSw3ICsxMjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1v
ZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKICAgICAgICAgdmly
dHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2b2lkIGNyZWF0ZVN0cmljdE1v
ZGVDYWxsZXJJZk5lY2Vzc2FyeShFeGVjU3RhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCmluZGV4IDgyMjY5YTU1NWFhMjVmNzJjYzE1YzI3
NTdhNzA2MDdkZmM4MTg3YWIuLmI1YWRkNmMyM2NhYTY2ODFjZTY2YTc5NDMzNDA0ZWJhZDA1MmY1
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNw
cApAQCAtMTY1LDE2ICsxNjUsMjIgQEAgYm9vbCBKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnQKIAogdm9pZCBK
U0FjdGl2YXRpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEFT
U0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0gSGVhcDo6aGVh
cCh0aGlzKSk7CisgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
OworfQorCit2b2lkIEpTQWN0aXZhdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0FjdGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxKU0FjdGl2YXRpb24qPihjZWxsKTsKKyAgICBBU1NFUlQoIUhlYXA6OmhlYXAodmFs
dWUpIHx8IEhlYXA6OmhlYXAodmFsdWUpID09IEhlYXA6OmhlYXAodGhpc09iamVjdCkpOwogCi0g
ICAgaWYgKHN5bWJvbFRhYmxlUHV0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCB2
YWx1ZSkpCisgICAgaWYgKHRoaXNPYmplY3QtPnN5bWJvbFRhYmxlUHV0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFdl
IGRvbid0IGNhbGwgdGhyb3VnaCB0byBKU09iamVjdCBiZWNhdXNlIF9fcHJvdG9fXyBhbmQgZ2V0
dGVyL3NldHRlciAKICAgICAvLyBwcm9wZXJ0aWVzIGFyZSBub24tc3RhbmRhcmQgZXh0ZW5zaW9u
cyB0aGF0IG90aGVyIGltcGxlbWVudGF0aW9ucyBkbyBub3QKICAgICAvLyBleHBvc2UgaW4gdGhl
IGFjdGl2YXRpb24gb2JqZWN0LgotICAgIEFTU0VSVCghaGFzR2V0dGVyU2V0dGVyUHJvcGVydGll
cygpKTsKLSAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCAwLCB0cnVlLCBzbG90KTsKKyAgICBBU1NFUlQoIXRoaXNPYmplY3QtPmhhc0dldHRlclNl
dHRlclByb3BlcnRpZXMoKSk7CisgICAgdGhpc09iamVjdC0+cHV0RGlyZWN0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgdHJ1ZSwgc2xvdCk7CiB9CiAKIC8vIEZJ
WE1FOiBNYWtlIHRoaXMgZnVuY3Rpb24gaG9ub3IgUmVhZE9ubHkgKGNvbnN0KSBhbmQgRG9udEVu
dW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKaW5kZXgg
M2NjZTI1NTgzYzIxN2Q0NzllOTc3MmM2N2IzOWFmZWZjOGY3NmFiZS4uOGZiYmYwZDc0ZGI3MjQx
MzZiMWY1OGRlMDFmMTY1MzM0YjliZTg1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTY1LDYgKzY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVs
ZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggOWNkMDc5NWYw
NmVhZjUwYWNlOTQxYTZhMjIxMzNkZGIxNGMzODgxOC4uYWM2MTM4YmU5NDVhNGEzYTc1NTgxZGVm
MGRkMTI4NDUwNjkxMTEwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAKQEAgLTMyMiwxMyArMzIyLDE5IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yKTsKIH0KIAotLy8gRUNNQSAxNS40LjUuMQogdm9pZCBKU0FycmF5Ojpw
dXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICBwdXQodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKKy8vIEVDTUEgMTUuNC41LjEKK3ZvaWQg
SlNBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
K3sKKyAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBcnJheSo+KGNlbGwp
OwogICAgIGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUu
dG9BcnJheUluZGV4KGlzQXJyYXlJbmRleCk7CiAgICAgaWYgKGlzQXJyYXlJbmRleCkgewotICAg
ICAgICBwdXQoZXhlYywgaSwgdmFsdWUpOworICAgICAgICBwdXQodGhpc09iamVjdCwgZXhlYywg
aSwgdmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMzgsMTggKzM0NCwyNCBA
QCB2b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZQogICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBj
cmVhdGVSYW5nZUVycm9yKGV4ZWMsICJJbnZhbGlkIGFycmF5IGxlbmd0aCIpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBzZXRMZW5ndGgobmV3TGVuZ3RoKTsKKyAg
ICAgICAgdGhpc09iamVjdC0+c2V0TGVuZ3RoKG5ld0xlbmd0aCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBKU09iamVjdDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpOworICAgIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgSlNBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgaSwgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBjaGVja0NvbnNpc3RlbmN5KCk7CisgICAg
cHV0KHRoaXMsIGV4ZWMsIGksIHZhbHVlKTsKK30KIAotICAgIEFycmF5U3RvcmFnZSogc3RvcmFn
ZSA9IG1fc3RvcmFnZTsKK3ZvaWQgSlNBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTQXJyYXkqIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+Y2hl
Y2tDb25zaXN0ZW5jeSgpOworCisgICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdlID0gdGhpc09iamVj
dC0+bV9zdG9yYWdlOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gc3RvcmFnZS0+bV9sZW5ndGg7
CiAgICAgaWYgKGkgPj0gbGVuZ3RoICYmIGkgPD0gTUFYX0FSUkFZX0lOREVYKSB7CkBAIC0zNTcs
MjAgKzM2OSwyMCBAQCB2b2lkIEpTQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
IGksIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHN0b3JhZ2UtPm1fbGVuZ3RoID0gbGVuZ3RoOwog
ICAgIH0KIAotICAgIGlmIChpIDwgbV92ZWN0b3JMZW5ndGgpIHsKKyAgICBpZiAoaSA8IHRoaXNP
YmplY3QtPm1fdmVjdG9yTGVuZ3RoKSB7CiAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiYg
dmFsdWVTbG90ID0gc3RvcmFnZS0+bV92ZWN0b3JbaV07CiAgICAgICAgIGlmICh2YWx1ZVNsb3Qp
IHsKLSAgICAgICAgICAgIHZhbHVlU2xvdC5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCB2
YWx1ZSk7Ci0gICAgICAgICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CisgICAgICAgICAgICB2YWx1
ZVNsb3Quc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpc09iamVjdCwgdmFsdWUpOworICAgICAg
ICAgICAgdGhpc09iamVjdC0+Y2hlY2tDb25zaXN0ZW5jeSgpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9Ci0gICAgICAgIHZhbHVlU2xvdC5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCB2YWx1ZSk7CisgICAgICAgIHZhbHVlU2xvdC5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgICsrc3RvcmFnZS0+bV9udW1WYWx1ZXNJblZlY3Rv
cjsKLSAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOworICAgICAgICB0aGlzT2JqZWN0LT5jaGVj
a0NvbnNpc3RlbmN5KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwdXRTbG93Q2Fz
ZShleGVjLCBpLCB2YWx1ZSk7CisgICAgdGhpc09iamVjdC0+cHV0U2xvd0Nhc2UoZXhlYywgaSwg
dmFsdWUpOwogfQogCiBORVZFUl9JTkxJTkUgdm9pZCBKU0FycmF5OjpwdXRTbG93Q2FzZShFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggZTU1MzJhYjNiYjU5MTliMzFlZDA0ZDU1ZWZlZjZj
MjNlMmQ2YzEyZi4uNDUyMzUzM2ExMDcwMjc4NjRkNzcxM2QyM2M3ZWRmNDY4NmVjNjUxMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtOTgsNiArOTgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOyAvLyBGSVhN
RTogTWFrZSBwcm90ZWN0ZWQgYW5kIGFkZCBzZXRJdGVtLgorICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsK
IAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
ICAgICAgICAKQEAgLTE2OSw2ICsxNzAsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9w
ZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVE
b250RW51bVByb3BlcnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuY3BwCmluZGV4IDI3NTk3YmExN2Q4N2FmMmY2Y2MwN2MzMWM4OWVlYzg4ZmM0YjQ3
MDQuLmU3MzliNDM2MTlhZjJmMzYzMGFkMjMyODY5ZDdhOTM0ZTIwNWM4YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTg3LDE4ICs4Nywy
OSBAQCBib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFBybwogCiB2b2lkIEpTQnl0ZUFycmF5OjpwdXQoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgSlNCeXRlQXJyYXk6OnB1dChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNCeXRlQXJyYXkq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpOwogICAgIGJvb2wg
b2s7CiAgICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9VSW50MzIob2spOwogICAg
IGlmIChvaykgewotICAgICAgICBzZXRJbmRleChleGVjLCBpbmRleCwgdmFsdWUpOworICAgICAg
ICB0aGlzT2JqZWN0LT5zZXRJbmRleChleGVjLCBpbmRleCwgdmFsdWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIEpTT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
c2xvdCk7CisgICAgSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KTsKIH0KIAogdm9pZCBKU0J5dGVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIHNldEluZGV4
KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOworICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlKTsKK30KKwordm9pZCBKU0J5dGVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpCit7
CisgICAgc3RhdGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKS0+c2V0SW5kZXgoZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuaAppbmRleCAyNDI0OGMyOGY4YjRlNWY2NGEzM2ZhYTk5Y2FmNGI4MTRkNWQ1Nzll
Li42YTYyMDRlYmJkNGNiNGY4ZTYwZDQ0N2YzZmQ5ZjllOGFjNjFiNzJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTkyLDcgKzkyLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlND
OjpKU1ZhbHVlKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsLmNwcAppbmRleCA3OWEwMTQ0NzRlZDAwMTQ3NTAxOWIwYTk4MDg3MjU2
NzgxYjczYjYyLi4xOGY3YzAxZmM4NDA1ZGYzNWY3YTQxYTAwN2E4MmVkYjU5ODYzMWFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTk1LDEyICs5NSwyMiBA
QCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgaWRlbnRpZmllciwgUHJvcGVydHlTbAogCiB2b2lkIEpTQ2VsbDo6cHV0KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90JiBzbG90KQogewotICAgIHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSktPnB1dChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CisgICAgcHV0
KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBKU0NlbGw6
OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRl
bnRpZmllciwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIGNl
bGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1dChleGVj
LCBpZGVudGlmaWVyLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgSlNDZWxsOjpwdXQoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIHRv
T2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnB1dChleGVjLCBpZGVu
dGlmaWVyLCB2YWx1ZSk7CisgICAgcHV0KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlKTsK
K30KKwordm9pZCBKU0NlbGw6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgaWRlbnRpZmllciwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBjZWxsLT50b09iamVjdChl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5wdXQoZXhlYywgaWRlbnRpZmllciwg
dmFsdWUpOwogfQogCiBib29sIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaAppbmRleCBjY2MxZTk5MGU4YjhiZWY0YzU5Yjg4MWJhNWJlYmYyOTZmYzQ4YmVm
Li43MzdkN2EzOWM5M2Y5ODg1YjhlZDRlNjA2YmM1ZDUzYmZiZmNmNGVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtOTEsNyArOTEsMTAgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3Q7CiAgICAgICAg
IGNvbnN0IE1ldGhvZFRhYmxlKiBtZXRob2RUYWJsZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChK
U0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOworICAg
ICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxl
dGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IGZiZWRkZWQ4MWMy
OTI4YWI1ZTBmMjU0ZmQxM2UwMTc1NDcwMzkxM2MuLmRiYWUzNTcwNTljMTNiZWEzZDA5NTNjMzJj
ODhiMmE2MThlMWVjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwCkBAIC0zMDEsMTcgKzMwMSwyMyBAQCB2b2lkIEpTRnVuY3Rpb246OmdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydAog
CiB2b2lkIEpTRnVuY3Rpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIGlmIChpc0hvc3RGdW5jdGlvbigpKSB7Ci0gICAgICAgIEJhc2U6OnB1dChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgSlNGdW5jdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0Z1bmN0aW9uKiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwpOworICAgIGlmICh0aGlzT2JqZWN0
LT5pc0hvc3RGdW5jdGlvbigpKSB7CisgICAgICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpIHsK
ICAgICAgICAgLy8gTWFrZSBzdXJlIHByb3RvdHlwZSBoYXMgYmVlbiByZWlmaWVkLCBzdWNoIHRo
YXQgaXQgY2FuIG9ubHkgYmUgb3ZlcndyaXR0ZW4KICAgICAgICAgLy8gZm9sbG93aW5nIHRoZSBy
dWxlcyBzZXQgb3V0IGluIEVDTUEtMjYyIDguMTIuOS4KICAgICAgICAgUHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgICAgIGdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworICAgICAgICB0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKICAgICB9Ci0gICAgaWYgKGpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUo
KSkgeworICAgIGlmICh0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkp
IHsKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJn
dW1lbnRzKSB7CiAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlQXJn
dW1lbnRzQWNjZXNzRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzIzLDcgKzMyOSw3
IEBAIHZvaWQgSlNGdW5jdGlvbjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhCiAgICAgfQogICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cyB8fCBwcm9wZXJ0eU5hbWUgPT0gZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OnB1
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBCYXNlOjpwdXQodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNGdW5j
dGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgK
aW5kZXggOTFjM2NjZmQ5NTI0YzJjOWNkMzUwODUzYjYwNjUyYmIyZTEwZmFhYi4uNjlmZTBlNzQ0
ODFlZmZhNzgwMTE2ZmYxYTQ3MmQyZDE1MjBmNGUxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTQzLDYgKzE0Myw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBib29sIGlzSG9zdEZ1bmN0aW9uTm9uSW5saW5lKCkgY29uc3Q7CiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRl
UHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKIAog
ICAgICAgICBzdGF0aWMgSlNWYWx1ZSBhcmd1bWVudHNHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1
ZSwgY29uc3QgSWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IGMxNjkxYzNjNDRjYTg2MGNiMThhZjYxODBlOTdj
YjRkNDI5ZTg3ZjQuLmI3ODQ1MmFmMWQ5Mzk4ZGRkNTdhMmQzNWEwMmMxMDc5YzA4NWUyM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAK
QEAgLTEzNiwxMSArMTM2LDE3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoSlNPYmplY3Qq
IHRoaXNWYWx1ZSkKIAogdm9pZCBKU0dsb2JhbE9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVlKSB8fCBIZWFwOjpo
ZWFwKHZhbHVlKSA9PSBIZWFwOjpoZWFwKHRoaXMpKTsKKyAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmplY3Q6OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNHbG9i
YWxPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwp
OworICAgIEFTU0VSVCghSGVhcDo6aGVhcCh2YWx1ZSkgfHwgSGVhcDo6aGVhcCh2YWx1ZSkgPT0g
SGVhcDo6aGVhcCh0aGlzT2JqZWN0KSk7CiAKLSAgICBpZiAoc3ltYm9sVGFibGVQdXQoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKSkKKyAgICBpZiAodGhpc09iamVjdC0+
c3ltYm9sVGFibGVQdXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIEpTVmFyaWFibGVPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBKU1ZhcmlhYmxlT2JqZWN0OjpwdXQodGhpc09iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgSlNHbG9iYWxP
YmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMTUx
OWMzNjcxMzc1ODhkMTVkZGNiZTAyY2I3NTg4ZjM5NzE3ZGVkNC4uNGY3MzFjNWMxNGI4YjdkN2Jk
NmQ0NWUwYzQ2MmUwZjQyNjY2NmU5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xODMsNiArMTgzLDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgaGFzT3duUHJvcGVydHlGb3JXcml0ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0
ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCog
Z2V0dGVyRnVuYywgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCmluZGV4IDBkNTg5YmYyZmEyM2Y3N2JlNDg1
MGY3ZThkOGZhMDY4YzdhOGUwZmIuLmIyY2Q2MDZkYzFkY2I5OTkzNDBkN2U1YWI1MDE2MGQ5YTdi
YjYxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuY3BwCkBAIC03NiwxMiArNzYsMjIgQEAgYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQordm9pZCBK
U05vdEFuT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcHV0
KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBKU05vdEFu
T2JqZWN0OjpwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiAs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBl
eGVjLT5oYWRFeGNlcHRpb24oKSk7CiB9CiAKLXZvaWQgSlNOb3RBbk9iamVjdDo6cHV0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQsIEpTVmFsdWUpCit2b2lkIEpTTm90QW5PYmplY3Q6OnB1dChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIEpTVmFsdWUgdmFsdWUpCit7CisgICAgcHV0KHRo
aXMsIGV4ZWMsIGksIHZhbHVlKTsKK30KKwordm9pZCBKU05vdEFuT2JqZWN0OjpwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCwgSlNWYWx1ZSkKIHsKICAgICBBU1NFUlRfVU5V
U0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBhZGFmZWJlNDliYTAwY2VjOTdhZDI2
OWQ5ZGM2NjM1NTc2YmYzYTJhLi4wM2I5MzNjYWFlZjMyYjIwYzliZGNhMGJkOGZmOWVjODhlNDU4
OTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5o
CkBAIC03NSw3ICs3NSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
KwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSk7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcAppbmRleCA0YmE2ZjhhNmVhMGYwZmUwYTQ3MDQ3ZmJiZWQ0M2E5MGNkMjQ4Njg3
Li4wOWM4OWQyNzZkOTU1ZWFhYzkyZjZkOTZhZDk4MDRiMDk4MjM1ZDcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xMDMsMTEgKzEwMywxNyBAQCBz
dGF0aWMgdm9pZCB0aHJvd1NldHRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYykKICAgICB0aHJvd0Vy
cm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAic2V0dGluZyBhIHByb3BlcnR5IHRoYXQg
aGFzIG9ubHkgYSBnZXR0ZXIiKSk7CiB9CiAKLS8vIEVDTUEgOC42LjIuMgogdm9pZCBKU09iamVj
dDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcHV0KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworfQorCisvLyBFQ01BIDguNi4yLjIKK3Zv
aWQgSlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCit7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+
KGNlbGwpOwogICAgIEFTU0VSVCh2YWx1ZSk7Ci0gICAgQVNTRVJUKCFIZWFwOjpoZWFwKHZhbHVl
KSB8fCBIZWFwOjpoZWFwKHZhbHVlKSA9PSBIZWFwOjpoZWFwKHRoaXMpKTsKKyAgICBBU1NFUlQo
IUhlYXA6OmhlYXAodmFsdWUpIHx8IEhlYXA6OmhlYXAodmFsdWUpID09IEhlYXA6OmhlYXAodGhp
c09iamVjdCkpOwogICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERh
dGEoKTsKIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnVu
ZGVyc2NvcmVQcm90bykgewpAQCAtMTE1LDIzICsxMjEsMjMgQEAgdm9pZCBKU09iamVjdDo6cHV0
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHUKICAgICAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpICYmICF2YWx1ZS5pc051bGwoKSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAoIWlzRXh0ZW5zaWJsZSgpKSB7Cisg
ICAgICAgIGlmICghdGhpc09iamVjdC0+aXNFeHRlbnNpYmxlKCkpIHsKICAgICAgICAgICAgIGlm
IChzbG90LmlzU3RyaWN0TW9kZSgpKQogICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGV4
ZWMsIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICBpZiAoIXNldFByb3RvdHlw
ZVdpdGhDeWNsZUNoZWNrKGdsb2JhbERhdGEsIHZhbHVlKSkKKyAgICAgICAgaWYgKCF0aGlzT2Jq
ZWN0LT5zZXRQcm90b3R5cGVXaXRoQ3ljbGVDaGVjayhnbG9iYWxEYXRhLCB2YWx1ZSkpCiAgICAg
ICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsICJjeWNsaWMgX19wcm90
b19fIHZhbHVlIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gQ2hlY2sgaWYg
dGhlcmUgYXJlIGFueSBzZXR0ZXJzIG9yIGdldHRlcnMgaW4gdGhlIHByb3RvdHlwZSBjaGFpbgog
ICAgIEpTVmFsdWUgcHJvdG90eXBlOwotICAgIGZvciAoSlNPYmplY3QqIG9iaiA9IHRoaXM7ICFv
YmotPnN0cnVjdHVyZSgpLT5oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCk7IG9iaiA9IGFzT2Jq
ZWN0KHByb3RvdHlwZSkpIHsKKyAgICBmb3IgKEpTT2JqZWN0KiBvYmogPSB0aGlzT2JqZWN0OyAh
b2JqLT5zdHJ1Y3R1cmUoKS0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpOyBvYmogPSBhc09i
amVjdChwcm90b3R5cGUpKSB7CiAgICAgICAgIHByb3RvdHlwZSA9IG9iai0+cHJvdG90eXBlKCk7
CiAgICAgICAgIGlmIChwcm90b3R5cGUuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIGlmICghcHV0
RGlyZWN0SW50ZXJuYWwoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgdHJ1ZSwg
c2xvdCwgZ2V0SlNGdW5jdGlvbih2YWx1ZSkpICYmIHNsb3QuaXNTdHJpY3RNb2RlKCkpCisgICAg
ICAgICAgICBpZiAoIXRoaXNPYmplY3QtPnB1dERpcmVjdEludGVybmFsKGdsb2JhbERhdGEsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIDAsIHRydWUsIHNsb3QsIGdldEpTRnVuY3Rpb24odmFsdWUpKSAm
JiBzbG90LmlzU3RyaWN0TW9kZSgpKQogICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGV4
ZWMsIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTEzOSwxMyArMTQ1LDEzIEBAIHZvaWQgSlNPYmplY3Q6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1CiAgICAgCiAgICAgdW5zaWduZWQgYXR0cmlidXRlczsKICAgICBKU0NlbGwqIHNwZWNp
ZmljVmFsdWU7Ci0gICAgaWYgKChzdHJ1Y3R1cmUoKS0+Z2V0KGdsb2JhbERhdGEsIHByb3BlcnR5
TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSkgIT0gV1RGOjpub3RGb3VuZCkgJiYgYXR0
cmlidXRlcyAmIFJlYWRPbmx5KSB7CisgICAgaWYgKCh0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+
Z2V0KGdsb2JhbERhdGEsIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywgc3BlY2lmaWNWYWx1ZSkg
IT0gV1RGOjpub3RGb3VuZCkgJiYgYXR0cmlidXRlcyAmIFJlYWRPbmx5KSB7CiAgICAgICAgIGlm
IChzbG90LmlzU3RyaWN0TW9kZSgpKQogICAgICAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVh
dGVUeXBlRXJyb3IoZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmb3IgKEpTT2JqZWN0KiBvYmogPSB0aGlz
OyA7IG9iaiA9IGFzT2JqZWN0KHByb3RvdHlwZSkpIHsKKyAgICBmb3IgKEpTT2JqZWN0KiBvYmog
PSB0aGlzT2JqZWN0OyA7IG9iaiA9IGFzT2JqZWN0KHByb3RvdHlwZSkpIHsKICAgICAgICAgaWYg
KEpTVmFsdWUgZ3MgPSBvYmotPmdldERpcmVjdChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUpKSB7
CiAgICAgICAgICAgICBpZiAoZ3MuaXNHZXR0ZXJTZXR0ZXIoKSkgewogICAgICAgICAgICAgICAg
IEpTT2JqZWN0KiBzZXR0ZXJGdW5jID0gYXNHZXR0ZXJTZXR0ZXIoZ3MpLT5zZXR0ZXIoKTsgICAg
ICAgIApAQCAtMTYwLDcgKzE2Niw3IEBAIHZvaWQgSlNPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1CiAgICAgICAg
ICAgICAgICAgYXJncy5hcHBlbmQodmFsdWUpOwogCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhp
cyBpcyBXZWJDb3JlJ3MgZ2xvYmFsIG9iamVjdCB0aGVuIHdlIG5lZWQgdG8gc3Vic3RpdHV0ZSB0
aGUgc2hlbGwuCi0gICAgICAgICAgICAgICAgY2FsbChleGVjLCBzZXR0ZXJGdW5jLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIHRoaXMtPnRvVGhpc09iamVjdChleGVjKSwgYXJncyk7CisgICAgICAgICAg
ICAgICAgY2FsbChleGVjLCBzZXR0ZXJGdW5jLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNPYmpl
Y3QtPnRvVGhpc09iamVjdChleGVjKSwgYXJncyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogCkBAIC0xNzQsMTUgKzE4MCwyMCBAQCB2b2lkIEpTT2JqZWN0OjpwdXQo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIAotICAgIGlmICghcHV0RGlyZWN0
SW50ZXJuYWwoZ2xvYmFsRGF0YSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgMCwgdHJ1ZSwgc2xvdCwg
Z2V0SlNGdW5jdGlvbih2YWx1ZSkpICYmIHNsb3QuaXNTdHJpY3RNb2RlKCkpCisgICAgaWYgKCF0
aGlzT2JqZWN0LT5wdXREaXJlY3RJbnRlcm5hbChnbG9iYWxEYXRhLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCAwLCB0cnVlLCBzbG90LCBnZXRKU0Z1bmN0aW9uKHZhbHVlKSkgJiYgc2xvdC5pc1N0cmlj
dE1vZGUoKSkKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgU3RyaWN0TW9kZVJlYWRvbmx5
UHJvcGVydHlXcml0ZUVycm9yKTsKICAgICByZXR1cm47CiB9CiAKIHZvaWQgSlNPYmplY3Q6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkK
IHsKKyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7Cit9CisKK3ZvaWQg
SlNPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlKQorewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90Owot
ICAgIHB1dChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHZhbHVl
LCBzbG90KTsKKyAgICBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpLT5wdXQoZXhlYywgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZv
aWQgSlNPYmplY3Q6OnB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzLCBib29sIGNoZWNrUmVhZE9ubHksIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDMwOTYxZDZhZmI2MjIx
MjQ0M2UyNGYxZDIwNDY1ZGM2NWFjYTliN2YuLmYwNDA4ZDFlYWYyMzMyMTliZWI0OWUwZjViNzJi
YzA1N2YxY2YwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApA
QCAtMTA2LDcgKzEwNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSk7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMs
IGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTR2xvYmFsRGF0YSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuY3BwCmluZGV4IDU2MTVjMTE2NzgzZTY5ODg3NDdmNzdmMjExZDgwMjJmNmExZTkwMTUuLjM1
M2U4YzU3ZWZkZDE1ZDYzOGY3YjU5YThkMzZmMDlhNTI0OThlNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCkBAIC01
MSw2ICs1MSwxMiBAQCBKU09iamVjdCogSlNTdGF0aWNTY29wZU9iamVjdDo6dG9UaGlzT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIAogdm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0OjpwdXQo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6
cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBK
U1N0YXRpY1Njb3BlT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTdGF0aWNTY29w
ZU9iamVjdCo+KGNlbGwpOwogICAgIGlmIChzbG90LmlzU3RyaWN0TW9kZSgpKSB7CiAgICAgICAg
IC8vIERvdWJsZSBsb29rdXAgaW4gc3RyaWN0IG1vZGUsIGJ1dCB0aGlzIG9ubHkgb2NjdXJzIHdo
ZW4KICAgICAgICAgLy8gYSkgaW5kaXJlY3RseSB3cml0aW5nIHRvIGFuIGV4Y2VwdGlvbiBzbG90
CkBAIC02MCwxMyArNjYsMTMgQEAgdm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0OjpwdXQoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEoKICAgICAgICAgLy8g
YSBwb2ludGVyIGNvbXBhcmUuCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwogICAgICAgICBi
b29sIGlzV3JpdGFibGUgPSB0cnVlOwotICAgICAgICBzeW1ib2xUYWJsZUdldChwcm9wZXJ0eU5h
bWUsIHNsb3QsIGlzV3JpdGFibGUpOworICAgICAgICB0aGlzT2JqZWN0LT5zeW1ib2xUYWJsZUdl
dChwcm9wZXJ0eU5hbWUsIHNsb3QsIGlzV3JpdGFibGUpOwogICAgICAgICBpZiAoIWlzV3JpdGFi
bGUpIHsKICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMs
IFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcikpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIGlmIChzeW1ib2xUYWJsZVB1dChleGVjLT5nbG9i
YWxEYXRhKCksIHByb3BlcnR5TmFtZSwgdmFsdWUpKQorICAgIGlmICh0aGlzT2JqZWN0LT5zeW1i
b2xUYWJsZVB1dChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm47CiAgICAgCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKaW5kZXgg
MGY5M2NlN2Y4NGFlODgwMzZkZDdhOTgyNDJhM2I4YWVkZWZkNGVjYy4uM2EzZmM2ZTJhZDIzYzE1
MzQyNGMzNjg1MjIwYTMzYWFlMzIyYjFiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtNDYsNiArNDYsOCBAQCBuYW1l
c3BhY2UgSlNDewogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0
YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKwogICAg
ICAgICB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCBmZWRhMjc1NDAwNDU5YzFkMzU1
ODU0ZWFmYzYwMjEzOTk4MzA1MTBjLi4yNGE2NjJiMTVkNjRiOThjMDM1MDAyNWNiY2ZiNTZiZDc1
MzA2MjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFBy
b3RvdHlwZS5jcHAKQEAgLTc3LDEyICs3NywxOCBAQCB2b2lkIE9iamVjdFByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCopCiAK
IHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKLSAgICBKU05vbkZpbmFsT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
c2xvdCk7CisgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwor
fQorCit2b2lkIE9iamVjdFByb3RvdHlwZTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBPYmplY3RQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxPYmplY3RQcm90b3R5cGUqPihjZWxsKTsKKyAgICBKU05vbkZpbmFsT2JqZWN0
OjpwdXQoY2VsbCwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAKLSAgICBpZiAo
bV9oYXNOb1Byb3BlcnRpZXNXaXRoVUludDMyTmFtZXMpIHsKKyAgICBpZiAodGhpc09iamVjdC0+
bV9oYXNOb1Byb3BlcnRpZXNXaXRoVUludDMyTmFtZXMpIHsKICAgICAgICAgYm9vbCBpc1VJbnQz
MjsKICAgICAgICAgcHJvcGVydHlOYW1lLnRvVUludDMyKGlzVUludDMyKTsKLSAgICAgICAgbV9o
YXNOb1Byb3BlcnRpZXNXaXRoVUludDMyTmFtZXMgPSAhaXNVSW50MzI7CisgICAgICAgIHRoaXNP
YmplY3QtPm1faGFzTm9Qcm9wZXJ0aWVzV2l0aFVJbnQzMk5hbWVzID0gIWlzVUludDMyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5
cGUuaAppbmRleCA0YzEyZGZiNDY3OTJkYzFiOGUxZWUxMzIwZThkNDI0YmE2YjlmYzFlLi5kOGRl
YTRjZjQ3MTlkNWQ0YzM2ZDRhNTMwNGU4YmIzZDczYTQwMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTEsNiArNTEsOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICBPYmplY3RQcm90b3R5cGUoRXhl
Y1N0YXRlKiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAg
ICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IGQwZWE5YTEwZGRlMjJjZWRkZDdj
ODJhMWNmYmU2MGQ3NWRjNjczMDguLjdmNWI3ZWE2NDI5NTQ4YzgyNzg3Y2E5ZGQwNjE4OTYxNjBh
YzZjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBD
b25zdHJ1Y3Rvci5jcHAKQEAgLTI4OSw3ICsyODksMTIgQEAgSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0
IEkKIAogdm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7Ci0gICAgbG9va3VwUHV0PFJlZ0V4cENvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1bmN0
aW9uPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJlZ0V4cENvbnN0cnVj
dG9yVGFibGUoZXhlYyksIHRoaXMsIHNsb3QpOworICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBSZWdFeHBDb25zdHJ1Y3Rvcjo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBsb29rdXBQ
dXQ8UmVnRXhwQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIEV4ZWNTdGF0ZTo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGlj
X2Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihjZWxsKSwgc2xvdCk7CiB9CiAKIHZvaWQgc2V0UmVn
RXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmgKaW5kZXggZGVlNDg0NDUxZDU4ZjlmMzQzMWRlZmI5ZTg1ZWQ1NTIx
ZGNkMzJiMi4uMTg3NjUxYmE4ZDI0NzE4NjZiNzMxYTNjOWNkODc1YTkzMTM0ZWIxMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBA
IC03Miw2ICs3Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJy
YXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5o
CmluZGV4IGFkOTRlMDdkYTdjMTNmOWIxYjNjNGU3MGI2NmU1NjZhZmE3YTlmOGMuLjNhMzM3NWJk
ZDFjNjIzZGJhY2E2NjJlZmMyNDM4MmZiOGU5MDBmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC02NiwxNiArNjYsMjgg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2LCBQdXRQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChzdWJjbGFzc0RhdGEo
KSkKLSAgICAgICAgICAgICAgICBmaWxsQXJyYXlJbnN0YW5jZShleGVjKTsKLSAgICAgICAgICAg
IEpTQXJyYXk6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHYsIHNsb3QpOworICAgICAgICAgICAg
cHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdiwgc2xvdCk7CiAgICAgICAgIH0KIAorICAg
ICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2LCBQdXRQcm9wZXJ0eVNsb3QmIHNs
b3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZ0V4cE1hdGNoZXNBcnJheSogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PFJlZ0V4cE1hdGNoZXNBcnJheSo+KGNlbGwpOworICAgICAgICAgICAg
aWYgKHRoaXNPYmplY3QtPnN1YmNsYXNzRGF0YSgpKQorICAgICAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPmZpbGxBcnJheUluc3RhbmNlKGV4ZWMpOworICAgICAgICAgICAgSlNBcnJheTo6cHV0KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdiwgc2xvdCk7CisgICAgICAgIH0KKyAgICAg
ICAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdikKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHN1YmNs
YXNzRGF0YSgpKQotICAgICAgICAgICAgICAgIGZpbGxBcnJheUluc3RhbmNlKGV4ZWMpOwotICAg
ICAgICAgICAgSlNBcnJheTo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdik7CisgICAgICAgICAg
ICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2KTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdikKKyAgICAgICAgeworICAgICAgICAgICAg
UmVnRXhwTWF0Y2hlc0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwTWF0Y2hl
c0FycmF5Kj4oY2VsbCk7CisgICAgICAgICAgICBpZiAodGhpc09iamVjdC0+c3ViY2xhc3NEYXRh
KCkpCisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+ZmlsbEFycmF5SW5zdGFuY2UoZXhlYyk7
CisgICAgICAgICAgICBKU0FycmF5OjpwdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
LCB2KTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDJiODQzMjRm
ZmU4OTE3ZDUzMWM4Yzc3MzNmYTUwMTRjZjgxYjUwMzQuLjA4ZGVhNmRjZTFkYjhlYjNlMGY0ZjRm
MjUzNmFlZDM2YzgxMmZmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwT2JqZWN0LmNwcApAQCAtMTYyLDcgKzE2MiwxMiBAQCBKU1ZhbHVlIHJlZ0V4cE9iamVj
dExhc3RJbmRleChFeGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVy
JikKIAogdm9pZCBSZWdFeHBPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90
KQogewotICAgIGxvb2t1cFB1dDxSZWdFeHBPYmplY3QsIEpTT2JqZWN0PihleGVjLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCB0aGlzLCBzbG90KTsK
KyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3Zv
aWQgUmVnRXhwT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIGxvb2t1cFB1dDxSZWdFeHBPYmplY3QsIEpTT2JqZWN0PihleGVjLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCBzdGF0aWNf
Y2FzdDxSZWdFeHBPYmplY3QqPihjZWxsKSwgc2xvdCk7CiB9CiAKIHZvaWQgc2V0UmVnRXhwT2Jq
ZWN0TGFzdEluZGV4KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEpTVmFs
dWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5o
CmluZGV4IGU4YWY2ZDZiYzFmMzc0Yjk5MjFjOTBjM2I2MDRkMmVmNTViOGM1MzkuLmYyZGIyZGRj
NTljN2Y2ODRkY2I3M2UwZDJmOGM1YmQwNWM1Zjg5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02OCw2ICs2OCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5m
byBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuY3BwCmluZGV4IGE2NDk5OWVhYzdhZDZmMGUzYTExMTVjNzg0ZjQwYmMxYWY1MGRmNTYuLjYy
YjFmM2ExMWY0NWEwNzczMzllNzg0Zjc0MWExZWZiYTFiMDNkOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAtNjQsOSArNjQsMTQgQEAg
Ym9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHAKIAogdm9pZCBTdHJpbmdPYmplY3Q6OnB1dChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KTsKK30KKwordm9pZCBTdHJpbmdPYmplY3Q6OnB1dChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CiAgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKQogICAgICAgICByZXR1cm47Ci0gICAg
SlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBKU09i
amVjdDo6cHV0KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiBi
b29sIFN0cmluZ09iamVjdDo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5oCmluZGV4IGZmOTFkYjMyNGY4YzBhODljMjdiMDgxMjFlODBkMTkyODg5
MzIzOTQuLjE2ZDk5YjY0NWEzOWEyMzlhMzdjNTEzYmRiNTdlYjUzM2IwYjcwY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC01MSw2ICs1MSw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CisKICAgICAgICAg
dmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVz
KEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBF
eGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXgg
NTJlZDEyYWU2OTdjY2NiZTY2NGQyOTU5MTczOTRjNGVhMThjMjJkMi4uMTM2N2Y5YjMzZWIxZTgy
YTkzNWNiMTRiOTBhYjg5ZTQwNTEwNjM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTEtMTAtMDYgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjpwdXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzgyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgc3RhdGlj
IHZlcnNpb24gb2YgYm90aCB2ZXJzaW9ucyBvZiBwdXQgdG8gYWxsIGNsYXNzZXMgdGhhdCAKKyAg
ICAgICAgb3ZlcnJpZGUgdGhlbSBhbmQgY2hhbmdlZCB0aGUgdmlydHVhbCB2ZXJzaW9ucyB0byBj
YWxsIHRoZSBzdGF0aWMgCisgICAgICAgIHZlcnNpb25zLgorCisgICAgICAgICogVXNlck9iamVj
dEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpwdXQpOgorICAgICAgICAqIFVzZXJP
YmplY3RJbXAuaDoKKwogMjAxMS0xMC0wNSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3Vn
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGV4cGxpY2l0IEpTR2xvYmFsVGhpcyB0eXBlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IDYzMjU5OTRmMWUxY2Y5
YzIwOTBmZDgyZjZhMDIzYzk1YjQwMTJkMmEuLmVhOWU4OGRiYzRjNzUzOWQxZTdmMGFmMWJkMGM4
MDQ0MmViOGU1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAg
LTE1MSwxNSArMTUxLDIxIEBAIGJvb2wgVXNlck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAgcmV0dXJuIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAotdm9pZCBVc2VyT2JqZWN0SW1wOjpwdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlm
aWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCit2b2lk
IFVzZXJPYmplY3RJbXA6OnB1dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAg
IGlmICghZkpTVXNlck9iamVjdCkKKyAgICBwdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgVXNlck9iamVjdEltcDo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCit7CisgICAgVXNlck9iamVjdEltcCogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PFVzZXJPYmplY3RJbXAqPihjZWxsKTsKKyAgICBpZiAoIXRoaXNPYmpl
Y3QtPmZKU1VzZXJPYmplY3QpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBDRlN0cmluZ1Jl
ZiBjZlByb3BOYW1lID0gSWRlbnRpZmllclRvQ0ZTdHJpbmcocHJvcGVydHlOYW1lKTsKICAgICBK
U1VzZXJPYmplY3QgKmpzVmFsdWVPYmogPSBLSlNWYWx1ZVRvSlNPYmplY3QodmFsdWUsIGV4ZWMp
OwogCi0gICAgZkpTVXNlck9iamVjdC0+U2V0UHJvcGVydHkoY2ZQcm9wTmFtZSwganNWYWx1ZU9i
aik7CisgICAgdGhpc09iamVjdC0+ZkpTVXNlck9iamVjdC0+U2V0UHJvcGVydHkoY2ZQcm9wTmFt
ZSwganNWYWx1ZU9iaik7CiAKICAgICBpZiAoanNWYWx1ZU9iaikganNWYWx1ZU9iai0+UmVsZWFz
ZSgpOwogICAgIFJlbGVhc2VDRlR5cGUoY2ZQcm9wTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1Vz
ZXJPYmplY3RJbXAuaAppbmRleCAyZDU2ZDRhMDlkNzY2ZDc0N2VjNzU1MzU5ZDIxMDU1NTAxZmEx
MjhlLi4yOGFmY2E1ZDY2ZTA0YjBjMWM2ZmRjMTg0MzllZTQ0NDNlM2Y4MzI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
IAogICAgIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZl
VHlwZSBwcmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJmNWM4
OTNhODY0NTg2ZDZmZTUyOWZlNjdiMGM2NDg0ODI2YmJlYS4uMzQ1NjlkOGFiNjMxNWY2Yzk0MDY3
ZDljYTNiNjU5MTkxMWU4ZGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTEw
LTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN0YXRpYyB2ZXJzaW9uIG9mIEpTQ2VsbDo6cHV0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICBBZGRlZCBz
dGF0aWMgdmVyc2lvbiBvZiBib3RoIHZlcnNpb25zIG9mIHB1dCB0byBhbGwgY2xhc3NlcyB0aGF0
IAorICAgICAgICBvdmVycmlkZSB0aGVtIGFuZCBjaGFuZ2VkIHRoZSB2aXJ0dWFsIHZlcnNpb25z
IHRvIGNhbGwgdGhlIHN0YXRpYyAKKyAgICAgICAgdmVyc2lvbnMuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVy
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
T2JqOjpwdXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFs
bGJhY2tPYmplY3RJbXA6OnB1dCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
OgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dCk6CisgICAgICAgICogYnJpZGdlL3J1
bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6cHV0KToKKyAgICAgICAgKiBicmlk
Z2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxMS0xMC0wNSAgR2F2aW4gQmFycmFjbG91Z2ggIDxi
YXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGV4cGxpY2l0IEpTR2xvYmFsVGhp
cyB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQppbmRleCAxYzg3NjBmMmQ1M2U2NGY4NzU5NjYyZmMwMjUwOTkxNzVmZGFkYzky
Li5hOWEzNjAyODhlNzI2YTliNDc4NjZiMDg0MmM2NzhhZTgyOTRmMWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNzk0
LDcgKzc5NCw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgR2V0dGVycwogICAgIGlmICgk
aGFzU2V0dGVyKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2
b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifTsKKyAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTtcbiIpIGlmICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn07CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9w
ZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVn
YXRpbmdQdXRGdW5jdGlvbiJ9OwogICAgIH0KIApAQCAtMTA1MCw2ICsxMDUyLDcgQEAgc3ViIEdl
bmVyYXRlSGVhZGVyCiAgICAgICAgICIgICAgfVxuIik7CiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVQdXRGdW5jdGlvbiJ9KSB7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6
UHV0UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBib29sIHB1dERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgfQogCkBA
IC0xNDczLDkgKzE0NzYsMTUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlwZVB1dEZ1
bmN0aW9uIn0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fVByb3RvdHlwZTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKHB1dERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpKVxu
Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CisKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fVByb3RvdHlwZTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xv
dClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihjZWxsKTtcbiIpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhpc09iamVjdC0+cHV0RGVsZWdhdGUoZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHJldHVybjtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBCYXNlOjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7XG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKICAgICB9CiAKQEAgLTE3MzYsMjQgKzE3NDUsMzAgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tUHV0RnVuY3Rpb24ifSkgewogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
LSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
O1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworCisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2lu
Zm8pO1xuIik7CiAgICAgICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn0pIHsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgYm9vbCBvaztcbiIpOwogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJ
bnQzMihvayk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKG9rKSB7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIGluZGV4U2V0dGVyKGV4ZWMsIGluZGV4LCB2YWx1ZSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRoaXNPYmplY3QtPmluZGV4
U2V0dGVyKGV4ZWMsIGluZGV4LCB2YWx1ZSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRp
bmdQdXRGdW5jdGlvbiJ9KSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChwdXREZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSlc
biIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAodGhp
c09iamVjdC0+cHV0RGVsZWdhdGUoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpXG4i
KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
bjtcbiIpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICgkaGFzUmVh
ZFdyaXRlUHJvcGVydGllcykgewotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBsb29rdXBQdXQ8JGNsYXNzTmFtZSwgQmFzZT4oZXhlYywgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgIiAuIGhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgc2xvdCk7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgbG9va3VwUHV0PCRj
bGFzc05hbWUsIEJhc2U+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsICIgLiBoYXNoVGFibGVB
Y2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9
LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHNsb3QpO1xuIik7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
QmFzZTo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTtcbiIpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAg
ICAgICB9CkBAIC0xNzYxLDggKzE3NzYsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0
b21JbmRleFNldHRlciJ9KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2
b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pO1xuIik7Ci0gICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW5kZXhTZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1l
LCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBw
dXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUpXG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19p
bmZvKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHRoaXNP
YmplY3QtPmluZGV4U2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpO1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuO1xuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAppbmRleCA4NWRhMzAxMWNkNTFmYmYwZmZhMTg2ZjI3NjZlYWE4ODU2ZTBkNmE0Li5jMDI0
YTQ1MWQ3OTAzMmZlYTU4ZjRiYTliMjg0OWZiZTUxMDYyNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNzYz
LDggKzc2MywxNCBAQCBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllcgogCiB2b2lkIEpTVGVzdE9iajo6
cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICBsb29rdXBQdXQ8SlNUZXN0T2JqLCBCYXNl
PihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAmSlNUZXN0T2JqVGFibGUsIHRoaXMsIHNsb3Qp
OworICAgIHB1dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKK30KKwor
dm9pZCBKU1Rlc3RPYmo6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCit7CisgICAgSlNUZXN0T2JqKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0
T2JqKj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAm
c19pbmZvKTsKKyAgICBsb29rdXBQdXQ8SlNUZXN0T2JqLCBCYXNlPihleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCAmSlNUZXN0T2JqVGFibGUsIHRoaXNPYmplY3QsIHNsb3QpOwogfQogCiB2b2lk
IHNldEpTVGVzdE9ialNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IGI0Nzk3NTNmNDYyYzcwMWMyN2ZjMjJlNzcw
YTlhNjU0ZjZjODczZDEuLmMzZDFiMjRjYmIxNzFhNjRmMjY5MjNmODdmYWViNTcxYWQ1YzhkMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2
b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIHZv
aWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKICAgICBzdGF0aWMgSlND
OjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCBjMWFk
ZWIzZTA4YzNkMWE0ZGEzM2IyMDIyNDUxNGZjNDMyNmMxYjFkLi41NDNmMTZmOWUyYzRiOTk1YWY2
ZjQzOTUwOGE2YWE5MDY4NDRlYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUuaApAQCAtMTI2LDYgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFs
KENhbGxEYXRhJik7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUubW0KaW5kZXggY2Y3ZjIyZThhN2Q1YWU5NzlkNGZkMWQ5NzliMDk2YWI3
MmFhNDkyOS4uMTAyODA1MjM3MDQ4NDc5YjMyYTJkNWFjMTc2YTk1OTgwN2ViMTNlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjIzLDYgKzIyMywx
MCBAQCB2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZQogewogfQogCit2b2lkIE9iamNGYWxsYmFja09i
amVjdEltcDo6cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQoreworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBiNjg4MmVkZmUwNzU1MWU2YmMwNGVhY2Yy
MmZkZTM3YmM3ZDExMmQ5Li4wZGQ0YjY4NWJkZjYyOTU2YWY0YjBmYWUzNGIxYzdmODIwOGUzNDg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0xMzIsNiArMTMy
LDEyIEBAIGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpl
eGVjLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTCiAKIHZvaWQgUnVudGltZUFycmF5OjpwdXQo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICBwdXQodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cit9CisKK3ZvaWQgUnVudGltZUFycmF5OjpwdXQoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIFJ1bnRpbWVB
cnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwogICAg
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewogICAg
ICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgIlJhbmdlIGVycm9y
IikpOwogICAgICAgICByZXR1cm47CkBAIC0xNDAsMjEgKzE0NiwyNyBAQCB2b2lkIFJ1bnRpbWVB
cnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlCiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFt
ZS50b0FycmF5SW5kZXgob2spOwogICAgIGlmIChvaykgewotICAgICAgICBnZXRDb25jcmV0ZUFy
cmF5KCktPnNldFZhbHVlQXQoZXhlYywgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAgdGhpc09iamVj
dC0+Z2V0Q29uY3JldGVBcnJheSgpLT5zZXRWYWx1ZUF0KGV4ZWMsIGluZGV4LCB2YWx1ZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgSlNPYmplY3Q6OnB1dChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIFJ1bnRpbWVBcnJheTo6
cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUpCiB7Ci0g
ICAgaWYgKGluZGV4ID49IGdldExlbmd0aCgpKSB7CisgICAgcHV0KHRoaXMsIGV4ZWMsIGluZGV4
LCB2YWx1ZSk7Cit9CisKK3ZvaWQgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIFJ1bnRp
bWVBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwor
ICAgIGlmIChpbmRleCA+PSB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewogICAgICAgICB0aHJv
d0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywgIlJhbmdlIGVycm9yIikpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIGdldENvbmNyZXRlQXJyYXkoKS0+c2V0VmFs
dWVBdChleGVjLCBpbmRleCwgdmFsdWUpOworICAgIHRoaXNPYmplY3QtPmdldENvbmNyZXRlQXJy
YXkoKS0+c2V0VmFsdWVBdChleGVjLCBpbmRleCwgdmFsdWUpOwogfQogCiBib29sIFJ1bnRpbWVB
cnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBhMDg3N2EwNjJkZDY5OWMxNzVkZTE2
ZGYzY2FmYWFkZjEwY2M4ZGMyLi4yOTU1NzQzYmUwZjdlYjExNTYxM2FiNDM4ZmViZDFiYzFiZTRm
MjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTU0LDcgKzU0LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CisgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIGJvb2wg
ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggZGYxMWZlYjZjYTk4
ZWFjOTIyYThhMGYzNmMzYjA3OWQzZGM1Y2Y1ZS4uMmM2Yzk3Njk5MWQzN2FiOTA4YmFhY2ZhM2Y5
MzEyZGNhOTc0MzdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
CkBAIC0yMTIsMTIgKzIxMiwxOCBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImCiAKIHZvaWQgUnVu
dGltZU9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgaWYg
KCFtX2luc3RhbmNlKSB7CisgICAgcHV0KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOworfQorCit2b2lkIFJ1bnRpbWVPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgUnVudGltZU9iamVjdCogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihjZWxsKTsKKyAgICBpZiAoIXRoaXNPYmpl
Y3QtPm1faW5zdGFuY2UpIHsKICAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0
YW5jZSA9IG1faW5zdGFuY2U7CisgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNP
YmplY3QtPm1faW5zdGFuY2U7CiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAKICAgICAvLyBTZXQg
dGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS4KQEAgLTIyNSw3ICsyMzEsNyBAQCB2b2lkIFJ1bnRp
bWVPYmplY3Q6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZQogICAgIGlmIChhRmllbGQpCiAgICAgICAgIGFGaWVsZC0+c2V0VmFsdWVU
b0luc3RhbmNlKGV4ZWMsIGluc3RhbmNlLmdldCgpLCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAoIWlu
c3RhbmNlLT5zZXRWYWx1ZU9mVW5kZWZpbmVkRmllbGQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSkpCi0gICAgICAgIGluc3RhbmNlLT5wdXQodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgc2xvdCk7CisgICAgICAgIGluc3RhbmNlLT5wdXQodGhpc09iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiAKICAgICBpbnN0YW5jZS0+ZW5kKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDFhYzIxYWQ0OGYyODM3Yzk2MDA4YWUz
NTA4MWZjMGMwMzkzYTYxYTMuLjljN2FjNDliYmU3NWE2MDg1ZmJhZjUzMWUzZWIxOGYyNzMwODE1
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC00OCw2ICs0OCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIEpTVmFsdWUg
ZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0Owog
ICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>