<?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>69659</bug_id>
          
          <creation_ts>2011-10-07 13:05:54 -0700</creation_ts>
          <short_desc>Add static version of JSCell::deleteProperty</short_desc>
          <delta_ts>2011-10-07 23:36:58 -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>
          
          <blocked>67690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480248</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-07 13:05:54 -0700</bug_when>
    <thetext>On the path to de-virtualizing JSCell, we come to deleteProperty.  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>480303</commentid>
    <comment_count>1</comment_count>
      <attachid>110214</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-07 14:04:18 -0700</bug_when>
    <thetext>Created attachment 110214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480382</commentid>
    <comment_count>2</comment_count>
      <attachid>110214</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-07 16:41:26 -0700</bug_when>
    <thetext>Comment on attachment 110214
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480498</commentid>
    <comment_count>3</comment_count>
      <attachid>110214</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-07 23:36:54 -0700</bug_when>
    <thetext>Comment on attachment 110214
Patch

Clearing flags on attachment: 110214

Committed r97002: &lt;http://trac.webkit.org/changeset/97002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480499</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-07 23:36:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110214</attachid>
            <date>2011-10-07 14:04:18 -0700</date>
            <delta_ts>2011-10-07 23:36:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69659-20111007140419.patch</filename>
            <type>text/plain</type>
            <size>40315</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY5NjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggZmViN2Q5N2M5ZTQwZjdkMzE1NDNlMDczMGIyMzE5MzAw
