<?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>99455</bug_id>
          
          <creation_ts>2012-10-16 05:04:03 -0700</creation_ts>
          <short_desc>[EFL][WK2] Inherit Ewk_Download_Job, Ewk_Back_Forward_List_Item, Ewk_Url_Response, Ewk_Navigation_Policy_Decision from RefCounted</short_desc>
          <delta_ts>2012-10-16 09:08:07 -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>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>99321</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>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743070</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-16 05:04:03 -0700</bug_when>
    <thetext>Sub bug for bug#99321</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743072</commentid>
    <comment_count>1</comment_count>
      <attachid>168923</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-16 05:09:58 -0700</bug_when>
    <thetext>Created attachment 168923
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743095</commentid>
    <comment_count>2</comment_count>
      <attachid>168923</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-16 06:05:17 -0700</bug_when>
    <thetext>Comment on attachment 168923
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp:NaN
&gt;  static inline Ewk_Back_Forward_List_Item* addItemToWrapperCache(const Ewk_Back_F

it&apos;s internal, maybe we should return the PassRefPtr?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision_private.h:51
&gt; +    _Ewk_Navigation_Policy_Decision(WKFramePolicyListenerRef _listener, Ewk_Navigation_Type _navigationType, Event_Mouse_Button _mouseButton, Event_Modifier_Keys _modifiers, PassRefPtr&lt;Ewk_Url_Request&gt; _request, const char* _frameName)

C++ doesnt require you to add _ here

: listener(listener) should work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743106</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-16 06:29:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 168923 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168923&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp:NaN
&gt; &gt;  static inline Ewk_Back_Forward_List_Item* addItemToWrapperCache(const Ewk_Back_F
&gt; 
&gt; it&apos;s internal, maybe we should return the PassRefPtr?

To my mind it would not be convenient as we have several functions like following:
Ewk_Back_Forward_List_Item* ewk_back_forward_list_current_item_get(const Ewk_Back_Forward_List* list)
{
    EWK_BACK_FORWARD_LIST_WK_GET_OR_RETURN(list, wkList, 0);

    return addItemToWrapperCache(list, WKBackForwardListGetCurrentItem(wkList));
}

if PassRefPtr was returned it would be 

return RefPtr&lt;Ewk_Back_Forward_List_Item&gt;(addItemToWrapperCache(list, WKBackForwardListGetCurrentItem(wkList))).get();

that looks worse IMHO

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision_private.h:51
&gt; &gt; +    _Ewk_Navigation_Policy_Decision(WKFramePolicyListenerRef _listener, Ewk_Navigation_Type _navigationType, Event_Mouse_Button _mouseButton, Event_Modifier_Keys _modifiers, PassRefPtr&lt;Ewk_Url_Request&gt; _request, const char* _frameName)
&gt; 
&gt; C++ doesnt require you to add _ here
&gt; 
&gt; : listener(listener) should work

sure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743110</commentid>
    <comment_count>4</comment_count>
      <attachid>168936</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-16 06:32:45 -0700</bug_when>
    <thetext>Created attachment 168936
patch v2

Took Kenneth comment into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743190</commentid>
    <comment_count>5</comment_count>
      <attachid>168936</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 09:08:03 -0700</bug_when>
    <thetext>Comment on attachment 168936
patch v2

Clearing flags on attachment: 168936

Committed r131460: &lt;http://trac.webkit.org/changeset/131460&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743192</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 09:08:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168923</attachid>
            <date>2012-10-16 05:09:58 -0700</date>
            <delta_ts>2012-10-16 06:32:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug99455</filename>
            <type>text/plain</type>
            <size>29189</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDMxZTUwZDkwNTdlMjFmYzUyNGMzNzI0NGJjOGYyYTQ2Mzk5YzA4MmEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAxNiAxNTowNjozNCAyMDEyICswMzAwCgogICAgYnVnOTk0NTUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNjZmZjRjNS4uOTM5MjZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY0IEBACiAyMDEyLTEw
LTE2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgog
CisgICAgICAgIFtFRkxdW1dLMl0gSW5oZXJpdCBFd2tfRG93bmxvYWRfSm9iLCBFd2tfQmFja19G
b3J3YXJkX0xpc3RfSXRlbSwgRXdrX1VybF9SZXNwb25zZSwgRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uIGZyb20gUmVmQ291bnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgQVBJIG9iamVjdHMgbWVudGlvbmVkIGluIGJ1ZyB0aXRsZSBh
cmUgaW5oZXJpdGVkIGZyb20gV1RGOjpSZWZDb3VudGVkIHdoaWNoIG1hZGUgaXQgcG9zc2libGUK
KyAgICAgICAgdG8gdXNlIHNtYXJ0IHBvaW50ZXJzIHdpdGggdGhlbS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNwcDoKKyAgICAgICAgKF9Fd2tfQmFja19G
b3J3YXJkX0xpc3Q6Ol9Fd2tfQmFja19Gb3J3YXJkX0xpc3QpOgorICAgICAgICAoYWRkSXRlbVRv
V3JhcHBlckNhY2hlKToKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlzdF9jaGFuZ2VkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5j
cHA6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9yZWYpOgorICAgICAgICAo
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdW5yZWYpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaDoKKyAgICAgICAgKF9F
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSk6CisgICAgICAgIChfRXdrX0JhY2tfRm9yd2FyZF9M
aXN0X0l0ZW06Ol9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwOgorICAgICAgICAoX0V3a19Db250ZXh0KToKKyAg
ICAgICAgKF9Fd2tfQ29udGV4dDo6fl9Fd2tfQ29udGV4dCk6CisgICAgICAgIChld2tfY29udGV4
dF9kb3dubG9hZF9qb2JfYWRkKToKKyAgICAgICAgKGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9n
ZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX3JlbW92ZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcDoKKyAg
ICAgICAgKGRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Rvd25sb2FkX2pvYi5jcHA6CisgICAgICAgIChld2tfZG93bmxvYWRfam9iX3JlZik6Cisg
ICAgICAgIChld2tfZG93bmxvYWRfam9iX3VucmVmKToKKyAgICAgICAgKGV3a19kb3dubG9hZF9q
b2JfcmVzcG9uc2VfZ2V0KToKKyAgICAgICAgKGV3a19kb3dubG9hZF9qb2JfZXN0aW1hdGVkX3By
b2dyZXNzX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pv
Yl9wcml2YXRlLmg6CisgICAgICAgIChfRXdrX0Rvd25sb2FkX0pvYik6CisgICAgICAgIChfRXdr
X0Rvd25sb2FkX0pvYjo6X0V3a19Eb3dubG9hZF9Kb2IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHA6CisgICAgICAgIChl
d2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcmVmKToKKyAgICAgICAgKGV3a19uYXZpZ2F0
aW9uX3BvbGljeV9kZWNpc2lvbl91bnJlZik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24pOgorICAgICAgICAoX0V3a19OYXZpZ2F0aW9uX1Bv
bGljeV9EZWNpc2lvbjo6X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbik6CisgICAgICAg
IChfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjp+X0V3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25z
ZS5jcHA6CisgICAgICAgIChld2tfdXJsX3Jlc3BvbnNlX3JlZik6CisgICAgICAgIChld2tfdXJs
X3Jlc3BvbnNlX3VucmVmKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jl
c3BvbnNlX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfVXJsX1Jlc3BvbnNlKToKKyAgICAgICAg
KF9Fd2tfVXJsX1Jlc3BvbnNlOjpfRXdrX1VybF9SZXNwb25zZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVzb3Vy
Y2VfbG9hZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSk6
CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSk6CisKKzIwMTItMTAtMTYg
IE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKICAg
ICAgICAgW1dLMl0gUHJvdmlkZSBXS1VSTCBBUEkgZm9yIHJlc29sdmluZyB0aGUgcmVsYXRpdmUg
VVJMIHdpdGggdGhlIGdpdmVuIGJhc2UgVVJMCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTMxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggOTkzZjg2My4uODhjZWYxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJ
bXBsLmNwcApAQCAtMjgzLDkgKzI4Myw4IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNvdW50U3Ry
aW5nTWF0Y2hlc0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmluCiAKIHZv
aWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBk
b3dubG9hZCkKIHsKLSAgICBFd2tfRG93bmxvYWRfSm9iKiBld2tEb3dubG9hZCA9IGV3a19kb3du
bG9hZF9qb2JfbmV3KGRvd25sb2FkLCBtX3ZpZXdXaWRnZXQpOwotICAgIGV3a19jb250ZXh0X2Rv
d25sb2FkX2pvYl9hZGQoZXdrX3ZpZXdfY29udGV4dF9nZXQobV92aWV3V2lkZ2V0KSwgZXdrRG93
bmxvYWQpOwotICAgIGV3a19kb3dubG9hZF9qb2JfdW5yZWYoZXdrRG93bmxvYWQpOworICAgIFJl
ZlB0cjxFd2tfRG93bmxvYWRfSm9iPiBld2tEb3dubG9hZCA9IGFkb3B0UmVmKGV3a19kb3dubG9h
ZF9qb2JfbmV3KGRvd25sb2FkLCBtX3ZpZXdXaWRnZXQpKTsKKyAgICBld2tfY29udGV4dF9kb3du
bG9hZF9qb2JfYWRkKGV3a192aWV3X2NvbnRleHRfZ2V0KG1fdmlld1dpZGdldCksIGV3a0Rvd25s
b2FkLmdldCgpKTsKIH0KIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRf
bGlzdC5jcHAKaW5kZXggOTRkMDMwMC4uOTIwMzU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3QuY3BwCkBA
IC0zNSw3ICszNSw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLXR5cGVkZWYgSGFz
aE1hcDxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
Kj4gSXRlbXNNYXA7Cit0eXBlZGVmIEhhc2hNYXA8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBS
ZWZQdHI8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+ID4gSXRlbXNNYXA7CiAKIC8qKgogICog
XHN0cnVjdCAgX0V3a19CYWNrX0ZvcndhcmRfTGlzdApAQCAtNDgsMTQgKzQ4LDYgQEAgc3RydWN0
IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QgewogICAgIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QoV0tC
YWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKICAgICAgICAgOiB3a0xpc3QobGlzdFJlZikKICAg
ICB7IH0KLQotICAgIH5fRXdrX0JhY2tfRm9yd2FyZF9MaXN0KCkKLSAgICB7Ci0gICAgICAgIEl0
ZW1zTWFwOjppdGVyYXRvciBpdCA9IHdyYXBwZXJDYWNoZS5iZWdpbigpOwotICAgICAgICBJdGVt
c01hcDo6aXRlcmF0b3IgZW5kID0gd3JhcHBlckNhY2hlLmVuZCgpOwotICAgICAgICBmb3IgKDsg
aXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1f
dW5yZWYoaXQtPnZhbHVlKTsKLSAgICB9CiB9OwogCiAjZGVmaW5lIEVXS19CQUNLX0ZPUldBUkRf
TElTVF9XS19HRVRfT1JfUkVUVVJOKGxpc3QsIHdrTGlzdF8sIC4uLikgIFwKQEAgLTc1LDEzICs2
NywxMyBAQCBzdGF0aWMgaW5saW5lIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBhZGRJdGVt
VG9XcmFwcGVyQ2FjaGUoY29uc3QgRXdrX0JhY2tfRgogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChsaXN0LCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
d2tJdGVtLCAwKTsKIAotICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtID0gbGlz
dC0+d3JhcHBlckNhY2hlLmdldCh3a0l0ZW0pOworICAgIFJlZlB0cjxFd2tfQmFja19Gb3J3YXJk
X0xpc3RfSXRlbT4gaXRlbSA9IGxpc3QtPndyYXBwZXJDYWNoZS5nZXQod2tJdGVtKTsKICAgICBp
ZiAoIWl0ZW0pIHsKLSAgICAgICAgaXRlbSA9IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX25l
dyh3a0l0ZW0pOworICAgICAgICBpdGVtID0gYWRvcHRSZWYoZXdrX2JhY2tfZm9yd2FyZF9saXN0
X2l0ZW1fbmV3KHdrSXRlbSkpOwogICAgICAgICBsaXN0LT53cmFwcGVyQ2FjaGUuc2V0KHdrSXRl
bSwgaXRlbSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGl0ZW07CisgICAgcmV0dXJuIGl0ZW0uZ2V0
KCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRWluYV9MaXN0KiBjcmVhdGVFaW5hTGlzdChjb25zdCBF
d2tfQmFja19Gb3J3YXJkX0xpc3QqIGxpc3QsIFdLQXJyYXlSZWYgd2tMaXN0KQpAQCAtMTc0LDgg
KzE2Niw3IEBAIHZvaWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2NoYW5nZWQoRXdrX0JhY2tfRm9y
d2FyZF9MaXN0KiBsaXN0LCBXS0JhY2tGb3J3YXJkTGlzCiAgICAgY29uc3Qgc2l6ZV90IHJlbW92
ZWRJdGVtc1NpemUgPSB3a1JlbW92ZWRJdGVtcyA/IFdLQXJyYXlHZXRTaXplKHdrUmVtb3ZlZEl0
ZW1zKSA6IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZW1vdmVkSXRlbXNTaXplOyAr
K2kpIHsKICAgICAgICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbSA9IHN0YXRpY19j
YXN0PFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrUmVt
b3ZlZEl0ZW1zLCBpKSk7Ci0gICAgICAgIGlmIChFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSog
aXRlbSA9IGxpc3QtPndyYXBwZXJDYWNoZS50YWtlKHdrSXRlbSkpCi0gICAgICAgICAgICBld2tf
YmFja19mb3J3YXJkX2xpc3RfaXRlbV91bnJlZihpdGVtKTsKKyAgICAgICAgbGlzdC0+d3JhcHBl
ckNhY2hlLnJlbW92ZSh3a0l0ZW0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0
ZW0uY3BwCmluZGV4IDcwNDU0NWEuLjhiNTZmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bS5jcHAKQEAgLTI4LDMyICsyOCwxMCBAQAogCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5j
bHVkZSAiV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3Ry
aW5nLmgiCisjaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oIgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfQmFja19G
b3J3YXJkX0xpc3QKLSAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBCYWNrIEZvcndhcmQgTGlzdCBk
YXRhLgotICovCi1zdHJ1Y3QgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtIHsKLSAgICB1bnNp
Z25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0ICov
Ci0gICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPiB3a0l0ZW07Ci0gICAg
bXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOwotICAgIG11dGFibGUgV0tFaW5hU2hhcmVk
U3RyaW5nIHRpdGxlOwotICAgIG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIG9yaWdpbmFsVVJM
OwotCi0gICAgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKFdLQmFja0ZvcndhcmRMaXN0SXRl
bVJlZiBpdGVtUmVmKQotICAgICAgICA6IF9fcmVmKDEpCi0gICAgICAgICwgd2tJdGVtKGl0ZW1S
ZWYpCi0gICAgeyB9Ci0KLSAgICB+X0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKCkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVCghX19yZWYpOwotICAgIH0KLX07Ci0KICNkZWZpbmUgRVdLX0JBQ0tf
Rk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09SX1JFVFVSTihpdGVtLCB3a0l0ZW1fLCAuLi4pICAg
IFwKICAgICBpZiAoIShpdGVtKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRUlOQV9MT0dfQ1JJVCgiaXRlbSBpcyBO
VUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTY4LDcgKzQ2
LDcgQEAgc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSB7CiBFd2tfQmFja19Gb3J3
YXJkX0xpc3RfSXRlbSogZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcmVmKEV3a19CYWNrX0Zv
cndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChpdGVtLCAwKTsKLSAgICArK2l0ZW0tPl9fcmVmOworICAgIGl0ZW0tPnJlZigpOwogCiAg
ICAgcmV0dXJuIGl0ZW07CiB9CkBAIC03NywxMCArNTUsNyBAQCB2b2lkIGV3a19iYWNrX2Zvcndh
cmRfbGlzdF9pdGVtX3VucmVmKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGl0ZW0pOwogCi0gICAgaWYgKC0taXRlbS0+
X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRlbGV0ZSBpdGVtOworICAgIGl0ZW0tPmRl
cmVmKCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3VybF9n
ZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19m
b3J3YXJkX2xpc3RfaXRlbV9wcml2YXRlLmgKaW5kZXggOGMyYzY4NC4uM2EzN2I0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X2l0ZW1fcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaApAQCAtMjYsOCArMjYsMjIgQEAK
ICNpZm5kZWYgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZV9oCiAjZGVmaW5lIGV3
a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tFaW5hU2hh
cmVkU3RyaW5nLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KIAorLyoqCisgKiBcc3Ry
dWN0ICBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0CisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgQmFj
ayBGb3J3YXJkIExpc3QgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3Rf
SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gewor
ICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4gd2tJdGVtOworICAgIG11
dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKKyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0
cmluZyB0aXRsZTsKKyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVSTDsK
KworICAgIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYgaXRlbVJlZikgOiB3a0l0ZW0oaXRlbVJlZikgeyB9Cit9OworCiB0eXBlZGVmIHN0cnVjdCBf
RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW07CiAK
IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9u
ZXcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrQmFja0ZvcndhcmRMaXN0SXRlbVJlZik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKaW5k
ZXggZGIxODc4Yi4uMWNlY2U0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtNzksNyArNzksNyBAQCBzdHJ1Y3QgX0V3a19Db250
ZXh0IHsKICNpZiBFTkFCTEUoVklCUkFUSU9OKQogICAgIFJlZlB0cjxWaWJyYXRpb25Qcm92aWRl
cj4gdmlicmF0aW9uUHJvdmlkZXI7CiAjZW5kaWYKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBFd2tf
RG93bmxvYWRfSm9iKj4gZG93bmxvYWRKb2JzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxFd2tfRG93bmxvYWRfSm9iPiA+IGRvd25sb2FkSm9iczsKIAogICAgIFdLUmV0YWluUHRyPFdL
U291cFJlcXVlc3RNYW5hZ2VyUmVmPiByZXF1ZXN0TWFuYWdlcjsKICAgICBVUkxTY2hlbWVIYW5k
bGVyTWFwIHVybFNjaGVtZUhhbmRsZXJzOwpAQCAtMTI4LDExICsxMjgsNiBAQCBzdHJ1Y3QgX0V3
a19Db250ZXh0IHsKIAogICAgICAgICBpZiAoZmF2aWNvbkRhdGFiYXNlKQogICAgICAgICAgICAg
ZXdrX2Zhdmljb25fZGF0YWJhc2VfZnJlZShmYXZpY29uRGF0YWJhc2UpOwotCi0gICAgICAgIEhh
c2hNYXA8dWludDY0X3QsIEV3a19Eb3dubG9hZF9Kb2IqPjo6aXRlcmF0b3IgaXQgPSBkb3dubG9h
ZEpvYnMuYmVnaW4oKTsKLSAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgRXdrX0Rvd25sb2FkX0pv
Yio+OjppdGVyYXRvciBlbmQgPSBkb3dubG9hZEpvYnMuZW5kKCk7Ci0gICAgICAgIGZvciAoIDsg
aXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgZXdrX2Rvd25sb2FkX2pvYl91bnJlZihpdC0+
dmFsdWUpOwogICAgIH0KIH07CiAKQEAgLTIxMCw3ICsyMDUsNyBAQCB2b2lkIGV3a19jb250ZXh0
X2Rvd25sb2FkX2pvYl9hZGQoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEV3a19Eb3dubG9hZF9K
b2IqIGV3awogICAgIGlmIChld2tDb250ZXh0LT5kb3dubG9hZEpvYnMuY29udGFpbnMoZG93bmxv
YWRJZCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGV3a0NvbnRleHQtPmRvd25sb2FkSm9icy5h
ZGQoZG93bmxvYWRJZCwgZXdrX2Rvd25sb2FkX2pvYl9yZWYoZXdrRG93bmxvYWQpKTsKKyAgICBl
d2tDb250ZXh0LT5kb3dubG9hZEpvYnMuYWRkKGRvd25sb2FkSWQsIGV3a0Rvd25sb2FkKTsKIH0K
IAogLyoqCkBAIC0yMjIsNyArMjE3LDcgQEAgRXdrX0Rvd25sb2FkX0pvYiogZXdrX2NvbnRleHRf
ZG93bmxvYWRfam9iX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgdWkKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwgMCk7CiAKLSAgICBy
ZXR1cm4gZXdrQ29udGV4dC0+ZG93bmxvYWRKb2JzLmdldChkb3dubG9hZElkKTsKKyAgICByZXR1
cm4gZXdrQ29udGV4dC0+ZG93bmxvYWRKb2JzLmdldChkb3dubG9hZElkKS5nZXQoKTsKIH0KIAog
LyoqCkBAIC0yMzMsOSArMjI4LDcgQEAgRXdrX0Rvd25sb2FkX0pvYiogZXdrX2NvbnRleHRfZG93
bmxvYWRfam9iX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgdWkKIHZvaWQgZXdr
X2NvbnRleHRfZG93bmxvYWRfam9iX3JlbW92ZShFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgdWlu
dDY0X3QgZG93bmxvYWRJZCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tD
b250ZXh0KTsKLSAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a0NvbnRleHQtPmRv
d25sb2FkSm9icy50YWtlKGRvd25sb2FkSWQpOwotICAgIGlmIChkb3dubG9hZCkKLSAgICAgICAg
ZXdrX2Rvd25sb2FkX2pvYl91bnJlZihkb3dubG9hZCk7CisgICAgZXdrQ29udGV4dC0+ZG93bmxv
YWRKb2JzLnJlbW92ZShkb3dubG9hZElkKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRf
Y2xpZW50LmNwcAppbmRleCAyYmJiN2VmLi43MzIwZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2Fk
X2NsaWVudC5jcHAKQEAgLTY4LDkgKzY4LDggQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBXS1VSTFJlc3AKIHsK
ICAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pv
Yl9nZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25s
b2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKLSAgICBFd2tfVXJsX1Jlc3BvbnNlKiBy
ZXNwb25zZSA9IGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1Jlc3BvbnNlKS0+cmVzb3Vy
Y2VSZXNwb25zZSgpKTsKLSAgICBld2tfZG93bmxvYWRfam9iX3Jlc3BvbnNlX3NldChkb3dubG9h
ZCwgcmVzcG9uc2UpOwotICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVzcG9uc2UpOworICAg
IFJlZlB0cjxFd2tfVXJsX1Jlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0UmVmKGV3a191cmxfcmVz
cG9uc2VfbmV3KHRvSW1wbCh3a1Jlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpKSk7CisgICAg
ZXdrX2Rvd25sb2FkX2pvYl9yZXNwb25zZV9zZXQoZG93bmxvYWQsIHJlc3BvbnNlLmdldCgpKTsK
IH0KIAogc3RhdGljIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rv
d25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIC8qcGF0aCovLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Rvd25sb2FkX2pvYi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZG93bmxvYWRfam9iLmNwcAppbmRleCAxNWE5NWIwLi44ZDcxNjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcApA
QCAtMjgsNTYgKzI4LDE4IEBACiAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVk
ZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
ZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0X3By
aXZhdGUuaCIKICNpbmNsdWRlIDxFY29yZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
Ci0vKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfRG93bmxvYWRfSm9iCi0gKiBAYnJpZWYgICBDb250YWlu
cyB0aGUgZG93bmxvYWQgZGF0YS4KLSAqLwotc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIHsKLSAg
ICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2Jq
ZWN0ICovCi0gICAgRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eTsKLSAgICBFdmFzX09iamVj
dCogdmlldzsKLSAgICBFd2tfRG93bmxvYWRfSm9iX1N0YXRlIHN0YXRlOwotICAgIFJlZlB0cjxF
d2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7Ci0gICAgRXdrX1VybF9SZXNwb25zZSogcmVzcG9uc2U7
Ci0gICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICBkb3VibGUgZW5kVGltZTsKLSAgICB1aW50NjRf
dCBkb3dubG9hZGVkOyAvKio8IGxlbmd0aCBhbHJlYWR5IGRvd25sb2FkZWQgKi8KLSAgICBXS0Vp
bmFTaGFyZWRTdHJpbmcgZGVzdGluYXRpb247Ci0gICAgV0tFaW5hU2hhcmVkU3RyaW5nIHN1Z2dl
c3RlZEZpbGVuYW1lOwotCi0gICAgX0V3a19Eb3dubG9hZF9Kb2IoRG93bmxvYWRQcm94eSogZG93
bmxvYWQsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQotICAgICAgICA6IF9fcmVmKDEpCi0gICAgICAg
ICwgZG93bmxvYWRQcm94eShkb3dubG9hZCkKLSAgICAgICAgLCB2aWV3KGV3a1ZpZXcpCi0gICAg
ICAgICwgc3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9OT1RfU1RBUlRFRCkKLSAgICAgICAg
LCByZXNwb25zZSgwKQotICAgICAgICAsIHN0YXJ0VGltZSgtMSkKLSAgICAgICAgLCBlbmRUaW1l
KC0xKQotICAgICAgICAsIGRvd25sb2FkZWQoMCkKLSAgICB7IH0KLQotICAgIH5fRXdrX0Rvd25s
b2FkX0pvYigpCi0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLSAgICAgICAgaWYgKHJl
c3BvbnNlKQotICAgICAgICAgICAgZXdrX3VybF9yZXNwb25zZV91bnJlZihyZXNwb25zZSk7Ci0g
ICAgfQotfTsKLQogRXdrX0Rvd25sb2FkX0pvYiogZXdrX2Rvd25sb2FkX2pvYl9yZWYoRXdrX0Rv
d25sb2FkX0pvYiogZG93bmxvYWQpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKGRvd25sb2FkLCAwKTsKIAotICAgICsrZG93bmxvYWQtPl9fcmVmOworICAgIGRvd25sb2Fk
LT5yZWYoKTsKIAogICAgIHJldHVybiBkb3dubG9hZDsKIH0KQEAgLTg2LDEwICs0OCw3IEBAIHZv
aWQgZXdrX2Rvd25sb2FkX2pvYl91bnJlZihFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCkKIHsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihkb3dubG9hZCk7CiAKLSAgICBpZiAoLS1k
b3dubG9hZC0+X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRlbGV0ZSBkb3dubG9hZDsK
KyAgICBkb3dubG9hZC0+ZGVyZWYoKTsKIH0KIAogLyoqCkBAIC0xNDAsNyArOTksNyBAQCBFd2tf
VXJsX1Jlc3BvbnNlKiBld2tfZG93bmxvYWRfam9iX3Jlc3BvbnNlX2dldChjb25zdCBFd2tfRG93
bmxvYWRfSm9iKiBkb3dubG9hZAogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChkb3dubG9hZCwgMCk7CiAKLSAgICByZXR1cm4gZG93bmxvYWQtPnJlc3BvbnNlOworICAgIHJl
dHVybiBkb3dubG9hZC0+cmVzcG9uc2UuZ2V0KCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19kb3du
bG9hZF9qb2JfZGVzdGluYXRpb25fZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9Kb2IqIGRvd25sb2Fk
KQpAQCAtMTg3LDcgKzE0Niw3IEBAIGRvdWJsZSBld2tfZG93bmxvYWRfam9iX2VzdGltYXRlZF9w
cm9ncmVzc19nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQpCiAgICAgaWYgKCFk
b3dubG9hZC0+cmVzcG9uc2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgY29uc3QgdW5zaWdu
ZWQgbG9uZyBjb250ZW50TGVuZ3RoID0gZXdrX3VybF9yZXNwb25zZV9jb250ZW50X2xlbmd0aF9n
ZXQoZG93bmxvYWQtPnJlc3BvbnNlKTsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIGNvbnRlbnRM
ZW5ndGggPSBld2tfdXJsX3Jlc3BvbnNlX2NvbnRlbnRfbGVuZ3RoX2dldChkb3dubG9hZC0+cmVz
cG9uc2UuZ2V0KCkpOwogICAgIGlmICghY29udGVudExlbmd0aCkKICAgICAgICAgcmV0dXJuIDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3du
bG9hZF9qb2JfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKaW5kZXggODFiNTQ0Yi4uMzAxYzQ3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2Fk
X2pvYl9wcml2YXRlLmgKQEAgLTI3LDE2ICsyNyw0NSBAQAogI2RlZmluZSBld2tfZG93bmxvYWRf
am9iX3ByaXZhdGVfaAogCiAjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5jbHVkZSAiV0tFaW5hU2hh
cmVkU3RyaW5nLmgiCisjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaCIKKyNpbmNs
dWRlICJld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFdmFzLmg+CiAKLXR5
cGVkZWYgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIEV3a19Eb3dubG9hZF9Kb2I7Ci10eXBlZGVm
IHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJsX1Jlc3BvbnNlOwotdHlwZWRlZiBzdHJ1
Y3QgX0V3a19FcnJvciBFd2tfRXJyb3I7Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgRG93
bmxvYWRQcm94eTsKIH0KIAorLyoqCisgKiBcc3RydWN0ICBfRXdrX0Rvd25sb2FkX0pvYgorICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIGRvd25sb2FkIGRhdGEuCisgKi8KK3N0cnVjdCBfRXdrX0Rv
d25sb2FkX0pvYiA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfRG93bmxvYWRfSm9iPiB7CisgICAg
V2ViS2l0OjpEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5OworICAgIEV2YXNfT2JqZWN0KiB2
aWV3OworICAgIEV3a19Eb3dubG9hZF9Kb2JfU3RhdGUgc3RhdGU7CisgICAgUmVmUHRyPEV3a19V
cmxfUmVxdWVzdD4gcmVxdWVzdDsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4gcmVzcG9u
c2U7CisgICAgZG91YmxlIHN0YXJ0VGltZTsKKyAgICBkb3VibGUgZW5kVGltZTsKKyAgICB1aW50
NjRfdCBkb3dubG9hZGVkOyAvKio8IGxlbmd0aCBhbHJlYWR5IGRvd25sb2FkZWQgKi8KKyAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgZGVzdGluYXRpb247CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHN1
Z2dlc3RlZEZpbGVuYW1lOworCisgICAgX0V3a19Eb3dubG9hZF9Kb2IoV2ViS2l0OjpEb3dubG9h
ZFByb3h5KiBkb3dubG9hZCwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCisgICAgICAgIDogZG93bmxv
YWRQcm94eShkb3dubG9hZCkKKyAgICAgICAgLCB2aWV3KGV3a1ZpZXcpCisgICAgICAgICwgc3Rh
dGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9OT1RfU1RBUlRFRCkKKyAgICAgICAgLCByZXNwb25z
ZSgwKQorICAgICAgICAsIHN0YXJ0VGltZSgtMSkKKyAgICAgICAgLCBlbmRUaW1lKC0xKQorICAg
ICAgICAsIGRvd25sb2FkZWQoMCkKKyAgICB7IH0KK307CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tf
RG93bmxvYWRfSm9iIEV3a19Eb3dubG9hZF9Kb2I7Cit0eXBlZGVmIHN0cnVjdCBfRXdrX0Vycm9y
IEV3a19FcnJvcjsKKwogRXdrX0Rvd25sb2FkX0pvYiogZXdrX2Rvd25sb2FkX2pvYl9uZXcoV2Vi
S2l0OjpEb3dubG9hZFByb3h5KiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpOwogdWludDY0X3QgZXdr
X2Rvd25sb2FkX2pvYl9pZF9nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiopOwogRXZhc19PYmpl
Y3QqIGV3a19kb3dubG9hZF9qb2Jfdmlld19nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fZGF0YV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
bmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAppbmRleCA2ZTQyZGM2Li4zN2Q4ZTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRh
X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2
aWdhdGlvbl9kYXRhX3ByaXZhdGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldLUmV0
YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdXJsX3Jl
cXVlc3RfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIC8qKgogICog
XHN0cnVjdCAgX0V3a19OYXZpZ2F0aW9uX0RhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVj
aXNpb24uY3BwCmluZGV4IDZlYmJlYmIuLmEwMWIzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9s
aWN5X2RlY2lzaW9uLmNwcApAQCAtMjYsNTYgKzI2LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmgiCiAKLSNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKLSNpbmNsdWRl
ICJXS0ZyYW1lUG9saWN5TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2lu
Y2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmgiCiAjaW5jbHVk
ZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfTmF2aWdh
dGlvbl9Qb2xpY3lfRGVjaXNpb24KLSAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBuYXZpZ2F0aW9u
IHBvbGljeSBkZWNpc2lvbiBkYXRhLgotICovCi1zdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbiB7Ci0gICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2Ug
Y291bnQgb2YgdGhlIG9iamVjdCAqLwotICAgIFdLUmV0YWluUHRyPFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclJlZj4gbGlzdGVuZXI7Ci0gICAgYm9vbCBhY3RlZFVwb25CeUNsaWVudDsKLSAgICBFd2tf
TmF2aWdhdGlvbl9UeXBlIG5hdmlnYXRpb25UeXBlOwotICAgIEV2ZW50X01vdXNlX0J1dHRvbiBt
b3VzZUJ1dHRvbjsKLSAgICBFdmVudF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVyczsKLSAgICBSZWZQ
dHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0OwotICAgIFdLRWluYVNoYXJlZFN0cmluZyBmcmFt
ZU5hbWU7Ci0KLSAgICBfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKFdLRnJhbWVQb2xp
Y3lMaXN0ZW5lclJlZiBfbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUgX25hdmlnYXRpb25U
eXBlLCBFdmVudF9Nb3VzZV9CdXR0b24gX21vdXNlQnV0dG9uLCBFdmVudF9Nb2RpZmllcl9LZXlz
IF9tb2RpZmllcnMsIFBhc3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiBfcmVxdWVzdCwgY29uc3Qg
Y2hhciogX2ZyYW1lTmFtZSkKLSAgICAgICAgOiBfX3JlZigxKQotICAgICAgICAsIGxpc3RlbmVy
KF9saXN0ZW5lcikKLSAgICAgICAgLCBhY3RlZFVwb25CeUNsaWVudChmYWxzZSkKLSAgICAgICAg
LCBuYXZpZ2F0aW9uVHlwZShfbmF2aWdhdGlvblR5cGUpCi0gICAgICAgICwgbW91c2VCdXR0b24o
X21vdXNlQnV0dG9uKQotICAgICAgICAsIG1vZGlmaWVycyhfbW9kaWZpZXJzKQotICAgICAgICAs
IHJlcXVlc3QoX3JlcXVlc3QpCi0gICAgICAgICwgZnJhbWVOYW1lKF9mcmFtZU5hbWUpCi0gICAg
eyB9Ci0KLSAgICB+X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbigpCi0gICAgewotICAg
ICAgICBBU1NFUlQoIV9fcmVmKTsKLQotICAgICAgICAvLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGNo
b2ljZSBmb3IgYWxsIHBvbGljeSBkZWNpc2lvbnMgaW4gV2ViUGFnZVByb3h5LmNwcC4KLSAgICAg
ICAgaWYgKCFhY3RlZFVwb25CeUNsaWVudCkKLSAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclVzZShsaXN0ZW5lci5nZXQoKSk7Ci0gICAgfQotfTsKLQogRXdrX05hdmlnYXRpb25fUG9s
aWN5X0RlY2lzaW9uKiBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcmVmKEV3a19OYXZp
Z2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24pCiB7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGRlY2lzaW9uLCAwKTsKIAotICAgICsrZGVjaXNpb24tPl9fcmVmOwor
ICAgIGRlY2lzaW9uLT5yZWYoKTsKIAogICAgIHJldHVybiBkZWNpc2lvbjsKIH0KQEAgLTg0LDEw
ICs0NSw3IEBAIHZvaWQgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3VucmVmKEV3a19O
YXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk4oZGVjaXNpb24pOwogCi0gICAgaWYgKC0tZGVjaXNpb24tPl9fcmVmKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBkZWxldGUgZGVjaXNpb247CisgICAgZGVjaXNpb24tPmRlcmVm
KCk7CiB9CiAKIEV3a19OYXZpZ2F0aW9uX1R5cGUgZXdrX25hdmlnYXRpb25fcG9saWN5X25hdmln
YXRpb25fdHlwZV9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNp
c2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19u
YXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oCmlu
ZGV4IGFiYzhiZWQuLjcxMTE1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2Rl
Y2lzaW9uX3ByaXZhdGUuaApAQCAtMjYsOSArMjYsNDUgQEAKICNpZm5kZWYgZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGVfaAogI2RlZmluZSBld2tfbmF2aWdhdGlvbl9wb2xp
Y3lfZGVjaXNpb25fcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRl
ICJXS0Jhc2UuaCIKKyNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJX
S0V2ZW50LmgiCisjaW5jbHVkZSAiV0tGcmFtZVBvbGljeUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
V0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlICJl
d2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgorCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfTmF2aWdh
dGlvbl9Qb2xpY3lfRGVjaXNpb24KKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBuYXZpZ2F0aW9u
IHBvbGljeSBkZWNpc2lvbiBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVj
aXNpb24+IHsKKyAgICBXS1JldGFpblB0cjxXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWY+IGxpc3Rl
bmVyOworICAgIGJvb2wgYWN0ZWRVcG9uQnlDbGllbnQ7CisgICAgRXdrX05hdmlnYXRpb25fVHlw
ZSBuYXZpZ2F0aW9uVHlwZTsKKyAgICBFdmVudF9Nb3VzZV9CdXR0b24gbW91c2VCdXR0b247Cisg
ICAgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmllcnM7CisgICAgUmVmUHRyPEV3a19VcmxfUmVx
dWVzdD4gcmVxdWVzdDsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZnJhbWVOYW1lOworCisgICAg
X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYg
X2xpc3RlbmVyLCBFd2tfTmF2aWdhdGlvbl9UeXBlIF9uYXZpZ2F0aW9uVHlwZSwgRXZlbnRfTW91
c2VfQnV0dG9uIF9tb3VzZUJ1dHRvbiwgRXZlbnRfTW9kaWZpZXJfS2V5cyBfbW9kaWZpZXJzLCBQ
YXNzUmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gX3JlcXVlc3QsIGNvbnN0IGNoYXIqIF9mcmFtZU5h
bWUpCisgICAgICAgIDogbGlzdGVuZXIoX2xpc3RlbmVyKQorICAgICAgICAsIGFjdGVkVXBvbkJ5
Q2xpZW50KGZhbHNlKQorICAgICAgICAsIG5hdmlnYXRpb25UeXBlKF9uYXZpZ2F0aW9uVHlwZSkK
KyAgICAgICAgLCBtb3VzZUJ1dHRvbihfbW91c2VCdXR0b24pCisgICAgICAgICwgbW9kaWZpZXJz
KF9tb2RpZmllcnMpCisgICAgICAgICwgcmVxdWVzdChfcmVxdWVzdCkKKyAgICAgICAgLCBmcmFt
ZU5hbWUoX2ZyYW1lTmFtZSkKKyAgICB7IH0KKworICAgIH5fRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uKCkKKyAgICB7CisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgY2hvaWNl
IGZvciBhbGwgcG9saWN5IGRlY2lzaW9ucyBpbiBXZWJQYWdlUHJveHkuY3BwLgorICAgICAgICBp
ZiAoIWFjdGVkVXBvbkJ5Q2xpZW50KQorICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVy
VXNlKGxpc3RlbmVyLmdldCgpKTsKKyAgICB9Cit9OwogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9y
ZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jl
c3BvbnNlLmNwcAppbmRleCA4YzFiMWI1Li5hODJmNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcApAQCAtMjYsNDIg
KzI2LDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25z
ZS5oIgogCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3Ry
aW5nLmgiCi0jaW5jbHVkZSAiV0tVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgImV3a191cmxfcmVz
cG9uc2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIAotLyoqCi0gKiBcc3RydWN0ICBfRXdrX1VybF9SZXNwb25zZQot
ICogQGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXNwb25zZSBkYXRhLgotICovCi1zdHJ1Y3Qg
X0V3a19VcmxfUmVzcG9uc2UgewotICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIGNvcmVSZXNwb25zZTsKLQotICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgV0tF
aW5hU2hhcmVkU3RyaW5nIG1pbWVUeXBlOwotCi0gICAgX0V3a19VcmxfUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgX2NvcmVSZXNwb25zZSkKLSAgICAgICAgOiBfX3Jl
ZigxKQotICAgICAgICAsIGNvcmVSZXNwb25zZShfY29yZVJlc3BvbnNlKQotICAgICAgICAsIHVy
bChBZG9wdFdLLCBXS1VSTFJlc3BvbnNlQ29weVVSTCh0b0FQSShjb3JlUmVzcG9uc2UpKSkKLSAg
ICAgICAgLCBtaW1lVHlwZShBZG9wdFdLLCBXS1VSTFJlc3BvbnNlQ29weU1JTUVUeXBlKHRvQVBJ
KGNvcmVSZXNwb25zZSkpKQotICAgIHsgfQotCi0gICAgfl9Fd2tfVXJsX1Jlc3BvbnNlKCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVCghX19yZWYpOwotICAgIH0KLX07Ci0KIEV3a19VcmxfUmVzcG9u
c2UqIGV3a191cmxfcmVzcG9uc2VfcmVmKEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7Ci0gICAgKyty
ZXNwb25zZS0+X19yZWY7CisgICAgcmVzcG9uc2UtPnJlZigpOwogCiAgICAgcmV0dXJuIHJlc3Bv
bnNlOwogfQpAQCAtNzAsMTAgKzQzLDcgQEAgdm9pZCBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKEV3
a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOKHJlc3BvbnNlKTsKIAotICAgIGlmICgtLXJlc3BvbnNlLT5fX3JlZikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZGVsZXRlIHJlc3BvbnNlOworICAgIHJlc3BvbnNlLT5kZXJlZigpOwogfQog
CiBjb25zdCBjaGFyKiBld2tfdXJsX3Jlc3BvbnNlX3VybF9nZXQoY29uc3QgRXdrX1VybF9SZXNw
b25zZSogcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCmluZGV4IDMyZDU2M2YuLjhkNDNj
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
cmVzcG9uc2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCkBAIC0yNiw3ICsyNiwyNSBAQAogI2lmbmRlZiBl
d2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGVfaAogI2RlZmluZSBld2tfdXJsX3Jlc3BvbnNlX3ByaXZh
dGVfaAogCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3Ry
aW5nLmgiCisjaW5jbHVkZSAiV0tVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXNwb25zZS5oPgorLyoqCisgKiBcc3RydWN0ICBfRXdrX1VybF9SZXNwb25zZQorICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXNwb25zZSBkYXRhLgorICovCitzdHJ1Y3QgX0V3
a19VcmxfUmVzcG9uc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX1VybF9SZXNwb25zZT4gewor
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29yZVJlc3BvbnNlOworICAgIFdLRWluYVNo
YXJlZFN0cmluZyB1cmw7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1pbWVUeXBlOworCisgICAg
X0V3a19VcmxfUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgX2NvcmVS
ZXNwb25zZSkKKyAgICAgICAgOiBjb3JlUmVzcG9uc2UoX2NvcmVSZXNwb25zZSkKKyAgICAgICAg
LCB1cmwoQWRvcHRXSywgV0tVUkxSZXNwb25zZUNvcHlVUkwoV2ViS2l0Ojp0b0FQSShjb3JlUmVz
cG9uc2UpKSkKKyAgICAgICAgLCBtaW1lVHlwZShBZG9wdFdLLCBXS1VSTFJlc3BvbnNlQ29weU1J
TUVUeXBlKFdlYktpdDo6dG9BUEkoY29yZVJlc3BvbnNlKSkpCisgICAgeyB9Cit9OwogCiB0eXBl
ZGVmIHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJsX1Jlc3BvbnNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGlj
eV9jbGllbnQuY3BwCmluZGV4IGNmMmYxMGUuLmJjZmI2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQu
Y3BwCkBAIC00NCwxNiArNDQsMTQgQEAgc3RhdGljIGlubGluZSBFdmFzX09iamVjdCogdG9Fd2tW
aWV3KGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlv
blR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50
TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
KiBkZWNpc2lvbiA9IGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlv
blR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKLSAg
ICBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b0V3a1ZpZXcoY2xpZW50SW5m
byksIGRlY2lzaW9uKTsKLSAgICBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fdW5yZWYo
ZGVjaXNpb24pOworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRl
Y2lzaW9uID0gYWRvcHRSZWYoZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyhuYXZp
Z2F0aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlmaWVycywgcmVxdWVzdCwgMCwgbGlzdGVuZXIp
KTsKKyAgICBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b0V3a1ZpZXcoY2xp
ZW50SW5mbyksIGRlY2lzaW9uLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRp
b25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJp
bmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlw
ZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lvbiA9IGV3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbl9uZXcobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJl
cXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5l
cik7Ci0gICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNs
aWVudEluZm8pLCBkZWNpc2lvbik7Ci0gICAgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
X3VucmVmKGRlY2lzaW9uKTsKKyAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lz
aW9uPiBkZWNpc2lvbiA9IGFkb3B0UmVmKGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9u
ZXcobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1w
bChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcikpOworICAgIGV3
a192aWV3X25ld193aW5kb3dfcG9saWN5X2RlY2lzaW9uKHRvRXdrVmlldyhjbGllbnRJbmZvKSwg
ZGVjaXNpb24uZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiBy
ZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVu
ZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIC8qY2xpZW50SW5mbyovKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVz
b3VyY2VfbG9hZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCmluZGV4IDQ2OWUxODIuLjY2OTdmZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jl
c291cmNlX2xvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKQEAgLTY1LDE3ICs2NSwxNCBA
QCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYgd2tGcmFtZSwgdWludDY0X3Qgcgogc3RhdGljIHZvaWQgZGlkU2VuZFJlcXVlc3RGb3JS
ZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmll
ciwgV0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgUmVmUHRyPEV3a19Vcmxf
UmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXcod2tSZXF1ZXN0
KSk7Ci0gICAgRXdrX1VybF9SZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSA9IHdrUmVkaXJlY3RS
ZXNwb25zZSA/IGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2Up
LT5yZXNvdXJjZVJlc3BvbnNlKCkpIDogMDsKLSAgICBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0
X3NlbnQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3Qu
Z2V0KCksIHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIGlmIChyZWRpcmVjdFJlc3BvbnNlKQotICAg
ICAgICBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKHJlZGlyZWN0UmVzcG9uc2UpOworICAgIFJlZlB0
cjxFd2tfVXJsX1Jlc3BvbnNlPiByZWRpcmVjdFJlc3BvbnNlID0gd2tSZWRpcmVjdFJlc3BvbnNl
ID8gYWRvcHRSZWYoZXdrX3VybF9yZXNwb25zZV9uZXcodG9JbXBsKHdrUmVkaXJlY3RSZXNwb25z
ZSktPnJlc291cmNlUmVzcG9uc2UoKSkpIDogMDsKKyAgICBld2tfdmlld19yZXNvdXJjZV9yZXF1
ZXN0X3NlbnQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVl
c3QuZ2V0KCksIHJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIHVpbnQ2NF90
IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXNwb25zZVJlZiB3a1Jlc3BvbnNlLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewotICAgIEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlID0gZXdr
X3VybF9yZXNwb25zZV9uZXcodG9JbXBsKHdrUmVzcG9uc2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkp
OwotICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9uc2UodG9Fd2tWaWV3KGNsaWVudElu
Zm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlc3BvbnNlKTsKLSAgICBld2tfdXJsX3Jlc3BvbnNl
X3VucmVmKHJlc3BvbnNlKTsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4gcmVzcG9uc2Ug
PSBhZG9wdFJlZihld2tfdXJsX3Jlc3BvbnNlX25ldyh0b0ltcGwod2tSZXNwb25zZSktPnJlc291
cmNlUmVzcG9uc2UoKSkpOworICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9uc2UodG9F
d2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlc3BvbnNlLmdldCgpKTsK
IH0KIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvclJlc291cmNlKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQo=
</data>
<flag name="review"
          id="182039"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168936</attachid>
            <date>2012-10-16 06:32:45 -0700</date>
            <delta_ts>2012-10-16 09:08:03 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug99455_v2</filename>
            <type>text/plain</type>
            <size>29189</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDU2YTY4ZTM0ZGJiYjNmNjkyMzYyZTI3NTFiOGNjYjJmMmFkZDI0YjQKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAxNiAxNjozMDowNiAyMDEyICswMzAwCgogICAgYnVnOTk0NTUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNjZmZjRjNS4uNGViNmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY0IEBACiAyMDEyLTEw
LTE2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgog
CisgICAgICAgIFtFRkxdW1dLMl0gSW5oZXJpdCBFd2tfRG93bmxvYWRfSm9iLCBFd2tfQmFja19G
b3J3YXJkX0xpc3RfSXRlbSwgRXdrX1VybF9SZXNwb25zZSwgRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uIGZyb20gUmVmQ291bnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NTUKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbi4KKworICAgICAgICBUaGUgQVBJIG9iamVjdHMgbWVudGlvbmVkIGlu
IGJ1ZyB0aXRsZSBhcmUgaW5oZXJpdGVkIGZyb20gV1RGOjpSZWZDb3VudGVkIHdoaWNoIG1hZGUg
aXQgcG9zc2libGUKKyAgICAgICAgdG8gdXNlIHNtYXJ0IHBvaW50ZXJzIHdpdGggdGhlbS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNwcDoKKyAgICAgICAg
KF9Fd2tfQmFja19Gb3J3YXJkX0xpc3Q6Ol9Fd2tfQmFja19Gb3J3YXJkX0xpc3QpOgorICAgICAg
ICAoYWRkSXRlbVRvV3JhcHBlckNhY2hlKToKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9jaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJk
X2xpc3RfaXRlbS5jcHA6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9yZWYp
OgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdW5yZWYpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaDoK
KyAgICAgICAgKF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSk6CisgICAgICAgIChfRXdrX0Jh
Y2tfRm9yd2FyZF9MaXN0X0l0ZW06Ol9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwOgorICAgICAgICAoX0V3a19D
b250ZXh0KToKKyAgICAgICAgKF9Fd2tfQ29udGV4dDo6fl9Fd2tfQ29udGV4dCk6CisgICAgICAg
IChld2tfY29udGV4dF9kb3dubG9hZF9qb2JfYWRkKToKKyAgICAgICAgKGV3a19jb250ZXh0X2Rv
d25sb2FkX2pvYl9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX3JlbW92
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xp
ZW50LmNwcDoKKyAgICAgICAgKGRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5jcHA6CisgICAgICAgIChld2tfZG93bmxvYWRf
am9iX3JlZik6CisgICAgICAgIChld2tfZG93bmxvYWRfam9iX3VucmVmKToKKyAgICAgICAgKGV3
a19kb3dubG9hZF9qb2JfcmVzcG9uc2VfZ2V0KToKKyAgICAgICAgKGV3a19kb3dubG9hZF9qb2Jf
ZXN0aW1hdGVkX3Byb2dyZXNzX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2Rvd25sb2FkX2pvYl9wcml2YXRlLmg6CisgICAgICAgIChfRXdrX0Rvd25sb2FkX0pvYik6Cisg
ICAgICAgIChfRXdrX0Rvd25sb2FkX0pvYjo6X0V3a19Eb3dubG9hZF9Kb2IpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHA6
CisgICAgICAgIChld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcmVmKToKKyAgICAgICAg
KGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl91bnJlZik6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaDoKKyAg
ICAgICAgKF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24pOgorICAgICAgICAoX0V3a19O
YXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lv
bik6CisgICAgICAgIChfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjp+X0V3a19OYXZp
Z2F0aW9uX1BvbGljeV9EZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9yZXNwb25zZS5jcHA6CisgICAgICAgIChld2tfdXJsX3Jlc3BvbnNlX3JlZik6CisgICAg
ICAgIChld2tfdXJsX3Jlc3BvbnNlX3VucmVmKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfVXJsX1Jlc3BvbnNl
KToKKyAgICAgICAgKF9Fd2tfVXJsX1Jlc3BvbnNlOjpfRXdrX1VybF9SZXNwb25zZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHA6CisgICAg
ICAgIChkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkU2VuZFJlcXVlc3RG
b3JSZXNvdXJjZSk6CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSk6CisK
KzIwMTItMTAtMTYgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRl
bC5jb20+CisKICAgICAgICAgW1dLMl0gUHJvdmlkZSBXS1VSTCBBUEkgZm9yIHJlc29sdmluZyB0
aGUgcmVsYXRpdmUgVVJMIHdpdGggdGhlIGdpdmVuIGJhc2UgVVJMCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTMxNwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggOTkzZjg2
My4uODhjZWYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
UGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMjgzLDkgKzI4Myw4IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OmNvdW50U3RyaW5nTWF0Y2hlc0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5n
JiwgRmluCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3du
bG9hZFByb3h5KiBkb3dubG9hZCkKIHsKLSAgICBFd2tfRG93bmxvYWRfSm9iKiBld2tEb3dubG9h
ZCA9IGV3a19kb3dubG9hZF9qb2JfbmV3KGRvd25sb2FkLCBtX3ZpZXdXaWRnZXQpOwotICAgIGV3
a19jb250ZXh0X2Rvd25sb2FkX2pvYl9hZGQoZXdrX3ZpZXdfY29udGV4dF9nZXQobV92aWV3V2lk
Z2V0KSwgZXdrRG93bmxvYWQpOwotICAgIGV3a19kb3dubG9hZF9qb2JfdW5yZWYoZXdrRG93bmxv
YWQpOworICAgIFJlZlB0cjxFd2tfRG93bmxvYWRfSm9iPiBld2tEb3dubG9hZCA9IGFkb3B0UmVm
KGV3a19kb3dubG9hZF9qb2JfbmV3KGRvd25sb2FkLCBtX3ZpZXdXaWRnZXQpKTsKKyAgICBld2tf
Y29udGV4dF9kb3dubG9hZF9qb2JfYWRkKGV3a192aWV3X2NvbnRleHRfZ2V0KG1fdmlld1dpZGdl
dCksIGV3a0Rvd25sb2FkLmdldCgpKTsKIH0KIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tf
Zm9yd2FyZF9saXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19i
YWNrX2ZvcndhcmRfbGlzdC5jcHAKaW5kZXggOTRkMDMwMC4uOTIwMzU2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJk
X2xpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAK
LXR5cGVkZWYgSGFzaE1hcDxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIEV3a19CYWNrX0Zvcndh
cmRfTGlzdF9JdGVtKj4gSXRlbXNNYXA7Cit0eXBlZGVmIEhhc2hNYXA8V0tCYWNrRm9yd2FyZExp
c3RJdGVtUmVmLCBSZWZQdHI8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+ID4gSXRlbXNNYXA7
CiAKIC8qKgogICogXHN0cnVjdCAgX0V3a19CYWNrX0ZvcndhcmRfTGlzdApAQCAtNDgsMTQgKzQ4
LDYgQEAgc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QgewogICAgIF9Fd2tfQmFja19Gb3J3
YXJkX0xpc3QoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKICAgICAgICAgOiB3a0xpc3Qo
bGlzdFJlZikKICAgICB7IH0KLQotICAgIH5fRXdrX0JhY2tfRm9yd2FyZF9MaXN0KCkKLSAgICB7
Ci0gICAgICAgIEl0ZW1zTWFwOjppdGVyYXRvciBpdCA9IHdyYXBwZXJDYWNoZS5iZWdpbigpOwot
ICAgICAgICBJdGVtc01hcDo6aXRlcmF0b3IgZW5kID0gd3JhcHBlckNhY2hlLmVuZCgpOwotICAg
ICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW1fdW5yZWYoaXQtPnZhbHVlKTsKLSAgICB9CiB9OwogCiAjZGVmaW5lIEVXS19C
QUNLX0ZPUldBUkRfTElTVF9XS19HRVRfT1JfUkVUVVJOKGxpc3QsIHdrTGlzdF8sIC4uLikgIFwK
QEAgLTc1LDEzICs2NywxMyBAQCBzdGF0aWMgaW5saW5lIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9J
dGVtKiBhZGRJdGVtVG9XcmFwcGVyQ2FjaGUoY29uc3QgRXdrX0JhY2tfRgogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChsaXN0LCAwKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwod2tJdGVtLCAwKTsKIAotICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
KiBpdGVtID0gbGlzdC0+d3JhcHBlckNhY2hlLmdldCh3a0l0ZW0pOworICAgIFJlZlB0cjxFd2tf
QmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gaXRlbSA9IGxpc3QtPndyYXBwZXJDYWNoZS5nZXQod2tJ
dGVtKTsKICAgICBpZiAoIWl0ZW0pIHsKLSAgICAgICAgaXRlbSA9IGV3a19iYWNrX2ZvcndhcmRf
bGlzdF9pdGVtX25ldyh3a0l0ZW0pOworICAgICAgICBpdGVtID0gYWRvcHRSZWYoZXdrX2JhY2tf
Zm9yd2FyZF9saXN0X2l0ZW1fbmV3KHdrSXRlbSkpOwogICAgICAgICBsaXN0LT53cmFwcGVyQ2Fj
aGUuc2V0KHdrSXRlbSwgaXRlbSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGl0ZW07CisgICAgcmV0
dXJuIGl0ZW0uZ2V0KCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRWluYV9MaXN0KiBjcmVhdGVFaW5h
TGlzdChjb25zdCBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGxpc3QsIFdLQXJyYXlSZWYgd2tMaXN0
KQpAQCAtMTc0LDggKzE2Niw3IEBAIHZvaWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2NoYW5nZWQo
RXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0LCBXS0JhY2tGb3J3YXJkTGlzCiAgICAgY29uc3Qg
c2l6ZV90IHJlbW92ZWRJdGVtc1NpemUgPSB3a1JlbW92ZWRJdGVtcyA/IFdLQXJyYXlHZXRTaXpl
KHdrUmVtb3ZlZEl0ZW1zKSA6IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZW1vdmVk
SXRlbXNTaXplOyArK2kpIHsKICAgICAgICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRl
bSA9IHN0YXRpY19jYXN0PFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4oV0tBcnJheUdldEl0ZW1B
dEluZGV4KHdrUmVtb3ZlZEl0ZW1zLCBpKSk7Ci0gICAgICAgIGlmIChFd2tfQmFja19Gb3J3YXJk
X0xpc3RfSXRlbSogaXRlbSA9IGxpc3QtPndyYXBwZXJDYWNoZS50YWtlKHdrSXRlbSkpCi0gICAg
ICAgICAgICBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91bnJlZihpdGVtKTsKKyAgICAgICAg
bGlzdC0+d3JhcHBlckNhY2hlLnJlbW92ZSh3a0l0ZW0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0
X2l0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9y
d2FyZF9saXN0X2l0ZW0uY3BwCmluZGV4IDcwNDU0NWEuLjhiNTZmZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3
YXJkX2xpc3RfaXRlbS5jcHAKQEAgLTI4LDMyICsyOCwxMCBAQAogCiAjaW5jbHVkZSAiV0tBUElD
YXN0LmgiCiAjaW5jbHVkZSAiV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgiCi0jaW5jbHVkZSAiV0tF
aW5hU2hhcmVkU3RyaW5nLmgiCisjaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1f
cHJpdmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1Y3Qg
IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QKLSAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBCYWNrIEZv
cndhcmQgTGlzdCBkYXRhLgotICovCi1zdHJ1Y3QgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
IHsKLSAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0
aGUgb2JqZWN0ICovCi0gICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPiB3
a0l0ZW07Ci0gICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOwotICAgIG11dGFibGUg
V0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwotICAgIG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5n
IG9yaWdpbmFsVVJMOwotCi0gICAgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQotICAgICAgICA6IF9fcmVmKDEpCi0gICAgICAgICwg
d2tJdGVtKGl0ZW1SZWYpCi0gICAgeyB9Ci0KLSAgICB+X0V3a19CYWNrX0ZvcndhcmRfTGlzdF9J
dGVtKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghX19yZWYpOwotICAgIH0KLX07Ci0KICNkZWZp
bmUgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09SX1JFVFVSTihpdGVtLCB3a0l0
ZW1fLCAuLi4pICAgIFwKICAgICBpZiAoIShpdGVtKSkgeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRUlOQV9MT0dfQ1JJ
VCgiaXRlbSBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
QEAgLTY4LDcgKzQ2LDcgQEAgc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSB7CiBF
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcmVm
KEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKLSAgICArK2l0ZW0tPl9fcmVmOworICAgIGl0ZW0t
PnJlZigpOwogCiAgICAgcmV0dXJuIGl0ZW07CiB9CkBAIC03NywxMCArNTUsNyBAQCB2b2lkIGV3
a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3VucmVmKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
KiBpdGVtKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGl0ZW0pOwogCi0gICAg
aWYgKC0taXRlbS0+X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRlbGV0ZSBpdGVtOwor
ICAgIGl0ZW0tPmRlcmVmKCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtX3VybF9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3
YXJkX2xpc3RfaXRlbV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9wcml2YXRlLmgKaW5kZXggOGMyYzY4NC4uM2Ez
N2I0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaApAQCAtMjYs
OCArMjYsMjIgQEAKICNpZm5kZWYgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZV9o
CiAjZGVmaW5lIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGVfaAogCisjaW5jbHVk
ZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KIAor
LyoqCisgKiBcc3RydWN0ICBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0CisgKiBAYnJpZWYgICBDb250
YWlucyB0aGUgQmFjayBGb3J3YXJkIExpc3QgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tfQmFja19G
b3J3YXJkX0xpc3RfSXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfQmFja19Gb3J3YXJkX0xp
c3RfSXRlbT4geworICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4gd2tJ
dGVtOworICAgIG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKKyAgICBtdXRhYmxlIFdL
RWluYVNoYXJlZFN0cmluZyB0aXRsZTsKKyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBv
cmlnaW5hbFVSTDsKKworICAgIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShXS0JhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikgOiB3a0l0ZW0oaXRlbVJlZikgeyB9Cit9OworCiB0eXBl
ZGVmIHN0cnVjdCBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gRXdrX0JhY2tfRm9yd2FyZF9M
aXN0X0l0ZW07CiAKIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBld2tfYmFja19mb3J3YXJk
X2xpc3RfaXRlbV9uZXcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrQmFja0ZvcndhcmRMaXN0
SXRlbVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dC5jcHAKaW5kZXggZGIxODc4Yi4uMWNlY2U0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtNzksNyArNzksNyBAQCBzdHJ1
Y3QgX0V3a19Db250ZXh0IHsKICNpZiBFTkFCTEUoVklCUkFUSU9OKQogICAgIFJlZlB0cjxWaWJy
YXRpb25Qcm92aWRlcj4gdmlicmF0aW9uUHJvdmlkZXI7CiAjZW5kaWYKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBFd2tfRG93bmxvYWRfSm9iKj4gZG93bmxvYWRKb2JzOworICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxFd2tfRG93bmxvYWRfSm9iPiA+IGRvd25sb2FkSm9iczsKIAogICAgIFdL
UmV0YWluUHRyPFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmPiByZXF1ZXN0TWFuYWdlcjsKICAgICBV
UkxTY2hlbWVIYW5kbGVyTWFwIHVybFNjaGVtZUhhbmRsZXJzOwpAQCAtMTI4LDExICsxMjgsNiBA
QCBzdHJ1Y3QgX0V3a19Db250ZXh0IHsKIAogICAgICAgICBpZiAoZmF2aWNvbkRhdGFiYXNlKQog
ICAgICAgICAgICAgZXdrX2Zhdmljb25fZGF0YWJhc2VfZnJlZShmYXZpY29uRGF0YWJhc2UpOwot
Ci0gICAgICAgIEhhc2hNYXA8dWludDY0X3QsIEV3a19Eb3dubG9hZF9Kb2IqPjo6aXRlcmF0b3Ig
aXQgPSBkb3dubG9hZEpvYnMuYmVnaW4oKTsKLSAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgRXdr
X0Rvd25sb2FkX0pvYio+OjppdGVyYXRvciBlbmQgPSBkb3dubG9hZEpvYnMuZW5kKCk7Ci0gICAg
ICAgIGZvciAoIDsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgZXdrX2Rvd25sb2FkX2pv
Yl91bnJlZihpdC0+dmFsdWUpOwogICAgIH0KIH07CiAKQEAgLTIxMCw3ICsyMDUsNyBAQCB2b2lk
IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9hZGQoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEV3
a19Eb3dubG9hZF9Kb2IqIGV3awogICAgIGlmIChld2tDb250ZXh0LT5kb3dubG9hZEpvYnMuY29u
dGFpbnMoZG93bmxvYWRJZCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGV3a0NvbnRleHQtPmRv
d25sb2FkSm9icy5hZGQoZG93bmxvYWRJZCwgZXdrX2Rvd25sb2FkX2pvYl9yZWYoZXdrRG93bmxv
YWQpKTsKKyAgICBld2tDb250ZXh0LT5kb3dubG9hZEpvYnMuYWRkKGRvd25sb2FkSWQsIGV3a0Rv
d25sb2FkKTsKIH0KIAogLyoqCkBAIC0yMjIsNyArMjE3LDcgQEAgRXdrX0Rvd25sb2FkX0pvYiog
ZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4
dCwgdWkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwg
MCk7CiAKLSAgICByZXR1cm4gZXdrQ29udGV4dC0+ZG93bmxvYWRKb2JzLmdldChkb3dubG9hZElk
KTsKKyAgICByZXR1cm4gZXdrQ29udGV4dC0+ZG93bmxvYWRKb2JzLmdldChkb3dubG9hZElkKS5n
ZXQoKTsKIH0KIAogLyoqCkBAIC0yMzMsOSArMjI4LDcgQEAgRXdrX0Rvd25sb2FkX0pvYiogZXdr
X2NvbnRleHRfZG93bmxvYWRfam9iX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCwg
dWkKIHZvaWQgZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX3JlbW92ZShFd2tfQ29udGV4dCogZXdr
Q29udGV4dCwgdWludDY0X3QgZG93bmxvYWRJZCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihld2tDb250ZXh0KTsKLSAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3
a0NvbnRleHQtPmRvd25sb2FkSm9icy50YWtlKGRvd25sb2FkSWQpOwotICAgIGlmIChkb3dubG9h
ZCkKLSAgICAgICAgZXdrX2Rvd25sb2FkX2pvYl91bnJlZihkb3dubG9hZCk7CisgICAgZXdrQ29u
dGV4dC0+ZG93bmxvYWRKb2JzLnJlbW92ZShkb3dubG9hZElkKTsKIH0KIAogLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9h
ZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfZG93bmxvYWRfY2xpZW50LmNwcAppbmRleCAyYmJiN2VmLi43MzIwZDdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9j
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKQEAgLTY4LDkgKzY4LDggQEAgc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBX
S1VSTFJlc3AKIHsKICAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0
X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3du
bG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsKLSAgICBFd2tfVXJs
X1Jlc3BvbnNlKiByZXNwb25zZSA9IGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1Jlc3Bv
bnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpKTsKLSAgICBld2tfZG93bmxvYWRfam9iX3Jlc3BvbnNl
X3NldChkb3dubG9hZCwgcmVzcG9uc2UpOwotICAgIGV3a191cmxfcmVzcG9uc2VfdW5yZWYocmVz
cG9uc2UpOworICAgIFJlZlB0cjxFd2tfVXJsX1Jlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0UmVm
KGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1Jlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25z
ZSgpKSk7CisgICAgZXdrX2Rvd25sb2FkX2pvYl9yZXNwb25zZV9zZXQoZG93bmxvYWQsIHJlc3Bv
bnNlLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oV0tDb250
ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIC8qcGF0aCovLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmNwcAppbmRleCAxNWE5NWIwLi44ZDcxNjM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRf
am9iLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxv
YWRfam9iLmNwcApAQCAtMjgsNTYgKzI4LDE4IEBACiAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5
LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5n
LmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3Vy
bF9yZXF1ZXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFY29yZS5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfRG93bmxvYWRfSm9iCi0gKiBAYnJp
ZWYgICBDb250YWlucyB0aGUgZG93bmxvYWQgZGF0YS4KLSAqLwotc3RydWN0IF9Fd2tfRG93bmxv
YWRfSm9iIHsKLSAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3Vu
dCBvZiB0aGUgb2JqZWN0ICovCi0gICAgRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eTsKLSAg
ICBFdmFzX09iamVjdCogdmlldzsKLSAgICBFd2tfRG93bmxvYWRfSm9iX1N0YXRlIHN0YXRlOwot
ICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7Ci0gICAgRXdrX1VybF9SZXNwb25z
ZSogcmVzcG9uc2U7Ci0gICAgZG91YmxlIHN0YXJ0VGltZTsKLSAgICBkb3VibGUgZW5kVGltZTsK
LSAgICB1aW50NjRfdCBkb3dubG9hZGVkOyAvKio8IGxlbmd0aCBhbHJlYWR5IGRvd25sb2FkZWQg
Ki8KLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZGVzdGluYXRpb247Ci0gICAgV0tFaW5hU2hhcmVk
U3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lOwotCi0gICAgX0V3a19Eb3dubG9hZF9Kb2IoRG93bmxv
YWRQcm94eSogZG93bmxvYWQsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQotICAgICAgICA6IF9fcmVm
KDEpCi0gICAgICAgICwgZG93bmxvYWRQcm94eShkb3dubG9hZCkKLSAgICAgICAgLCB2aWV3KGV3
a1ZpZXcpCi0gICAgICAgICwgc3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9OT1RfU1RBUlRF
RCkKLSAgICAgICAgLCByZXNwb25zZSgwKQotICAgICAgICAsIHN0YXJ0VGltZSgtMSkKLSAgICAg
ICAgLCBlbmRUaW1lKC0xKQotICAgICAgICAsIGRvd25sb2FkZWQoMCkKLSAgICB7IH0KLQotICAg
IH5fRXdrX0Rvd25sb2FkX0pvYigpCi0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLSAg
ICAgICAgaWYgKHJlc3BvbnNlKQotICAgICAgICAgICAgZXdrX3VybF9yZXNwb25zZV91bnJlZihy
ZXNwb25zZSk7Ci0gICAgfQotfTsKLQogRXdrX0Rvd25sb2FkX0pvYiogZXdrX2Rvd25sb2FkX2pv
Yl9yZWYoRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGRvd25sb2FkLCAwKTsKIAotICAgICsrZG93bmxvYWQtPl9fcmVmOwor
ICAgIGRvd25sb2FkLT5yZWYoKTsKIAogICAgIHJldHVybiBkb3dubG9hZDsKIH0KQEAgLTg2LDEw
ICs0OCw3IEBAIHZvaWQgZXdrX2Rvd25sb2FkX2pvYl91bnJlZihFd2tfRG93bmxvYWRfSm9iKiBk
b3dubG9hZCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihkb3dubG9hZCk7CiAK
LSAgICBpZiAoLS1kb3dubG9hZC0+X19yZWYpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRlbGV0
ZSBkb3dubG9hZDsKKyAgICBkb3dubG9hZC0+ZGVyZWYoKTsKIH0KIAogLyoqCkBAIC0xNDAsNyAr
OTksNyBAQCBFd2tfVXJsX1Jlc3BvbnNlKiBld2tfZG93bmxvYWRfam9iX3Jlc3BvbnNlX2dldChj
b25zdCBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZAogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChkb3dubG9hZCwgMCk7CiAKLSAgICByZXR1cm4gZG93bmxvYWQtPnJlc3Bv
bnNlOworICAgIHJldHVybiBkb3dubG9hZC0+cmVzcG9uc2UuZ2V0KCk7CiB9CiAKIGNvbnN0IGNo
YXIqIGV3a19kb3dubG9hZF9qb2JfZGVzdGluYXRpb25fZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9K
b2IqIGRvd25sb2FkKQpAQCAtMTg3LDcgKzE0Niw3IEBAIGRvdWJsZSBld2tfZG93bmxvYWRfam9i
X2VzdGltYXRlZF9wcm9ncmVzc19nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQp
CiAgICAgaWYgKCFkb3dubG9hZC0+cmVzcG9uc2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
Y29uc3QgdW5zaWduZWQgbG9uZyBjb250ZW50TGVuZ3RoID0gZXdrX3VybF9yZXNwb25zZV9jb250
ZW50X2xlbmd0aF9nZXQoZG93bmxvYWQtPnJlc3BvbnNlKTsKKyAgICBjb25zdCB1bnNpZ25lZCBs
b25nIGNvbnRlbnRMZW5ndGggPSBld2tfdXJsX3Jlc3BvbnNlX2NvbnRlbnRfbGVuZ3RoX2dldChk
b3dubG9hZC0+cmVzcG9uc2UuZ2V0KCkpOwogICAgIGlmICghY29udGVudExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKaW5kZXggODFiNTQ0Yi4uMzAxYzQ3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25s
b2FkX2pvYl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKQEAgLTI3LDE2ICsyNyw0NSBAQAogI2RlZmluZSBl
d2tfZG93bmxvYWRfam9iX3ByaXZhdGVfaAogCiAjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5jbHVk
ZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCisjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0X3ByaXZh
dGUuaCIKKyNpbmNsdWRlICJld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxF
dmFzLmg+CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIEV3a19Eb3dubG9hZF9K
b2I7Ci10eXBlZGVmIHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJsX1Jlc3BvbnNlOwot
dHlwZWRlZiBzdHJ1Y3QgX0V3a19FcnJvciBFd2tfRXJyb3I7Ci0KIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgRG93bmxvYWRQcm94eTsKIH0KIAorLyoqCisgKiBcc3RydWN0ICBfRXdrX0Rvd25s
b2FkX0pvYgorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGRvd25sb2FkIGRhdGEuCisgKi8KK3N0
cnVjdCBfRXdrX0Rvd25sb2FkX0pvYiA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfRG93bmxvYWRf
Sm9iPiB7CisgICAgV2ViS2l0OjpEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5OworICAgIEV2
YXNfT2JqZWN0KiB2aWV3OworICAgIEV3a19Eb3dubG9hZF9Kb2JfU3RhdGUgc3RhdGU7CisgICAg
UmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdDsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXNw
b25zZT4gcmVzcG9uc2U7CisgICAgZG91YmxlIHN0YXJ0VGltZTsKKyAgICBkb3VibGUgZW5kVGlt
ZTsKKyAgICB1aW50NjRfdCBkb3dubG9hZGVkOyAvKio8IGxlbmd0aCBhbHJlYWR5IGRvd25sb2Fk
ZWQgKi8KKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZGVzdGluYXRpb247CisgICAgV0tFaW5hU2hh
cmVkU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lOworCisgICAgX0V3a19Eb3dubG9hZF9Kb2IoV2Vi
S2l0OjpEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCisgICAg
ICAgIDogZG93bmxvYWRQcm94eShkb3dubG9hZCkKKyAgICAgICAgLCB2aWV3KGV3a1ZpZXcpCisg
ICAgICAgICwgc3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9OT1RfU1RBUlRFRCkKKyAgICAg
ICAgLCByZXNwb25zZSgwKQorICAgICAgICAsIHN0YXJ0VGltZSgtMSkKKyAgICAgICAgLCBlbmRU
aW1lKC0xKQorICAgICAgICAsIGRvd25sb2FkZWQoMCkKKyAgICB7IH0KK307CisKK3R5cGVkZWYg
c3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIEV3a19Eb3dubG9hZF9Kb2I7Cit0eXBlZGVmIHN0cnVj
dCBfRXdrX0Vycm9yIEV3a19FcnJvcjsKKwogRXdrX0Rvd25sb2FkX0pvYiogZXdrX2Rvd25sb2Fk
X2pvYl9uZXcoV2ViS2l0OjpEb3dubG9hZFByb3h5KiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpOwog
dWludDY0X3QgZXdrX2Rvd25sb2FkX2pvYl9pZF9nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiop
OwogRXZhc19PYmplY3QqIGV3a19kb3dubG9hZF9qb2Jfdmlld19nZXQoY29uc3QgRXdrX0Rvd25s
b2FkX0pvYiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAppbmRleCA2ZTQyZGM2Li4zN2Q4
ZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2
aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRl
ICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAKIC8qKgogICogXHN0cnVjdCAgX0V3a19OYXZpZ2F0aW9uX0RhdGEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNp
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlv
bl9wb2xpY3lfZGVjaXNpb24uY3BwCmluZGV4IDZlYmJlYmIuLmEwMWIzMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9k
ZWNpc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcApAQCAtMjYsNTYgKzI2LDE3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmgi
CiAKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcu
aCIKLSNpbmNsdWRlICJXS0ZyYW1lUG9saWN5TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJXS1JldGFp
blB0ci5oIgogI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3Rf
cHJpdmF0ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vKioKLSAqIFxzdHJ1Y3Qg
IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24KLSAqIEBicmllZiAgIENvbnRhaW5zIHRo
ZSBuYXZpZ2F0aW9uIHBvbGljeSBkZWNpc2lvbiBkYXRhLgotICovCi1zdHJ1Y3QgX0V3a19OYXZp
Z2F0aW9uX1BvbGljeV9EZWNpc2lvbiB7Ci0gICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRo
ZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVjdCAqLwotICAgIFdLUmV0YWluUHRyPFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclJlZj4gbGlzdGVuZXI7Ci0gICAgYm9vbCBhY3RlZFVwb25CeUNsaWVu
dDsKLSAgICBFd2tfTmF2aWdhdGlvbl9UeXBlIG5hdmlnYXRpb25UeXBlOwotICAgIEV2ZW50X01v
dXNlX0J1dHRvbiBtb3VzZUJ1dHRvbjsKLSAgICBFdmVudF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVy
czsKLSAgICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0OwotICAgIFdLRWluYVNoYXJl
ZFN0cmluZyBmcmFtZU5hbWU7Ci0KLSAgICBfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
KFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBfbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUg
X25hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3VzZV9CdXR0b24gX21vdXNlQnV0dG9uLCBFdmVudF9N
b2RpZmllcl9LZXlzIF9tb2RpZmllcnMsIFBhc3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiBfcmVx
dWVzdCwgY29uc3QgY2hhciogX2ZyYW1lTmFtZSkKLSAgICAgICAgOiBfX3JlZigxKQotICAgICAg
ICAsIGxpc3RlbmVyKF9saXN0ZW5lcikKLSAgICAgICAgLCBhY3RlZFVwb25CeUNsaWVudChmYWxz
ZSkKLSAgICAgICAgLCBuYXZpZ2F0aW9uVHlwZShfbmF2aWdhdGlvblR5cGUpCi0gICAgICAgICwg
bW91c2VCdXR0b24oX21vdXNlQnV0dG9uKQotICAgICAgICAsIG1vZGlmaWVycyhfbW9kaWZpZXJz
KQotICAgICAgICAsIHJlcXVlc3QoX3JlcXVlc3QpCi0gICAgICAgICwgZnJhbWVOYW1lKF9mcmFt
ZU5hbWUpCi0gICAgeyB9Ci0KLSAgICB+X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbigp
Ci0gICAgewotICAgICAgICBBU1NFUlQoIV9fcmVmKTsKLQotICAgICAgICAvLyBUaGlzIGlzIHRo
ZSBkZWZhdWx0IGNob2ljZSBmb3IgYWxsIHBvbGljeSBkZWNpc2lvbnMgaW4gV2ViUGFnZVByb3h5
LmNwcC4KLSAgICAgICAgaWYgKCFhY3RlZFVwb25CeUNsaWVudCkKLSAgICAgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lci5nZXQoKSk7Ci0gICAgfQotfTsKLQogRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25f
cmVmKEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpb24pCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRlY2lzaW9uLCAwKTsKIAotICAgICsrZGVjaXNp
b24tPl9fcmVmOworICAgIGRlY2lzaW9uLT5yZWYoKTsKIAogICAgIHJldHVybiBkZWNpc2lvbjsK
IH0KQEAgLTg0LDEwICs0NSw3IEBAIHZvaWQgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
X3VucmVmKEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiogZGVjaXNpCiB7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oZGVjaXNpb24pOwogCi0gICAgaWYgKC0tZGVjaXNpb24t
Pl9fcmVmKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkZWxldGUgZGVjaXNpb247CisgICAgZGVj
aXNpb24tPmRlcmVmKCk7CiB9CiAKIEV3a19OYXZpZ2F0aW9uX1R5cGUgZXdrX25hdmlnYXRpb25f
cG9saWN5X25hdmlnYXRpb25fdHlwZV9nZXQoY29uc3QgRXdrX05hdmlnYXRpb25fUG9saWN5X0Rl
Y2lzaW9uKiBkZWNpc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25f
cHJpdmF0ZS5oCmluZGV4IGFiYzhiZWQuLmE3MWI3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaApAQCAtMjYsOSArMjYsNDUgQEAKICNpZm5kZWYg
ZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGVfaAogI2RlZmluZSBld2tfbmF2
aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKKyNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIK
ICNpbmNsdWRlICJXS0V2ZW50LmgiCisjaW5jbHVkZSAiV0tGcmFtZVBvbGljeUxpc3RlbmVyLmgi
CiAjaW5jbHVkZSAiV0tQYWdlTG9hZFR5cGVzLmgiCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIK
KyNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgorCisvKioKKyAqIFxzdHJ1Y3Qg
IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24KKyAqIEBicmllZiAgIENvbnRhaW5zIHRo
ZSBuYXZpZ2F0aW9uIHBvbGljeSBkZWNpc2lvbiBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19OYXZp
Z2F0aW9uX1BvbGljeV9EZWNpc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfTmF2aWdhdGlv
bl9Qb2xpY3lfRGVjaXNpb24+IHsKKyAgICBXS1JldGFpblB0cjxXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJSZWY+IGxpc3RlbmVyOworICAgIGJvb2wgYWN0ZWRVcG9uQnlDbGllbnQ7CisgICAgRXdrX05h
dmlnYXRpb25fVHlwZSBuYXZpZ2F0aW9uVHlwZTsKKyAgICBFdmVudF9Nb3VzZV9CdXR0b24gbW91
c2VCdXR0b247CisgICAgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmllcnM7CisgICAgUmVmUHRy
PEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdDsKKyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZnJhbWVO
YW1lOworCisgICAgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5
TGlzdGVuZXJSZWYgbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUgbmF2aWdhdGlvblR5cGUs
IEV2ZW50X01vdXNlX0J1dHRvbiBtb3VzZUJ1dHRvbiwgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2Rp
ZmllcnMsIFBhc3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0LCBjb25zdCBjaGFyKiBm
cmFtZU5hbWUpCisgICAgICAgIDogbGlzdGVuZXIobGlzdGVuZXIpCisgICAgICAgICwgYWN0ZWRV
cG9uQnlDbGllbnQoZmFsc2UpCisgICAgICAgICwgbmF2aWdhdGlvblR5cGUobmF2aWdhdGlvblR5
cGUpCisgICAgICAgICwgbW91c2VCdXR0b24obW91c2VCdXR0b24pCisgICAgICAgICwgbW9kaWZp
ZXJzKG1vZGlmaWVycykKKyAgICAgICAgLCByZXF1ZXN0KHJlcXVlc3QpCisgICAgICAgICwgZnJh
bWVOYW1lKGZyYW1lTmFtZSkKKyAgICB7IH0KKworICAgIH5fRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uKCkKKyAgICB7CisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgY2hvaWNl
IGZvciBhbGwgcG9saWN5IGRlY2lzaW9ucyBpbiBXZWJQYWdlUHJveHkuY3BwLgorICAgICAgICBp
ZiAoIWFjdGVkVXBvbkJ5Q2xpZW50KQorICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVy
VXNlKGxpc3RlbmVyLmdldCgpKTsKKyAgICB9Cit9OwogCiB0eXBlZGVmIHN0cnVjdCBfRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9y
ZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jl
c3BvbnNlLmNwcAppbmRleCA4YzFiMWI1Li5hODJmNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmNwcApAQCAtMjYsNDIg
KzI2LDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25z
ZS5oIgogCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3Ry
aW5nLmgiCi0jaW5jbHVkZSAiV0tVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgImV3a191cmxfcmVz
cG9uc2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIAotLyoqCi0gKiBcc3RydWN0ICBfRXdrX1VybF9SZXNwb25zZQot
ICogQGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXNwb25zZSBkYXRhLgotICovCi1zdHJ1Y3Qg
X0V3a19VcmxfUmVzcG9uc2UgewotICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIGNvcmVSZXNwb25zZTsKLQotICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgV0tF
aW5hU2hhcmVkU3RyaW5nIG1pbWVUeXBlOwotCi0gICAgX0V3a19VcmxfUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgX2NvcmVSZXNwb25zZSkKLSAgICAgICAgOiBfX3Jl
ZigxKQotICAgICAgICAsIGNvcmVSZXNwb25zZShfY29yZVJlc3BvbnNlKQotICAgICAgICAsIHVy
bChBZG9wdFdLLCBXS1VSTFJlc3BvbnNlQ29weVVSTCh0b0FQSShjb3JlUmVzcG9uc2UpKSkKLSAg
ICAgICAgLCBtaW1lVHlwZShBZG9wdFdLLCBXS1VSTFJlc3BvbnNlQ29weU1JTUVUeXBlKHRvQVBJ
KGNvcmVSZXNwb25zZSkpKQotICAgIHsgfQotCi0gICAgfl9Fd2tfVXJsX1Jlc3BvbnNlKCkKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVCghX19yZWYpOwotICAgIH0KLX07Ci0KIEV3a19VcmxfUmVzcG9u
c2UqIGV3a191cmxfcmVzcG9uc2VfcmVmKEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNwb25zZSwgMCk7Ci0gICAgKyty
ZXNwb25zZS0+X19yZWY7CisgICAgcmVzcG9uc2UtPnJlZigpOwogCiAgICAgcmV0dXJuIHJlc3Bv
bnNlOwogfQpAQCAtNzAsMTAgKzQzLDcgQEAgdm9pZCBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKEV3
a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOKHJlc3BvbnNlKTsKIAotICAgIGlmICgtLXJlc3BvbnNlLT5fX3JlZikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZGVsZXRlIHJlc3BvbnNlOworICAgIHJlc3BvbnNlLT5kZXJlZigpOwogfQog
CiBjb25zdCBjaGFyKiBld2tfdXJsX3Jlc3BvbnNlX3VybF9nZXQoY29uc3QgRXdrX1VybF9SZXNw
b25zZSogcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCmluZGV4IDMyZDU2M2YuLjhkNDNj
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
cmVzcG9uc2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCkBAIC0yNiw3ICsyNiwyNSBAQAogI2lmbmRlZiBl
d2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGVfaAogI2RlZmluZSBld2tfdXJsX3Jlc3BvbnNlX3ByaXZh
dGVfaAogCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3Ry
aW5nLmgiCisjaW5jbHVkZSAiV0tVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXNwb25zZS5oPgorLyoqCisgKiBcc3RydWN0ICBfRXdrX1VybF9SZXNwb25zZQorICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXNwb25zZSBkYXRhLgorICovCitzdHJ1Y3QgX0V3
a19VcmxfUmVzcG9uc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX1VybF9SZXNwb25zZT4gewor
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29yZVJlc3BvbnNlOworICAgIFdLRWluYVNo
YXJlZFN0cmluZyB1cmw7CisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1pbWVUeXBlOworCisgICAg
X0V3a19VcmxfUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgX2NvcmVS
ZXNwb25zZSkKKyAgICAgICAgOiBjb3JlUmVzcG9uc2UoX2NvcmVSZXNwb25zZSkKKyAgICAgICAg
LCB1cmwoQWRvcHRXSywgV0tVUkxSZXNwb25zZUNvcHlVUkwoV2ViS2l0Ojp0b0FQSShjb3JlUmVz
cG9uc2UpKSkKKyAgICAgICAgLCBtaW1lVHlwZShBZG9wdFdLLCBXS1VSTFJlc3BvbnNlQ29weU1J
TUVUeXBlKFdlYktpdDo6dG9BUEkoY29yZVJlc3BvbnNlKSkpCisgICAgeyB9Cit9OwogCiB0eXBl
ZGVmIHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJsX1Jlc3BvbnNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGlj
eV9jbGllbnQuY3BwCmluZGV4IGNmMmYxMGUuLmJjZmI2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQu
Y3BwCkBAIC00NCwxNiArNDQsMTQgQEAgc3RhdGljIGlubGluZSBFdmFzX09iamVjdCogdG9Fd2tW
aWV3KGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlv
blR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50
TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
KiBkZWNpc2lvbiA9IGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcobmF2aWdhdGlv
blR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKLSAg
ICBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b0V3a1ZpZXcoY2xpZW50SW5m
byksIGRlY2lzaW9uKTsKLSAgICBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fdW5yZWYo
ZGVjaXNpb24pOworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRl
Y2lzaW9uID0gYWRvcHRSZWYoZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyhuYXZp
Z2F0aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlmaWVycywgcmVxdWVzdCwgMCwgbGlzdGVuZXIp
KTsKKyAgICBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b0V3a1ZpZXcoY2xp
ZW50SW5mbyksIGRlY2lzaW9uLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRp
b25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVu
dE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJp
bmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlw
ZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBkZWNpc2lvbiA9IGV3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbl9uZXcobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJl
cXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5l
cik7Ci0gICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNs
aWVudEluZm8pLCBkZWNpc2lvbik7Ci0gICAgZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9u
X3VucmVmKGRlY2lzaW9uKTsKKyAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lz
aW9uPiBkZWNpc2lvbiA9IGFkb3B0UmVmKGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9u
ZXcobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1w
bChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcikpOworICAgIGV3
a192aWV3X25ld193aW5kb3dfcG9saWN5X2RlY2lzaW9uKHRvRXdrVmlldyhjbGllbnRJbmZvKSwg
ZGVjaXNpb24uZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiBy
ZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVu
ZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIC8qY2xpZW50SW5mbyovKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVz
b3VyY2VfbG9hZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCmluZGV4IDQ2OWUxODIuLjY2OTdmZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jl
c291cmNlX2xvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKQEAgLTY1LDE3ICs2NSwxNCBA
QCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJh
bWVSZWYgd2tGcmFtZSwgdWludDY0X3Qgcgogc3RhdGljIHZvaWQgZGlkU2VuZFJlcXVlc3RGb3JS
ZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmll
ciwgV0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgUmVmUHRyPEV3a19Vcmxf
UmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXcod2tSZXF1ZXN0
KSk7Ci0gICAgRXdrX1VybF9SZXNwb25zZSogcmVkaXJlY3RSZXNwb25zZSA9IHdrUmVkaXJlY3RS
ZXNwb25zZSA/IGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2Up
LT5yZXNvdXJjZVJlc3BvbnNlKCkpIDogMDsKLSAgICBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0
X3NlbnQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3Qu
Z2V0KCksIHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIGlmIChyZWRpcmVjdFJlc3BvbnNlKQotICAg
ICAgICBld2tfdXJsX3Jlc3BvbnNlX3VucmVmKHJlZGlyZWN0UmVzcG9uc2UpOworICAgIFJlZlB0
cjxFd2tfVXJsX1Jlc3BvbnNlPiByZWRpcmVjdFJlc3BvbnNlID0gd2tSZWRpcmVjdFJlc3BvbnNl
ID8gYWRvcHRSZWYoZXdrX3VybF9yZXNwb25zZV9uZXcodG9JbXBsKHdrUmVkaXJlY3RSZXNwb25z
ZSktPnJlc291cmNlUmVzcG9uc2UoKSkpIDogMDsKKyAgICBld2tfdmlld19yZXNvdXJjZV9yZXF1
ZXN0X3NlbnQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVl
c3QuZ2V0KCksIHJlZGlyZWN0UmVzcG9uc2UuZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIHVpbnQ2NF90
IHJlc291cmNlSWRlbnRpZmllciwgV0tVUkxSZXNwb25zZVJlZiB3a1Jlc3BvbnNlLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewotICAgIEV3a19VcmxfUmVzcG9uc2UqIHJlc3BvbnNlID0gZXdr
X3VybF9yZXNwb25zZV9uZXcodG9JbXBsKHdrUmVzcG9uc2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkp
OwotICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9uc2UodG9Fd2tWaWV3KGNsaWVudElu
Zm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlc3BvbnNlKTsKLSAgICBld2tfdXJsX3Jlc3BvbnNl
X3VucmVmKHJlc3BvbnNlKTsKKyAgICBSZWZQdHI8RXdrX1VybF9SZXNwb25zZT4gcmVzcG9uc2Ug
PSBhZG9wdFJlZihld2tfdXJsX3Jlc3BvbnNlX25ldyh0b0ltcGwod2tSZXNwb25zZSktPnJlc291
cmNlUmVzcG9uc2UoKSkpOworICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9uc2UodG9F
d2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50aWZpZXIsIHJlc3BvbnNlLmdldCgpKTsK
IH0KIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvclJlc291cmNlKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>