<?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>101205</bug_id>
          
          <creation_ts>2012-11-05 03:46:55 -0800</creation_ts>
          <short_desc>[EFL][WK2] Make Ewk_Url_Request, Ewk_Url_Response, Ewk_Navigation_Data  Ewk_Objects</short_desc>
          <delta_ts>2012-11-05 04:39:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</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>101057</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>758399</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 03:46:55 -0800</bug_when>
    <thetext>Make Ewk_Url_Request, Ewk_Url_Response, Ewk_Navigation_Data Ewk_Objects as part of bug101057 work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758406</commentid>
    <comment_count>1</comment_count>
      <attachid>172312</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 03:51:25 -0800</bug_when>
    <thetext>Created attachment 172312
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758407</commentid>
    <comment_count>2</comment_count>
      <attachid>172313</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 03:54:30 -0800</bug_when>
    <thetext>Created attachment 172313
patch

fixed &apos;*&apos; on wrong side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758409</commentid>
    <comment_count>3</comment_count>
      <attachid>172313</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-05 03:56:29 -0800</bug_when>
    <thetext>Comment on attachment 172313
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=172313&amp;action=review

&gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision_private.h:60
&gt; +    EwkUrlRequest* request() const;

We should probably make this getter non-const (although this can be done in a separate patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758412</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 03:59:15 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 172313 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172313&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision_private.h:60
&gt; &gt; +    EwkUrlRequest* request() const;
&gt; 
&gt; We should probably make this getter non-const (although this can be done in a separate patch).

We should make a big work to fix constness inside WK2 EFL, currently it&apos;s all very messy. Off course this is out if this patch&apos;s scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758423</commentid>
    <comment_count>5</comment_count>
      <attachid>172313</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 04:39:30 -0800</bug_when>
    <thetext>Comment on attachment 172313
patch

Clearing flags on attachment: 172313

Committed r133457: &lt;http://trac.webkit.org/changeset/133457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758424</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 04:39:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172312</attachid>
            <date>2012-11-05 03:51:25 -0800</date>
            <delta_ts>2012-11-05 03:54:30 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug101205</filename>
            <type>text/plain</type>
            <size>28556</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGI2NjEwMzYyODI3MDAyZTQzODZjYjkxZWU4YTFkN2Y1OWM4ODBiMzgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE5vdiA1IDEzOjQ3OjUzIDIwMTIgKzAyMDAKCiAgICBidWcxMDEyMDUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNTRkNWYyNS4uMzIwOGM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEx
LTA1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gTWFrZSBFd2tfVXJsX1JlcXVlc3QsIEV3a19VcmxfUmVzcG9u
c2UsIEV3a19OYXZpZ2F0aW9uX0RhdGEgIEV3a19PYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEyMDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFd2tfVXJsX1JlcXVlc3QsIEV3a19VcmxfUmVz
cG9uc2UsIEV3a19OYXZpZ2F0aW9uX0RhdGEgYXJlIHVzaW5nIGNvbW1vbiBFd2tfT2JqZWN0IGlu
dGVyZmFjZSBub3cuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwOgorICAg
ICAgICAoRXdrX0Rvd25sb2FkX0pvYjo6cmVxdWVzdCk6CisgICAgICAgIChFd2tfRG93bmxvYWRf
Sm9iOjpyZXNwb25zZSk6CisgICAgICAgIChFd2tfRG93bmxvYWRfSm9iOjpzZXRSZXNwb25zZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmg6
CisgICAgICAgIChFd2tfRG93bmxvYWRfSm9iKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcDoKKyAgICAgICAgKEV3a05hdmlnYXRpb25EYXRhOjpF
d2tOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChFd2tOYXZpZ2F0aW9uRGF0YTo6b3JpZ2luYWxS
ZXF1ZXN0KToKKyAgICAgICAgKEV3a05hdmlnYXRpb25EYXRhOjp0aXRsZSk6CisgICAgICAgIChF
d2tOYXZpZ2F0aW9uRGF0YTo6dXJsKToKKyAgICAgICAgKGV3a19uYXZpZ2F0aW9uX2RhdGFfdGl0
bGVfZ2V0KToKKyAgICAgICAgKGV3a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9n
ZXQpOgorICAgICAgICAoZXdrX25hdmlnYXRpb25fZGF0YV91cmxfZ2V0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmg6CisgICAgICAgIChFd2tO
YXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChFd2tOYXZpZ2F0aW9uRGF0YTo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24u
Y3BwOgorICAgICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpFd2tfTmF2aWdh
dGlvbl9Qb2xpY3lfRGVjaXNpb24pOgorICAgICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5X0Rl
Y2lzaW9uOjpyZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX05hdmlnYXRpb25f
UG9saWN5X0RlY2lzaW9uOjpjcmVhdGUpOgorICAgICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Qu
Y3BwOgorICAgICAgICAoRXdrVXJsUmVxdWVzdDo6RXdrVXJsUmVxdWVzdCk6CisgICAgICAgIChF
d2tVcmxSZXF1ZXN0Ojp1cmwpOgorICAgICAgICAoRXdrVXJsUmVxdWVzdDo6Zmlyc3RQYXJ0eSk6
CisgICAgICAgIChFd2tVcmxSZXF1ZXN0OjpodHRwTWV0aG9kKToKKyAgICAgICAgKGV3a191cmxf
cmVxdWVzdF91cmxfZ2V0KToKKyAgICAgICAgKGV3a19yZXF1ZXN0X2Nvb2tpZXNfZmlyc3RfcGFy
dHlfZ2V0KToKKyAgICAgICAgKGV3a191cmxfcmVxdWVzdF9odHRwX21ldGhvZF9nZXQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChFd2tV
cmxSZXF1ZXN0KToKKyAgICAgICAgKEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHA6CisgICAgICAgIChFd2tVcmxS
ZXNwb25zZTo6RXdrVXJsUmVzcG9uc2UpOgorICAgICAgICAoRXdrVXJsUmVzcG9uc2U6Omh0dHBT
dGF0dXNDb2RlKToKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlOjp1cmwpOgorICAgICAgICAoRXdr
VXJsUmVzcG9uc2U6Om1pbWVUeXBlKToKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlOjpjb250ZW50
TGVuZ3RoKToKKyAgICAgICAgKGV3a191cmxfcmVzcG9uc2VfdXJsX2dldCk6CisgICAgICAgIChl
d2tfdXJsX3Jlc3BvbnNlX3N0YXR1c19jb2RlX2dldCk6CisgICAgICAgIChld2tfdXJsX3Jlc3Bv
bnNlX21pbWVfdHlwZV9nZXQpOgorICAgICAgICAoZXdrX3VybF9yZXNwb25zZV9jb250ZW50X2xl
bmd0aF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUu
aDoKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlKToKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlOjpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6ZGlkTmF2aWdh
dGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvRG93bmxvYWRN
YW5hZ2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUmVzb3VyY2VMb2FkQ2xp
ZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkQ2xpZW50RWZsOjpkaWRJ
bml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZENs
aWVudEVmbDo6ZGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZENsaWVudEVmbDo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpOgorCiAy
MDEyLTExLTA1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+
CiAKICAgICAgICAgW0VGTF1bV0syXSBUaGUgaWNvbiBkYXRhYmFzZSBwYXRoIHNob3VsZCBiZSBz
ZXQgYnkgdGhlIGNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXdJbXBsLmgKaW5kZXggZWQ1OTkyNi4uOGJmNjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCkBAIC04MCw4ICs4MCw2IEBAIGNsYXNz
IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsKIGNsYXNzIEV3a19SZXNvdXJjZTsKIGNs
YXNzIEV3a19Qb3B1cF9NZW51OwogY2xhc3MgRXdrX1NldHRpbmdzOwotY2xhc3MgRXdrX1VybF9S
ZXF1ZXN0OwotY2xhc3MgRXdrX1VybF9SZXNwb25zZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIHR5cGVkZWYgc3RydWN0IF9FdmFzX0dMX0NvbnRleHQgRXZhc19HTF9Db250
ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rv
d25sb2FkX2pvYi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93
bmxvYWRfam9iLmNwcAppbmRleCBjZmU2YmI4Li41MGMzNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcApAQCAtOTks
MTEgKzk5LDExIEBAIEV3a19VcmxfUmVxdWVzdCogZXdrX2Rvd25sb2FkX2pvYl9yZXF1ZXN0X2dl
dChjb25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKICAgICByZXR1cm4gZG93bmxvYWQt
PnJlcXVlc3QoKTsKIH0KIAotRXdrX1VybF9SZXF1ZXN0KiBFd2tfRG93bmxvYWRfSm9iOjpyZXF1
ZXN0KCkgY29uc3QKK0V3a1VybFJlcXVlc3QqIEV3a19Eb3dubG9hZF9Kb2I6OnJlcXVlc3QoKSBj
b25zdAogewogICAgIGlmICghbV9yZXF1ZXN0KSB7CiAgICAgICAgIFdLUmV0YWluUHRyPFdLVVJM
UmVxdWVzdFJlZj4gd2tVUkxSZXF1ZXN0KEFkb3B0V0ssIHRvQVBJKFdlYlVSTFJlcXVlc3Q6OmNy
ZWF0ZShtX2Rvd25sb2FkUHJveHktPnJlcXVlc3QoKSkubGVha1JlZigpKSk7Ci0gICAgICAgIG1f
cmVxdWVzdCA9IEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRlKHdrVVJMUmVxdWVzdC5nZXQoKSk7Cisg
ICAgICAgIG1fcmVxdWVzdCA9IEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSh3a1VSTFJlcXVlc3QuZ2V0
KCkpOwogICAgIH0KIAogICAgIHJldHVybiBtX3JlcXVlc3QuZ2V0KCk7CkBAIC0xMTYsNyArMTE2
LDcgQEAgRXdrX1VybF9SZXNwb25zZSogZXdrX2Rvd25sb2FkX2pvYl9yZXNwb25zZV9nZXQoY29u
c3QgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQKICAgICByZXR1cm4gZG93bmxvYWQtPnJlc3Bv
bnNlKCk7CiB9CiAKLUV3a19VcmxfUmVzcG9uc2UqIEV3a19Eb3dubG9hZF9Kb2I6OnJlc3BvbnNl
KCkgY29uc3QKK0V3a1VybFJlc3BvbnNlKiBFd2tfRG93bmxvYWRfSm9iOjpyZXNwb25zZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcmVzcG9uc2UuZ2V0KCk7CiB9CkBAIC0yMjIsNyArMjIyLDcg
QEAgZG91YmxlIEV3a19Eb3dubG9hZF9Kb2I6OmVsYXBzZWRUaW1lKCkgY29uc3QKICAqIEBpbnRl
cm5hbAogICogU2V0cyB0aGUgVVJMIEBhIHJlc3BvbnNlIGZvciB0aGlzIEBhIGRvd25sb2FkLgog
ICovCi12b2lkIEV3a19Eb3dubG9hZF9Kb2I6OnNldFJlc3BvbnNlKFBhc3NSZWZQdHI8RXdrX1Vy
bF9SZXNwb25zZT4gcmVzcG9uc2UpCit2b2lkIEV3a19Eb3dubG9hZF9Kb2I6OnNldFJlc3BvbnNl
KFBhc3NSZWZQdHI8RXdrVXJsUmVzcG9uc2U+IHJlc3BvbnNlKQogewogICAgIEFTU0VSVChyZXNw
b25zZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKaW5kZXggMDBmYzc2Zi4uNTI2YTI3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pv
Yl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rv
d25sb2FkX2pvYl9wcml2YXRlLmgKQEAgLTUzLDkgKzUzLDkgQEAgcHVibGljOgogICAgIEV3a19E
b3dubG9hZF9Kb2JfU3RhdGUgc3RhdGUoKSBjb25zdDsKICAgICB2b2lkIHNldFN0YXRlKEV3a19E
b3dubG9hZF9Kb2JfU3RhdGUpOwogCi0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KCkgY29u
c3Q7Ci0gICAgRXdrX1VybF9SZXNwb25zZSogcmVzcG9uc2UoKSBjb25zdDsKLSAgICB2b2lkIHNl
dFJlc3BvbnNlKFBhc3NSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4pOworICAgIEV3a1VybFJlcXVl
c3QgKnJlcXVlc3QoKSBjb25zdDsKKyAgICBFd2tVcmxSZXNwb25zZSogcmVzcG9uc2UoKSBjb25z
dDsKKyAgICB2b2lkIHNldFJlc3BvbnNlKFBhc3NSZWZQdHI8RXdrVXJsUmVzcG9uc2U+KTsKIAog
ICAgIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXN0aW5h
dGlvbihjb25zdCBjaGFyKiBkZXN0aW5hdGlvbik7CkBAIC03NSw4ICs3NSw4IEBAIHByaXZhdGU6
CiAgICAgV2ViS2l0OjpEb3dubG9hZFByb3h5KiBtX2Rvd25sb2FkUHJveHk7CiAgICAgRXdrVmll
d0ltcGwqIG1fdmlld0ltcGw7CiAgICAgRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSBtX3N0YXRlOwot
ICAgIG11dGFibGUgUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gbV9yZXF1ZXN0OwotICAgIFJlZlB0
cjxFd2tfVXJsX1Jlc3BvbnNlPiBtX3Jlc3BvbnNlOworICAgIG11dGFibGUgUmVmUHRyPEV3a1Vy
bFJlcXVlc3Q+IG1fcmVxdWVzdDsKKyAgICBSZWZQdHI8RXdrVXJsUmVzcG9uc2U+IG1fcmVzcG9u
c2U7CiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX2VuZFRpbWU7CiAgICAg
dWludDY0X3QgbV9kb3dubG9hZGVkOyAvLyBsZW5ndGggYWxyZWFkeSBkb3dubG9hZGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9k
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9u
X2RhdGEuY3BwCmluZGV4IDNkMWYwNWYuLmEyYWU5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwCkBAIC0z
MCw2MCArMzAsNDQgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotRXdrX05hdmlnYXRp
b25fRGF0YTo6RXdrX05hdmlnYXRpb25fRGF0YShXS05hdmlnYXRpb25EYXRhUmVmIGRhdGFSZWYp
Ci0gICAgOiBtX3JlcXVlc3QoRXdrX1VybF9SZXF1ZXN0OjpjcmVhdGUoYWRvcHRXSyhXS05hdmln
YXRpb25EYXRhQ29weU9yaWdpbmFsUmVxdWVzdChkYXRhUmVmKSkuZ2V0KCkpKQorRXdrTmF2aWdh
dGlvbkRhdGE6OkV3a05hdmlnYXRpb25EYXRhKFdLTmF2aWdhdGlvbkRhdGFSZWYgZGF0YVJlZikK
KyAgICA6IG1fcmVxdWVzdChFd2tVcmxSZXF1ZXN0OjpjcmVhdGUoYWRvcHRXSyhXS05hdmlnYXRp
b25EYXRhQ29weU9yaWdpbmFsUmVxdWVzdChkYXRhUmVmKSkuZ2V0KCkpKQogICAgICwgbV90aXRs
ZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVRpdGxlKGRhdGFSZWYpKQogICAgICwgbV91
cmwoQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlVUkwoZGF0YVJlZikpCiB7IH0KIAotRXdr
X1VybF9SZXF1ZXN0KiBFd2tfTmF2aWdhdGlvbl9EYXRhOjpvcmlnaW5hbFJlcXVlc3QoKSBjb25z
dAorRXdrVXJsUmVxdWVzdCogRXdrTmF2aWdhdGlvbkRhdGE6Om9yaWdpbmFsUmVxdWVzdCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcmVxdWVzdC5nZXQoKTsKIH0KIAotY29uc3QgY2hhciogRXdr
X05hdmlnYXRpb25fRGF0YTo6dGl0bGUoKSBjb25zdAorY29uc3QgY2hhciogRXdrTmF2aWdhdGlv
bkRhdGE6OnRpdGxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV90aXRsZTsKIH0KIAotY29uc3Qg
Y2hhciogRXdrX05hdmlnYXRpb25fRGF0YTo6dXJsKCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3a05h
dmlnYXRpb25EYXRhOjp1cmwoKSBjb25zdAogewogICAgIHJldHVybiBtX3VybDsKIH0KIAotRXdr
X05hdmlnYXRpb25fRGF0YSogZXdrX25hdmlnYXRpb25fZGF0YV9yZWYoRXdrX05hdmlnYXRpb25f
RGF0YSogZGF0YSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGF0YSwg
MCk7Ci0KLSAgICBkYXRhLT5yZWYoKTsKLQotICAgIHJldHVybiBkYXRhOwotfQotCi12b2lkIGV3
a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYoRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKLXsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihkYXRhKTsKLQotICAgIGRhdGEtPmRlcmVmKCk7
Ci19Ci0KIGNvbnN0IGNoYXIqIGV3a19uYXZpZ2F0aW9uX2RhdGFfdGl0bGVfZ2V0KGNvbnN0IEV3
a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKGRhdGEsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3
a05hdmlnYXRpb25EYXRhLCBkYXRhLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkYXRhLT50aXRs
ZSgpOworICAgIHJldHVybiBpbXBsLT50aXRsZSgpOwogfQogCiBFd2tfVXJsX1JlcXVlc3QqIGV3
a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQoY29uc3QgRXdrX05hdmlnYXRp
b25fRGF0YSogZGF0YSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGF0
YSwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrTmF2aWdhdGlv
bkRhdGEsIGRhdGEsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIGRhdGEtPm9yaWdpbmFsUmVxdWVz
dCgpOworICAgIHJldHVybiBpbXBsLT5vcmlnaW5hbFJlcXVlc3QoKTsKIH0KIAogY29uc3QgY2hh
ciogZXdrX25hdmlnYXRpb25fZGF0YV91cmxfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0RhdGEq
IGRhdGEpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRhdGEsIDApOwor
ICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a05hdmlnYXRpb25EYXRhLCBk
YXRhLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkYXRhLT51cmwoKTsKKyAgICByZXR1cm4gaW1w
bC0+dXJsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmgKaW5kZXggYjNiNWMyNi4uMTZmN2JjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2Rh
dGEuaApAQCAtMzgsMjYgKzM4LDEyIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3Jl
YXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX05hdmlnYXRpb25fRGF0YSAqLwotdHlwZWRlZiBzdHJ1
Y3QgRXdrX05hdmlnYXRpb25fRGF0YSBFd2tfTmF2aWdhdGlvbl9EYXRhOwotCiAvKioKLSAqIElu
Y3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgotICog
QHBhcmFtIGRhdGEgdGhlIG5hdmlnYXRpb24gZGF0YSBvYmplY3QgdG8gaW5jcmVhc2UgdGhlIHJl
ZmVyZW5jZSBjb3VudAotICoKLSAqIEByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBvYmplY3Qgb24g
c3VjY2VzcywgQGMgTlVMTCBvdGhlcndpc2UuCi0gKi8KLUVBUEkgRXdrX05hdmlnYXRpb25fRGF0
YSAqZXdrX25hdmlnYXRpb25fZGF0YV9yZWYoRXdrX05hdmlnYXRpb25fRGF0YSAqZGF0YSk7Ci0K
LS8qKgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVj
dCwgcG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQg
cmVhY2hlcyAwLCB0aGUgb2JqZWN0IGlzIGZyZWVkLgorICogRGVjbGFyZSBFd2tfTmF2aWdhdGlv
bl9EYXRhIGFzIEV3a19PYmplY3QuCiAgKgotICogQHBhcmFtIGRhdGEgdGhlIG5hdmlnYXRpb24g
ZGF0YSBvYmplY3QgdG8gZGVjcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICogQHNlZSBFd2tf
T2JqZWN0CiAgKi8KLUVBUEkgdm9pZCBld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKEV3a19OYXZp
Z2F0aW9uX0RhdGEgKmRhdGEpOwordHlwZWRlZiBzdHJ1Y3QgRXdrX09iamVjdCBFd2tfTmF2aWdh
dGlvbl9EYXRhOwogCiAvKioKICAqIFJldHVybnMgdGl0bGUgZm9yIHRoaXMgbmF2aWdhdGlvbiBk
YXRhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fZGF0YV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAppbmRleCAwZDBlY2IwLi41OWUwYzY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlv
bl9kYXRhX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaApAQCAtMzYsMjUgKzM2LDI3IEBACiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogLyoqCi0gKiBcc3RydWN0ICBFd2tfTmF2aWdhdGlvbl9E
YXRhCisgKiBcc3RydWN0ICBFd2tOYXZpZ2F0aW9uRGF0YQogICogQGJyaWVmICAgQ29udGFpbnMg
dGhlIG5hdmlnYXRpb24gZGF0YSBkZXRhaWxzLgogICovCi1jbGFzcyBFd2tfTmF2aWdhdGlvbl9E
YXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX05hdmlnYXRpb25fRGF0YT4geworY2xhc3MgRXdr
TmF2aWdhdGlvbkRhdGEgOiBwdWJsaWMgRXdrX09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXdrX05hdmlnYXRpb25fRGF0YT4gY3JlYXRlKFdLTmF2aWdhdGlvbkRhdGFS
ZWYgZGF0YVJlZikKKyAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrTmF2aWdhdGlvbkRhdGEpCisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tOYXZpZ2F0aW9uRGF0YT4gY3JlYXRlKFdLTmF2aWdh
dGlvbkRhdGFSZWYgZGF0YVJlZikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RXdrX05hdmlnYXRpb25fRGF0YShkYXRhUmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRXdrTmF2aWdhdGlvbkRhdGEoZGF0YVJlZikpOwogICAgIH0KIAotICAgIEV3a19VcmxfUmVx
dWVzdCogb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3Q7CisgICAgRXdrVXJsUmVxdWVzdCogb3JpZ2lu
YWxSZXF1ZXN0KCkgY29uc3Q7CiAKICAgICBjb25zdCBjaGFyKiB0aXRsZSgpIGNvbnN0OwogICAg
IGNvbnN0IGNoYXIqIHVybCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a19O
YXZpZ2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVmKTsKKyAgICBleHBsaWNp
dCBFd2tOYXZpZ2F0aW9uRGF0YShXS05hdmlnYXRpb25EYXRhUmVmIGRhdGFSZWYpOwogCi0gICAg
UmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gbV9yZXF1ZXN0OworICAgIFJlZlB0cjxFd2tVcmxSZXF1
ZXN0PiBtX3JlcXVlc3Q7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fdGl0bGU7CiAgICAgV0tF
aW5hU2hhcmVkU3RyaW5nIG1fdXJsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uY3BwCmluZGV4IDVjNGYyNGMuLmFkMmRlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5
X2RlY2lzaW9uLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCi1Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OkV3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIEV3a19OYXZpZ2F0
aW9uX1R5cGUgbmF2aWdhdGlvblR5cGUsIEV2ZW50X01vdXNlX0J1dHRvbiBtb3VzZUJ1dHRvbiwg
RXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmllcnMsIFBhc3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0
PiByZXF1ZXN0LCBjb25zdCBjaGFyKiBmcmFtZU5hbWUpCitFd2tfTmF2aWdhdGlvbl9Qb2xpY3lf
RGVjaXNpb246OkV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWYgbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUgbmF2aWdhdGlvblR5cGUsIEV2
ZW50X01vdXNlX0J1dHRvbiBtb3VzZUJ1dHRvbiwgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmll
cnMsIFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4gcmVxdWVzdCwgY29uc3QgY2hhciogZnJhbWVO
YW1lKQogICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikKICAgICAsIG1fYWN0ZWRVcG9uQnlDbGll
bnQoZmFsc2UpCiAgICAgLCBtX25hdmlnYXRpb25UeXBlKG5hdmlnYXRpb25UeXBlKQpAQCAtNjks
NyArNjksNyBAQCBjb25zdCBjaGFyKiBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OmZy
YW1lTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWVOYW1lOwogfQogCi1Fd2tfVXJsX1Jl
cXVlc3QqIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6cmVxdWVzdCgpIGNvbnN0CitF
d2tVcmxSZXF1ZXN0KiBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OnJlcXVlc3QoKSBj
b25zdAogewogICAgIHJldHVybiBtX3JlcXVlc3QuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b25fcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmln
YXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaAppbmRleCA5NWExOGI3Yy4uNjZmZWIzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oCkBAIC00
Niw4ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbj4gY3JlYXRlKFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0
aW9uVHlwZSwgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYsIGNvbnN0IGNoYXIqIGZyYW1l
TmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyKQogICAgIHsKLSAgICAgICAg
UmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRl
KHJlcXVlc3RSZWYpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19OYXZpZ2F0aW9u
X1BvbGljeV9EZWNpc2lvbihsaXN0ZW5lciwgc3RhdGljX2Nhc3Q8RXdrX05hdmlnYXRpb25fVHlw
ZT4obmF2aWdhdGlvblR5cGUpLCBzdGF0aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+KG1vdXNl
QnV0dG9uKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJfS2V5cz4obW9kaWZpZXJzKSwgcmVx
dWVzdC5yZWxlYXNlKCksIGZyYW1lTmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihsaXN0ZW5lciwgc3RhdGljX2Nhc3Q8RXdr
X05hdmlnYXRpb25fVHlwZT4obmF2aWdhdGlvblR5cGUpLCBzdGF0aWNfY2FzdDxFdmVudF9Nb3Vz
ZV9CdXR0b24+KG1vdXNlQnV0dG9uKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJfS2V5cz4o
bW9kaWZpZXJzKSwgRXdrVXJsUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3RSZWYpLCBmcmFtZU5hbWUp
KTsKICAgICB9CiAKICAgICB2b2lkIGFjY2VwdCgpOwpAQCAtNTgsMTcgKzU3LDE3IEBAIHB1Ymxp
YzoKICAgICBFdmVudF9Nb3VzZV9CdXR0b24gbW91c2VCdXR0b24oKSBjb25zdDsKICAgICBFdmVu
dF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVycygpIGNvbnN0OwogICAgIGNvbnN0IGNoYXIqIGZyYW1l
TmFtZSgpIGNvbnN0OwotICAgIEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCgpIGNvbnN0OworICAg
IEV3a1VybFJlcXVlc3QqIHJlcXVlc3QoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBFd2tfTmF2
aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVy
LCBFd2tfTmF2aWdhdGlvbl9UeXBlIG5hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0b24g
bW91c2VCdXR0b24sIEV2ZW50X01vZGlmaWVyX0tleXMgbW9kaWZpZXJzLCBQYXNzUmVmUHRyPEV3
a19VcmxfUmVxdWVzdD4gcmVxdWVzdCwgY29uc3QgY2hhciogZnJhbWVOYW1lKTsKKyAgICBFd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBFd2tfTmF2aWdhdGlvbl9UeXBlIG5hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0
b24gbW91c2VCdXR0b24sIEV2ZW50X01vZGlmaWVyX0tleXMgbW9kaWZpZXJzLCBQYXNzUmVmUHRy
PEV3a1VybFJlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSk7CiAKICAgICBX
S1JldGFpblB0cjxXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWY+IG1fbGlzdGVuZXI7CiAgICAgYm9v
bCBtX2FjdGVkVXBvbkJ5Q2xpZW50OwogICAgIEV3a19OYXZpZ2F0aW9uX1R5cGUgbV9uYXZpZ2F0
aW9uVHlwZTsKICAgICBFdmVudF9Nb3VzZV9CdXR0b24gbV9tb3VzZUJ1dHRvbjsKICAgICBFdmVu
dF9Nb2RpZmllcl9LZXlzIG1fbW9kaWZpZXJzOwotICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+
IG1fcmVxdWVzdDsKKyAgICBSZWZQdHI8RXdrVXJsUmVxdWVzdD4gbV9yZXF1ZXN0OwogICAgIFdL
RWluYVNoYXJlZFN0cmluZyBtX2ZyYW1lTmFtZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCmluZGV4IDU1YTY4MDEu
Ljg3OTc5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXF1ZXN0LmNwcApAQCAtMzAsNTkgKzMwLDQ0IEBACiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKLUV3a19VcmxfUmVxdWVzdDo6RXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVz
dFJlZiByZXF1ZXN0UmVmKQorRXdrVXJsUmVxdWVzdDo6RXdrVXJsUmVxdWVzdChXS1VSTFJlcXVl
c3RSZWYgcmVxdWVzdFJlZikKICAgICA6IG1fdXJsKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlV
UkwocmVxdWVzdFJlZikpCiAgICAgLCBtX2ZpcnN0UGFydHkoQWRvcHRXSywgV0tVUkxSZXF1ZXN0
Q29weUZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3RSZWYpKQogICAgICwgbV9odHRwTWV0aG9k
KEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQTWV0aG9kKHJlcXVlc3RSZWYpKQogeyB9CiAK
LWNvbnN0IGNoYXIqIEV3a19VcmxfUmVxdWVzdDo6dXJsKCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3
a1VybFJlcXVlc3Q6OnVybCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdXJsOwogfQogCi1jb25z
dCBjaGFyKiBFd2tfVXJsX1JlcXVlc3Q6OmZpcnN0UGFydHkoKSBjb25zdAorY29uc3QgY2hhciog
RXdrVXJsUmVxdWVzdDo6Zmlyc3RQYXJ0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZmlyc3RQ
YXJ0eTsKIH0KIAotY29uc3QgY2hhciogRXdrX1VybF9SZXF1ZXN0OjpodHRwTWV0aG9kKCkgY29u
c3QKK2NvbnN0IGNoYXIqIEV3a1VybFJlcXVlc3Q6Omh0dHBNZXRob2QoKSBjb25zdAogewogICAg
IHJldHVybiBtX2h0dHBNZXRob2Q7CiB9CiAKLUV3a19VcmxfUmVxdWVzdCogZXdrX3VybF9yZXF1
ZXN0X3JlZihFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOwotICAgIHJlcXVlc3QtPnJlZigpOwotCi0gICAg
cmV0dXJuIHJlcXVlc3Q7Ci19Ci0KLXZvaWQgZXdrX3VybF9yZXF1ZXN0X3VucmVmKEV3a19Vcmxf
UmVxdWVzdCogcmVxdWVzdCkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihyZXF1
ZXN0KTsKLQotICAgIHJlcXVlc3QtPmRlcmVmKCk7Ci19Ci0KIGNvbnN0IGNoYXIqIGV3a191cmxf
cmVxdWVzdF91cmxfZ2V0KGNvbnN0IEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7CisgICAgRVdLX09CSl9H
RVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJsUmVxdWVzdCwgcmVxdWVzdCwgaW1wbCwgMCk7
CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+dXJsKCk7CisgICAgcmV0dXJuIGltcGwtPnVybCgpOwog
fQogCiBjb25zdCBjaGFyKiBld2tfcmVxdWVzdF9jb29raWVzX2ZpcnN0X3BhcnR5X2dldChjb25z
dCBFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHJlcXVlc3QsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNv
bnN0IEV3a1VybFJlcXVlc3QsIHJlcXVlc3QsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIHJlcXVl
c3QtPmZpcnN0UGFydHkoKTsKKyAgICByZXR1cm4gaW1wbC0+Zmlyc3RQYXJ0eSgpOwogfQogCiBj
b25zdCBjaGFyKiBld2tfdXJsX3JlcXVlc3RfaHR0cF9tZXRob2RfZ2V0KGNvbnN0IEV3a19Vcmxf
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
cmVxdWVzdCwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJs
UmVxdWVzdCwgcmVxdWVzdCwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+aHR0cE1l
dGhvZCgpOworICAgIHJldHVybiBpbXBsLT5odHRwTWV0aG9kKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oCmluZGV4IDk4N2Jk
OGYuLmU2OTZkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdC5oCkBAIC0zNywyNiArMzcsMTIgQEAKIGV4dGVybiAiQyIgewogI2Vu
ZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfVXJsX1JlcXVlc3QgKi8KLXR5
cGVkZWYgc3RydWN0IEV3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVlc3Q7Ci0KIC8qKgotICog
SW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KLSAqCi0g
KiBAcGFyYW0gcmVxdWVzdCB0aGUgVVJMIHJlcXVlc3Qgb2JqZWN0IHRvIGluY3JlYXNlIHRoZSBy
ZWZlcmVuY2UgY291bnQKLSAqCi0gKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgb2JqZWN0IG9u
IHN1Y2Nlc3MsIEBjIE5VTEwgb3RoZXJ3aXNlLgotICovCi1FQVBJIEV3a19VcmxfUmVxdWVzdCAq
ZXdrX3VybF9yZXF1ZXN0X3JlZihFd2tfVXJsX1JlcXVlc3QgKnJlcXVlc3QpOwotCi0vKioKLSAq
IERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3Np
Ymx5IGZyZWVpbmcgaXQuCi0gKgotICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IHJlYWNoZXMg
MCwgdGhlIFVSTCByZXF1ZXN0IGlzIGZyZWVkLgorICogRGVjbGFyZSBFd2tfVXJsX1JlcXVlc3Qg
YXMgRXdrX09iamVjdC4KICAqCi0gKiBAcGFyYW0gcmVxdWVzdCB0aGUgVVJMIHJlcXVlc3Qgb2Jq
ZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqIEBzZWUgRXdrX09iamVjdAog
ICovCi1FQVBJIHZvaWQgZXdrX3VybF9yZXF1ZXN0X3VucmVmKEV3a19VcmxfUmVxdWVzdCAqcmVx
dWVzdCk7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19VcmxfUmVxdWVzdDsKIAogLyoq
CiAgKiBRdWVyeSBVUkwgZm9yIHRoaXMgcmVxdWVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4
IDMxYTFiZWEuLmU5OTExMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtMzAsMTcgKzMwLDIw
IEBACiAjaW5jbHVkZSAiV0tVUkwuaCIKICNpbmNsdWRlICJXS1VSTFJlcXVlc3QuaCIKICNpbmNs
dWRlICJXZWJVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSAiZXdrX29iamVjdF9wcml2YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogLyoqCi0gKiBcc3RydWN0ICBFd2tfVXJsX1Jl
cXVlc3QKKyAqIFxzdHJ1Y3QgIEV3a1VybFJlcXVlc3QKICAqIEBicmllZiAgIENvbnRhaW5zIHRo
ZSBVUkwgcmVxdWVzdCBkYXRhLgogICovCi1jbGFzcyBFd2tfVXJsX1JlcXVlc3QgOiBwdWJsaWMg
UmVmQ291bnRlZDxFd2tfVXJsX1JlcXVlc3Q+IHsKK2NsYXNzIEV3a1VybFJlcXVlc3QgOiBwdWJs
aWMgRXdrX09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrX1VybF9S
ZXF1ZXN0PiBjcmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCisgICAgRVdLX09CSkVD
VF9ERUNMQVJFKEV3a1VybFJlcXVlc3QpCisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxS
ZXF1ZXN0PiBjcmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19VcmxfUmVxdWVzdChyZXF1ZXN0UmVmKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrVXJsUmVxdWVzdChyZXF1ZXN0UmVmKSk7CiAgICAg
fQogCiAgICAgY29uc3QgY2hhciogdXJsKCkgY29uc3Q7CkBAIC00OCw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBjaGFyKiBodHRwTWV0aG9kKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgRXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKTsKKyAg
ICBleHBsaWNpdCBFd2tVcmxSZXF1ZXN0KFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKTsKIAog
ICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX3VybDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV9m
aXJzdFBhcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3Jlc3BvbnNlLmNwcAppbmRleCAwNGUxNzZiLi42ZDViODc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcApA
QCAtMzEsNzEgKzMxLDU2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a19Vcmxf
UmVzcG9uc2U6OkV3a19VcmxfUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgY29yZVJlc3BvbnNlKQorRXdrVXJsUmVzcG9uc2U6OkV3a1VybFJlc3BvbnNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIGNvcmVSZXNwb25zZSkKICAgICA6IG1fY29yZVJlc3Bv
bnNlKGNvcmVSZXNwb25zZSkKICAgICAsIG1fdXJsKEFkb3B0V0ssIFdLVVJMUmVzcG9uc2VDb3B5
VVJMKFdlYktpdDo6dG9BUEkoY29yZVJlc3BvbnNlKSkpCiAgICAgLCBtX21pbWVUeXBlKEFkb3B0
V0ssIFdLVVJMUmVzcG9uc2VDb3B5TUlNRVR5cGUoV2ViS2l0Ojp0b0FQSShjb3JlUmVzcG9uc2Up
KSkKIHsgfQogCi1pbnQgRXdrX1VybF9SZXNwb25zZTo6aHR0cFN0YXR1c0NvZGUoKSBjb25zdAor
aW50IEV3a1VybFJlc3BvbnNlOjpodHRwU3RhdHVzQ29kZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fY29yZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CiB9CiAKLWNvbnN0IGNoYXIqIEV3a19V
cmxfUmVzcG9uc2U6OnVybCgpIGNvbnN0Citjb25zdCBjaGFyKiBFd2tVcmxSZXNwb25zZTo6dXJs
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV91cmw7CiB9CiAKLWNvbnN0IGNoYXIqIEV3a19Vcmxf
UmVzcG9uc2U6Om1pbWVUeXBlKCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3a1VybFJlc3BvbnNlOjpt
aW1lVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbWltZVR5cGU7CiB9CiAKLXVuc2lnbmVk
IGxvbmcgRXdrX1VybF9SZXNwb25zZTo6Y29udGVudExlbmd0aCgpIGNvbnN0Cit1bnNpZ25lZCBs
b25nIEV3a1VybFJlc3BvbnNlOjpjb250ZW50TGVuZ3RoKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9jb3JlUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCk7CiB9CiAKLUV3a19VcmxfUmVz
cG9uc2UqIGV3a191cmxfcmVzcG9uc2VfcmVmKEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQot
ewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7Ci0gICAg
cmVzcG9uc2UtPnJlZigpOwotCi0gICAgcmV0dXJuIHJlc3BvbnNlOwotfQotCi12b2lkIGV3a191
cmxfcmVzcG9uc2VfdW5yZWYoRXdrX1VybF9SZXNwb25zZSogcmVzcG9uc2UpCi17Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocmVzcG9uc2UpOwotCi0gICAgcmVzcG9uc2UtPmRlcmVm
KCk7Ci19Ci0KIGNvbnN0IGNoYXIqIGV3a191cmxfcmVzcG9uc2VfdXJsX2dldChjb25zdCBFd2tf
VXJsX1Jlc3BvbnNlKiByZXNwb25zZSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwocmVzcG9uc2UsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0
IEV3a1VybFJlc3BvbnNlLCByZXNwb25zZSwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gcmVzcG9u
c2UtPnVybCgpOworICAgIHJldHVybiBpbXBsLT51cmwoKTsKIH0KIAogaW50IGV3a191cmxfcmVz
cG9uc2Vfc3RhdHVzX2NvZGVfZ2V0KGNvbnN0IEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQog
ewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7CisgICAg
RVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJsUmVzcG9uc2UsIHJlc3BvbnNl
LCBpbXBsLCAwKTsKIAotICAgIHJldHVybiByZXNwb25zZS0+aHR0cFN0YXR1c0NvZGUoKTsKKyAg
ICByZXR1cm4gaW1wbC0+aHR0cFN0YXR1c0NvZGUoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3Vy
bF9yZXNwb25zZV9taW1lX3R5cGVfZ2V0KGNvbnN0IEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNl
KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7Cisg
ICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJsUmVzcG9uc2UsIHJlc3Bv
bnNlLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiByZXNwb25zZS0+bWltZVR5cGUoKTsKKyAgICBy
ZXR1cm4gaW1wbC0+bWltZVR5cGUoKTsKIH0KIAogdW5zaWduZWQgbG9uZyBld2tfdXJsX3Jlc3Bv
bnNlX2NvbnRlbnRfbGVuZ3RoX2dldChjb25zdCBFd2tfVXJsX1Jlc3BvbnNlKiByZXNwb25zZSkK
IHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVzcG9uc2UsIDApOworICAg
IEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a1VybFJlc3BvbnNlLCByZXNwb25z
ZSwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gcmVzcG9uc2UtPmNvbnRlbnRMZW5ndGgoKTsKKyAg
ICByZXR1cm4gaW1wbC0+Y29udGVudExlbmd0aCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oCmluZGV4IGNhZDhlMGYuLjJm
MzQxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3Jlc3BvbnNlLmgKQEAgLTM3LDI2ICszNywxMiBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYK
IAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19VcmxfUmVzcG9uc2UgKi8KLXR5cGVk
ZWYgc3RydWN0IEV3a19VcmxfUmVzcG9uc2UgRXdrX1VybF9SZXNwb25zZTsKLQogLyoqCi0gKiBJ
bmNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgotICoKLSAq
IEBwYXJhbSByZXNwb25zZSB0aGUgVVJMIHJlc3BvbnNlIG9iamVjdCB0byBpbmNyZWFzZSB0aGUg
cmVmZXJlbmNlIGNvdW50Ci0gKgotICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG9iamVjdCBv
biBzdWNjZXNzLCBAYyBOVUxMIG90aGVyd2lzZS4KLSAqLwotRUFQSSBFd2tfVXJsX1Jlc3BvbnNl
ICpld2tfdXJsX3Jlc3BvbnNlX3JlZihFd2tfVXJsX1Jlc3BvbnNlICpyZXNwb25zZSk7Ci0KLS8q
KgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwg
cG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgcmVh
Y2hlcyAwLCB0aGUgVVJMIHJlc3BvbnNlIGlzIGZyZWVkLgorICogRGVjbGFyZSBFd2tfVXJsX1Jl
c3BvbnNlIGFzIEV3a19PYmplY3QuCiAgKgotICogQHBhcmFtIHJlc3BvbnNlIHRoZSBVUkwgcmVz
cG9uc2Ugb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqIEBzZWUgRXdr
X09iamVjdAogICovCi1FQVBJIHZvaWQgZXdrX3VybF9yZXNwb25zZV91bnJlZihFd2tfVXJsX1Jl
c3BvbnNlICpyZXNwb25zZSk7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19VcmxfUmVz
cG9uc2U7CiAKIC8qKgogICogUXVlcnkgVVJMIGZvciB0aGlzIHJlc3BvbnNlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNl
X3ByaXZhdGUuaAppbmRleCAyZDkxOGE4Li5mYzUxMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUu
aApAQCAtMjksMjEgKzI5LDI0IEBACiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAi
V0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkxSZXNwb25zZS5oIgorI2luY2x1
ZGUgImV3a19vYmplY3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNw
b25zZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIC8qKgotICogXHN0cnVjdCAg
RXdrX1VybF9SZXNwb25zZQorICogXHN0cnVjdCAgRXdrVXJsUmVzcG9uc2UKICAqIEBicmllZiAg
IENvbnRhaW5zIHRoZSBVUkwgcmVzcG9uc2UgZGF0YS4KICAqLwotY2xhc3MgRXdrX1VybF9SZXNw
b25zZSA6IHB1YmxpYyBSZWZDb3VudGVkPEV3a19VcmxfUmVzcG9uc2U+IHsKK2NsYXNzIEV3a1Vy
bFJlc3BvbnNlIDogcHVibGljIEV3a19PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEV3a19VcmxfUmVzcG9uc2U+IGNyZWF0ZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9u
c2UpCisgICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3a1VybFJlc3BvbnNlKQorCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXdrVXJsUmVzcG9uc2U+IGNyZWF0ZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVz
cG9uc2UpCiAgICAgewogICAgICAgICBpZiAoIXdrUmVzcG9uc2UpCiAgICAgICAgICAgICByZXR1
cm4gMDsKIAotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19VcmxfUmVzcG9uc2UoV2Vi
S2l0Ojp0b0ltcGwod2tSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlc3BvbnNlKFdlYktpdDo6dG9JbXBsKHdrUmVzcG9u
c2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkpKTsKICAgICB9CiAKICAgICBpbnQgaHR0cFN0YXR1c0Nv
ZGUoKSBjb25zdDsKQEAgLTUyLDcgKzU1LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxvbmcg
Y29udGVudExlbmd0aCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a19Vcmxf
UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgY29yZVJlc3BvbnNlKTsK
KyAgICBleHBsaWNpdCBFd2tVcmxSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiBjb3JlUmVzcG9uc2UpOwogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX2Nv
cmVSZXNwb25zZTsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV91cmw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3Bw
CmluZGV4IDFhZGE3NjMuLmMwMDhhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIHZvaWQgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlCiAgICAgaWYgKCFoaXN0b3J5Q2xpZW50LT5tX25h
dmlnYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fRGF0
YT4gbmF2aWdhdGlvbkRhdGFFd2sgPSBFd2tfTmF2aWdhdGlvbl9EYXRhOjpjcmVhdGUobmF2aWdh
dGlvbkRhdGEpOworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBuYXZpZ2F0aW9uRGF0
YUV3ayA9IEV3a05hdmlnYXRpb25EYXRhOjpjcmVhdGUobmF2aWdhdGlvbkRhdGEpOwogICAgIGhp
c3RvcnlDbGllbnQtPm1fbmF2aWdhdGUoRXdrVmlld0ltcGw6OnZpZXdGcm9tUGFnZVZpZXdNYXAo
cGFnZSksIG5hdmlnYXRpb25EYXRhRXdrLmdldCgpLCBoaXN0b3J5Q2xpZW50LT5tX3VzZXJEYXRh
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9h
ZE1hbmFnZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1h
bmFnZXJFZmwuY3BwCmluZGV4IDFhYTY2OGYuLjJkMzg1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXJFZmw6OmRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRl
eHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG8KIHsKICAgICBFd2tfRG93bmxvYWRfSm9iKiBk
b3dubG9hZCA9IHRvRG93bmxvYWRNYW5hZ2VyRWZsKGNsaWVudEluZm8pLT5kb3dubG9hZEpvYih0
b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsK
LSAgICBkb3dubG9hZC0+c2V0UmVzcG9uc2UoRXdrX1VybF9SZXNwb25zZTo6Y3JlYXRlKHdrUmVz
cG9uc2UpKTsKKyAgICBkb3dubG9hZC0+c2V0UmVzcG9uc2UoRXdrVXJsUmVzcG9uc2U6OmNyZWF0
ZSh3a1Jlc3BvbnNlKSk7CiB9CiAKIHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRDcmVhdGVE
ZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJp
bmdSZWYgLypwYXRoKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9hZENsaWVudEVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9hZENsaWVudEVmbC5jcHAKaW5kZXgg
YmMwMTQ4MS4uYTViNjg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9SZXNvdXJjZUxvYWRDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUmVzb3VyY2VMb2FkQ2xpZW50RWZsLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFJl
c291cmNlTG9hZENsaWVudEVmbDo6ZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tQYWdlUmVm
LCBXS0ZyYW1lUmVmIHdrRgogICAgIC8vIEtlZXAgdGhlIHJlc291cmNlIGludGVybmFsbHkgdG8g
cmV1c2UgaXQgbGF0ZXIuCiAgICAgcmVzb3VyY2VMb2FkQ2xpZW50LT5tX2xvYWRpbmdSZXNvdXJj
ZXNNYXAuYWRkKHJlc291cmNlSWRlbnRpZmllciwgcmVzb3VyY2UpOwogCi0gICAgUmVmUHRyPEV3
a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRlKHdrUmVxdWVz
dCk7CisgICAgUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IEV3a1VybFJlcXVlc3Q6
OmNyZWF0ZSh3a1JlcXVlc3QpOwogICAgIEV3a19SZXNvdXJjZV9SZXF1ZXN0IHJlc291cmNlUmVx
dWVzdCA9IHtyZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5nZXQoKSwgMH07CiAgICAgcmVzb3VyY2VM
b2FkQ2xpZW50LT5tX3ZpZXdJbXBsLT5zbWFydENhbGxiYWNrPFJlc291cmNlTG9hZFN0YXJ0ZWQ+
KCkuY2FsbCgmcmVzb3VyY2VSZXF1ZXN0KTsKIH0KQEAgLTcxLDggKzcxLDggQEAgdm9pZCBSZXNv
dXJjZUxvYWRDbGllbnRFZmw6OmRpZFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2UoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmLCB1aW4KICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0ID0gRXdrX1VybF9SZXF1ZXN0OjpjcmVh
dGUod2tSZXF1ZXN0KTsKLSAgICBSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4gcmVkaXJlY3RSZXNw
b25zZSA9IEV3a19VcmxfUmVzcG9uc2U6OmNyZWF0ZSh3a1JlZGlyZWN0UmVzcG9uc2UpOworICAg
IFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3QgPSBFd2tVcmxSZXF1ZXN0OjpjcmVhdGUo
d2tSZXF1ZXN0KTsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4gcmVkaXJlY3RSZXNwb25z
ZSA9IEV3a1VybFJlc3BvbnNlOjpjcmVhdGUod2tSZWRpcmVjdFJlc3BvbnNlKTsKICAgICBFd2tf
UmVzb3VyY2VfUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgPSB7cmVzb3VyY2UuZ2V0KCksIHJlcXVl
c3QuZ2V0KCksIHJlZGlyZWN0UmVzcG9uc2UuZ2V0KCl9OwogICAgIHJlc291cmNlTG9hZENsaWVu
dC0+bV92aWV3SW1wbC0+c21hcnRDYWxsYmFjazxSZXNvdXJjZVJlcXVlc3RTZW50PigpLmNhbGwo
JnJlc291cmNlUmVxdWVzdCk7CiB9CkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
Q2xpZW50RWZsOjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYsCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRy
PEV3a19VcmxfUmVzcG9uc2U+IHJlc3BvbnNlID0gRXdrX1VybF9SZXNwb25zZTo6Y3JlYXRlKHdr
UmVzcG9uc2UpOworICAgIFJlZlB0cjxFd2tfVXJsX1Jlc3BvbnNlPiByZXNwb25zZSA9IEV3a1Vy
bFJlc3BvbnNlOjpjcmVhdGUod2tSZXNwb25zZSk7CiAgICAgRXdrX1Jlc291cmNlX0xvYWRfUmVz
cG9uc2UgcmVzb3VyY2VMb2FkUmVzcG9uc2UgPSB7cmVzb3VyY2UuZ2V0KCksIHJlc3BvbnNlLmdl
dCgpfTsKICAgICByZXNvdXJjZUxvYWRDbGllbnQtPm1fdmlld0ltcGwtPnNtYXJ0Q2FsbGJhY2s8
UmVzb3VyY2VMb2FkUmVzcG9uc2U+KCkuY2FsbCgmcmVzb3VyY2VMb2FkUmVzcG9uc2UpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172313</attachid>
            <date>2012-11-05 03:54:30 -0800</date>
            <delta_ts>2012-11-05 04:39:30 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug101205</filename>
            <type>text/plain</type>
            <size>28556</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDE0YTFiMTdmMDdhYTdjY2RlYTBiMzZlYWVhOTlkNmM5MjcyYTc1MmUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
TW9uIE5vdiA1IDEzOjQ3OjUzIDIwMTIgKzAyMDAKCiAgICBidWcxMDEyMDUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNTRkNWYyNS4uMzIwOGM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEx
LTA1ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gTWFrZSBFd2tfVXJsX1JlcXVlc3QsIEV3a19VcmxfUmVzcG9u
c2UsIEV3a19OYXZpZ2F0aW9uX0RhdGEgIEV3a19PYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEyMDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFd2tfVXJsX1JlcXVlc3QsIEV3a19VcmxfUmVz
cG9uc2UsIEV3a19OYXZpZ2F0aW9uX0RhdGEgYXJlIHVzaW5nIGNvbW1vbiBFd2tfT2JqZWN0IGlu
dGVyZmFjZSBub3cuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwOgorICAg
ICAgICAoRXdrX0Rvd25sb2FkX0pvYjo6cmVxdWVzdCk6CisgICAgICAgIChFd2tfRG93bmxvYWRf
Sm9iOjpyZXNwb25zZSk6CisgICAgICAgIChFd2tfRG93bmxvYWRfSm9iOjpzZXRSZXNwb25zZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmg6
CisgICAgICAgIChFd2tfRG93bmxvYWRfSm9iKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcDoKKyAgICAgICAgKEV3a05hdmlnYXRpb25EYXRhOjpF
d2tOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChFd2tOYXZpZ2F0aW9uRGF0YTo6b3JpZ2luYWxS
ZXF1ZXN0KToKKyAgICAgICAgKEV3a05hdmlnYXRpb25EYXRhOjp0aXRsZSk6CisgICAgICAgIChF
d2tOYXZpZ2F0aW9uRGF0YTo6dXJsKToKKyAgICAgICAgKGV3a19uYXZpZ2F0aW9uX2RhdGFfdGl0
bGVfZ2V0KToKKyAgICAgICAgKGV3a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9n
ZXQpOgorICAgICAgICAoZXdrX25hdmlnYXRpb25fZGF0YV91cmxfZ2V0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmg6CisgICAgICAgIChFd2tO
YXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChFd2tOYXZpZ2F0aW9uRGF0YTo6Y3JlYXRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24u
Y3BwOgorICAgICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpFd2tfTmF2aWdh
dGlvbl9Qb2xpY3lfRGVjaXNpb24pOgorICAgICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5X0Rl
Y2lzaW9uOjpyZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX05hdmlnYXRpb25f
UG9saWN5X0RlY2lzaW9uOjpjcmVhdGUpOgorICAgICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Qu
Y3BwOgorICAgICAgICAoRXdrVXJsUmVxdWVzdDo6RXdrVXJsUmVxdWVzdCk6CisgICAgICAgIChF
d2tVcmxSZXF1ZXN0Ojp1cmwpOgorICAgICAgICAoRXdrVXJsUmVxdWVzdDo6Zmlyc3RQYXJ0eSk6
CisgICAgICAgIChFd2tVcmxSZXF1ZXN0OjpodHRwTWV0aG9kKToKKyAgICAgICAgKGV3a191cmxf
cmVxdWVzdF91cmxfZ2V0KToKKyAgICAgICAgKGV3a19yZXF1ZXN0X2Nvb2tpZXNfZmlyc3RfcGFy
dHlfZ2V0KToKKyAgICAgICAgKGV3a191cmxfcmVxdWVzdF9odHRwX21ldGhvZF9nZXQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmg6CisgICAgICAgIChFd2tV
cmxSZXF1ZXN0KToKKyAgICAgICAgKEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHA6CisgICAgICAgIChFd2tVcmxS
ZXNwb25zZTo6RXdrVXJsUmVzcG9uc2UpOgorICAgICAgICAoRXdrVXJsUmVzcG9uc2U6Omh0dHBT
dGF0dXNDb2RlKToKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlOjp1cmwpOgorICAgICAgICAoRXdr
VXJsUmVzcG9uc2U6Om1pbWVUeXBlKToKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlOjpjb250ZW50
TGVuZ3RoKToKKyAgICAgICAgKGV3a191cmxfcmVzcG9uc2VfdXJsX2dldCk6CisgICAgICAgIChl
d2tfdXJsX3Jlc3BvbnNlX3N0YXR1c19jb2RlX2dldCk6CisgICAgICAgIChld2tfdXJsX3Jlc3Bv
bnNlX21pbWVfdHlwZV9nZXQpOgorICAgICAgICAoZXdrX3VybF9yZXNwb25zZV9jb250ZW50X2xl
bmd0aF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2Uu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUu
aDoKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlKToKKyAgICAgICAgKEV3a1VybFJlc3BvbnNlOjpj
cmVhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6ZGlkTmF2aWdh
dGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvRG93bmxvYWRN
YW5hZ2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUmVzb3VyY2VMb2FkQ2xp
ZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkQ2xpZW50RWZsOjpkaWRJ
bml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZENs
aWVudEVmbDo6ZGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZENsaWVudEVmbDo6ZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UpOgorCiAy
MDEyLTExLTA1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+
CiAKICAgICAgICAgW0VGTF1bV0syXSBUaGUgaWNvbiBkYXRhYmFzZSBwYXRoIHNob3VsZCBiZSBz
ZXQgYnkgdGhlIGNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXdJbXBsLmgKaW5kZXggZWQ1OTkyNi4uOGJmNjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCkBAIC04MCw4ICs4MCw2IEBAIGNsYXNz
IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsKIGNsYXNzIEV3a19SZXNvdXJjZTsKIGNs
YXNzIEV3a19Qb3B1cF9NZW51OwogY2xhc3MgRXdrX1NldHRpbmdzOwotY2xhc3MgRXdrX1VybF9S
ZXF1ZXN0OwotY2xhc3MgRXdrX1VybF9SZXNwb25zZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIHR5cGVkZWYgc3RydWN0IF9FdmFzX0dMX0NvbnRleHQgRXZhc19HTF9Db250
ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rv
d25sb2FkX2pvYi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93
bmxvYWRfam9iLmNwcAppbmRleCBjZmU2YmI4Li41MGMzNGI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcApAQCAtOTks
MTEgKzk5LDExIEBAIEV3a19VcmxfUmVxdWVzdCogZXdrX2Rvd25sb2FkX2pvYl9yZXF1ZXN0X2dl
dChjb25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKICAgICByZXR1cm4gZG93bmxvYWQt
PnJlcXVlc3QoKTsKIH0KIAotRXdrX1VybF9SZXF1ZXN0KiBFd2tfRG93bmxvYWRfSm9iOjpyZXF1
ZXN0KCkgY29uc3QKK0V3a1VybFJlcXVlc3QqIEV3a19Eb3dubG9hZF9Kb2I6OnJlcXVlc3QoKSBj
b25zdAogewogICAgIGlmICghbV9yZXF1ZXN0KSB7CiAgICAgICAgIFdLUmV0YWluUHRyPFdLVVJM
UmVxdWVzdFJlZj4gd2tVUkxSZXF1ZXN0KEFkb3B0V0ssIHRvQVBJKFdlYlVSTFJlcXVlc3Q6OmNy
ZWF0ZShtX2Rvd25sb2FkUHJveHktPnJlcXVlc3QoKSkubGVha1JlZigpKSk7Ci0gICAgICAgIG1f
cmVxdWVzdCA9IEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRlKHdrVVJMUmVxdWVzdC5nZXQoKSk7Cisg
ICAgICAgIG1fcmVxdWVzdCA9IEV3a1VybFJlcXVlc3Q6OmNyZWF0ZSh3a1VSTFJlcXVlc3QuZ2V0
KCkpOwogICAgIH0KIAogICAgIHJldHVybiBtX3JlcXVlc3QuZ2V0KCk7CkBAIC0xMTYsNyArMTE2
LDcgQEAgRXdrX1VybF9SZXNwb25zZSogZXdrX2Rvd25sb2FkX2pvYl9yZXNwb25zZV9nZXQoY29u
c3QgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQKICAgICByZXR1cm4gZG93bmxvYWQtPnJlc3Bv
bnNlKCk7CiB9CiAKLUV3a19VcmxfUmVzcG9uc2UqIEV3a19Eb3dubG9hZF9Kb2I6OnJlc3BvbnNl
KCkgY29uc3QKK0V3a1VybFJlc3BvbnNlKiBFd2tfRG93bmxvYWRfSm9iOjpyZXNwb25zZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcmVzcG9uc2UuZ2V0KCk7CiB9CkBAIC0yMjIsNyArMjIyLDcg
QEAgZG91YmxlIEV3a19Eb3dubG9hZF9Kb2I6OmVsYXBzZWRUaW1lKCkgY29uc3QKICAqIEBpbnRl
cm5hbAogICogU2V0cyB0aGUgVVJMIEBhIHJlc3BvbnNlIGZvciB0aGlzIEBhIGRvd25sb2FkLgog
ICovCi12b2lkIEV3a19Eb3dubG9hZF9Kb2I6OnNldFJlc3BvbnNlKFBhc3NSZWZQdHI8RXdrX1Vy
bF9SZXNwb25zZT4gcmVzcG9uc2UpCit2b2lkIEV3a19Eb3dubG9hZF9Kb2I6OnNldFJlc3BvbnNl
KFBhc3NSZWZQdHI8RXdrVXJsUmVzcG9uc2U+IHJlc3BvbnNlKQogewogICAgIEFTU0VSVChyZXNw
b25zZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKaW5kZXggMDBmYzc2Zi4uNDdkMmYyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pv
Yl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rv
d25sb2FkX2pvYl9wcml2YXRlLmgKQEAgLTUzLDkgKzUzLDkgQEAgcHVibGljOgogICAgIEV3a19E
b3dubG9hZF9Kb2JfU3RhdGUgc3RhdGUoKSBjb25zdDsKICAgICB2b2lkIHNldFN0YXRlKEV3a19E
b3dubG9hZF9Kb2JfU3RhdGUpOwogCi0gICAgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KCkgY29u
c3Q7Ci0gICAgRXdrX1VybF9SZXNwb25zZSogcmVzcG9uc2UoKSBjb25zdDsKLSAgICB2b2lkIHNl
dFJlc3BvbnNlKFBhc3NSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4pOworICAgIEV3a1VybFJlcXVl
c3QqIHJlcXVlc3QoKSBjb25zdDsKKyAgICBFd2tVcmxSZXNwb25zZSogcmVzcG9uc2UoKSBjb25z
dDsKKyAgICB2b2lkIHNldFJlc3BvbnNlKFBhc3NSZWZQdHI8RXdrVXJsUmVzcG9uc2U+KTsKIAog
ICAgIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZXN0aW5h
dGlvbihjb25zdCBjaGFyKiBkZXN0aW5hdGlvbik7CkBAIC03NSw4ICs3NSw4IEBAIHByaXZhdGU6
CiAgICAgV2ViS2l0OjpEb3dubG9hZFByb3h5KiBtX2Rvd25sb2FkUHJveHk7CiAgICAgRXdrVmll
d0ltcGwqIG1fdmlld0ltcGw7CiAgICAgRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSBtX3N0YXRlOwot
ICAgIG11dGFibGUgUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gbV9yZXF1ZXN0OwotICAgIFJlZlB0
cjxFd2tfVXJsX1Jlc3BvbnNlPiBtX3Jlc3BvbnNlOworICAgIG11dGFibGUgUmVmUHRyPEV3a1Vy
bFJlcXVlc3Q+IG1fcmVxdWVzdDsKKyAgICBSZWZQdHI8RXdrVXJsUmVzcG9uc2U+IG1fcmVzcG9u
c2U7CiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX2VuZFRpbWU7CiAgICAg
dWludDY0X3QgbV9kb3dubG9hZGVkOyAvLyBsZW5ndGggYWxyZWFkeSBkb3dubG9hZGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9k
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9u
X2RhdGEuY3BwCmluZGV4IDNkMWYwNWYuLmEyYWU5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwCkBAIC0z
MCw2MCArMzAsNDQgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotRXdrX05hdmlnYXRp
b25fRGF0YTo6RXdrX05hdmlnYXRpb25fRGF0YShXS05hdmlnYXRpb25EYXRhUmVmIGRhdGFSZWYp
Ci0gICAgOiBtX3JlcXVlc3QoRXdrX1VybF9SZXF1ZXN0OjpjcmVhdGUoYWRvcHRXSyhXS05hdmln
YXRpb25EYXRhQ29weU9yaWdpbmFsUmVxdWVzdChkYXRhUmVmKSkuZ2V0KCkpKQorRXdrTmF2aWdh
dGlvbkRhdGE6OkV3a05hdmlnYXRpb25EYXRhKFdLTmF2aWdhdGlvbkRhdGFSZWYgZGF0YVJlZikK
KyAgICA6IG1fcmVxdWVzdChFd2tVcmxSZXF1ZXN0OjpjcmVhdGUoYWRvcHRXSyhXS05hdmlnYXRp
b25EYXRhQ29weU9yaWdpbmFsUmVxdWVzdChkYXRhUmVmKSkuZ2V0KCkpKQogICAgICwgbV90aXRs
ZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29weVRpdGxlKGRhdGFSZWYpKQogICAgICwgbV91
cmwoQWRvcHRXSywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlVUkwoZGF0YVJlZikpCiB7IH0KIAotRXdr
X1VybF9SZXF1ZXN0KiBFd2tfTmF2aWdhdGlvbl9EYXRhOjpvcmlnaW5hbFJlcXVlc3QoKSBjb25z
dAorRXdrVXJsUmVxdWVzdCogRXdrTmF2aWdhdGlvbkRhdGE6Om9yaWdpbmFsUmVxdWVzdCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcmVxdWVzdC5nZXQoKTsKIH0KIAotY29uc3QgY2hhciogRXdr
X05hdmlnYXRpb25fRGF0YTo6dGl0bGUoKSBjb25zdAorY29uc3QgY2hhciogRXdrTmF2aWdhdGlv
bkRhdGE6OnRpdGxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV90aXRsZTsKIH0KIAotY29uc3Qg
Y2hhciogRXdrX05hdmlnYXRpb25fRGF0YTo6dXJsKCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3a05h
dmlnYXRpb25EYXRhOjp1cmwoKSBjb25zdAogewogICAgIHJldHVybiBtX3VybDsKIH0KIAotRXdr
X05hdmlnYXRpb25fRGF0YSogZXdrX25hdmlnYXRpb25fZGF0YV9yZWYoRXdrX05hdmlnYXRpb25f
RGF0YSogZGF0YSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGF0YSwg
MCk7Ci0KLSAgICBkYXRhLT5yZWYoKTsKLQotICAgIHJldHVybiBkYXRhOwotfQotCi12b2lkIGV3
a19uYXZpZ2F0aW9uX2RhdGFfdW5yZWYoRXdrX05hdmlnYXRpb25fRGF0YSogZGF0YSkKLXsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihkYXRhKTsKLQotICAgIGRhdGEtPmRlcmVmKCk7
Ci19Ci0KIGNvbnN0IGNoYXIqIGV3a19uYXZpZ2F0aW9uX2RhdGFfdGl0bGVfZ2V0KGNvbnN0IEV3
a19OYXZpZ2F0aW9uX0RhdGEqIGRhdGEpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKGRhdGEsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3
a05hdmlnYXRpb25EYXRhLCBkYXRhLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkYXRhLT50aXRs
ZSgpOworICAgIHJldHVybiBpbXBsLT50aXRsZSgpOwogfQogCiBFd2tfVXJsX1JlcXVlc3QqIGV3
a19uYXZpZ2F0aW9uX2RhdGFfb3JpZ2luYWxfcmVxdWVzdF9nZXQoY29uc3QgRXdrX05hdmlnYXRp
b25fRGF0YSogZGF0YSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZGF0
YSwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrTmF2aWdhdGlv
bkRhdGEsIGRhdGEsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIGRhdGEtPm9yaWdpbmFsUmVxdWVz
dCgpOworICAgIHJldHVybiBpbXBsLT5vcmlnaW5hbFJlcXVlc3QoKTsKIH0KIAogY29uc3QgY2hh
ciogZXdrX25hdmlnYXRpb25fZGF0YV91cmxfZ2V0KGNvbnN0IEV3a19OYXZpZ2F0aW9uX0RhdGEq
IGRhdGEpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRhdGEsIDApOwor
ICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a05hdmlnYXRpb25EYXRhLCBk
YXRhLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBkYXRhLT51cmwoKTsKKyAgICByZXR1cm4gaW1w
bC0+dXJsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmgKaW5kZXggYjNiNWMyNi4uMTZmN2JjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2Rh
dGEuaApAQCAtMzgsMjYgKzM4LDEyIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3Jl
YXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX05hdmlnYXRpb25fRGF0YSAqLwotdHlwZWRlZiBzdHJ1
Y3QgRXdrX05hdmlnYXRpb25fRGF0YSBFd2tfTmF2aWdhdGlvbl9EYXRhOwotCiAvKioKLSAqIElu
Y3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCi0gKgotICog
QHBhcmFtIGRhdGEgdGhlIG5hdmlnYXRpb24gZGF0YSBvYmplY3QgdG8gaW5jcmVhc2UgdGhlIHJl
ZmVyZW5jZSBjb3VudAotICoKLSAqIEByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBvYmplY3Qgb24g
c3VjY2VzcywgQGMgTlVMTCBvdGhlcndpc2UuCi0gKi8KLUVBUEkgRXdrX05hdmlnYXRpb25fRGF0
YSAqZXdrX25hdmlnYXRpb25fZGF0YV9yZWYoRXdrX05hdmlnYXRpb25fRGF0YSAqZGF0YSk7Ci0K
LS8qKgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVj
dCwgcG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQg
cmVhY2hlcyAwLCB0aGUgb2JqZWN0IGlzIGZyZWVkLgorICogRGVjbGFyZSBFd2tfTmF2aWdhdGlv
bl9EYXRhIGFzIEV3a19PYmplY3QuCiAgKgotICogQHBhcmFtIGRhdGEgdGhlIG5hdmlnYXRpb24g
ZGF0YSBvYmplY3QgdG8gZGVjcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICogQHNlZSBFd2tf
T2JqZWN0CiAgKi8KLUVBUEkgdm9pZCBld2tfbmF2aWdhdGlvbl9kYXRhX3VucmVmKEV3a19OYXZp
Z2F0aW9uX0RhdGEgKmRhdGEpOwordHlwZWRlZiBzdHJ1Y3QgRXdrX09iamVjdCBFd2tfTmF2aWdh
dGlvbl9EYXRhOwogCiAvKioKICAqIFJldHVybnMgdGl0bGUgZm9yIHRoaXMgbmF2aWdhdGlvbiBk
YXRhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fZGF0YV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAppbmRleCAwZDBlY2IwLi41OWUwYzY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlv
bl9kYXRhX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaApAQCAtMzYsMjUgKzM2LDI3IEBACiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogLyoqCi0gKiBcc3RydWN0ICBFd2tfTmF2aWdhdGlvbl9E
YXRhCisgKiBcc3RydWN0ICBFd2tOYXZpZ2F0aW9uRGF0YQogICogQGJyaWVmICAgQ29udGFpbnMg
dGhlIG5hdmlnYXRpb24gZGF0YSBkZXRhaWxzLgogICovCi1jbGFzcyBFd2tfTmF2aWdhdGlvbl9E
YXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX05hdmlnYXRpb25fRGF0YT4geworY2xhc3MgRXdr
TmF2aWdhdGlvbkRhdGEgOiBwdWJsaWMgRXdrX09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXdrX05hdmlnYXRpb25fRGF0YT4gY3JlYXRlKFdLTmF2aWdhdGlvbkRhdGFS
ZWYgZGF0YVJlZikKKyAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrTmF2aWdhdGlvbkRhdGEpCisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tOYXZpZ2F0aW9uRGF0YT4gY3JlYXRlKFdLTmF2aWdh
dGlvbkRhdGFSZWYgZGF0YVJlZikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RXdrX05hdmlnYXRpb25fRGF0YShkYXRhUmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRXdrTmF2aWdhdGlvbkRhdGEoZGF0YVJlZikpOwogICAgIH0KIAotICAgIEV3a19VcmxfUmVx
dWVzdCogb3JpZ2luYWxSZXF1ZXN0KCkgY29uc3Q7CisgICAgRXdrVXJsUmVxdWVzdCogb3JpZ2lu
YWxSZXF1ZXN0KCkgY29uc3Q7CiAKICAgICBjb25zdCBjaGFyKiB0aXRsZSgpIGNvbnN0OwogICAg
IGNvbnN0IGNoYXIqIHVybCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a19O
YXZpZ2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVmKTsKKyAgICBleHBsaWNp
dCBFd2tOYXZpZ2F0aW9uRGF0YShXS05hdmlnYXRpb25EYXRhUmVmIGRhdGFSZWYpOwogCi0gICAg
UmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gbV9yZXF1ZXN0OworICAgIFJlZlB0cjxFd2tVcmxSZXF1
ZXN0PiBtX3JlcXVlc3Q7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fdGl0bGU7CiAgICAgV0tF
aW5hU2hhcmVkU3RyaW5nIG1fdXJsOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b24uY3BwCmluZGV4IDVjNGYyNGMuLmFkMmRlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5
X2RlY2lzaW9uLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCi1Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OkV3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIEV3a19OYXZpZ2F0
aW9uX1R5cGUgbmF2aWdhdGlvblR5cGUsIEV2ZW50X01vdXNlX0J1dHRvbiBtb3VzZUJ1dHRvbiwg
RXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmllcnMsIFBhc3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0
PiByZXF1ZXN0LCBjb25zdCBjaGFyKiBmcmFtZU5hbWUpCitFd2tfTmF2aWdhdGlvbl9Qb2xpY3lf
RGVjaXNpb246OkV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWYgbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUgbmF2aWdhdGlvblR5cGUsIEV2
ZW50X01vdXNlX0J1dHRvbiBtb3VzZUJ1dHRvbiwgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmll
cnMsIFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4gcmVxdWVzdCwgY29uc3QgY2hhciogZnJhbWVO
YW1lKQogICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikKICAgICAsIG1fYWN0ZWRVcG9uQnlDbGll
bnQoZmFsc2UpCiAgICAgLCBtX25hdmlnYXRpb25UeXBlKG5hdmlnYXRpb25UeXBlKQpAQCAtNjks
NyArNjksNyBAQCBjb25zdCBjaGFyKiBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OmZy
YW1lTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZnJhbWVOYW1lOwogfQogCi1Fd2tfVXJsX1Jl
cXVlc3QqIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6cmVxdWVzdCgpIGNvbnN0CitF
d2tVcmxSZXF1ZXN0KiBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OnJlcXVlc3QoKSBj
b25zdAogewogICAgIHJldHVybiBtX3JlcXVlc3QuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b25fcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmln
YXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaAppbmRleCA5NWExOGI3Yy4uNjZmZWIzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oCkBAIC00
Niw4ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbj4gY3JlYXRlKFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0
aW9uVHlwZSwgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYsIGNvbnN0IGNoYXIqIGZyYW1l
TmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyKQogICAgIHsKLSAgICAgICAg
UmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRl
KHJlcXVlc3RSZWYpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19OYXZpZ2F0aW9u
X1BvbGljeV9EZWNpc2lvbihsaXN0ZW5lciwgc3RhdGljX2Nhc3Q8RXdrX05hdmlnYXRpb25fVHlw
ZT4obmF2aWdhdGlvblR5cGUpLCBzdGF0aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+KG1vdXNl
QnV0dG9uKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJfS2V5cz4obW9kaWZpZXJzKSwgcmVx
dWVzdC5yZWxlYXNlKCksIGZyYW1lTmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihsaXN0ZW5lciwgc3RhdGljX2Nhc3Q8RXdr
X05hdmlnYXRpb25fVHlwZT4obmF2aWdhdGlvblR5cGUpLCBzdGF0aWNfY2FzdDxFdmVudF9Nb3Vz
ZV9CdXR0b24+KG1vdXNlQnV0dG9uKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJfS2V5cz4o
bW9kaWZpZXJzKSwgRXdrVXJsUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3RSZWYpLCBmcmFtZU5hbWUp
KTsKICAgICB9CiAKICAgICB2b2lkIGFjY2VwdCgpOwpAQCAtNTgsMTcgKzU3LDE3IEBAIHB1Ymxp
YzoKICAgICBFdmVudF9Nb3VzZV9CdXR0b24gbW91c2VCdXR0b24oKSBjb25zdDsKICAgICBFdmVu
dF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVycygpIGNvbnN0OwogICAgIGNvbnN0IGNoYXIqIGZyYW1l
TmFtZSgpIGNvbnN0OwotICAgIEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCgpIGNvbnN0OworICAg
IEV3a1VybFJlcXVlc3QqIHJlcXVlc3QoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBFd2tfTmF2
aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVy
LCBFd2tfTmF2aWdhdGlvbl9UeXBlIG5hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0b24g
bW91c2VCdXR0b24sIEV2ZW50X01vZGlmaWVyX0tleXMgbW9kaWZpZXJzLCBQYXNzUmVmUHRyPEV3
a19VcmxfUmVxdWVzdD4gcmVxdWVzdCwgY29uc3QgY2hhciogZnJhbWVOYW1lKTsKKyAgICBFd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBFd2tfTmF2aWdhdGlvbl9UeXBlIG5hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0
b24gbW91c2VCdXR0b24sIEV2ZW50X01vZGlmaWVyX0tleXMgbW9kaWZpZXJzLCBQYXNzUmVmUHRy
PEV3a1VybFJlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSk7CiAKICAgICBX
S1JldGFpblB0cjxXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWY+IG1fbGlzdGVuZXI7CiAgICAgYm9v
bCBtX2FjdGVkVXBvbkJ5Q2xpZW50OwogICAgIEV3a19OYXZpZ2F0aW9uX1R5cGUgbV9uYXZpZ2F0
aW9uVHlwZTsKICAgICBFdmVudF9Nb3VzZV9CdXR0b24gbV9tb3VzZUJ1dHRvbjsKICAgICBFdmVu
dF9Nb2RpZmllcl9LZXlzIG1fbW9kaWZpZXJzOwotICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+
IG1fcmVxdWVzdDsKKyAgICBSZWZQdHI8RXdrVXJsUmVxdWVzdD4gbV9yZXF1ZXN0OwogICAgIFdL
RWluYVNoYXJlZFN0cmluZyBtX2ZyYW1lTmFtZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCmluZGV4IDU1YTY4MDEu
Ljg3OTc5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a191cmxfcmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXF1ZXN0LmNwcApAQCAtMzAsNTkgKzMwLDQ0IEBACiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKLUV3a19VcmxfUmVxdWVzdDo6RXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVz
dFJlZiByZXF1ZXN0UmVmKQorRXdrVXJsUmVxdWVzdDo6RXdrVXJsUmVxdWVzdChXS1VSTFJlcXVl
c3RSZWYgcmVxdWVzdFJlZikKICAgICA6IG1fdXJsKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlV
UkwocmVxdWVzdFJlZikpCiAgICAgLCBtX2ZpcnN0UGFydHkoQWRvcHRXSywgV0tVUkxSZXF1ZXN0
Q29weUZpcnN0UGFydHlGb3JDb29raWVzKHJlcXVlc3RSZWYpKQogICAgICwgbV9odHRwTWV0aG9k
KEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQTWV0aG9kKHJlcXVlc3RSZWYpKQogeyB9CiAK
LWNvbnN0IGNoYXIqIEV3a19VcmxfUmVxdWVzdDo6dXJsKCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3
a1VybFJlcXVlc3Q6OnVybCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdXJsOwogfQogCi1jb25z
dCBjaGFyKiBFd2tfVXJsX1JlcXVlc3Q6OmZpcnN0UGFydHkoKSBjb25zdAorY29uc3QgY2hhciog
RXdrVXJsUmVxdWVzdDo6Zmlyc3RQYXJ0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZmlyc3RQ
YXJ0eTsKIH0KIAotY29uc3QgY2hhciogRXdrX1VybF9SZXF1ZXN0OjpodHRwTWV0aG9kKCkgY29u
c3QKK2NvbnN0IGNoYXIqIEV3a1VybFJlcXVlc3Q6Omh0dHBNZXRob2QoKSBjb25zdAogewogICAg
IHJldHVybiBtX2h0dHBNZXRob2Q7CiB9CiAKLUV3a19VcmxfUmVxdWVzdCogZXdrX3VybF9yZXF1
ZXN0X3JlZihFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHJlcXVlc3QsIDApOwotICAgIHJlcXVlc3QtPnJlZigpOwotCi0gICAg
cmV0dXJuIHJlcXVlc3Q7Ci19Ci0KLXZvaWQgZXdrX3VybF9yZXF1ZXN0X3VucmVmKEV3a19Vcmxf
UmVxdWVzdCogcmVxdWVzdCkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihyZXF1
ZXN0KTsKLQotICAgIHJlcXVlc3QtPmRlcmVmKCk7Ci19Ci0KIGNvbnN0IGNoYXIqIGV3a191cmxf
cmVxdWVzdF91cmxfZ2V0KGNvbnN0IEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVxdWVzdCwgMCk7CisgICAgRVdLX09CSl9H
RVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJsUmVxdWVzdCwgcmVxdWVzdCwgaW1wbCwgMCk7
CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+dXJsKCk7CisgICAgcmV0dXJuIGltcGwtPnVybCgpOwog
fQogCiBjb25zdCBjaGFyKiBld2tfcmVxdWVzdF9jb29raWVzX2ZpcnN0X3BhcnR5X2dldChjb25z
dCBFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKHJlcXVlc3QsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNv
bnN0IEV3a1VybFJlcXVlc3QsIHJlcXVlc3QsIGltcGwsIDApOwogCi0gICAgcmV0dXJuIHJlcXVl
c3QtPmZpcnN0UGFydHkoKTsKKyAgICByZXR1cm4gaW1wbC0+Zmlyc3RQYXJ0eSgpOwogfQogCiBj
b25zdCBjaGFyKiBld2tfdXJsX3JlcXVlc3RfaHR0cF9tZXRob2RfZ2V0KGNvbnN0IEV3a19Vcmxf
UmVxdWVzdCogcmVxdWVzdCkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
cmVxdWVzdCwgMCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJs
UmVxdWVzdCwgcmVxdWVzdCwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+aHR0cE1l
dGhvZCgpOworICAgIHJldHVybiBpbXBsLT5odHRwTWV0aG9kKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oCmluZGV4IDk4N2Jk
OGYuLmU2OTZkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVxdWVzdC5oCkBAIC0zNywyNiArMzcsMTIgQEAKIGV4dGVybiAiQyIgewogI2Vu
ZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfVXJsX1JlcXVlc3QgKi8KLXR5
cGVkZWYgc3RydWN0IEV3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVlc3Q7Ci0KIC8qKgotICog
SW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KLSAqCi0g
KiBAcGFyYW0gcmVxdWVzdCB0aGUgVVJMIHJlcXVlc3Qgb2JqZWN0IHRvIGluY3JlYXNlIHRoZSBy
ZWZlcmVuY2UgY291bnQKLSAqCi0gKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgb2JqZWN0IG9u
IHN1Y2Nlc3MsIEBjIE5VTEwgb3RoZXJ3aXNlLgotICovCi1FQVBJIEV3a19VcmxfUmVxdWVzdCAq
ZXdrX3VybF9yZXF1ZXN0X3JlZihFd2tfVXJsX1JlcXVlc3QgKnJlcXVlc3QpOwotCi0vKioKLSAq
IERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3Np
Ymx5IGZyZWVpbmcgaXQuCi0gKgotICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IHJlYWNoZXMg
MCwgdGhlIFVSTCByZXF1ZXN0IGlzIGZyZWVkLgorICogRGVjbGFyZSBFd2tfVXJsX1JlcXVlc3Qg
YXMgRXdrX09iamVjdC4KICAqCi0gKiBAcGFyYW0gcmVxdWVzdCB0aGUgVVJMIHJlcXVlc3Qgb2Jq
ZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqIEBzZWUgRXdrX09iamVjdAog
ICovCi1FQVBJIHZvaWQgZXdrX3VybF9yZXF1ZXN0X3VucmVmKEV3a19VcmxfUmVxdWVzdCAqcmVx
dWVzdCk7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19VcmxfUmVxdWVzdDsKIAogLyoq
CiAgKiBRdWVyeSBVUkwgZm9yIHRoaXMgcmVxdWVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4
IDMxYTFiZWEuLmU5OTExMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtMzAsMTcgKzMwLDIw
IEBACiAjaW5jbHVkZSAiV0tVUkwuaCIKICNpbmNsdWRlICJXS1VSTFJlcXVlc3QuaCIKICNpbmNs
dWRlICJXZWJVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSAiZXdrX29iamVjdF9wcml2YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogLyoqCi0gKiBcc3RydWN0ICBFd2tfVXJsX1Jl
cXVlc3QKKyAqIFxzdHJ1Y3QgIEV3a1VybFJlcXVlc3QKICAqIEBicmllZiAgIENvbnRhaW5zIHRo
ZSBVUkwgcmVxdWVzdCBkYXRhLgogICovCi1jbGFzcyBFd2tfVXJsX1JlcXVlc3QgOiBwdWJsaWMg
UmVmQ291bnRlZDxFd2tfVXJsX1JlcXVlc3Q+IHsKK2NsYXNzIEV3a1VybFJlcXVlc3QgOiBwdWJs
aWMgRXdrX09iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrX1VybF9S
ZXF1ZXN0PiBjcmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCisgICAgRVdLX09CSkVD
VF9ERUNMQVJFKEV3a1VybFJlcXVlc3QpCisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tVcmxS
ZXF1ZXN0PiBjcmVhdGUoV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19VcmxfUmVxdWVzdChyZXF1ZXN0UmVmKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrVXJsUmVxdWVzdChyZXF1ZXN0UmVmKSk7CiAgICAg
fQogCiAgICAgY29uc3QgY2hhciogdXJsKCkgY29uc3Q7CkBAIC00OCw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBjaGFyKiBodHRwTWV0aG9kKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgRXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKTsKKyAg
ICBleHBsaWNpdCBFd2tVcmxSZXF1ZXN0KFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKTsKIAog
ICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX3VybDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV9m
aXJzdFBhcnR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9yZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3Jlc3BvbnNlLmNwcAppbmRleCAwNGUxNzZiLi42ZDViODc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcApA
QCAtMzEsNzEgKzMxLDU2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a19Vcmxf
UmVzcG9uc2U6OkV3a19VcmxfUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgY29yZVJlc3BvbnNlKQorRXdrVXJsUmVzcG9uc2U6OkV3a1VybFJlc3BvbnNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIGNvcmVSZXNwb25zZSkKICAgICA6IG1fY29yZVJlc3Bv
bnNlKGNvcmVSZXNwb25zZSkKICAgICAsIG1fdXJsKEFkb3B0V0ssIFdLVVJMUmVzcG9uc2VDb3B5
VVJMKFdlYktpdDo6dG9BUEkoY29yZVJlc3BvbnNlKSkpCiAgICAgLCBtX21pbWVUeXBlKEFkb3B0
V0ssIFdLVVJMUmVzcG9uc2VDb3B5TUlNRVR5cGUoV2ViS2l0Ojp0b0FQSShjb3JlUmVzcG9uc2Up
KSkKIHsgfQogCi1pbnQgRXdrX1VybF9SZXNwb25zZTo6aHR0cFN0YXR1c0NvZGUoKSBjb25zdAor
aW50IEV3a1VybFJlc3BvbnNlOjpodHRwU3RhdHVzQ29kZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fY29yZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CiB9CiAKLWNvbnN0IGNoYXIqIEV3a19V
cmxfUmVzcG9uc2U6OnVybCgpIGNvbnN0Citjb25zdCBjaGFyKiBFd2tVcmxSZXNwb25zZTo6dXJs
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV91cmw7CiB9CiAKLWNvbnN0IGNoYXIqIEV3a19Vcmxf
UmVzcG9uc2U6Om1pbWVUeXBlKCkgY29uc3QKK2NvbnN0IGNoYXIqIEV3a1VybFJlc3BvbnNlOjpt
aW1lVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbWltZVR5cGU7CiB9CiAKLXVuc2lnbmVk
IGxvbmcgRXdrX1VybF9SZXNwb25zZTo6Y29udGVudExlbmd0aCgpIGNvbnN0Cit1bnNpZ25lZCBs
b25nIEV3a1VybFJlc3BvbnNlOjpjb250ZW50TGVuZ3RoKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9jb3JlUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCk7CiB9CiAKLUV3a19VcmxfUmVz
cG9uc2UqIGV3a191cmxfcmVzcG9uc2VfcmVmKEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQot
ewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7Ci0gICAg
cmVzcG9uc2UtPnJlZigpOwotCi0gICAgcmV0dXJuIHJlc3BvbnNlOwotfQotCi12b2lkIGV3a191
cmxfcmVzcG9uc2VfdW5yZWYoRXdrX1VybF9SZXNwb25zZSogcmVzcG9uc2UpCi17Ci0gICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocmVzcG9uc2UpOwotCi0gICAgcmVzcG9uc2UtPmRlcmVm
KCk7Ci19Ci0KIGNvbnN0IGNoYXIqIGV3a191cmxfcmVzcG9uc2VfdXJsX2dldChjb25zdCBFd2tf
VXJsX1Jlc3BvbnNlKiByZXNwb25zZSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwocmVzcG9uc2UsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0
IEV3a1VybFJlc3BvbnNlLCByZXNwb25zZSwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gcmVzcG9u
c2UtPnVybCgpOworICAgIHJldHVybiBpbXBsLT51cmwoKTsKIH0KIAogaW50IGV3a191cmxfcmVz
cG9uc2Vfc3RhdHVzX2NvZGVfZ2V0KGNvbnN0IEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQog
ewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7CisgICAg
RVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJsUmVzcG9uc2UsIHJlc3BvbnNl
LCBpbXBsLCAwKTsKIAotICAgIHJldHVybiByZXNwb25zZS0+aHR0cFN0YXR1c0NvZGUoKTsKKyAg
ICByZXR1cm4gaW1wbC0+aHR0cFN0YXR1c0NvZGUoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3Vy
bF9yZXNwb25zZV9taW1lX3R5cGVfZ2V0KGNvbnN0IEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNl
KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7Cisg
ICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrVXJsUmVzcG9uc2UsIHJlc3Bv
bnNlLCBpbXBsLCAwKTsKIAotICAgIHJldHVybiByZXNwb25zZS0+bWltZVR5cGUoKTsKKyAgICBy
ZXR1cm4gaW1wbC0+bWltZVR5cGUoKTsKIH0KIAogdW5zaWduZWQgbG9uZyBld2tfdXJsX3Jlc3Bv
bnNlX2NvbnRlbnRfbGVuZ3RoX2dldChjb25zdCBFd2tfVXJsX1Jlc3BvbnNlKiByZXNwb25zZSkK
IHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVzcG9uc2UsIDApOworICAg
IEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKGNvbnN0IEV3a1VybFJlc3BvbnNlLCByZXNwb25z
ZSwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gcmVzcG9uc2UtPmNvbnRlbnRMZW5ndGgoKTsKKyAg
ICByZXR1cm4gaW1wbC0+Y29udGVudExlbmd0aCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oCmluZGV4IGNhZDhlMGYuLjJm
MzQxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3Jlc3BvbnNlLmgKQEAgLTM3LDI2ICszNywxMiBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYK
IAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19VcmxfUmVzcG9uc2UgKi8KLXR5cGVk
ZWYgc3RydWN0IEV3a19VcmxfUmVzcG9uc2UgRXdrX1VybF9SZXNwb25zZTsKLQogLyoqCi0gKiBJ
bmNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgotICoKLSAq
IEBwYXJhbSByZXNwb25zZSB0aGUgVVJMIHJlc3BvbnNlIG9iamVjdCB0byBpbmNyZWFzZSB0aGUg
cmVmZXJlbmNlIGNvdW50Ci0gKgotICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG9iamVjdCBv
biBzdWNjZXNzLCBAYyBOVUxMIG90aGVyd2lzZS4KLSAqLwotRUFQSSBFd2tfVXJsX1Jlc3BvbnNl
ICpld2tfdXJsX3Jlc3BvbnNlX3JlZihFd2tfVXJsX1Jlc3BvbnNlICpyZXNwb25zZSk7Ci0KLS8q
KgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwg
cG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgcmVh
Y2hlcyAwLCB0aGUgVVJMIHJlc3BvbnNlIGlzIGZyZWVkLgorICogRGVjbGFyZSBFd2tfVXJsX1Jl
c3BvbnNlIGFzIEV3a19PYmplY3QuCiAgKgotICogQHBhcmFtIHJlc3BvbnNlIHRoZSBVUkwgcmVz
cG9uc2Ugb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqIEBzZWUgRXdr
X09iamVjdAogICovCi1FQVBJIHZvaWQgZXdrX3VybF9yZXNwb25zZV91bnJlZihFd2tfVXJsX1Jl
c3BvbnNlICpyZXNwb25zZSk7Cit0eXBlZGVmIHN0cnVjdCBFd2tfT2JqZWN0IEV3a19VcmxfUmVz
cG9uc2U7CiAKIC8qKgogICogUXVlcnkgVVJMIGZvciB0aGlzIHJlc3BvbnNlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNl
X3ByaXZhdGUuaAppbmRleCAyZDkxOGE4Li5mYzUxMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUu
aApAQCAtMjksMjEgKzI5LDI0IEBACiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAi
V0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkxSZXNwb25zZS5oIgorI2luY2x1
ZGUgImV3a19vYmplY3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNw
b25zZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIC8qKgotICogXHN0cnVjdCAg
RXdrX1VybF9SZXNwb25zZQorICogXHN0cnVjdCAgRXdrVXJsUmVzcG9uc2UKICAqIEBicmllZiAg
IENvbnRhaW5zIHRoZSBVUkwgcmVzcG9uc2UgZGF0YS4KICAqLwotY2xhc3MgRXdrX1VybF9SZXNw
b25zZSA6IHB1YmxpYyBSZWZDb3VudGVkPEV3a19VcmxfUmVzcG9uc2U+IHsKK2NsYXNzIEV3a1Vy
bFJlc3BvbnNlIDogcHVibGljIEV3a19PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEV3a19VcmxfUmVzcG9uc2U+IGNyZWF0ZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9u
c2UpCisgICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3a1VybFJlc3BvbnNlKQorCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RXdrVXJsUmVzcG9uc2U+IGNyZWF0ZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVz
cG9uc2UpCiAgICAgewogICAgICAgICBpZiAoIXdrUmVzcG9uc2UpCiAgICAgICAgICAgICByZXR1
cm4gMDsKIAotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19VcmxfUmVzcG9uc2UoV2Vi
S2l0Ojp0b0ltcGwod2tSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEV3a1VybFJlc3BvbnNlKFdlYktpdDo6dG9JbXBsKHdrUmVzcG9u
c2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkpKTsKICAgICB9CiAKICAgICBpbnQgaHR0cFN0YXR1c0Nv
ZGUoKSBjb25zdDsKQEAgLTUyLDcgKzU1LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxvbmcg
Y29udGVudExlbmd0aCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a19Vcmxf
UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgY29yZVJlc3BvbnNlKTsK
KyAgICBleHBsaWNpdCBFd2tVcmxSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiBjb3JlUmVzcG9uc2UpOwogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX2Nv
cmVSZXNwb25zZTsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV91cmw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3Bw
CmluZGV4IDFhZGE3NjMuLmMwMDhhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIHZvaWQgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlCiAgICAgaWYgKCFoaXN0b3J5Q2xpZW50LT5tX25h
dmlnYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fRGF0
YT4gbmF2aWdhdGlvbkRhdGFFd2sgPSBFd2tfTmF2aWdhdGlvbl9EYXRhOjpjcmVhdGUobmF2aWdh
dGlvbkRhdGEpOworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBuYXZpZ2F0aW9uRGF0
YUV3ayA9IEV3a05hdmlnYXRpb25EYXRhOjpjcmVhdGUobmF2aWdhdGlvbkRhdGEpOwogICAgIGhp
c3RvcnlDbGllbnQtPm1fbmF2aWdhdGUoRXdrVmlld0ltcGw6OnZpZXdGcm9tUGFnZVZpZXdNYXAo
cGFnZSksIG5hdmlnYXRpb25EYXRhRXdrLmdldCgpLCBoaXN0b3J5Q2xpZW50LT5tX3VzZXJEYXRh
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9h
ZE1hbmFnZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1h
bmFnZXJFZmwuY3BwCmluZGV4IDFhYTY2OGYuLjJkMzg1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXJFZmw6OmRpZFJlY2VpdmVSZXNwb25zZShXS0NvbnRl
eHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG8KIHsKICAgICBFd2tfRG93bmxvYWRfSm9iKiBk
b3dubG9hZCA9IHRvRG93bmxvYWRNYW5hZ2VyRWZsKGNsaWVudEluZm8pLT5kb3dubG9hZEpvYih0
b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsK
LSAgICBkb3dubG9hZC0+c2V0UmVzcG9uc2UoRXdrX1VybF9SZXNwb25zZTo6Y3JlYXRlKHdrUmVz
cG9uc2UpKTsKKyAgICBkb3dubG9hZC0+c2V0UmVzcG9uc2UoRXdrVXJsUmVzcG9uc2U6OmNyZWF0
ZSh3a1Jlc3BvbnNlKSk7CiB9CiAKIHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRDcmVhdGVE
ZXN0aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJp
bmdSZWYgLypwYXRoKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9hZENsaWVudEVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9hZENsaWVudEVmbC5jcHAKaW5kZXgg
YmMwMTQ4MS4uYTViNjg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9SZXNvdXJjZUxvYWRDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUmVzb3VyY2VMb2FkQ2xpZW50RWZsLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFJl
c291cmNlTG9hZENsaWVudEVmbDo6ZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UoV0tQYWdlUmVm
LCBXS0ZyYW1lUmVmIHdrRgogICAgIC8vIEtlZXAgdGhlIHJlc291cmNlIGludGVybmFsbHkgdG8g
cmV1c2UgaXQgbGF0ZXIuCiAgICAgcmVzb3VyY2VMb2FkQ2xpZW50LT5tX2xvYWRpbmdSZXNvdXJj
ZXNNYXAuYWRkKHJlc291cmNlSWRlbnRpZmllciwgcmVzb3VyY2UpOwogCi0gICAgUmVmUHRyPEV3
a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRlKHdrUmVxdWVz
dCk7CisgICAgUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IEV3a1VybFJlcXVlc3Q6
OmNyZWF0ZSh3a1JlcXVlc3QpOwogICAgIEV3a19SZXNvdXJjZV9SZXF1ZXN0IHJlc291cmNlUmVx
dWVzdCA9IHtyZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5nZXQoKSwgMH07CiAgICAgcmVzb3VyY2VM
b2FkQ2xpZW50LT5tX3ZpZXdJbXBsLT5zbWFydENhbGxiYWNrPFJlc291cmNlTG9hZFN0YXJ0ZWQ+
KCkuY2FsbCgmcmVzb3VyY2VSZXF1ZXN0KTsKIH0KQEAgLTcxLDggKzcxLDggQEAgdm9pZCBSZXNv
dXJjZUxvYWRDbGllbnRFZmw6OmRpZFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2UoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmLCB1aW4KICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0ID0gRXdrX1VybF9SZXF1ZXN0OjpjcmVh
dGUod2tSZXF1ZXN0KTsKLSAgICBSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4gcmVkaXJlY3RSZXNw
b25zZSA9IEV3a19VcmxfUmVzcG9uc2U6OmNyZWF0ZSh3a1JlZGlyZWN0UmVzcG9uc2UpOworICAg
IFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3QgPSBFd2tVcmxSZXF1ZXN0OjpjcmVhdGUo
d2tSZXF1ZXN0KTsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4gcmVkaXJlY3RSZXNwb25z
ZSA9IEV3a1VybFJlc3BvbnNlOjpjcmVhdGUod2tSZWRpcmVjdFJlc3BvbnNlKTsKICAgICBFd2tf
UmVzb3VyY2VfUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgPSB7cmVzb3VyY2UuZ2V0KCksIHJlcXVl
c3QuZ2V0KCksIHJlZGlyZWN0UmVzcG9uc2UuZ2V0KCl9OwogICAgIHJlc291cmNlTG9hZENsaWVu
dC0+bV92aWV3SW1wbC0+c21hcnRDYWxsYmFjazxSZXNvdXJjZVJlcXVlc3RTZW50PigpLmNhbGwo
JnJlc291cmNlUmVxdWVzdCk7CiB9CkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
Q2xpZW50RWZsOjpkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYsCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRy
PEV3a19VcmxfUmVzcG9uc2U+IHJlc3BvbnNlID0gRXdrX1VybF9SZXNwb25zZTo6Y3JlYXRlKHdr
UmVzcG9uc2UpOworICAgIFJlZlB0cjxFd2tfVXJsX1Jlc3BvbnNlPiByZXNwb25zZSA9IEV3a1Vy
bFJlc3BvbnNlOjpjcmVhdGUod2tSZXNwb25zZSk7CiAgICAgRXdrX1Jlc291cmNlX0xvYWRfUmVz
cG9uc2UgcmVzb3VyY2VMb2FkUmVzcG9uc2UgPSB7cmVzb3VyY2UuZ2V0KCksIHJlc3BvbnNlLmdl
dCgpfTsKICAgICByZXNvdXJjZUxvYWRDbGllbnQtPm1fdmlld0ltcGwtPnNtYXJ0Q2FsbGJhY2s8
UmVzb3VyY2VMb2FkUmVzcG9uc2U+KCkuY2FsbCgmcmVzb3VyY2VMb2FkUmVzcG9uc2UpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>