ZWQxZTA1Ny4uYTc1N2E3MjIwZjhkNjMxNWY5YzkxYTA0M2JhMDc2MTQzYTYyMGZmNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE4NCw3ICsx
ODQsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgdmlydHVhbCBi
b29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIHVu
c2lnbmVkKTsKKyAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCBk
YjM4MzZiNmZhNGUxNmQ2MzZkMDYyMWEyM2YxYzM5NzVmZDJmM2JiLi5mZmI0YzhlNDQxYmUwNzgw
YWFiODE3MzAwY2QxYzUxNzJlYjEwODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtMjYxLDExICsyNjEsMTgg
QEAgdm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmEKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBib29s
IEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CisgICAgcmV0dXJuIGRlbGV0ZVBy
b3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQ
YXJlbnQ+Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZGVsZXRlUHJvcGVydHkoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKK3sKKyAgICBKU0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlND
YWxsYmFja09iamVjdCo+KGNlbGwpOwogICAgIEpTQ29udGV4dFJlZiBjdHggPSB0b1JlZihleGVj
KTsKLSAgICBKU09iamVjdFJlZiB0aGlzUmVmID0gdG9SZWYodGhpcyk7CisgICAgSlNPYmplY3RS
ZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXNPYmplY3QpOwogICAgIFJlZlB0cjxPcGFxdWVKU1N0cmlu
Zz4gcHJvcGVydHlOYW1lUmVmOwogICAgIAotICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0g
Y2xhc3NSZWYoKTsganNDbGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7Cisg
ICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0LT5jbGFzc1JlZigpOyBqc0Ns
YXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsKICAgICAgICAgaWYgKEpTT2Jq
ZWN0RGVsZXRlUHJvcGVydHlDYWxsYmFjayBkZWxldGVQcm9wZXJ0eSA9IGpzQ2xhc3MtPmRlbGV0
ZVByb3BlcnR5KSB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5TmFtZVJlZikKICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eU5hbWVSZWYgPSBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKHByb3BlcnR5
TmFtZS51c3RyaW5nKCkpOwpAQCAtMjk4LDEzICszMDUsMTkgQEAgYm9vbCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICByZXR1cm4gUGFyZW50OjpkZWxldGVQ
cm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBQYXJlbnQ6OmRlbGV0ZVBy
b3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKIHRlbXBsYXRlIDxj
bGFzcyBQYXJlbnQ+CiBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZGVsZXRlUHJvcGVy
dHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJu
IGRlbGV0ZVByb3BlcnR5KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1l
KSk7CisgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Citib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09i
amVjdCo+KGNlbGwpLT5kZWxldGVQcm9wZXJ0eShleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMs
IHByb3BlcnR5TmFtZSkpOwogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggYmM1NmQyZmNhMGU1NDZjNGU2ZDA0NzJjOGJhZjc4ZTE2ZmViMWJl
OC4uMGJmNDM1OTA1OWFlMDQ2YTUxNmE0OWRkMzZlZWViNmM5ZjBjOWMwZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMTAtMDcgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24g
b2YgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njk2NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBib3RoIHZlcnNpb25zIG9m
IHB1dCB0byBhbGwgY2xhc3NlcyB0aGF0IAorICAgICAgICBvdmVycmlkZSB0aGVtIGFuZCBjaGFu
Z2VkIHRoZSB2aXJ0dWFsIHZlcnNpb25zIHRvIGNhbGwgdGhlIHN0YXRpYyAKKyAgICAgICAgdmVy
c2lvbnMuICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIGRlLXZpcnR1YWxpemluZyBKU0NlbGw6
OmRlbGV0ZVByb3BlcnR5LgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6
OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5KToK
KyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50
aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6ZGVsZXRlUHJvcGVy
dHkpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9K
U0FjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0FjdGl2YXRpb246OmRlbGV0ZVByb3Bl
cnR5KToKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmRlbGV0ZVByb3BlcnR5KToK
KyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5j
cHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBydW50
aW1lL0pTTm90QW5PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNWYXJpYWJsZU9iamVjdDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0
Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6ZGVsZXRlUHJv
cGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwOgorICAg
ICAgICAoSlNDOjpTdHJpY3RFdmFsQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAg
ICAqIHJ1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisKIDIwMTEtMTAtMDcgIERv
bWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtKU0NdIERp
c2FibGUgVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllciBmb3IgSklUIEV4ZWN1dGFibGVNZW1vcnlI
YW5kbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uY3BwCmluZGV4IGQ3Yjg2NmQyNjgwMGFjODZjYzFlMzZiOTNmYTE0OGIwZDc2
NTk4NDcuLmQxZDc2MzlhMTRjNTQ5OGYyNDNkZTQ4NjkwNjUxMTEzZGYzODljMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
Y3BwCkBAIC03Nyw3ICs3NywxMiBAQCB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6cHV0V2l0aEF0
dHJpYnV0ZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogCiBib29sIERl
YnVnZ2VyQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIG1fYWN0aXZhdGlvbi0+ZGVs
ZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gZGVsZXRlUHJvcGVy
dHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKK30KKworYm9vbCBEZWJ1Z2dlckFjdGl2YXRp
b246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERlYnVn
Z2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2YXRpb24tPmRlbGV0ZVByb3BlcnR5KGV4ZWMs
IHByb3BlcnR5TmFtZSk7CiB9CiAKIHZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFt
ZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDk3MTEwYjJmODg5M2UwOWVmNGUz
NDU4NTNhYzJkN2FhMDkxZDIwZDEuLjBmNmMxZDA4MjliZjYzZjk1OTdlMWRmYTMzNDBlNTY5NTBk
YTg3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1
dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBk
ZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
OworICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVm
aW5lR2V0dGVyKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNP
YmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IGY1M2I5YmRjYjZiODgxMjhh
NjEzY2E1ZGU1MzNjODU2ZmNkYWI0M2MuLmUzYTkyNjNiYjEwOTE1ZWUzMmVhNjkzOGZhNmJkMjQ2
NjliMjVlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNw
cApAQCAtMzA2LDUyICszMDYsNjQgQEAgdm9pZCBBcmd1bWVudHM6OnB1dChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWwKIAogYm9vbCBB
cmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSkgCiB7
Ci0gICAgaWYgKGkgPCBkLT5udW1Bcmd1bWVudHMpIHsKLSAgICAgICAgaWYgKCFkLT5kZWxldGVk
QXJndW1lbnRzKSB7Ci0gICAgICAgICAgICBkLT5kZWxldGVkQXJndW1lbnRzID0gYWRvcHRBcnJh
eVB0cihuZXcgYm9vbFtkLT5udW1Bcmd1bWVudHNdKTsKLSAgICAgICAgICAgIG1lbXNldChkLT5k
ZWxldGVkQXJndW1lbnRzLmdldCgpLCAwLCBzaXplb2YoYm9vbCkgKiBkLT5udW1Bcmd1bWVudHMp
OworICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBpKTsKK30KKworYm9vbCBB
cmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBpKSAKK3sKKyAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxB
cmd1bWVudHMqPihjZWxsKTsKKyAgICBpZiAoaSA8IHRoaXNPYmplY3QtPmQtPm51bUFyZ3VtZW50
cykgeworICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHMpIHsKKyAg
ICAgICAgICAgIHRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHMgPSBhZG9wdEFycmF5UHRy
KG5ldyBib29sW3RoaXNPYmplY3QtPmQtPm51bUFyZ3VtZW50c10pOworICAgICAgICAgICAgbWVt
c2V0KHRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHMuZ2V0KCksIDAsIHNpemVvZihib29s
KSAqIHRoaXNPYmplY3QtPmQtPm51bUFyZ3VtZW50cyk7CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KCFkLT5kZWxldGVkQXJndW1lbnRzW2ldKSB7Ci0gICAgICAgICAgICBkLT5kZWxldGVkQXJndW1l
bnRzW2ldID0gdHJ1ZTsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1l
bnRzW2ldKSB7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzW2ld
ID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogCi0g
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShleGVjLCBJZGVudGlmaWVyKGV4ZWMs
IFVTdHJpbmc6Om51bWJlcihpKSkpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcihleGVjLCBVU3RyaW5nOjpudW1iZXIoaSkp
KTsKIH0KIAogYm9vbCBBcmd1bWVudHM6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSAKIHsKKyAgICByZXR1cm4gZGVsZXRlUHJv
cGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKK30KKworYm9vbCBBcmd1bWVudHM6OmRl
bGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUpIAoreworICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEFyZ3VtZW50cyo+KGNlbGwpOwogICAgIGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVu
c2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJyYXlJbmRleCk7Ci0gICAg
aWYgKGlzQXJyYXlJbmRleCAmJiBpIDwgZC0+bnVtQXJndW1lbnRzKSB7Ci0gICAgICAgIGlmICgh
ZC0+ZGVsZXRlZEFyZ3VtZW50cykgewotICAgICAgICAgICAgZC0+ZGVsZXRlZEFyZ3VtZW50cyA9
IGFkb3B0QXJyYXlQdHIobmV3IGJvb2xbZC0+bnVtQXJndW1lbnRzXSk7Ci0gICAgICAgICAgICBt
ZW1zZXQoZC0+ZGVsZXRlZEFyZ3VtZW50cy5nZXQoKSwgMCwgc2l6ZW9mKGJvb2wpICogZC0+bnVt
QXJndW1lbnRzKTsKKyAgICBpZiAoaXNBcnJheUluZGV4ICYmIGkgPCB0aGlzT2JqZWN0LT5kLT5u
dW1Bcmd1bWVudHMpIHsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1l
bnRzKSB7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzID0gYWRv
cHRBcnJheVB0cihuZXcgYm9vbFt0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHNdKTsKKyAgICAg
ICAgICAgIG1lbXNldCh0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzLmdldCgpLCAwLCBz
aXplb2YoYm9vbCkgKiB0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMpOwogICAgICAgICB9Ci0g
ICAgICAgIGlmICghZC0+ZGVsZXRlZEFyZ3VtZW50c1tpXSkgewotICAgICAgICAgICAgZC0+ZGVs
ZXRlZEFyZ3VtZW50c1tpXSA9IHRydWU7CisgICAgICAgIGlmICghdGhpc09iamVjdC0+ZC0+ZGVs
ZXRlZEFyZ3VtZW50c1tpXSkgeworICAgICAgICAgICAgdGhpc09iamVjdC0+ZC0+ZGVsZXRlZEFy
Z3VtZW50c1tpXSA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxl
bmd0aCAmJiAhZC0+b3ZlcnJvZGVMZW5ndGgpIHsKLSAgICAgICAgZC0+b3ZlcnJvZGVMZW5ndGgg
PSB0cnVlOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxl
bmd0aCAmJiAhdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVMZW5ndGgpIHsKKyAgICAgICAgdGhpc09i
amVjdC0+ZC0+b3ZlcnJvZGVMZW5ndGggPSB0cnVlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jYWxs
ZWUgJiYgIWQtPm92ZXJyb2RlQ2FsbGVlKSB7Ci0gICAgICAgIGlmICghZC0+aXNTdHJpY3RNb2Rl
KSB7Ci0gICAgICAgICAgICBkLT5vdmVycm9kZUNhbGxlZSA9IHRydWU7CisgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVlICYmICF0aGlzT2JqZWN0LT5k
LT5vdmVycm9kZUNhbGxlZSkgeworICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmQtPmlzU3RyaWN0
TW9kZSkgeworICAgICAgICAgICAgdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVDYWxsZWUgPSB0cnVl
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgY3JlYXRlU3Ry
aWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4ZWMpOworICAgICAgICB0aGlzT2JqZWN0LT5jcmVh
dGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3NhcnkoZXhlYyk7CiAgICAgfQogICAgIAotICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlciAmJiAhZC0+aXNT
dHJpY3RNb2RlKQotICAgICAgICBjcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhl
Yyk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVy
ICYmICF0aGlzT2JqZWN0LT5kLT5pc1N0cmljdE1vZGUpCisgICAgICAgIHRoaXNPYmplY3QtPmNy
ZWF0ZVN0cmljdE1vZGVDYWxsZXJJZk5lY2Vzc2FyeShleGVjKTsKIAotICAgIHJldHVybiBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaAppbmRleCBmZTk5MGI0NDczZTRhOTgwMTI4YjkzY2NiZDk1NWY5MjYwNmJlNzc2Li4x
OGRkNzM4Yjc2ZTQzZjdmYTZiMmY1MDA2Y2ZkNzdhMWUyMTVkZGYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTMxLDcgKzEzMSw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CisgICAgICAgIHN0YXRpYyBib29sIGRlbGV0
ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0
eShKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2
b2lkIGNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJZk5lY2Vzc2FyeShFeGVjU3RhdGUqKTsKICAgICAg
ICAgdm9pZCBjcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3NhcnkoRXhlY1N0YXRlKik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCmluZGV4
IDgyMjY5YTU1NWFhMjVmNzJjYzE1YzI3NTdhNzA2MDdkZmM4MTg3YWIuLmU4MmRiNDg2MmFkMWY5
NzZjYzlmMzRjNTU2NGJkMjMwOGFjNWU5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcApAQCAtMTk1LDEwICsxOTUsMTUgQEAgdm9pZCBKU0Fj
dGl2YXRpb246OnB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHkKIAogYm9vbCBKU0FjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogeworICAgIHJldHVy
biBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOworfQorCitib29sIEpT
QWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKICAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUp
OworICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBleGVjLCBwcm9wZXJ0eU5h
bWUpOwogfQogCiBKU09iamVjdCogSlNBY3RpdmF0aW9uOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRl
KiBleGVjKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uaAppbmRleCAzY2NlMjU1ODNjMjE3ZDQ3OWU5NzcyYzY3YjM5YWZlZmM4Zjc2YWJlLi41YWQz
ZDEzZTI1NDEwZmZhMmNiOTZmOWYwOTQ3Mzc3MWJjMTUxNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNjgsNiArNjgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVy
dHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsK
IAogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3QoRXhlY1N0YXRlKikgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXku
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggOWNk
MDc5NWYwNmVhZjUwYWNlOTQxYTZhMjIxMzNkZGIxNGMzODgxOC4uYWUwN2MzMmI0Nzk3MTc2MTgw
ZjFiMGU2YjhhZTUyZjlkZmYzMjdkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5jcHAKQEAgLTQ4NSwzMiArNDg1LDQ0IEBAIE5FVkVSX0lOTElORSB2b2lkIEpTQXJy
YXk6OnB1dFNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgSlNWYWx1ZSB2YWx1
CiAKIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CisgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Cit9CisKK2Jvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVy
dHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSkKK3sKKyAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBcnJh
eSo+KGNlbGwpOwogICAgIGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9w
ZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJyYXlJbmRleCk7CiAgICAgaWYgKGlzQXJyYXlJbmRl
eCkKLSAgICAgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KGV4ZWMsIGkpOworICAgICAgICByZXR1
cm4gdGhpc09iamVjdC0+ZGVsZXRlUHJvcGVydHkoZXhlYywgaSk7CiAKICAgICBpZiAocHJvcGVy
dHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVy
dHlOYW1lKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKIGJvb2wgSlNBcnJheTo6ZGVsZXRlUHJvcGVydHko
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQogewotICAgIGNoZWNrQ29uc2lzdGVuY3koKTsK
KyAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgaSk7Cit9CiAKLSAgICBBcnJh
eVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7Citib29sIEpTQXJyYXk6OmRlbGV0ZVByb3Bl
cnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQoreworICAgIEpT
QXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4oY2VsbCk7CisgICAgdGhp
c09iamVjdC0+Y2hlY2tDb25zaXN0ZW5jeSgpOworCisgICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdl
ID0gdGhpc09iamVjdC0+bV9zdG9yYWdlOwogICAgIAotICAgIGlmIChpIDwgbV92ZWN0b3JMZW5n
dGgpIHsKKyAgICBpZiAoaSA8IHRoaXNPYmplY3QtPm1fdmVjdG9yTGVuZ3RoKSB7CiAgICAgICAg
IFdyaXRlQmFycmllcjxVbmtub3duPiYgdmFsdWVTbG90ID0gc3RvcmFnZS0+bV92ZWN0b3JbaV07
CiAgICAgICAgIGlmICghdmFsdWVTbG90KSB7Ci0gICAgICAgICAgICBjaGVja0NvbnNpc3RlbmN5
KCk7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgdmFsdWVTbG90LmNsZWFyKCk7
CiAgICAgICAgIC0tc3RvcmFnZS0+bV9udW1WYWx1ZXNJblZlY3RvcjsKLSAgICAgICAgY2hlY2tD
b25zaXN0ZW5jeSgpOworICAgICAgICB0aGlzT2JqZWN0LT5jaGVja0NvbnNpc3RlbmN5KCk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNTE5LDE2ICs1MzEsMTYgQEAgYm9vbCBK
U0FycmF5OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGkpCiAgICAg
ICAgICAgICBTcGFyc2VBcnJheVZhbHVlTWFwOjppdGVyYXRvciBpdCA9IG1hcC0+ZmluZChpKTsK
ICAgICAgICAgICAgIGlmIChpdCAhPSBtYXAtPmVuZCgpKSB7CiAgICAgICAgICAgICAgICAgbWFw
LT5yZW1vdmUoaXQpOwotICAgICAgICAgICAgICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKKyAgICAg
ICAgICAgICAgICB0aGlzT2JqZWN0LT5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBj
aGVja0NvbnNpc3RlbmN5KCk7CisgICAgdGhpc09iamVjdC0+Y2hlY2tDb25zaXN0ZW5jeSgpOwog
CiAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpCi0gICAgICAgIHJldHVybiBkZWxldGVQcm9w
ZXJ0eShleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKKyAgICAgICAgcmV0dXJuIHRo
aXNPYmplY3QtPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkp
OwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5oCmluZGV4IGU1NTMyYWIzYmI1OTE5YjMxZWQwNGQ1NWVmZWY2YzIzZTJkNmMxMmYuLjc5
ZTU5MmU2OGIxODg3MzUxNjYxOTQ5NjllMTYxNGZiNjBiMDc2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTE3MCw3ICsxNzAsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Cisg
ICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxl
dGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBz
dGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhj
bHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbC5jcHAKaW5kZXggNzlhMDE0NDc0ZWQwMDE0NzUwMTliMGE5ODA4NzI1Njc4MWI3M2I2
Mi4uMDQzZWY4ZWYwMjc4ODczYTY5MWI1M2QxYmExNjA5OWFjZTkwMjNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC0xMDUsMTIgKzEwNSwyMiBAQCB2b2lk
IEpTQ2VsbDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgSlNWYWx1
ZSB2YWx1ZSkKIAogYm9vbCBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gdG9PYmplY3QoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+ZGVsZXRlUHJvcGVydHkoZXhlYywgaWRl
bnRpZmllcik7CisgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIGlkZW50aWZp
ZXIpOworfQorCitib29sIEpTQ2VsbDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJu
IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPmRlbGV0
ZVByb3BlcnR5KGV4ZWMsIGlkZW50aWZpZXIpOwogfQogCiBib29sIEpTQ2VsbDo6ZGVsZXRlUHJv
cGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyKQogewotICAgIHJldHVy
biB0b09iamVjdChleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5kZWxldGVQcm9w
ZXJ0eShleGVjLCBpZGVudGlmaWVyKTsKKyAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywg
ZXhlYywgaWRlbnRpZmllcik7Cit9CisKK2Jvb2wgSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllcikKK3sKKyAgICBy
ZXR1cm4gY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+
ZGVsZXRlUHJvcGVydHkoZXhlYywgaWRlbnRpZmllcik7CiB9CiAKIEpTT2JqZWN0KiBKU0NlbGw6
OnRvVGhpc09iamVjdChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5oCmluZGV4IGNjYzFlOTkwZThiOGJlZjRjNTliODgxYmE1YmViZjI5NmZj
NDhiZWYuLjQ5NmU5MWQ4M2FiYzNiN2E4ZTM0Y2YxM2ZlZTEyMGVjYTIwMTYyZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC05Myw3ICs5Myw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CisgICAgICAgIHN0YXRpYyBib29sIGRlbGV0
ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0
eShKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgICAg
IHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCBmYmVkZGVk
ODFjMjkyOGFiNWUwZjI1NGZkMTNlMDE3NTQ3MDM5MTNjLi5iMmZlMjkwZjZhYmY4NmEzN2Y0ODRl
MzIxZGFiMmQzNjJhMGI4MjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcApAQCAtMzI4LDExICszMjgsMTcgQEAgdm9pZCBKU0Z1bmN0aW9uOjpwdXQo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
dmEKIAogYm9vbCBKU0Z1bmN0aW9uOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICBpZiAoaXNIb3N0RnVuY3Rpb24o
KSkKLSAgICAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CisgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7
Cit9CisKK2Jvb2wgSlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICBKU0Z1
bmN0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwpOworICAg
IGlmICh0aGlzT2JqZWN0LT5pc0hvc3RGdW5jdGlvbigpKQorICAgICAgICByZXR1cm4gQmFzZTo6
ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICBpZiAo
cHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMgfHwgcHJvcGVy
dHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1l
KTsKKyAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lKTsKIH0KIAogLy8gRUNNQSAxMy4yLjIgW1tDb25zdHJ1Y3RdXQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDkxYzNjY2ZkOTUyNGMyYzlj
ZDM1MDg1M2I2MDY1MmJiMmUxMGZhYWIuLmY0YTAxYzIwNmUwOWM0ZjliNjBmYjUxZjkwZDg3NzVh
M2M0NDFjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgK
QEAgLTE0NCw2ICsxNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOworICAgICAgICBz
dGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogCiAgICAgICAgIHN0YXRpYyBKU1ZhbHVlIGFyZ3VtZW50
c0dldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAg
IHN0YXRpYyBKU1ZhbHVlIGNhbGxlckdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJ
ZGVudGlmaWVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuY3BwCmluZGV4IDBkNTg5YmYyZmEyM2Y3N2JlNDg1MGY3ZThkOGZhMDY4YzdhOGUwZmIu
LjI5YzZmZjIxMjlkNGMzNTg0ZTM5ZThjNzYxOWE3ZWMyMzM1OTBhMjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCkBAIC04NiwxMyArODYs
MjMgQEAgdm9pZCBKU05vdEFuT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCwg
SlNWYWx1ZSkKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsK
IH0KIAotYm9vbCBKU05vdEFuT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImKQorYm9vbCBKU05vdEFuT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICBy
ZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKK30KKworYm9v
bCBKU05vdEFuT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFk
RXhjZXB0aW9uKCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU05vdEFuT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkKQorYm9vbCBKU05vdEFu
T2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSkKK3sKKyAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lKTsKK30KKworYm9vbCBKU05vdEFuT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCBhZGFmZWJlNDliYTAwY2VjOTdh
ZDI2OWQ5ZGM2NjM1NTc2YmYzYTJhLi5iODQ0MjljNjFhOWRmZjE2M2Y3NzA5NGRhZmZmMzRkOGMw
ODdlY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCkBAIC03OCw3ICs3OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAKICAg
ICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CisgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUpOworICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwq
LCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jiwg
RW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDRiYTZm
OGE2ZWEwZjBmZTBhNDcwNDdmYmJlZDQzYTkwY2QyNDg2ODcuLjA5NWJkNzQ2ZjQ3MDI5ZjA1OTc5
M2U3MjgyOWY3ZDVmODdjNWMxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKQEAgLTIzMSwyMCArMjMxLDI2IEBAIGJvb2wgSlNPYmplY3Q6Omhhc1Byb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdAogICAgIHJl
dHVybiBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldFByb3BlcnR5U2xvdChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi0vLyBFQ01BIDguNi4yLjUKIGJvb2wgSlNPYmplY3Q6
OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKQogeworICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUpOworfQorCisvLyBFQ01BIDguNi4yLjUKK2Jvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCit7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU09i
amVjdCo+KGNlbGwpOwogICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7CiAgICAgSlNDZWxsKiBzcGVj
aWZpY1ZhbHVlOwotICAgIGlmIChzdHJ1Y3R1cmUoKS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
cHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBzcGVjaWZpY1ZhbHVlKSAhPSBXVEY6Om5vdEZvdW5k
KSB7CisgICAgaWYgKHRoaXNPYmplY3QtPnN0cnVjdHVyZSgpLT5nZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBwcm9wZXJ0eU5hbWUsIGF0dHJpYnV0ZXMsIHNwZWNpZmljVmFsdWUpICE9IFdURjo6bm90
Rm91bmQpIHsKICAgICAgICAgaWYgKChhdHRyaWJ1dGVzICYgRG9udERlbGV0ZSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJlbW92ZURpcmVjdChleGVjLT5nbG9iYWxEYXRh
KCksIHByb3BlcnR5TmFtZSk7CisgICAgICAgIHRoaXNPYmplY3QtPnJlbW92ZURpcmVjdChleGVj
LT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAogICAgIC8vIExvb2sgaW4gdGhlIHN0YXRpYyBoYXNodGFibGUgb2YgcHJvcGVydGllcwot
ICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBmaW5kUHJvcGVydHlIYXNoRW50cnkoZXhlYywg
cHJvcGVydHlOYW1lKTsKKyAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gdGhpc09iamVjdC0+
ZmluZFByb3BlcnR5SGFzaEVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKGVudHJ5
ICYmIGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBEb250RGVsZXRlKQogICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIHRoaXMgYnVpbHRpbiBwcm9wZXJ0eSBjYW4ndCBiZSBkZWxldGVkCiAKQEAgLTI2MCw3
ICsyNjYsMTIgQEAgYm9vbCBKU09iamVjdDo6aGFzT3duUHJvcGVydHkoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGMKIAogYm9vbCBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiB7Ci0g
ICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJv
cGVydHlOYW1lKSk7CisgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSk7Cit9CisKK2Jvb2wgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCktPmRlbGV0ZVByb3BlcnR5KGV4ZWMsIElkZW50
aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7CiB9CiAKIHN0YXRpYyBBTFdBWVNfSU5M
SU5FIEpTVmFsdWUgY2FsbERlZmF1bHRWYWx1ZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSlNPYmplY3QqIG9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggMzA5NjFkNmFmYjYyMjEy
NDQzZTI0ZjFkMjA0NjVkYzY1YWNhOWI3Zi4uNGQyMWIwZTM5ZjRmMGQ3YmMwZTFjYjg4YTJhMDYy
NDZjMWUyMjI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBA
IC0xMjIsNyArMTIyLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgaGFzT3duUHJv
cGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSBjb25zdDsK
IAogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJv
cGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSk7CisgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgdmly
dHVhbCBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVU
eXBlKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYXJpYWJsZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zh
cmlhYmxlT2JqZWN0LmNwcAppbmRleCBhYmU5YmJiYzJmNWQ2Mjk1M2ZlNTljNDE3YjM2YzcyOWVh
YTgyYTMwLi5kMjIzOGEyMTFjZmRmN2U0OGZmMTZlY2Q3YTk3YTk1OGMxZGY0YzcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmNwcApA
QCAtMzYsMTAgKzM2LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogCiBib29sIEpTVmFyaWFibGVPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKQogewotICAgIGlmIChzeW1ib2xUYWJsZSgpLmNvbnRhaW5zKHByb3BlcnR5TmFt
ZS5pbXBsKCkpKQorICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUpOworfQorCitib29sIEpTVmFyaWFibGVPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUp
Cit7CisgICAgSlNWYXJpYWJsZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTVmFy
aWFibGVPYmplY3QqPihjZWxsKTsKKyAgICBpZiAodGhpc09iamVjdC0+c3ltYm9sVGFibGUoKS5j
b250YWlucyhwcm9wZXJ0eU5hbWUuaW1wbCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwor
ICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lKTsKIH0KIAogdm9pZCBKU1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IGMyNmRjN2ViYTE3ZmU5YmQ0MWZhZTNjYWIwMTc1OTA2
MjhiMDZjZjkuLjc2ZDZhMzRmYmJhMzczNGFjMDJkNDM2NzZiYjk4ZjBhYWY5ZDllMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAg
LTUxLDYgKzUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRX
aXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcykgPSAwOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9w
ZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7CisgICAgICAgIHN0YXRpYyBib29s
IGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVBy
b3BlcnRpZXMpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFyaWFibGVPYmpl
Y3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
TWF0Y2hlc0FycmF5LmgKaW5kZXggYWQ5NGUwN2RhN2MxM2Y5YjFiM2M0ZTcwYjY2ZTU2NmFmYTdh
OWY4Yy4uYWM5Y2YzNjNhMjliM2YwYmM5M2U4ZjJkMWVkN2ZhNTBmMjc0MjZmNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAg
LTgwLDE2ICs4MCwyOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wg
ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChzdWJjbGFzc0RhdGEoKSkKLSAgICAg
ICAgICAgICAgICBmaWxsQXJyYXlJbnN0YW5jZShleGVjKTsKLSAgICAgICAgICAgIHJldHVybiBK
U0FycmF5OjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAg
cmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgICAg
IH0KKworICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorICAgICAgICB7
CisgICAgICAgICAgICBSZWdFeHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxSZWdFeHBNYXRjaGVzQXJyYXkqPihjZWxsKTsKKyAgICAgICAgICAgIGlmICh0aGlzT2JqZWN0
LT5zdWJjbGFzc0RhdGEoKSkKKyAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5maWxsQXJyYXlJ
bnN0YW5jZShleGVjKTsKKyAgICAgICAgICAgIHJldHVybiBKU0FycmF5OjpkZWxldGVQcm9wZXJ0
eSh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB9CiAKICAgICAgICAg
dmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoc3ViY2xhc3NEYXRhKCkpCi0g
ICAgICAgICAgICAgICAgZmlsbEFycmF5SW5zdGFuY2UoZXhlYyk7Ci0gICAgICAgICAgICByZXR1
cm4gSlNBcnJheTo6ZGVsZXRlUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICAgICAg
ICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUpOworICAg
ICAgICB9CisKKyAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UmVn
RXhwTWF0Y2hlc0FycmF5Kj4oY2VsbCk7CisgICAgICAgICAgICBpZiAodGhpc09iamVjdC0+c3Vi
Y2xhc3NEYXRhKCkpCisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+ZmlsbEFycmF5SW5zdGFu
Y2UoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4gSlNBcnJheTo6ZGVsZXRlUHJvcGVydHkodGhp
c09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
QXJyYXkmIGFyciwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwCmluZGV4IDNkNjJlMTRjOWEwOGI0ZjAzZDhmMzdiMWQ5NWFkNTZjMzJm
MWI1MmMuLmU5OWNkNjkxNDZmZGViNWI0ZmU2ODBmODkxN2JlOGZlZDk3OGU4YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlv
bi5jcHAKQEAgLTM1LDcgKzM1LDEyIEBAIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpTdHJpY3RFdmFs
QWN0aXZhdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7CiB9CiAKLWJvb2wgU3RyaWN0RXZhbEFjdGl2
YXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKQorYm9v
bCBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBkZWxldGVQcm9wZXJ0
eSh0aGlzLCBleGVjLCBpZGVudGlmaWVyKTsKK30KKworYm9vbCBTdHJpY3RFdmFsQWN0aXZhdGlv
bjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYp
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKaW5kZXggMDg3NDQyZjI3N2JlMWYxMDgz
NjY3OWZhZTUyYjhlNTEyZjJmZDU3Ni4uZjFkOGQ2Zjk1MTg3NzQ1YTg4ZWQwYzRlYWUzNWEwMDBm
ZmE5NmY0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0
RXZhbEFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
Y3RFdmFsQWN0aXZhdGlvbi5oCkBAIC00Miw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYpOworICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNPYmplY3Qo
RXhlY1N0YXRlKikgY29uc3Q7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuY3BwCmluZGV4IGE2NDk5OWVhYzdhZDZmMGUzYTExMTVjNzg0ZjQwYmMxYWY1
MGRmNTYuLmU5ZjZiYTlmNzI4ZDQzY2UzM2Q4OTgyNGYxZmFhOGNjODY5YzI1M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAtNzEsMTMg
KzcxLDE5IEBAIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUKIAogYm9vbCBTdHJpbmdPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKQogeworICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eSh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUpOworfQorCitib29sIFN0cmluZ09iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAg
ICBTdHJpbmdPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxTdHJpbmdPYmplY3QqPihj
ZWxsKTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5n
dGgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBib29sIGlzU3RyaWN0VUludDMyOwogICAg
IHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9VSW50MzIoaXNTdHJpY3RVSW50MzIpOwotICAg
IGlmIChpc1N0cmljdFVJbnQzMiAmJiBpbnRlcm5hbFZhbHVlKCktPmNhbkdldEluZGV4KGkpKQor
ICAgIGlmIChpc1N0cmljdFVJbnQzMiAmJiB0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCktPmNh
bkdldEluZGV4KGkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIEpTT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAog
dm9pZCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IGZmOTFk
YjMyNGY4YzBhODljMjdiMDgxMjFlODBkMTkyODg5MzIzOTQuLjcwMmZjNjM4NWFmZmQxYmJmOTA2
YjYwY2E4M2Y1MWJhZDIyZmYyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5oCkBAIC01Miw2ICs1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBKU19FWFBPUlREQVRBIENsYXNzSW5mbyBzX2luZm87CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZTYyMDI3NDI4MmVhYWJiMTEyNjA2ZmE0YjBmMmM5YmM0YTgwZDA4Yy4uM2ViOTFj
MTI3ODBkMTdmZDU5YTEwMzFkYTRiNTcxMGRmZDU5ZmI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDExLTEwLTA3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN0YXRpYyB2ZXJzaW9uIG9mIEpTQ2VsbDo6ZGVsZXRlUHJvcGVy
dHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLgorCisgICAgICAgIEFkZGVkIHN0YXRpYyB2ZXJzaW9uIG9mIGJvdGggdmVyc2lvbnMg
b2YgcHV0IHRvIGFsbCBjbGFzc2VzIHRoYXQgCisgICAgICAgIG92ZXJyaWRlIHRoZW0gYW5kIGNo
YW5nZWQgdGhlIHZpcnR1YWwgdmVyc2lvbnMgdG8gY2FsbCB0aGUgc3RhdGljIAorICAgICAgICB2
ZXJzaW9ucy4gIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgaW4gZGUtdmlydHVhbGl6aW5nIEpTQ2Vs
bDo6ZGVsZXRlUHJvcGVydHkuCisKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
aDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJh
eTo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6Cisg
ICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6OlJ1bnRpbWVPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9vYmplY3QuaDoKKwogMjAxMS0xMC0wNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1ha2UgSWNvbkxvYWRlciBhIENhY2hlZFJlc291cmNlQ2xpZW50
IGluc3RlYWQgb2YgYSBTdWJyZXNvdXJjZUxvYWRlckNsaWVudC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggYzFhZGViM2UwOGMzZDFhNGRhMzNiMjAyMjQ1
MTRmYzQzMjZjMWIxZC4uYjQ2NGY3NDdmNjA4MGVkYzVhYTU5YTQxNmVhZjc3ZjI2NjVjYTg3NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEyOSw2ICsx
MjksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFs
KENhbGxEYXRhJik7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENh
bGxEYXRhJik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJv
cGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJl
ZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVj
U3RhdGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5t
bQppbmRleCBjZjdmMjJlOGE3ZDVhZTk3OWQ0ZmQxZDk3OWIwOTZhYjcyYWE0OTI5Li5hZGE4ZWQ3
MTkwZDNmMzg2MmVkYzg0ZjM2MDhkMjcxNGVhNmY3YmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0yNzAsNyArMjcwLDEyIEBAIENhbGxUeXBlIE9i
amNGYWxsYmFja09iamVjdEltcDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsLCBDYWxsRGF0YSYg
Y2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAotYm9vbCBPYmpjRmFsbGJh
Y2tPYmplY3RJbXA6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
KQorYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4gZGVsZXRl
UHJvcGVydHkodGhpcywgZXhlYywgaWRlbnRpZmllcik7Cit9CisKK2Jvb2wgT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5jcHAKaW5kZXggYjY4ODJlZGZlMDc1NTFlNmJjMDRlYWNmMjJmZGUzN2JjN2Qx
MTJkOS4uYjYwNGQ0MDUwZDkyYmE4MzBhODZkM2FiZTUxNmE1NTg1NDJjMTZkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtMTU3LDEyICsxNTcsMjIgQEAgdm9p
ZCBSdW50aW1lQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1Zh
bHVlIHZhbHVlKQogICAgIGdldENvbmNyZXRlQXJyYXkoKS0+c2V0VmFsdWVBdChleGVjLCBpbmRl
eCwgdmFsdWUpOwogfQogCi1ib29sIFJ1bnRpbWVBcnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYpCitib29sIFJ1bnRpbWVBcnJheTo6ZGVsZXRlUHJvcGVy
dHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCit7Cisg
ICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Cit9CisK
K2Jvb2wgUnVudGltZUFycmF5OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJikKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUnVudGlt
ZUFycmF5OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCB1bnNpZ25lZCkKK2Jvb2wgUnVudGlt
ZUFycmF5OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSkKK3sKKyAgICByZXR1cm4gZGVsZXRlUHJvcGVydHkodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lKTsKK30KKworYm9vbCBSdW50aW1lQXJyYXk6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIHVuc2lnbmVkKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGEwODc3YTA2MmRkNjk5YzE3NWRlMTZkZjNjYWZh
YWRmMTBjYzhkYzIuLjk4ODcwYzY3YmVjN2U1MGFmOTE0YzllMTAxY2VhNzRkM2RlYmZkNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNTcsNyArNTcsOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSk7CisgICAgc3RhdGlj
IGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciAmcHJvcGVydHlOYW1lKTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBib29sIGRlbGV0
ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAg
ICAgCiAgICAgdW5zaWduZWQgZ2V0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gZ2V0Q29uY3JldGVB
cnJheSgpLT5nZXRMZW5ndGgoKTsgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAKaW5kZXggZGYxMWZlYjZjYTk4ZWFjOTIyYThhMGYzNmMzYjA3OWQzZGM1Y2Y1
ZS4uNzZlNTlhMzhlMTZiOWQwYTJkZGU1ZTQ0YzBkNmE1YmJkOWRmNmE1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0yMzAsNyArMjMwLDEyIEBAIHZvaWQg
UnVudGltZU9iamVjdDo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlCiAgICAgaW5zdGFuY2UtPmVuZCgpOwogfQogCi1ib29sIFJ1bnRp
bWVPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKQor
Ym9vbCBSdW50aW1lT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1cm4gZGVsZXRlUHJvcGVydHko
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lKTsKK30KKworYm9vbCBSdW50aW1lT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAg
ICAvLyBDYW4gbmV2ZXIgcmVtb3ZlIGEgcHJvcGVydHkgb2YgYSBSdW50aW1lT2JqZWN0LgogICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXgg
MWFjMjFhZDQ4ZjI4MzdjOTYwMDhhZTM1MDgxZmMwYzAzOTNhNjFhMy4uOWRjOGVkYTMzYjQxOTY5
MTJjNGFmN2I3NWE5ZDZjYjk3ZjZhZGI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVy
dHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJv
cGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJl
ZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFW
aXJ0dWFsKENhbGxEYXRhJik7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2Vs
bCosIENhbGxEYXRhJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>