<?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>130319</bug_id>
          
          <creation_ts>2014-03-16 23:51:45 -0700</creation_ts>
          <short_desc>[EFL][WK2] Rename async APIs for better consistency with EFL</short_desc>
          <delta_ts>2014-03-18 19:03:34 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991116</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-16 23:51:45 -0700</bug_when>
    <thetext>We&apos;d better to remove Async keyword from the APIs for the consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991487</commentid>
    <comment_count>1</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-17 18:04:15 -0700</bug_when>
    <thetext>Like https://lists.webkit.org/pipermail/webkit-efl/2014-March/000583.html,

We&apos;d better to follow EFL style more for the async APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991535</commentid>
    <comment_count>2</comment_count>
      <attachid>227006</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-17 20:42:51 -0700</bug_when>
    <thetext>Created attachment 227006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991543</commentid>
    <comment_count>3</comment_count>
      <attachid>227006</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-17 21:28:36 -0700</bug_when>
    <thetext>Comment on attachment 227006
Patch

r=me based on efl mailing list discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991544</commentid>
    <comment_count>4</comment_count>
      <attachid>227006</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-17 21:39:40 -0700</bug_when>
    <thetext>Comment on attachment 227006
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_application_cache_manager.cpp:45
&gt; +struct Get_Origins_Async_Data {

*Ewk_Application_Cache_Origins_Async_Data* seems to be more clear.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.cpp:195
&gt;  struct Get_Hostnames_Async_Data {

*Ewk_Cookie_Manager_Hostnames_Async_Data*?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_database_manager.cpp:66
&gt;  struct Ewk_Database_Origins_Async_Get_Context {

*Ewk_Database_Origins_Async_Data*?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_storage_manager.cpp:66
&gt;  struct Ewk_Storage_Origins_Async_Get_Context {

*Ewk_Storage_Origins_Async_Data*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991659</commentid>
    <comment_count>5</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-18 07:41:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 227006 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227006&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_application_cache_manager.cpp:45
&gt; &gt; +struct Get_Origins_Async_Data {
&gt; 
&gt; *Ewk_Application_Cache_Origins_Async_Data* seems to be more clear.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.cpp:195
&gt; &gt;  struct Get_Hostnames_Async_Data {
&gt; 
&gt; *Ewk_Cookie_Manager_Hostnames_Async_Data*?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_database_manager.cpp:66
&gt; &gt;  struct Ewk_Database_Origins_Async_Get_Context {
&gt; 
&gt; *Ewk_Database_Origins_Async_Data*?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_storage_manager.cpp:66
&gt; &gt;  struct Ewk_Storage_Origins_Async_Get_Context {
&gt; 
&gt; *Ewk_Storage_Origins_Async_Data*?

Like discussed in IRC, I agree that it looks ugly but I am not sure whether I can rename them in this bug.

gyuyoung, what do you think about it?

If I can rename them in this bug, I will rebase the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991661</commentid>
    <comment_count>6</comment_count>
      <attachid>227006</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-03-18 07:46:53 -0700</bug_when>
    <thetext>Comment on attachment 227006
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_application_cache_manager.cpp:45
&gt;&gt;&gt; +struct Get_Origins_Async_Data {
&gt;&gt; 
&gt;&gt; *Ewk_Application_Cache_Origins_Async_Data* seems to be more clear.
&gt; 
&gt; Like discussed in IRC, I agree that it looks ugly but I am not sure whether I can rename them in this bug.
&gt; 
&gt; gyuyoung, what do you think about it?
&gt; 
&gt; If I can rename them in this bug, I will rebase the patch.

I don&apos;t mind to rename these in this patch together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991966</commentid>
    <comment_count>7</comment_count>
      <attachid>227137</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-03-18 17:43:58 -0700</bug_when>
    <thetext>Created attachment 227137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991968</commentid>
    <comment_count>8</comment_count>
      <attachid>227137</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-18 17:50:00 -0700</bug_when>
    <thetext>Comment on attachment 227137
Patch

Thanks for renaming the structures. Much better!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991981</commentid>
    <comment_count>9</comment_count>
      <attachid>227137</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 18:58:03 -0700</bug_when>
    <thetext>Comment on attachment 227137
Patch

Clearing flags on attachment: 227137

Committed r165864: &lt;http://trac.webkit.org/changeset/165864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991984</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 19:03:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227006</attachid>
            <date>2014-03-17 20:42:51 -0700</date>
            <delta_ts>2014-03-18 17:43:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130319-20140318124228.patch</filename>
            <type>text/plain</type>
            <size>24822</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDVlZjE3YzYwZDQwZGJk
MDIxNmMwYjYxYTM0ZjMzYzEzYWEwZWUxOC4uMGRlMGEwYWE2YjMzYzljOWMyODFhYmQ1YzFjYjY5
NDVjNGZlM2U5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTAzLTE3ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
bmFtZSBhc3luYyBBUElzIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kgd2l0aCBFRkwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDMxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGFyZSBpbmNvbnNp
c3RlbmN5IHdpdGggYXN5bmMga2V5d29yZCBpbiBzZXZlcmFsIGV3ZWJraXQyIEFQSXMuCisgICAg
ICAgIFRoaXMgcGF0Y2ggcmVuYW1lIHRoZW0gdG8ge21vZHVsZS9mZWF0dXJlfV9hc3luY197dmVy
Yn0gZm9yIGJldHRlciBjb25zaXN0ZW5jeSB3aXRoIEVGTAorICAgICAgICBJbiBhZGRpdGlvbiwg
YWRkZWQgQXN5bmMga2V5d29yZCBpbnRvIHRoZWlyIGNhbGxiYWNrIG5hbWUuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5jcHA6Cisg
ICAgICAgIChHZXRfT3JpZ2luc19Bc3luY19EYXRhOjpHZXRfT3JpZ2luc19Bc3luY19EYXRhKToK
KyAgICAgICAgKGdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zQ2FsbGJhY2spOgorICAgICAgICAo
ZXdrX2FwcGxpY2F0aW9uX2NhY2hlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKEdldF9Qb2xpY3lfQXN5bmNfRGF0YTo6R2V0X1BvbGljeV9Bc3luY19EYXRhKToKKyAgICAg
ICAgKGV3a19jb29raWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5X2FzeW5jX2dldCk6CisgICAgICAg
IChHZXRfSG9zdG5hbWVzX0FzeW5jX0RhdGE6OkdldF9Ib3N0bmFtZXNfQXN5bmNfRGF0YSk6Cisg
ICAgICAgIChld2tfY29va2llX21hbmFnZXJfaG9zdG5hbWVzX3dpdGhfY29va2llc19hc3luY19n
ZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKEV3a19EYXRhYmFzZV9PcmlnaW5zX0FzeW5jX0dldF9Db250ZXh0OjpFd2tfRGF0YWJh
c2VfT3JpZ2luc19Bc3luY19HZXRfQ29udGV4dCk6CisgICAgICAgIChld2tfZGF0YWJhc2VfbWFu
YWdlcl9vcmlnaW5zX2FzeW5jX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2RhdGFiYXNlX21hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3Rv
cmFnZV9tYW5hZ2VyLmNwcDoKKyAgICAgICAgKEV3a19TdG9yYWdlX09yaWdpbnNfQXN5bmNfR2V0
X0NvbnRleHQ6OkV3a19TdG9yYWdlX09yaWdpbnNfQXN5bmNfR2V0X0NvbnRleHQpOgorICAgICAg
ICAoZXdrX3N0b3JhZ2VfbWFuYWdlcl9vcmlnaW5zX2FzeW5jX2dldCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmNwcDoK
KyAgICAgICAgKHRpbWVyQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl9jb29raWVfbWFuYWdlci5jcHA6CisgICAgICAgIChFV0syQ29va2llTWFu
YWdlclRlc3Q6OmdldEFjY2VwdFBvbGljeSk6CisgICAgICAgIChFV0syQ29va2llTWFuYWdlclRl
c3Q6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfZGF0YWJhc2VfbWFuYWdlci5jcHA6CisgICAgICAgIChFV0syRGF0
YWJhc2VNYW5hZ2VyVGVzdDo6dGltZXJDYWxsYmFjayk6CisgICAgICAgIChURVNUX0YpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21hbmFnZXIu
Y3BwOgorICAgICAgICAoRVdLMlN0b3JhZ2VNYW5hZ2VyVGVzdDo6dGltZXJDYWxsYmFjayk6Cisg
ICAgICAgIChURVNUX0YpOgorCiAyMDE0LTAzLTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZHJlc3Mgc29tZSBzdHlsZSBuaXRzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2FwcGxpY2F0aW9uX2Nh
Y2hlX21hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Fw
cGxpY2F0aW9uX2NhY2hlX21hbmFnZXIuY3BwCmluZGV4IDcwZjEzYTlmNzM2MGQzMzBjYWY4ZDM2
MGRiZDlkYWU3ZWFiZDBkZjQuLjVlNDU3ODhhYjVhZjg1NDM1NTdmNTdlNTgwNjNkNTQxMWZiODlj
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19hcHBs
aWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5jcHAKQEAgLTQyLDExICs0Miwx
MSBAQCBFd2tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6fkV3a0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyKCkKIHsKIH0KIAotc3RydWN0IEdldF9PcmlnaW5zX0RhdGEgewotICAgIEV3a19BcHBsaWNh
dGlvbl9DYWNoZV9PcmlnaW5zX0dldF9DYiBjYWxsYmFjazsKK3N0cnVjdCBHZXRfT3JpZ2luc19B
c3luY19EYXRhIHsKKyAgICBFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2luc19Bc3luY19HZXRf
Q2IgY2FsbGJhY2s7CiAgICAgdm9pZCogdXNlckRhdGE7CiAKLSAgICBHZXRfT3JpZ2luc19EYXRh
KEV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNl
ckRhdGEpCisgICAgR2V0X09yaWdpbnNfQXN5bmNfRGF0YShFd2tfQXBwbGljYXRpb25fQ2FjaGVf
T3JpZ2luc19Bc3luY19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKQogICAgICAgICA6
IGNhbGxiYWNrKGNhbGxiYWNrKQogICAgICAgICAsIHVzZXJEYXRhKHVzZXJEYXRhKQogICAgIHsg
fQpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgR2V0X09yaWdpbnNfRGF0YSB7CiBzdGF0aWMgdm9p
ZCBnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0NhbGxiYWNrKFdLQXJyYXlSZWYgd2tPcmlnaW5z
LCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQogewogICAgIEVpbmFfTGlzdCogb3JpZ2lucyA9
IG51bGxwdHI7Ci0gICAgYXV0byBjYWxsYmFja0RhdGEgPSBzdGQ6OnVuaXF1ZV9wdHI8R2V0X09y
aWdpbnNfRGF0YT4oc3RhdGljX2Nhc3Q8R2V0X09yaWdpbnNfRGF0YSo+KGNvbnRleHQpKTsKKyAg
ICBhdXRvIGNhbGxiYWNrRGF0YSA9IHN0ZDo6dW5pcXVlX3B0cjxHZXRfT3JpZ2luc19Bc3luY19E
YXRhPihzdGF0aWNfY2FzdDxHZXRfT3JpZ2luc19Bc3luY19EYXRhKj4oY29udGV4dCkpOwogCiAg
ICAgY29uc3Qgc2l6ZV90IG9yaWdpbnNDb3VudCA9IFdLQXJyYXlHZXRTaXplKHdrT3JpZ2lucyk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmlnaW5zQ291bnQ7ICsraSkgewpAQCAtNjYs
MTIgKzY2LDEyIEBAIHN0YXRpYyB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zQ2FsbGJh
Y2soV0tBcnJheVJlZiB3a09yaWdpbnMsIFdLRXJyb3JSZWYsCiAgICAgY2FsbGJhY2tEYXRhLT5j
YWxsYmFjayhvcmlnaW5zLCBjYWxsYmFja0RhdGEtPnVzZXJEYXRhKTsKIH0KIAotdm9pZCBld2tf
YXBwbGljYXRpb25fY2FjaGVfbWFuYWdlcl9vcmlnaW5zX2dldChjb25zdCBFd2tfQXBwbGljYXRp
b25fQ2FjaGVfTWFuYWdlciogbWFuYWdlciwgRXdrX0FwcGxpY2F0aW9uX0NhY2hlX09yaWdpbnNf
R2V0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKK3ZvaWQgZXdrX2FwcGxpY2F0aW9uX2Nh
Y2hlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQoY29uc3QgRXdrX0FwcGxpY2F0aW9uX0NhY2hl
X01hbmFnZXIqIG1hbmFnZXIsIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0FzeW5jX0dl
dF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4obWFuYWdlcik7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oY2FsbGJh
Y2spOwogCi0gICAgR2V0X09yaWdpbnNfRGF0YSogY2FsbGJhY2tEYXRhID0gbmV3IEdldF9Pcmln
aW5zX0RhdGEoY2FsbGJhY2ssIHVzZXJEYXRhKTsKKyAgICBHZXRfT3JpZ2luc19Bc3luY19EYXRh
KiBjYWxsYmFja0RhdGEgPSBuZXcgR2V0X09yaWdpbnNfQXN5bmNfRGF0YShjYWxsYmFjaywgdXNl
ckRhdGEpOwogICAgIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2lucyhtYW5hZ2VyLT5pbXBsKCksIGNhbGxiYWNrRGF0YSwgZ2V0QXBwbGljYXRpb25DYWNo
ZU9yaWdpbnNDYWxsYmFjayk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5oCmlu
ZGV4IDBkMzg0NGYwNzU5ODM4MDYxMGUzZjBmODUyYjAyNWJhM2FlMmM3NGUuLjUwMmQ1ZTdhMWQ1
MDAwMzlmNmFlYmFmYmY3YTk4OTVhYmE3YThhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2FwcGxpY2F0aW9uX2NhY2hlX21h
bmFnZXIuaApAQCAtNDIsOCArNDIsOCBAQCBleHRlcm4gIkMiIHsKIHR5cGVkZWYgc3RydWN0IEV3
a0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9NYW5hZ2VyOwog
CiAvKioKLSAqIEB0eXBlZGVmIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0dldF9DYiBF
d2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2luc19HZXRfQ2IKLSAqIEBicmllZiBDYWxsYmFjayBm
b3IgZXdrX2FwcGxpY2F0aW9uX2NhY2hlX21hbmFnZXJfb3JpZ2luc19nZXQKKyAqIEB0eXBlZGVm
IEV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0FzeW5jX0dldF9DYiBFd2tfQXBwbGljYXRp
b25fQ2FjaGVfT3JpZ2luc19Bc3luY19HZXRfQ2IKKyAqIEBicmllZiBDYWxsYmFjayBmb3IgZXdr
X2FwcGxpY2F0aW9uX2NhY2hlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQKICAqCiAgKiBAbm90
ZSBUaGUgQGEgb3JpZ2lucyBzaG91bGQgYmUgZnJlZWQgbGlrZSBiZWxvdyBjb2RlIGFmdGVyIHVz
ZS4KICAqCkBAIC02MSw3ICs2MSw3IEBAIHR5cGVkZWYgc3RydWN0IEV3a0FwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9NYW5hZ2VyOwogICoKICAqIEBlbmRjb2Rl
CiAgKi8KLXR5cGVkZWYgdm9pZCAoKkV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0dldF9D
YikoRWluYV9MaXN0ICpvcmlnaW5zLCB2b2lkICp1c2VyX2RhdGEpOwordHlwZWRlZiB2b2lkICgq
RXdrX0FwcGxpY2F0aW9uX0NhY2hlX09yaWdpbnNfQXN5bmNfR2V0X0NiKShFaW5hX0xpc3QgKm9y
aWdpbnMsIHZvaWQgKnVzZXJfZGF0YSk7CiAKIC8qKgogICogUmVxdWVzdHMgZm9yIGdldHRpbmcg
d2ViIGFwcGxpY2F0aW9uIGNhY2hlIG9yaWdpbnMuCkBAIC03MCw5ICs3MCw5IEBAIHR5cGVkZWYg
dm9pZCAoKkV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0dldF9DYikoRWluYV9MaXN0ICpv
cmlnaW5zLCB2b2lkICp1CiAgKiBAcGFyYW0gcmVzdWx0X2NhbGxiYWNrIGNhbGxiYWNrIHRvIGdl
dCB3ZWIgYXBwbGljYXRpb24gY2FjaGUgb3JpZ2lucwogICogQHBhcmFtIHVzZXJfZGF0YSB1c2Vy
X2RhdGEgd2lsbCBiZSBwYXNzc2VkIHdoZW4gcmVzdWx0X2NhbGxiYWNrIGlzIGNhbGxlZAogICoK
LSAqIEBzZWUgRXdrX0FwcGxpY2F0aW9uX0NhY2hlX09yaWdpbnNfR2V0X0NiCisgKiBAc2VlIEV3
a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0FzeW5jX0dldF9DYgogICovCi1FQVBJIHZvaWQg
ZXdrX2FwcGxpY2F0aW9uX2NhY2hlX21hbmFnZXJfb3JpZ2luc19nZXQoY29uc3QgRXdrX0FwcGxp
Y2F0aW9uX0NhY2hlX01hbmFnZXIgKm1hbmFnZXIsIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9Pcmln
aW5zX0dldF9DYiBjYWxsYmFjaywgdm9pZCAqZGF0YSk7CitFQVBJIHZvaWQgZXdrX2FwcGxpY2F0
aW9uX2NhY2hlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQoY29uc3QgRXdrX0FwcGxpY2F0aW9u
X0NhY2hlX01hbmFnZXIgKm1hbmFnZXIsIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0Fz
eW5jX0dldF9DYiBjYWxsYmFjaywgdm9pZCAqZGF0YSk7CiAKIC8qKgogICogUmVxdWVzdHMgZm9y
IGRlbGV0aW5nIGFsbCB3ZWIgYXBwbGljYXRpb24gY2FjaGVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5jcHAKaW5kZXgg
ZWM0ZjI4NzE2MmIyMmVhYTY3ZjlkYTVlMGIyNGIwODY1ZTUzMzhjOC4uNDg1MDBlMGU2NzQwMTBj
NDg5ZjExNjZhNzBhN2JhMzI4N2IwYjM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCkBAIC0xNjYsMTAgKzE2
NiwxMCBAQCB2b2lkIGV3a19jb29raWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5X3NldChFd2tfQ29v
a2llX01hbmFnZXIqIG1hbmFnZXIsIEV3a19Db29raQogfQogCiBzdHJ1Y3QgR2V0X1BvbGljeV9B
c3luY19EYXRhIHsKLSAgICBFd2tfQ29va2llX01hbmFnZXJfQXN5bmNfUG9saWN5X0dldF9DYiBj
YWxsYmFjazsKKyAgICBFd2tfQ29va2llX01hbmFnZXJfUG9saWN5X0FzeW5jX0dldF9DYiBjYWxs
YmFjazsKICAgICB2b2lkKiB1c2VyRGF0YTsKIAotICAgIEdldF9Qb2xpY3lfQXN5bmNfRGF0YShF
d2tfQ29va2llX01hbmFnZXJfQXN5bmNfUG9saWN5X0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNl
ckRhdGEpCisgICAgR2V0X1BvbGljeV9Bc3luY19EYXRhKEV3a19Db29raWVfTWFuYWdlcl9Qb2xp
Y3lfQXN5bmNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgOiBjYWxs
YmFjayhjYWxsYmFjaykKICAgICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKICAgICB7IH0KQEAg
LTE4Myw3ICsxODMsNyBAQCBzdGF0aWMgdm9pZCBnZXRBY2NlcHRQb2xpY3lDYWxsYmFjayhXS0hU
VFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmCiAgICAgY2FsbGJhY2tEYXRh
LT5jYWxsYmFjayhzdGF0aWNfY2FzdDxFd2tfQ29va2llX0FjY2VwdF9Qb2xpY3k+KHBvbGljeSks
IGV3a0Vycm9yLmdldCgpLCBjYWxsYmFja0RhdGEtPnVzZXJEYXRhKTsKIH0KIAotdm9pZCBld2tf
Y29va2llX21hbmFnZXJfYXN5bmNfYWNjZXB0X3BvbGljeV9nZXQoY29uc3QgRXdrX0Nvb2tpZV9N
YW5hZ2VyKiBtYW5hZ2VyLCBFd2tfQ29va2llX01hbmFnZXJfQXN5bmNfUG9saWN5X0dldF9DYiBj
YWxsYmFjaywgdm9pZCogZGF0YSkKK3ZvaWQgZXdrX2Nvb2tpZV9tYW5hZ2VyX2FjY2VwdF9wb2xp
Y3lfYXN5bmNfZ2V0KGNvbnN0IEV3a19Db29raWVfTWFuYWdlciogbWFuYWdlciwgRXdrX0Nvb2tp
ZV9NYW5hZ2VyX1BvbGljeV9Bc3luY19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIGRhdGEpCiB7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWFuYWdlcik7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk4oY2FsbGJhY2spOwpAQCAtMTkzLDEwICsxOTMsMTAgQEAgdm9pZCBld2tf
Y29va2llX21hbmFnZXJfYXN5bmNfYWNjZXB0X3BvbGljeV9nZXQoY29uc3QgRXdrX0Nvb2tpZV9N
YW5hZ2VyKiBtYW5hZ2UKIH0KIAogc3RydWN0IEdldF9Ib3N0bmFtZXNfQXN5bmNfRGF0YSB7Ci0g
ICAgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX0hvc3RuYW1lc19HZXRfQ2IgY2FsbGJhY2s7Cisg
ICAgRXdrX0Nvb2tpZV9NYW5hZ2VyX0hvc3RuYW1lc19Bc3luY19HZXRfQ2IgY2FsbGJhY2s7CiAg
ICAgdm9pZCogdXNlckRhdGE7CiAKLSAgICBHZXRfSG9zdG5hbWVzX0FzeW5jX0RhdGEoRXdrX0Nv
b2tpZV9NYW5hZ2VyX0FzeW5jX0hvc3RuYW1lc19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJE
YXRhKQorICAgIEdldF9Ib3N0bmFtZXNfQXN5bmNfRGF0YShFd2tfQ29va2llX01hbmFnZXJfSG9z
dG5hbWVzX0FzeW5jX0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiAgICAgICAgIDog
Y2FsbGJhY2soY2FsbGJhY2spCiAgICAgICAgICwgdXNlckRhdGEodXNlckRhdGEpCiAgICAgeyB9
CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXND
YWxsYmFjayhXS0FycmF5UmVmIHdrSG9zdG5hbWVzLCBXS0Vycm9yUmVmIHcKICAgICAgIGVpbmFf
c3RyaW5nc2hhcmVfZGVsKHN0YXRpY19jYXN0PEVpbmFfU3RyaW5nc2hhcmUqPihpdGVtKSk7CiB9
CiAKLXZvaWQgZXdrX2Nvb2tpZV9tYW5hZ2VyX2FzeW5jX2hvc3RuYW1lc193aXRoX2Nvb2tpZXNf
Z2V0KGNvbnN0IEV3a19Db29raWVfTWFuYWdlciogbWFuYWdlciwgRXdrX0Nvb2tpZV9NYW5hZ2Vy
X0FzeW5jX0hvc3RuYW1lc19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIGRhdGEpCit2b2lkIGV3a19j
b29raWVfbWFuYWdlcl9ob3N0bmFtZXNfd2l0aF9jb29raWVzX2FzeW5jX2dldChjb25zdCBFd2tf
Q29va2llX01hbmFnZXIqIG1hbmFnZXIsIEV3a19Db29raWVfTWFuYWdlcl9Ib3N0bmFtZXNfQXN5
bmNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiBkYXRhKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOKG1hbmFnZXIpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGNhbGxi
YWNrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b29raWVfbWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
b2tpZV9tYW5hZ2VyLmgKaW5kZXggNTI1N2I3NWI3MDQ4MzVlYzA5MjcxNWMyZWU3YTMwOWE1MzU1
OGJjMy4uZTExYzZkNjVjYjgwMWU5ZTViOWQyYWVjODA1ZTk5MWMwODQ0MTY1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2Vy
LmgKQEAgLTc0LDIwICs3NCwyMCBAQCBlbnVtIEV3a19Db29raWVfUGVyc2lzdGVudF9TdG9yYWdl
IHsKIHR5cGVkZWYgZW51bSBFd2tfQ29va2llX1BlcnNpc3RlbnRfU3RvcmFnZSBFd2tfQ29va2ll
X1BlcnNpc3RlbnRfU3RvcmFnZTsKIAogLyoqCi0gKiBAdHlwZWRlZiBFd2tfQ29va2llX01hbmFn
ZXJfQXN5bmNfUG9saWN5X0dldF9DYiBFd2tfQ29va2llX01hbmFnZXJfQXN5bmNfUG9saWN5X0dl
dF9DYgotICogQGJyaWVmIENhbGxiYWNrIHR5cGUgZm9yIHVzZSB3aXRoIGV3a19jb29raWVfbWFu
YWdlcl9hc3luY19hY2NlcHRfcG9saWN5X2dldAorICogQHR5cGVkZWYgRXdrX0Nvb2tpZV9NYW5h
Z2VyX1BvbGljeV9Bc3luY19HZXRfQ2IgRXdrX0Nvb2tpZV9NYW5hZ2VyX1BvbGljeV9Bc3luY19H
ZXRfQ2IKKyAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tfY29va2llX21h
bmFnZXJfYWNjZXB0X3BvbGljeV9hc3luY19nZXQKICAqLwotdHlwZWRlZiB2b2lkICgqRXdrX0Nv
b2tpZV9NYW5hZ2VyX0FzeW5jX1BvbGljeV9HZXRfQ2IpKEV3a19Db29raWVfQWNjZXB0X1BvbGlj
eSBwb2xpY3ksIEV3a19FcnJvciAqZXJyb3IsIHZvaWQgKmV2ZW50X2luZm8pOwordHlwZWRlZiB2
b2lkICgqRXdrX0Nvb2tpZV9NYW5hZ2VyX1BvbGljeV9Bc3luY19HZXRfQ2IpKEV3a19Db29raWVf
QWNjZXB0X1BvbGljeSBwb2xpY3ksIEV3a19FcnJvciAqZXJyb3IsIHZvaWQgKmV2ZW50X2luZm8p
OwogCiAvKioKLSAqIEB0eXBlZGVmIEV3a19Db29raWVfTWFuYWdlcl9Bc3luY19Ib3N0bmFtZXNf
R2V0X0NiIEV3a19Db29raWVfTWFuYWdlcl9Bc3luY19Ib3N0bmFtZXNfR2V0X0NiCi0gKiBAYnJp
ZWYgQ2FsbGJhY2sgdHlwZSBmb3IgdXNlIHdpdGggZXdrX2Nvb2tpZV9tYW5hZ2VyX2FzeW5jX2hv
c3RuYW1lc193aXRoX2Nvb2tpZXNfZ2V0CisgKiBAdHlwZWRlZiBFd2tfQ29va2llX01hbmFnZXJf
SG9zdG5hbWVzX0FzeW5jX0dldF9DYiBFd2tfQ29va2llX01hbmFnZXJfSG9zdG5hbWVzX0FzeW5j
X0dldF9DYgorICogQGJyaWVmIENhbGxiYWNrIHR5cGUgZm9yIHVzZSB3aXRoIGV3a19jb29raWVf
bWFuYWdlcl9ob3N0bmFtZXNfd2l0aF9jb29raWVzX2FzeW5jX2dldAogICoKICAqIEBub3RlIFRo
ZSBAYSBob3N0bmFtZXMgbGlzdCBpdGVtcyBhcmUgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmlu
Z3NoYXJlLiBXaGVuZXZlciBwb3NzaWJsZQogICogc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNs
ZXMgYW5kIHVzZSBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdz
aGFyZV9hZGQoKQogICogb3Igc3RyZHVwKCkuCiAgKi8KLXR5cGVkZWYgdm9pZCAoKkV3a19Db29r
aWVfTWFuYWdlcl9Bc3luY19Ib3N0bmFtZXNfR2V0X0NiKShFaW5hX0xpc3QgKmhvc3RuYW1lcywg
RXdrX0Vycm9yICplcnJvciwgdm9pZCAqZXZlbnRfaW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpFd2tf
Q29va2llX01hbmFnZXJfSG9zdG5hbWVzX0FzeW5jX0dldF9DYikoRWluYV9MaXN0ICpob3N0bmFt
ZXMsIEV3a19FcnJvciAqZXJyb3IsIHZvaWQgKmV2ZW50X2luZm8pOwogCiAvKioKICAqIEB0eXBl
ZGVmIEV3a19Db29raWVfTWFuYWdlcl9DaGFuZ2VzX1dhdGNoX0NiIEV3a19Db29raWVfTWFuYWdl
cl9DaGFuZ2VzX1dhdGNoX0NiCkBAIC0xMzAsNyArMTMwLDcgQEAgRUFQSSB2b2lkIGV3a19jb29r
aWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5X3NldChFd2tfQ29va2llX01hbmFnZXIgKm1hbmFnZXIs
IEV3a18KICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSBw
b2xpY3kgaXMgcmVjZWl2ZWQgb3IgYW4gZXJyb3Igb2NjdXJlZC4KICAqIEBwYXJhbSBkYXRhIFVz
ZXIgZGF0YSAobWF5IGJlIEBjIE5VTEwpLgogICovCi1FQVBJIHZvaWQgZXdrX2Nvb2tpZV9tYW5h
Z2VyX2FzeW5jX2FjY2VwdF9wb2xpY3lfZ2V0KGNvbnN0IEV3a19Db29raWVfTWFuYWdlciAqbWFu
YWdlciwgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX1BvbGljeV9HZXRfQ2IgY2FsbGJhY2ssIHZv
aWQgKmRhdGEpOworRUFQSSB2b2lkIGV3a19jb29raWVfbWFuYWdlcl9hY2NlcHRfcG9saWN5X2Fz
eW5jX2dldChjb25zdCBFd2tfQ29va2llX01hbmFnZXIgKm1hbmFnZXIsIEV3a19Db29raWVfTWFu
YWdlcl9Qb2xpY3lfQXN5bmNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkICpkYXRhKTsKIAogLyoqCiAg
KiBBc3luY2hyb25vdXNseSBnZXQgdGhlIGxpc3Qgb2YgaG9zdCBuYW1lcyBmb3Igd2hpY2ggQGEg
bWFuYWdlciBjb250YWlucyBjb29raWVzLgpAQCAtMTM5LDcgKzEzOSw3IEBAIEVBUEkgdm9pZCBl
d2tfY29va2llX21hbmFnZXJfYXN5bmNfYWNjZXB0X3BvbGljeV9nZXQoY29uc3QgRXdrX0Nvb2tp
ZV9NYW5hZ2VyICptCiAgKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2hl
biB0aGUgaG9zdCBuYW1lcyBoYXZlIGJlZW4gcmVjZWl2ZWQuCiAgKiBAcGFyYW0gZGF0YSBVc2Vy
IGRhdGEgKG1heSBiZSBAYyBOVUxMKS4KICAqLwotRUFQSSB2b2lkIGV3a19jb29raWVfbWFuYWdl
cl9hc3luY19ob3N0bmFtZXNfd2l0aF9jb29raWVzX2dldChjb25zdCBFd2tfQ29va2llX01hbmFn
ZXIgKm1hbmFnZXIsIEV3a19Db29raWVfTWFuYWdlcl9Bc3luY19Ib3N0bmFtZXNfR2V0X0NiIGNh
bGxiYWNrLCB2b2lkICpkYXRhKTsKK0VBUEkgdm9pZCBld2tfY29va2llX21hbmFnZXJfaG9zdG5h
bWVzX3dpdGhfY29va2llc19hc3luY19nZXQoY29uc3QgRXdrX0Nvb2tpZV9NYW5hZ2VyICptYW5h
Z2VyLCBFd2tfQ29va2llX01hbmFnZXJfSG9zdG5hbWVzX0FzeW5jX0dldF9DYiBjYWxsYmFjaywg
dm9pZCAqZGF0YSk7CiAKIC8qKgogICogUmVtb3ZlIGFsbCBjb29raWVzIG9mIEBhIG1hbmFnZXIg
Zm9yIHRoZSBnaXZlbiBAYSBob3N0bmFtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcAppbmRleCA5MjkzZGUx
Y2Q5OGNiMTY0YzViYzgzOWJiMGI0ODEwMDA4YTlmYzdmLi5lODRjZjVlZjhjN2Q2ZjkzMmY3MGJm
MDU3NWIwNDE3ZGY1MzBlZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXIuY3BwCkBAIC02NSwxMCArNjUsMTAg
QEAgRWluYV9MaXN0KiBFd2tEYXRhYmFzZU1hbmFnZXI6OmNyZWF0ZU9yaWdpbkxpc3QoV0tBcnJh
eVJlZiBvcmlnaW5zKSBjb25zdAogCiBzdHJ1Y3QgRXdrX0RhdGFiYXNlX09yaWdpbnNfQXN5bmNf
R2V0X0NvbnRleHQgewogICAgIGNvbnN0IEV3a19EYXRhYmFzZV9NYW5hZ2VyKiBtYW5hZ2VyOwot
ICAgIEV3a19EYXRhYmFzZV9PcmlnaW5zX0dldF9DYiBjYWxsYmFjazsKKyAgICBFd2tfRGF0YWJh
c2VfT3JpZ2luc19Bc3luY19HZXRfQ2IgY2FsbGJhY2s7CiAgICAgdm9pZCogdXNlckRhdGE7CiAK
LSAgICBFd2tfRGF0YWJhc2VfT3JpZ2luc19Bc3luY19HZXRfQ29udGV4dChjb25zdCBFd2tfRGF0
YWJhc2VfTWFuYWdlciogbWFuYWdlciwgRXdrX0RhdGFiYXNlX09yaWdpbnNfR2V0X0NiIGNhbGxi
YWNrLCB2b2lkKiB1c2VyRGF0YSkKKyAgICBFd2tfRGF0YWJhc2VfT3JpZ2luc19Bc3luY19HZXRf
Q29udGV4dChjb25zdCBFd2tfRGF0YWJhc2VfTWFuYWdlciogbWFuYWdlciwgRXdrX0RhdGFiYXNl
X09yaWdpbnNfQXN5bmNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKICAgICAgICAg
OiBtYW5hZ2VyKG1hbmFnZXIpCiAgICAgICAgICwgY2FsbGJhY2soY2FsbGJhY2spCiAgICAgICAg
ICwgdXNlckRhdGEodXNlckRhdGEpCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyB2b2lkIGdldERh
dGFiYXNlT3JpZ2luc0NhbGxiYWNrKFdLQXJyYXlSZWYgb3JpZ2lucywgV0tFcnJvclJlZiB3a0Vy
cm9yLCB2CiAgICAgd2ViRGF0YWJhc2VDb250ZXh0LT5jYWxsYmFjayhvcmlnaW5MaXN0LCBld2tF
cnJvci5nZXQoKSwgd2ViRGF0YWJhc2VDb250ZXh0LT51c2VyRGF0YSk7CiB9CiAKLUVpbmFfQm9v
bCBld2tfZGF0YWJhc2VfbWFuYWdlcl9vcmlnaW5zX2dldChjb25zdCBFd2tfRGF0YWJhc2VfTWFu
YWdlciogZXdrRGF0YWJhc2VNYW5hZ2VyLCBFd2tfRGF0YWJhc2VfT3JpZ2luc19HZXRfQ2IgY2Fs
bGJhY2ssIHZvaWQqIHVzZXJEYXRhKQorRWluYV9Cb29sIGV3a19kYXRhYmFzZV9tYW5hZ2VyX29y
aWdpbnNfYXN5bmNfZ2V0KGNvbnN0IEV3a19EYXRhYmFzZV9NYW5hZ2VyKiBld2tEYXRhYmFzZU1h
bmFnZXIsIEV3a19EYXRhYmFzZV9PcmlnaW5zX0FzeW5jX0dldF9DYiBjYWxsYmFjaywgdm9pZCog
dXNlckRhdGEpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV3a0RhdGFi
YXNlTWFuYWdlciwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChj
YWxsYmFjaywgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmgKaW5kZXggNjEwYTczNmViOGQxNDk5ZmRkYTRi
NzY3OWU3NDhkYjdmMzgwNDkwOS4uMTE3MjMxZThjOWY3YWJhZjAxMDczMTY2YTgwMzlkM2MzYTJm
NDhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rh
dGFiYXNlX21hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZGF0YWJhc2VfbWFuYWdlci5oCkBAIC00NCwxNCArNDQsMTQgQEAgZXh0ZXJuICJDIiB7CiB0
eXBlZGVmIHN0cnVjdCBFd2tEYXRhYmFzZU1hbmFnZXIgRXdrX0RhdGFiYXNlX01hbmFnZXI7CiAK
IC8qKgotICogQHR5cGVkZWYgRXdrX0RhdGFiYXNlX09yaWdpbnNfR2V0X0NiIEV3a19EYXRhYmFz
ZV9PcmlnaW5zX0dldF9DYgotICogQGJyaWVmIENhbGxiYWNrIHR5cGUgZm9yIHVzZSB3aXRoIGV3
a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KCkKKyAqIEB0eXBlZGVmIEV3a19EYXRhYmFz
ZV9PcmlnaW5zX0FzeW5jX0dldF9DYiBFd2tfRGF0YWJhc2VfT3JpZ2luc19Bc3luY19HZXRfQ2IK
KyAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tfZGF0YWJhc2VfbWFuYWdl
cl9vcmlnaW5zX2FzeW5jX2dldCgpCiAgKgogICogQHBhcmFtIG9yaWdpbnMgQGMgRWluYV9MaXN0
IGNvbnRhaW5pbmcgQGMgRXdrX1NlY3VyaXR5X09yaWdpbiBlbGVtZW50cyBvciBAYyBOVUxMIGlu
IGNhc2Ugb2YgZXJyb3IsCiAgKiAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBFaW5hX0xpc3Qg
YW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZXdrX29iamVjdF91
bnJlZigpCiAgKiAgICAgICAgICAgICAgICAgICAgICAgIHRvIGZyZWUgdGhlIGl0ZW1zCiAgKi8K
LXR5cGVkZWYgdm9pZCAoKkV3a19EYXRhYmFzZV9PcmlnaW5zX0dldF9DYikoRWluYV9MaXN0ICpv
cmlnaW5zLCBFd2tfRXJyb3IgKmVycm9yLCB2b2lkICp1c2VyX2RhdGEpOwordHlwZWRlZiB2b2lk
ICgqRXdrX0RhdGFiYXNlX09yaWdpbnNfQXN5bmNfR2V0X0NiKShFaW5hX0xpc3QgKm9yaWdpbnMs
IEV3a19FcnJvciAqZXJyb3IsIHZvaWQgKnVzZXJfZGF0YSk7CiAKIC8qKgogICogR2V0cyBsaXN0
IG9mIG9yaWdpbnMgdXNpbmcgd2ViIGRhdGFiYXNlIGFzeW5jaHJvbm91c2x5LgpAQCAtNjUsNyAr
NjUsNyBAQCB0eXBlZGVmIHZvaWQgKCpFd2tfRGF0YWJhc2VfT3JpZ2luc19HZXRfQ2IpKEVpbmFf
TGlzdCAqb3JpZ2lucywgRXdrX0Vycm9yICplcnJvcgogICoKICAqIEByZXR1cm4gQGMgRUlOQV9U
UlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQogICovCi1FQVBJIEVpbmFf
Qm9vbCBld2tfZGF0YWJhc2VfbWFuYWdlcl9vcmlnaW5zX2dldChjb25zdCBFd2tfRGF0YWJhc2Vf
TWFuYWdlciAqbWFuYWdlciwgRXdrX0RhdGFiYXNlX09yaWdpbnNfR2V0X0NiIGNhbGxiYWNrLCB2
b2lkICp1c2VyX2RhdGEpOworRUFQSSBFaW5hX0Jvb2wgZXdrX2RhdGFiYXNlX21hbmFnZXJfb3Jp
Z2luc19hc3luY19nZXQoY29uc3QgRXdrX0RhdGFiYXNlX01hbmFnZXIgKm1hbmFnZXIsIEV3a19E
YXRhYmFzZV9PcmlnaW5zX0FzeW5jX0dldF9DYiBjYWxsYmFjaywgdm9pZCAqdXNlcl9kYXRhKTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuY3BwCmluZGV4IDMzZjRmZDJhYjhj
NGI0NjM1Y2U0N2ZkYmYwNjhjY2FmOGM1OWM2NDcuLmM1MmUyOWQyYmZiODY2NWZkYzRjNGE0ZWUy
YjZjMjEyZGE1MDY0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuY3BwCkBAIC02NSwxMCArNjUsMTAgQEAgRWlu
YV9MaXN0KiBFd2tTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlT3JpZ2luTGlzdChXS0FycmF5UmVmIG9y
aWdpbnMpIGNvbnN0CiAKIHN0cnVjdCBFd2tfU3RvcmFnZV9PcmlnaW5zX0FzeW5jX0dldF9Db250
ZXh0IHsKICAgICBjb25zdCBFd2tfU3RvcmFnZV9NYW5hZ2VyKiBtYW5hZ2VyOwotICAgIEV3a19T
dG9yYWdlX09yaWdpbnNfR2V0X0NiIGNhbGxiYWNrOworICAgIEV3a19TdG9yYWdlX09yaWdpbnNf
QXN5bmNfR2V0X0NiIGNhbGxiYWNrOwogICAgIHZvaWQqIHVzZXJEYXRhOwogCi0gICAgRXdrX1N0
b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ29udGV4dChjb25zdCBFd2tfU3RvcmFnZV9NYW5hZ2Vy
KiBtYW5hZ2VyLCBFd2tfU3RvcmFnZV9PcmlnaW5zX0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNl
ckRhdGEpCisgICAgRXdrX1N0b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ29udGV4dChjb25zdCBF
d2tfU3RvcmFnZV9NYW5hZ2VyKiBtYW5hZ2VyLCBFd2tfU3RvcmFnZV9PcmlnaW5zX0FzeW5jX0dl
dF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiAgICAgICAgIDogbWFuYWdlcihtYW5hZ2Vy
KQogICAgICAgICAsIGNhbGxiYWNrKGNhbGxiYWNrKQogICAgICAgICAsIHVzZXJEYXRhKHVzZXJE
YXRhKQpAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgdm9pZCBnZXRTdG9yYWdlT3JpZ2luc0NhbGxi
YWNrKFdLQXJyYXlSZWYgb3JpZ2lucywgV0tFcnJvclJlZiB3a0Vycm9yLCB2bwogICAgIHdlYlN0
b3JhZ2VDb250ZXh0LT5jYWxsYmFjayhvcmlnaW5MaXN0LCBld2tFcnJvci5nZXQoKSwgd2ViU3Rv
cmFnZUNvbnRleHQtPnVzZXJEYXRhKTsKIH0KIAotRWluYV9Cb29sIGV3a19zdG9yYWdlX21hbmFn
ZXJfb3JpZ2luc19nZXQoY29uc3QgRXdrX1N0b3JhZ2VfTWFuYWdlciogZXdrU3RvcmFnZU1hbmFn
ZXIsIEV3a19TdG9yYWdlX09yaWdpbnNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkK
K0VpbmFfQm9vbCBld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KGNvbnN0IEV3
a19TdG9yYWdlX01hbmFnZXIqIGV3a1N0b3JhZ2VNYW5hZ2VyLCBFd2tfU3RvcmFnZV9PcmlnaW5z
X0FzeW5jX0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKGV3a1N0b3JhZ2VNYW5hZ2VyLCBmYWxzZSk7CiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNhbGxiYWNrLCBmYWxzZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmgK
aW5kZXggNGY1YzhmYjMwODkyZmY3OWRmNjM5YTZhYmM1NGQyZTgyOTNjYzg4Yi4uMTNjMjU5ZDJj
ZmI2ZjdjZmJjN2U2YTg0M2EwNGQ3NTQ1ZGJlNDgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuaApAQCAtNDQsMTQg
KzQ0LDE0IEBAIGV4dGVybiAiQyIgewogdHlwZWRlZiBzdHJ1Y3QgRXdrU3RvcmFnZU1hbmFnZXIg
RXdrX1N0b3JhZ2VfTWFuYWdlcjsKIAogLyoqCi0gKiBAdHlwZWRlZiBFd2tfU3RvcmFnZV9Pcmln
aW5zX0dldF9DYiBFd2tfU3RvcmFnZV9PcmlnaW5zX0dldF9DYgotICogQGJyaWVmIENhbGxiYWNr
IHR5cGUgZm9yIHVzZSB3aXRoIGV3a19zdG9yYWdlX21hbmFnZXJfb3JpZ2luc19nZXQoKS4KKyAq
IEB0eXBlZGVmIEV3a19TdG9yYWdlX09yaWdpbnNfQXN5bmNfR2V0X0NiIEV3a19TdG9yYWdlX09y
aWdpbnNfQXN5bmNfR2V0X0NiCisgKiBAYnJpZWYgQ2FsbGJhY2sgdHlwZSBmb3IgdXNlIHdpdGgg
ZXdrX3N0b3JhZ2VfbWFuYWdlcl9vcmlnaW5zX2FzeW5jX2dldCgpLgogICoKICAqIEBwYXJhbSBv
cmlnaW5zIEBjIEVpbmFfTGlzdCBjb250YWluaW5nIEBjIEV3a19TZWN1cml0eV9PcmlnaW4gZWxl
bWVudHMgb3IgQGMgTlVMTCBpbiBjYXNlIG9mIGVycm9yLAogICogICAgICAgICAgICAgICAgICAg
ICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRlbXMgc2hvdWxkIGJlIGZyZWVkIGFmdGVyIHVz
ZS4gVXNlIGV3a19vYmplY3RfdW5yZWYoKQogICogICAgICAgICAgICAgICAgICAgICAgICB0byBm
cmVlIHRoZSBpdGVtcwogICovCi10eXBlZGVmIHZvaWQgKCpFd2tfU3RvcmFnZV9PcmlnaW5zX0dl
dF9DYikoRWluYV9MaXN0ICpvcmlnaW5zLCBFd2tfRXJyb3IgKmVycm9yLCB2b2lkICp1c2VyX2Rh
dGEpOwordHlwZWRlZiB2b2lkICgqRXdrX1N0b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ2IpKEVp
bmFfTGlzdCAqb3JpZ2lucywgRXdrX0Vycm9yICplcnJvciwgdm9pZCAqdXNlcl9kYXRhKTsKIAog
LyoqCiAgKiBHZXRzIGxpc3Qgb2Ygb3JpZ2lucyB0aGF0IGFyZSBzdG9yZWQgaW4gc3RvcmFnZSBk
YiBhc3luY2hyb25vdXNseS4KQEAgLTY1LDcgKzY1LDcgQEAgdHlwZWRlZiB2b2lkICgqRXdrX1N0
b3JhZ2VfT3JpZ2luc19HZXRfQ2IpKEVpbmFfTGlzdCAqb3JpZ2lucywgRXdrX0Vycm9yICplcnJv
ciwKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBAYyBFSU5BX0ZBTFNF
IG9uIGZhaWx1cmUKICAqLwotRUFQSSBFaW5hX0Jvb2wgZXdrX3N0b3JhZ2VfbWFuYWdlcl9vcmln
aW5zX2dldChjb25zdCBFd2tfU3RvcmFnZV9NYW5hZ2VyICptYW5hZ2VyLCBFd2tfU3RvcmFnZV9P
cmlnaW5zX0dldF9DYiBjYWxsYmFjaywgdm9pZCAqdXNlcl9kYXRhKTsKK0VBUEkgRWluYV9Cb29s
IGV3a19zdG9yYWdlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQoY29uc3QgRXdrX1N0b3JhZ2Vf
TWFuYWdlciAqbWFuYWdlciwgRXdrX1N0b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ2IgY2FsbGJh
Y2ssIHZvaWQgKnVzZXJfZGF0YSk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2FwcGxp
Y2F0aW9uX2NhY2hlX21hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvdGVzdHMvdGVzdF9ld2syX2FwcGxpY2F0aW9uX2NhY2hlX21hbmFnZXIuY3BwCmluZGV4IDJl
ZmZiZjY1ZGFmNjRjNDQxMWM0NjdhOGZlZDU5NDc5ODU4MjNlYjUuLmNkYzEyNmIyMDdiNGJhZWUw
MzEyNGNiNTEwNTM3OTAxN2VlNzk5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJf
YXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgc3RhdGljIHZv
aWQgZ2V0T3JpZ2luc0NhbGxiYWNrKEVpbmFfTGlzdCogb3JpZ2lucywgdm9pZCogZXZlbnRfaW5m
bykKIHN0YXRpYyBFaW5hX0Jvb2wgdGltZXJDYWxsYmFjayh2b2lkKiB1c2VyRGF0YSkKIHsKICAg
ICBPcmlnaW5zRGF0YSogZGF0YSA9IHN0YXRpY19jYXN0PE9yaWdpbnNEYXRhKj4odXNlckRhdGEp
OwotICAgIGV3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KGRhdGEtPm1h
bmFnZXIsIGdldE9yaWdpbnNDYWxsYmFjaywgJmRhdGEtPml0ZW1zKTsKKyAgICBld2tfYXBwbGlj
YXRpb25fY2FjaGVfbWFuYWdlcl9vcmlnaW5zX2FzeW5jX2dldChkYXRhLT5tYW5hZ2VyLCBnZXRP
cmlnaW5zQ2FsbGJhY2ssICZkYXRhLT5pdGVtcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdr
Ml9jb29raWVfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90
ZXN0cy90ZXN0X2V3azJfY29va2llX21hbmFnZXIuY3BwCmluZGV4IDA2Yzc4MTU2NDMwMTA0MTEw
NWMyMTI2ZWM2NDdjNWFiNTI3MDc4ZDEuLjEyNWNmMjJjOGM3OTE1NzhjOGVlZGI5ZjU4ZjdhYjQ5
YmM2MzU0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl9jb29raWVfbWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nvb2tpZV9tYW5hZ2VyLmNwcApAQCAtOTgs
NyArOTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRXdrX0Nvb2tpZV9BY2NlcHRfUG9saWN5IGdldEFj
Y2VwdFBvbGljeShFd2tfQ29va2llX01hbmFnZXIqIG1hbmFnZXIpCiAgICAgewogICAgICAgICBF
d2tfQ29va2llX0FjY2VwdF9Qb2xpY3kgcG9saWN5ID0gRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZ
X0FMV0FZUzsKLSAgICAgICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX2FzeW5jX2FjY2VwdF9wb2xpY3lf
Z2V0KG1hbmFnZXIsIGdldEFjY2VwdFBvbGljeUNhbGxiYWNrLCAmcG9saWN5KTsKKyAgICAgICAg
ZXdrX2Nvb2tpZV9tYW5hZ2VyX2FjY2VwdF9wb2xpY3lfYXN5bmNfZ2V0KG1hbmFnZXIsIGdldEFj
Y2VwdFBvbGljeUNhbGxiYWNrLCAmcG9saWN5KTsKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2Jl
Z2luKCk7CiAgICAgICAgIHJldHVybiBwb2xpY3k7CiAgICAgfQpAQCAtMTA2LDcgKzEwNiw3IEBA
IHByb3RlY3RlZDoKICAgICBFaW5hX0xpc3QqIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEV3a19D
b29raWVfTWFuYWdlciogbWFuYWdlcikKICAgICB7CiAgICAgICAgIEVpbmFfTGlzdCogcmV0ID0g
MDsKLSAgICAgICAgZXdrX2Nvb2tpZV9tYW5hZ2VyX2FzeW5jX2hvc3RuYW1lc193aXRoX2Nvb2tp
ZXNfZ2V0KG1hbmFnZXIsIGdldEhvc3RuYW1lc1dpdGhDb29raWVzQ2FsbGJhY2ssICZyZXQpOwor
ICAgICAgICBld2tfY29va2llX21hbmFnZXJfaG9zdG5hbWVzX3dpdGhfY29va2llc19hc3luY19n
ZXQobWFuYWdlciwgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNDYWxsYmFjaywgJnJldCk7CiAgICAg
ICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwogICAgICAgICByZXR1cm4gcmV0OwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3Rf
ZXdrMl9kYXRhYmFzZV9tYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9kYXRhYmFzZV9tYW5hZ2VyLmNwcAppbmRleCA1MTNkN2IzYzMw
MjBhMjVlNmQ4ODRkMTc5ZmFkNGM5Y2EwNTc3MDkwLi44NTc1MGVmYjkxNzdmYjg5ZTA1ZDhjYTlh
ODUxMjFkNjU4MjIyMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfZGF0YWJhc2VfbWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2RhdGFiYXNlX21hbmFnZXIu
Y3BwCkBAIC03OSwxNCArNzksMTQgQEAgcHVibGljOgogCiAgICAgICAgIGlmIChvcmlnaW5EYXRh
LT5kaWRSZWNlaXZlT3JpZ2luc0NhbGxiYWNrKSB7CiAgICAgICAgICAgICBvcmlnaW5EYXRhLT5k
aWRSZWNlaXZlT3JpZ2luc0NhbGxiYWNrID0gZmFsc2U7Ci0gICAgICAgICAgICBld2tfZGF0YWJh
c2VfbWFuYWdlcl9vcmlnaW5zX2dldChvcmlnaW5EYXRhLT5tYW5hZ2VyLCBkYXRhYmFzZU9yaWdp
bnNDYWxsYmFjaywgb3JpZ2luRGF0YSk7CisgICAgICAgICAgICBld2tfZGF0YWJhc2VfbWFuYWdl
cl9vcmlnaW5zX2FzeW5jX2dldChvcmlnaW5EYXRhLT5tYW5hZ2VyLCBkYXRhYmFzZU9yaWdpbnND
YWxsYmFjaywgb3JpZ2luRGF0YSk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gRUNPUkVf
Q0FMTEJBQ0tfUkVORVc7CiAgICAgfQogfTsKIAotVEVTVF9GKEVXSzJEYXRhYmFzZU1hbmFnZXJU
ZXN0LCBld2tfZGF0YWJhc2VfbWFuYWdlcl9vcmlnaW5zX2dldCkKK1RFU1RfRihFV0syRGF0YWJh
c2VNYW5hZ2VyVGVzdCwgZXdrX2RhdGFiYXNlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQpCiB7
CiAgICAgRXZhc19PYmplY3QqIHZpZXcgPSB3ZWJWaWV3KCk7CiAgICAgY29uc3QgY2hhciogZGF0
YWJhc2VIVE1MID0KQEAgLTEwMiw3ICsxMDIsNyBAQCBURVNUX0YoRVdLMkRhdGFiYXNlTWFuYWdl
clRlc3QsIGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KQogCiAgICAgT3JpZ2luRGF0
YSBvcmlnaW5EYXRhOwogICAgIG9yaWdpbkRhdGEubWFuYWdlciA9IGV3a19jb250ZXh0X2RhdGFi
YXNlX21hbmFnZXJfZ2V0KGV3a192aWV3X2NvbnRleHRfZ2V0KHZpZXcpKTsKLSAgICBBU1NFUlRf
VFJVRShld2tfZGF0YWJhc2VfbWFuYWdlcl9vcmlnaW5zX2dldChvcmlnaW5EYXRhLm1hbmFnZXIs
IGRhdGFiYXNlT3JpZ2luc0NhbGxiYWNrLCAmb3JpZ2luRGF0YSkpOworICAgIEFTU0VSVF9UUlVF
KGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KG9yaWdpbkRhdGEubWFuYWdl
ciwgZGF0YWJhc2VPcmlnaW5zQ2FsbGJhY2ssICZvcmlnaW5EYXRhKSk7CiAgICAgRWNvcmVfVGlt
ZXIqIGRhdGFiYXNlX3RpbWVyID0gZWNvcmVfdGltZXJfYWRkKDEsIHRpbWVyQ2FsbGJhY2ssICZv
cmlnaW5EYXRhKTsKIAogICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3N0b3JhZ2Vf
bWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfc3RvcmFnZV9tYW5hZ2VyLmNwcAppbmRleCAwYzZkMzM2ZTBkNTZhM2Q2ODYxMDE2NjY4
YzY1M2VhZGI2NjVlYzg2Li5lYWE5MGU0ZTQzOTg4OTkzMDRmNWUyNzAzNWZiOWU4NjI0ZTM2ZjZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfc3RvcmFnZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfc3RvcmFnZV9tYW5hZ2VyLmNwcApAQCAtNzksNyArNzks
NyBAQCBwdWJsaWM6CiAKICAgICAgICAgaWYgKG9yaWdpbkRhdGEtPmRpZFJlY2VpdmVPcmlnaW5z
Q2FsbGJhY2spIHsKICAgICAgICAgICAgIG9yaWdpbkRhdGEtPmRpZFJlY2VpdmVPcmlnaW5zQ2Fs
bGJhY2sgPSBmYWxzZTsKLSAgICAgICAgICAgIGV3a19zdG9yYWdlX21hbmFnZXJfb3JpZ2luc19n
ZXQob3JpZ2luRGF0YS0+bWFuYWdlciwgZ2V0U3RvcmFnZU9yaWdpbnNDYWxsYmFjaywgb3JpZ2lu
RGF0YSk7CisgICAgICAgICAgICBld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0
KG9yaWdpbkRhdGEtPm1hbmFnZXIsIGdldFN0b3JhZ2VPcmlnaW5zQ2FsbGJhY2ssIG9yaWdpbkRh
dGEpOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX1JFTkVXOwpA
QCAtMTAyLDcgKzEwMiw3IEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi1URVNUX0YoRVdLMlN0
b3JhZ2VNYW5hZ2VyVGVzdCwgZXdrX3N0b3JhZ2VfbWFuYWdlcl9vcmlnaW5zX2dldCkKK1RFU1Rf
RihFV0syU3RvcmFnZU1hbmFnZXJUZXN0LCBld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNfYXN5
bmNfZ2V0KQogewogICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gd2ViVmlldygpOwogICAgIGNvbnN0
IGNoYXIqIHN0b3JhZ2VIVE1MID0KQEAgLTExNyw3ICsxMTcsNyBAQCBURVNUX0YoRVdLMlN0b3Jh
Z2VNYW5hZ2VyVGVzdCwgZXdrX3N0b3JhZ2VfbWFuYWdlcl9vcmlnaW5zX2dldCkKIAogICAgIE9y
aWdpbkRhdGEgb3JpZ2luRGF0YTsKICAgICBvcmlnaW5EYXRhLm1hbmFnZXIgPSBld2tfY29udGV4
dF9zdG9yYWdlX21hbmFnZXJfZ2V0KGV3a192aWV3X2NvbnRleHRfZ2V0KHZpZXcpKTsKLSAgICBB
U1NFUlRfVFJVRShld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KG9yaWdpbkRhdGEubWFu
YWdlciwgZ2V0U3RvcmFnZU9yaWdpbnNDYWxsYmFjaywgJm9yaWdpbkRhdGEpKTsKKyAgICBBU1NF
UlRfVFJVRShld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KG9yaWdpbkRhdGEu
bWFuYWdlciwgZ2V0U3RvcmFnZU9yaWdpbnNDYWxsYmFjaywgJm9yaWdpbkRhdGEpKTsKICAgICBF
Y29yZV9UaW1lciogc3RvcmFnZV90aW1lciA9IGVjb3JlX3RpbWVyX2FkZCgxLCByZWludGVycHJl
dF9jYXN0PEVjb3JlX1Rhc2tfQ2I+KHRpbWVyQ2FsbGJhY2spLCAmb3JpZ2luRGF0YSk7CiAKICAg
ICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227137</attachid>
            <date>2014-03-18 17:43:58 -0700</date>
            <delta_ts>2014-03-18 18:58:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130319-20140319094334.patch</filename>
            <type>text/plain</type>
            <size>28367</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmQ1NmM1OTc3NTMwYzZi
MWI5MmQ1MjFhNmU2ZTk5NmFlM2NlN2Y4My4uMDk3MTEwYTI1NmFkZWZjNGI3Y2M5ODM3NTg4OTA4
ZjJkOWExYjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTAzLTE4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJl
bmFtZSBhc3luYyBBUElzIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kgd2l0aCBFRkwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDMxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAgICAgICBUaGVyZSBhcmUgaW5jb25zaXN0
ZW5jeSB3aXRoIGFzeW5jIGtleXdvcmQgaW4gc2V2ZXJhbCBld2Via2l0MiBBUElzLgorICAgICAg
ICBUaGlzIHBhdGNoIHJlbmFtZSB0aGVtIHRvIHttb2R1bGUvZmVhdHVyZX1fYXN5bmNfe3ZlcmJ9
IGZvciBiZXR0ZXIgY29uc2lzdGVuY3kgd2l0aCBFRkwuCisgICAgICAgIEluIGFkZGl0aW9uLCBh
ZGRlZCBBc3luYyBrZXl3b3JkIGludG8gdGhlaXIgY2FsbGJhY2sgbmFtZS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKEV3a0FwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zQXN5bmNEYXRhOjpFd2tBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luc0FzeW5jRGF0YSk6CisgICAgICAgIChnZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luc0NhbGxiYWNrKToKKyAgICAgICAgKGV3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyX29y
aWdpbnNfYXN5bmNfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXBwbGlj
YXRpb25fY2FjaGVfbWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b29raWVfbWFuYWdlci5jcHA6CisgICAgICAgIChFd2tDb29raWVQb2xpY3lBc3luY0RhdGE6OkV3
a0Nvb2tpZVBvbGljeUFzeW5jRGF0YSk6CisgICAgICAgIChnZXRBY2NlcHRQb2xpY3lDYWxsYmFj
ayk6CisgICAgICAgIChld2tfY29va2llX21hbmFnZXJfYWNjZXB0X3BvbGljeV9hc3luY19nZXQp
OgorICAgICAgICAoRXdrQ29va2llSG9zdG5hbWVzQXN5bmNEYXRhOjpFd2tDb29raWVIb3N0bmFt
ZXNBc3luY0RhdGEpOgorICAgICAgICAoZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNDYWxsYmFjayk6
CisgICAgICAgIChld2tfY29va2llX21hbmFnZXJfaG9zdG5hbWVzX3dpdGhfY29va2llc19hc3lu
Y19nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcDoK
KyAgICAgICAgKEV3a0RhdGFiYXNlT3JpZ2luc0FzeW5jRGF0YTo6RXdrRGF0YWJhc2VPcmlnaW5z
QXN5bmNEYXRhKToKKyAgICAgICAgKGdldERhdGFiYXNlT3JpZ2luc0NhbGxiYWNrKToKKyAgICAg
ICAgKGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuY3BwOgorICAgICAgICAoRXdrU3RvcmFn
ZU9yaWdpbnNBc3luY0RhdGE6OkV3a1N0b3JhZ2VPcmlnaW5zQXN5bmNEYXRhKToKKyAgICAgICAg
KGdldFN0b3JhZ2VPcmlnaW5zQ2FsbGJhY2spOgorICAgICAgICAoZXdrX3N0b3JhZ2VfbWFuYWdl
cl9vcmlnaW5zX2FzeW5jX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0
b3JhZ2VfbWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3Rf
ZXdrMl9hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmNwcDoKKyAgICAgICAgKHRpbWVyQ2FsbGJh
Y2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb29raWVf
bWFuYWdlci5jcHA6CisgICAgICAgIChFV0syQ29va2llTWFuYWdlclRlc3Q6OmdldEFjY2VwdFBv
bGljeSk6CisgICAgICAgIChFV0syQ29va2llTWFuYWdlclRlc3Q6OmdldEhvc3RuYW1lc1dpdGhD
b29raWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfZGF0
YWJhc2VfbWFuYWdlci5jcHA6CisgICAgICAgIChFV0syRGF0YWJhc2VNYW5hZ2VyVGVzdDo6dGlt
ZXJDYWxsYmFjayk6CisgICAgICAgIChURVNUX0YpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21hbmFnZXIuY3BwOgorICAgICAgICAoRVdLMlN0
b3JhZ2VNYW5hZ2VyVGVzdDo6dGltZXJDYWxsYmFjayk6CisgICAgICAgIChURVNUX0YpOgorCiAy
MDE0LTAzLTE4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBN
YWtlIGltYWdlIGNvbnRyb2xzIG1lbnUgd29yayBpbiBXSzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19hcHBsaWNhdGlvbl9jYWNo
ZV9tYW5hZ2VyLmNwcAppbmRleCA3MGYxM2E5ZjczNjBkMzMwY2FmOGQzNjBkYmQ5ZGFlN2VhYmQw
ZGY0Li5iMWQ4ZGZiOWFlYjkwOWViNTVlYmMwODYwMDNiMzI2NWFlNzBmN2UyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXBwbGljYXRpb25fY2FjaGVf
bWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Fw
cGxpY2F0aW9uX2NhY2hlX21hbmFnZXIuY3BwCkBAIC00MiwxMSArNDIsMTEgQEAgRXdrQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXI6On5Fd2tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcigpCiB7CiB9CiAK
LXN0cnVjdCBHZXRfT3JpZ2luc19EYXRhIHsKLSAgICBFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3Jp
Z2luc19HZXRfQ2IgY2FsbGJhY2s7CitzdHJ1Y3QgRXdrQXBwbGljYXRpb25DYWNoZU9yaWdpbnNB
c3luY0RhdGEgeworICAgIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0FzeW5jX0dldF9D
YiBjYWxsYmFjazsKICAgICB2b2lkKiB1c2VyRGF0YTsKIAotICAgIEdldF9PcmlnaW5zX0RhdGEo
RXdrX0FwcGxpY2F0aW9uX0NhY2hlX09yaWdpbnNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2Vy
RGF0YSkKKyAgICBFd2tBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0FzeW5jRGF0YShFd2tfQXBwbGlj
YXRpb25fQ2FjaGVfT3JpZ2luc19Bc3luY19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRh
KQogICAgICAgICA6IGNhbGxiYWNrKGNhbGxiYWNrKQogICAgICAgICAsIHVzZXJEYXRhKHVzZXJE
YXRhKQogICAgIHsgfQpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgR2V0X09yaWdpbnNfRGF0YSB7
CiBzdGF0aWMgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0NhbGxiYWNrKFdLQXJyYXlS
ZWYgd2tPcmlnaW5zLCBXS0Vycm9yUmVmLCB2b2lkKiBjb250ZXh0KQogewogICAgIEVpbmFfTGlz
dCogb3JpZ2lucyA9IG51bGxwdHI7Ci0gICAgYXV0byBjYWxsYmFja0RhdGEgPSBzdGQ6OnVuaXF1
ZV9wdHI8R2V0X09yaWdpbnNfRGF0YT4oc3RhdGljX2Nhc3Q8R2V0X09yaWdpbnNfRGF0YSo+KGNv
bnRleHQpKTsKKyAgICBhdXRvIGNhbGxiYWNrRGF0YSA9IHN0ZDo6dW5pcXVlX3B0cjxFd2tBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luc0FzeW5jRGF0YT4oc3RhdGljX2Nhc3Q8RXdrQXBwbGljYXRpb25D
YWNoZU9yaWdpbnNBc3luY0RhdGEqPihjb250ZXh0KSk7CiAKICAgICBjb25zdCBzaXplX3Qgb3Jp
Z2luc0NvdW50ID0gV0tBcnJheUdldFNpemUod2tPcmlnaW5zKTsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG9yaWdpbnNDb3VudDsgKytpKSB7CkBAIC02NiwxMiArNjYsMTIgQEAgc3RhdGlj
IHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnNDYWxsYmFjayhXS0FycmF5UmVmIHdrT3Jp
Z2lucywgV0tFcnJvclJlZiwKICAgICBjYWxsYmFja0RhdGEtPmNhbGxiYWNrKG9yaWdpbnMsIGNh
bGxiYWNrRGF0YS0+dXNlckRhdGEpOwogfQogCi12b2lkIGV3a19hcHBsaWNhdGlvbl9jYWNoZV9t
YW5hZ2VyX29yaWdpbnNfZ2V0KGNvbnN0IEV3a19BcHBsaWNhdGlvbl9DYWNoZV9NYW5hZ2VyKiBt
YW5hZ2VyLCBFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2luc19HZXRfQ2IgY2FsbGJhY2ssIHZv
aWQqIHVzZXJEYXRhKQordm9pZCBld2tfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlcl9vcmlnaW5z
X2FzeW5jX2dldChjb25zdCBFd2tfQXBwbGljYXRpb25fQ2FjaGVfTWFuYWdlciogbWFuYWdlciwg
RXdrX0FwcGxpY2F0aW9uX0NhY2hlX09yaWdpbnNfQXN5bmNfR2V0X0NiIGNhbGxiYWNrLCB2b2lk
KiB1c2VyRGF0YSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtYW5hZ2VyKTsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjYWxsYmFjayk7CiAKLSAgICBHZXRfT3Jp
Z2luc19EYXRhKiBjYWxsYmFja0RhdGEgPSBuZXcgR2V0X09yaWdpbnNfRGF0YShjYWxsYmFjaywg
dXNlckRhdGEpOworICAgIEV3a0FwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zQXN5bmNEYXRhKiBjYWxs
YmFja0RhdGEgPSBuZXcgRXdrQXBwbGljYXRpb25DYWNoZU9yaWdpbnNBc3luY0RhdGEoY2FsbGJh
Y2ssIHVzZXJEYXRhKTsKICAgICBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpbnMobWFuYWdlci0+aW1wbCgpLCBjYWxsYmFja0RhdGEsIGdldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5zQ2FsbGJhY2spOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2FwcGxpY2F0aW9uX2NhY2hlX21hbmFn
ZXIuaAppbmRleCAwZDM4NDRmMDc1OTgzODA2MTBlM2YwZjg1MmIwMjViYTNhZTJjNzRlLi41MDJk
NWU3YTFkNTAwMDM5ZjZhZWJhZmJmN2E5ODk1YWJhN2E4YTUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19hcHBsaWNhdGlvbl9j
YWNoZV9tYW5hZ2VyLmgKQEAgLTQyLDggKzQyLDggQEAgZXh0ZXJuICJDIiB7CiB0eXBlZGVmIHN0
cnVjdCBFd2tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciBFd2tfQXBwbGljYXRpb25fQ2FjaGVfTWFu
YWdlcjsKIAogLyoqCi0gKiBAdHlwZWRlZiBFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2luc19H
ZXRfQ2IgRXdrX0FwcGxpY2F0aW9uX0NhY2hlX09yaWdpbnNfR2V0X0NiCi0gKiBAYnJpZWYgQ2Fs
bGJhY2sgZm9yIGV3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyX29yaWdpbnNfZ2V0CisgKiBA
dHlwZWRlZiBFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2luc19Bc3luY19HZXRfQ2IgRXdrX0Fw
cGxpY2F0aW9uX0NhY2hlX09yaWdpbnNfQXN5bmNfR2V0X0NiCisgKiBAYnJpZWYgQ2FsbGJhY2sg
Zm9yIGV3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0CiAgKgog
ICogQG5vdGUgVGhlIEBhIG9yaWdpbnMgc2hvdWxkIGJlIGZyZWVkIGxpa2UgYmVsb3cgY29kZSBh
ZnRlciB1c2UuCiAgKgpAQCAtNjEsNyArNjEsNyBAQCB0eXBlZGVmIHN0cnVjdCBFd2tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlciBFd2tfQXBwbGljYXRpb25fQ2FjaGVfTWFuYWdlcjsKICAqCiAgKiBA
ZW5kY29kZQogICovCi10eXBlZGVmIHZvaWQgKCpFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2lu
c19HZXRfQ2IpKEVpbmFfTGlzdCAqb3JpZ2lucywgdm9pZCAqdXNlcl9kYXRhKTsKK3R5cGVkZWYg
dm9pZCAoKkV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0FzeW5jX0dldF9DYikoRWluYV9M
aXN0ICpvcmlnaW5zLCB2b2lkICp1c2VyX2RhdGEpOwogCiAvKioKICAqIFJlcXVlc3RzIGZvciBn
ZXR0aW5nIHdlYiBhcHBsaWNhdGlvbiBjYWNoZSBvcmlnaW5zLgpAQCAtNzAsOSArNzAsOSBAQCB0
eXBlZGVmIHZvaWQgKCpFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2luc19HZXRfQ2IpKEVpbmFf
TGlzdCAqb3JpZ2lucywgdm9pZCAqdQogICogQHBhcmFtIHJlc3VsdF9jYWxsYmFjayBjYWxsYmFj
ayB0byBnZXQgd2ViIGFwcGxpY2F0aW9uIGNhY2hlIG9yaWdpbnMKICAqIEBwYXJhbSB1c2VyX2Rh
dGEgdXNlcl9kYXRhIHdpbGwgYmUgcGFzc3NlZCB3aGVuIHJlc3VsdF9jYWxsYmFjayBpcyBjYWxs
ZWQKICAqCi0gKiBAc2VlIEV3a19BcHBsaWNhdGlvbl9DYWNoZV9PcmlnaW5zX0dldF9DYgorICog
QHNlZSBFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3JpZ2luc19Bc3luY19HZXRfQ2IKICAqLwotRUFQ
SSB2b2lkIGV3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KGNvbnN0IEV3
a19BcHBsaWNhdGlvbl9DYWNoZV9NYW5hZ2VyICptYW5hZ2VyLCBFd2tfQXBwbGljYXRpb25fQ2Fj
aGVfT3JpZ2luc19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQgKmRhdGEpOworRUFQSSB2b2lkIGV3a19h
cHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KGNvbnN0IEV3a19BcHBs
aWNhdGlvbl9DYWNoZV9NYW5hZ2VyICptYW5hZ2VyLCBFd2tfQXBwbGljYXRpb25fQ2FjaGVfT3Jp
Z2luc19Bc3luY19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQgKmRhdGEpOwogCiAvKioKICAqIFJlcXVl
c3RzIGZvciBkZWxldGluZyBhbGwgd2ViIGFwcGxpY2F0aW9uIGNhY2hlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3Bw
CmluZGV4IGVjNGYyODcxNjJiMjJlYWE2N2Y5ZGE1ZTBiMjRiMDg2NWU1MzM4YzguLmI2ODRmNjk4
YTViY2VkNjYyYWViZjZlMmZkOWU5NTkwM2JjYWVmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcApAQCAtMTY1
LDExICsxNjUsMTEgQEAgdm9pZCBld2tfY29va2llX21hbmFnZXJfYWNjZXB0X3BvbGljeV9zZXQo
RXdrX0Nvb2tpZV9NYW5hZ2VyKiBtYW5hZ2VyLCBFd2tfQ29va2kKICAgICBtYW5hZ2VyLT5zZXRI
VFRQQWNjZXB0UG9saWN5KHdrUG9saWN5KTsKIH0KIAotc3RydWN0IEdldF9Qb2xpY3lfQXN5bmNf
RGF0YSB7Ci0gICAgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX1BvbGljeV9HZXRfQ2IgY2FsbGJh
Y2s7CitzdHJ1Y3QgRXdrQ29va2llUG9saWN5QXN5bmNEYXRhIHsKKyAgICBFd2tfQ29va2llX01h
bmFnZXJfUG9saWN5X0FzeW5jX0dldF9DYiBjYWxsYmFjazsKICAgICB2b2lkKiB1c2VyRGF0YTsK
IAotICAgIEdldF9Qb2xpY3lfQXN5bmNfRGF0YShFd2tfQ29va2llX01hbmFnZXJfQXN5bmNfUG9s
aWN5X0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCisgICAgRXdrQ29va2llUG9saWN5
QXN5bmNEYXRhKEV3a19Db29raWVfTWFuYWdlcl9Qb2xpY3lfQXN5bmNfR2V0X0NiIGNhbGxiYWNr
LCB2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgOiBjYWxsYmFjayhjYWxsYmFjaykKICAgICAgICAg
LCB1c2VyRGF0YSh1c2VyRGF0YSkKICAgICB7IH0KQEAgLTE3NywyNiArMTc3LDI2IEBAIHN0cnVj
dCBHZXRfUG9saWN5X0FzeW5jX0RhdGEgewogCiBzdGF0aWMgdm9pZCBnZXRBY2NlcHRQb2xpY3lD
YWxsYmFjayhXS0hUVFBDb29raWVBY2NlcHRQb2xpY3kgcG9saWN5LCBXS0Vycm9yUmVmIHdrRXJy
b3IsIHZvaWQqIGRhdGEpCiB7Ci0gICAgYXV0byBjYWxsYmFja0RhdGEgPSBzdGQ6OnVuaXF1ZV9w
dHI8R2V0X1BvbGljeV9Bc3luY19EYXRhPihzdGF0aWNfY2FzdDxHZXRfUG9saWN5X0FzeW5jX0Rh
dGEqPihkYXRhKSk7CisgICAgYXV0byBjYWxsYmFja0RhdGEgPSBzdGQ6OnVuaXF1ZV9wdHI8RXdr
Q29va2llUG9saWN5QXN5bmNEYXRhPihzdGF0aWNfY2FzdDxFd2tDb29raWVQb2xpY3lBc3luY0Rh
dGEqPihkYXRhKSk7CiAgICAgT3duUHRyPEV3a0Vycm9yPiBld2tFcnJvciA9IEV3a0Vycm9yOjpj
cmVhdGUod2tFcnJvcik7CiAKICAgICBjYWxsYmFja0RhdGEtPmNhbGxiYWNrKHN0YXRpY19jYXN0
PEV3a19Db29raWVfQWNjZXB0X1BvbGljeT4ocG9saWN5KSwgZXdrRXJyb3IuZ2V0KCksIGNhbGxi
YWNrRGF0YS0+dXNlckRhdGEpOwogfQogCi12b2lkIGV3a19jb29raWVfbWFuYWdlcl9hc3luY19h
Y2NlcHRfcG9saWN5X2dldChjb25zdCBFd2tfQ29va2llX01hbmFnZXIqIG1hbmFnZXIsIEV3a19D
b29raWVfTWFuYWdlcl9Bc3luY19Qb2xpY3lfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiBkYXRhKQor
dm9pZCBld2tfY29va2llX21hbmFnZXJfYWNjZXB0X3BvbGljeV9hc3luY19nZXQoY29uc3QgRXdr
X0Nvb2tpZV9NYW5hZ2VyKiBtYW5hZ2VyLCBFd2tfQ29va2llX01hbmFnZXJfUG9saWN5X0FzeW5j
X0dldF9DYiBjYWxsYmFjaywgdm9pZCogZGF0YSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihtYW5hZ2VyKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihjYWxsYmFj
ayk7CiAKLSAgICBHZXRfUG9saWN5X0FzeW5jX0RhdGEqIGNhbGxiYWNrRGF0YSA9IG5ldyBHZXRf
UG9saWN5X0FzeW5jX0RhdGEoY2FsbGJhY2ssIGRhdGEpOworICAgIEV3a0Nvb2tpZVBvbGljeUFz
eW5jRGF0YSogY2FsbGJhY2tEYXRhID0gbmV3IEV3a0Nvb2tpZVBvbGljeUFzeW5jRGF0YShjYWxs
YmFjaywgZGF0YSk7CiAgICAgbWFuYWdlci0+Z2V0SFRUUEFjY2VwdFBvbGljeShnZXRBY2NlcHRQ
b2xpY3lDYWxsYmFjaywgY2FsbGJhY2tEYXRhKTsKIH0KIAotc3RydWN0IEdldF9Ib3N0bmFtZXNf
QXN5bmNfRGF0YSB7Ci0gICAgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX0hvc3RuYW1lc19HZXRf
Q2IgY2FsbGJhY2s7CitzdHJ1Y3QgRXdrQ29va2llSG9zdG5hbWVzQXN5bmNEYXRhIHsKKyAgICBF
d2tfQ29va2llX01hbmFnZXJfSG9zdG5hbWVzX0FzeW5jX0dldF9DYiBjYWxsYmFjazsKICAgICB2
b2lkKiB1c2VyRGF0YTsKIAotICAgIEdldF9Ib3N0bmFtZXNfQXN5bmNfRGF0YShFd2tfQ29va2ll
X01hbmFnZXJfQXN5bmNfSG9zdG5hbWVzX0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEp
CisgICAgRXdrQ29va2llSG9zdG5hbWVzQXN5bmNEYXRhKEV3a19Db29raWVfTWFuYWdlcl9Ib3N0
bmFtZXNfQXN5bmNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgOiBj
YWxsYmFjayhjYWxsYmFjaykKICAgICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKICAgICB7IH0K
QEAgLTIwNSw3ICsyMDUsNyBAQCBzdHJ1Y3QgR2V0X0hvc3RuYW1lc19Bc3luY19EYXRhIHsKIHN0
YXRpYyB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzQ2FsbGJhY2soV0tBcnJheVJlZiB3a0hv
c3RuYW1lcywgV0tFcnJvclJlZiB3a0Vycm9yLCB2b2lkKiBjb250ZXh0KQogewogICAgIEVpbmFf
TGlzdCogaG9zdG5hbWVzID0gMDsKLSAgICBhdXRvIGNhbGxiYWNrRGF0YSA9IHN0ZDo6dW5pcXVl
X3B0cjxHZXRfSG9zdG5hbWVzX0FzeW5jX0RhdGE+KHN0YXRpY19jYXN0PEdldF9Ib3N0bmFtZXNf
QXN5bmNfRGF0YSo+KGNvbnRleHQpKTsKKyAgICBhdXRvIGNhbGxiYWNrRGF0YSA9IHN0ZDo6dW5p
cXVlX3B0cjxFd2tDb29raWVIb3N0bmFtZXNBc3luY0RhdGE+KHN0YXRpY19jYXN0PEV3a0Nvb2tp
ZUhvc3RuYW1lc0FzeW5jRGF0YSo+KGNvbnRleHQpKTsKICAgICBPd25QdHI8RXdrRXJyb3I+IGV3
a0Vycm9yID0gRXdrRXJyb3I6OmNyZWF0ZSh3a0Vycm9yKTsKIAogICAgIGNvbnN0IHNpemVfdCBo
b3N0bmFtZUNvdW50ID0gV0tBcnJheUdldFNpemUod2tIb3N0bmFtZXMpOwpAQCAtMjIzLDEyICsy
MjMsMTIgQEAgc3RhdGljIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNDYWxsYmFjayhXS0Fy
cmF5UmVmIHdrSG9zdG5hbWVzLCBXS0Vycm9yUmVmIHcKICAgICAgIGVpbmFfc3RyaW5nc2hhcmVf
ZGVsKHN0YXRpY19jYXN0PEVpbmFfU3RyaW5nc2hhcmUqPihpdGVtKSk7CiB9CiAKLXZvaWQgZXdr
X2Nvb2tpZV9tYW5hZ2VyX2FzeW5jX2hvc3RuYW1lc193aXRoX2Nvb2tpZXNfZ2V0KGNvbnN0IEV3
a19Db29raWVfTWFuYWdlciogbWFuYWdlciwgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX0hvc3Ru
YW1lc19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIGRhdGEpCit2b2lkIGV3a19jb29raWVfbWFuYWdl
cl9ob3N0bmFtZXNfd2l0aF9jb29raWVzX2FzeW5jX2dldChjb25zdCBFd2tfQ29va2llX01hbmFn
ZXIqIG1hbmFnZXIsIEV3a19Db29raWVfTWFuYWdlcl9Ib3N0bmFtZXNfQXN5bmNfR2V0X0NiIGNh
bGxiYWNrLCB2b2lkKiBkYXRhKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG1h
bmFnZXIpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGNhbGxiYWNrKTsKIAotICAg
IEdldF9Ib3N0bmFtZXNfQXN5bmNfRGF0YSogY2FsbGJhY2tEYXRhID0gbmV3IEdldF9Ib3N0bmFt
ZXNfQXN5bmNfRGF0YShjYWxsYmFjaywgZGF0YSk7CisgICAgRXdrQ29va2llSG9zdG5hbWVzQXN5
bmNEYXRhKiBjYWxsYmFja0RhdGEgPSBuZXcgRXdrQ29va2llSG9zdG5hbWVzQXN5bmNEYXRhKGNh
bGxiYWNrLCBkYXRhKTsKICAgICBtYW5hZ2VyLT5nZXRIb3N0TmFtZXNXaXRoQ29va2llcyhnZXRI
b3N0bmFtZXNXaXRoQ29va2llc0NhbGxiYWNrLCBjYWxsYmFja0RhdGEpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5o
CmluZGV4IDUyNTdiNzViNzA0ODM1ZWMwOTI3MTVjMmVlN2EzMDlhNTM1NThiYzMuLmUxMWM2ZDY1
Y2I4MDFlOWU1YjlkMmFlYzgwNWU5OTFjMDg0NDE2NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5oCkBAIC03NCwyMCAr
NzQsMjAgQEAgZW51bSBFd2tfQ29va2llX1BlcnNpc3RlbnRfU3RvcmFnZSB7CiB0eXBlZGVmIGVu
dW0gRXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2UgRXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0
b3JhZ2U7CiAKIC8qKgotICogQHR5cGVkZWYgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX1BvbGlj
eV9HZXRfQ2IgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX1BvbGljeV9HZXRfQ2IKLSAqIEBicmll
ZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tfY29va2llX21hbmFnZXJfYXN5bmNfYWNj
ZXB0X3BvbGljeV9nZXQKKyAqIEB0eXBlZGVmIEV3a19Db29raWVfTWFuYWdlcl9Qb2xpY3lfQXN5
bmNfR2V0X0NiIEV3a19Db29raWVfTWFuYWdlcl9Qb2xpY3lfQXN5bmNfR2V0X0NiCisgKiBAYnJp
ZWYgQ2FsbGJhY2sgdHlwZSBmb3IgdXNlIHdpdGggZXdrX2Nvb2tpZV9tYW5hZ2VyX2FjY2VwdF9w
b2xpY3lfYXN5bmNfZ2V0CiAgKi8KLXR5cGVkZWYgdm9pZCAoKkV3a19Db29raWVfTWFuYWdlcl9B
c3luY19Qb2xpY3lfR2V0X0NiKShFd2tfQ29va2llX0FjY2VwdF9Qb2xpY3kgcG9saWN5LCBFd2tf
RXJyb3IgKmVycm9yLCB2b2lkICpldmVudF9pbmZvKTsKK3R5cGVkZWYgdm9pZCAoKkV3a19Db29r
aWVfTWFuYWdlcl9Qb2xpY3lfQXN5bmNfR2V0X0NiKShFd2tfQ29va2llX0FjY2VwdF9Qb2xpY3kg
cG9saWN5LCBFd2tfRXJyb3IgKmVycm9yLCB2b2lkICpldmVudF9pbmZvKTsKIAogLyoqCi0gKiBA
dHlwZWRlZiBFd2tfQ29va2llX01hbmFnZXJfQXN5bmNfSG9zdG5hbWVzX0dldF9DYiBFd2tfQ29v
a2llX01hbmFnZXJfQXN5bmNfSG9zdG5hbWVzX0dldF9DYgotICogQGJyaWVmIENhbGxiYWNrIHR5
cGUgZm9yIHVzZSB3aXRoIGV3a19jb29raWVfbWFuYWdlcl9hc3luY19ob3N0bmFtZXNfd2l0aF9j
b29raWVzX2dldAorICogQHR5cGVkZWYgRXdrX0Nvb2tpZV9NYW5hZ2VyX0hvc3RuYW1lc19Bc3lu
Y19HZXRfQ2IgRXdrX0Nvb2tpZV9NYW5hZ2VyX0hvc3RuYW1lc19Bc3luY19HZXRfQ2IKKyAqIEBi
cmllZiBDYWxsYmFjayB0eXBlIGZvciB1c2Ugd2l0aCBld2tfY29va2llX21hbmFnZXJfaG9zdG5h
bWVzX3dpdGhfY29va2llc19hc3luY19nZXQKICAqCiAgKiBAbm90ZSBUaGUgQGEgaG9zdG5hbWVz
IGxpc3QgaXRlbXMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZS4gV2hlbmV2
ZXIgcG9zc2libGUKICAqIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UgZWlu
YV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkKICAq
IG9yIHN0cmR1cCgpLgogICovCi10eXBlZGVmIHZvaWQgKCpFd2tfQ29va2llX01hbmFnZXJfQXN5
bmNfSG9zdG5hbWVzX0dldF9DYikoRWluYV9MaXN0ICpob3N0bmFtZXMsIEV3a19FcnJvciAqZXJy
b3IsIHZvaWQgKmV2ZW50X2luZm8pOwordHlwZWRlZiB2b2lkICgqRXdrX0Nvb2tpZV9NYW5hZ2Vy
X0hvc3RuYW1lc19Bc3luY19HZXRfQ2IpKEVpbmFfTGlzdCAqaG9zdG5hbWVzLCBFd2tfRXJyb3Ig
KmVycm9yLCB2b2lkICpldmVudF9pbmZvKTsKIAogLyoqCiAgKiBAdHlwZWRlZiBFd2tfQ29va2ll
X01hbmFnZXJfQ2hhbmdlc19XYXRjaF9DYiBFd2tfQ29va2llX01hbmFnZXJfQ2hhbmdlc19XYXRj
aF9DYgpAQCAtMTMwLDcgKzEzMCw3IEBAIEVBUEkgdm9pZCBld2tfY29va2llX21hbmFnZXJfYWNj
ZXB0X3BvbGljeV9zZXQoRXdrX0Nvb2tpZV9NYW5hZ2VyICptYW5hZ2VyLCBFd2tfCiAgKiBAcGFy
YW0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgcG9saWN5IGlzIHJlY2Vp
dmVkIG9yIGFuIGVycm9yIG9jY3VyZWQuCiAgKiBAcGFyYW0gZGF0YSBVc2VyIGRhdGEgKG1heSBi
ZSBAYyBOVUxMKS4KICAqLwotRUFQSSB2b2lkIGV3a19jb29raWVfbWFuYWdlcl9hc3luY19hY2Nl
cHRfcG9saWN5X2dldChjb25zdCBFd2tfQ29va2llX01hbmFnZXIgKm1hbmFnZXIsIEV3a19Db29r
aWVfTWFuYWdlcl9Bc3luY19Qb2xpY3lfR2V0X0NiIGNhbGxiYWNrLCB2b2lkICpkYXRhKTsKK0VB
UEkgdm9pZCBld2tfY29va2llX21hbmFnZXJfYWNjZXB0X3BvbGljeV9hc3luY19nZXQoY29uc3Qg
RXdrX0Nvb2tpZV9NYW5hZ2VyICptYW5hZ2VyLCBFd2tfQ29va2llX01hbmFnZXJfUG9saWN5X0Fz
eW5jX0dldF9DYiBjYWxsYmFjaywgdm9pZCAqZGF0YSk7CiAKIC8qKgogICogQXN5bmNocm9ub3Vz
bHkgZ2V0IHRoZSBsaXN0IG9mIGhvc3QgbmFtZXMgZm9yIHdoaWNoIEBhIG1hbmFnZXIgY29udGFp
bnMgY29va2llcy4KQEAgLTEzOSw3ICsxMzksNyBAQCBFQVBJIHZvaWQgZXdrX2Nvb2tpZV9tYW5h
Z2VyX2FzeW5jX2FjY2VwdF9wb2xpY3lfZ2V0KGNvbnN0IEV3a19Db29raWVfTWFuYWdlciAqbQog
ICogQHBhcmFtIGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIGhvc3QgbmFt
ZXMgaGF2ZSBiZWVuIHJlY2VpdmVkLgogICogQHBhcmFtIGRhdGEgVXNlciBkYXRhIChtYXkgYmUg
QGMgTlVMTCkuCiAgKi8KLUVBUEkgdm9pZCBld2tfY29va2llX21hbmFnZXJfYXN5bmNfaG9zdG5h
bWVzX3dpdGhfY29va2llc19nZXQoY29uc3QgRXdrX0Nvb2tpZV9NYW5hZ2VyICptYW5hZ2VyLCBF
d2tfQ29va2llX01hbmFnZXJfQXN5bmNfSG9zdG5hbWVzX0dldF9DYiBjYWxsYmFjaywgdm9pZCAq
ZGF0YSk7CitFQVBJIHZvaWQgZXdrX2Nvb2tpZV9tYW5hZ2VyX2hvc3RuYW1lc193aXRoX2Nvb2tp
ZXNfYXN5bmNfZ2V0KGNvbnN0IEV3a19Db29raWVfTWFuYWdlciAqbWFuYWdlciwgRXdrX0Nvb2tp
ZV9NYW5hZ2VyX0hvc3RuYW1lc19Bc3luY19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQgKmRhdGEpOwog
CiAvKioKICAqIFJlbW92ZSBhbGwgY29va2llcyBvZiBAYSBtYW5hZ2VyIGZvciB0aGUgZ2l2ZW4g
QGEgaG9zdG5hbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfZGF0YWJhc2VfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5jcHAKaW5kZXggOTI5M2RlMWNkOThjYjE2NGM1YmM4
MzliYjBiNDgxMDAwOGE5ZmM3Zi4uNjA1ZTE2MTczZDkxYTJhMmM3YzgwMTliOWMxYTU0ZjJmNzg5
MzQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rh
dGFiYXNlX21hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcApAQCAtNjMsMTIgKzYzLDEyIEBAIEVpbmFfTGlzdCog
RXdrRGF0YWJhc2VNYW5hZ2VyOjpjcmVhdGVPcmlnaW5MaXN0KFdLQXJyYXlSZWYgb3JpZ2lucykg
Y29uc3QKICAgICByZXR1cm4gb3JpZ2luTGlzdDsKIH0KIAotc3RydWN0IEV3a19EYXRhYmFzZV9P
cmlnaW5zX0FzeW5jX0dldF9Db250ZXh0IHsKK3N0cnVjdCBFd2tEYXRhYmFzZU9yaWdpbnNBc3lu
Y0RhdGEgewogICAgIGNvbnN0IEV3a19EYXRhYmFzZV9NYW5hZ2VyKiBtYW5hZ2VyOwotICAgIEV3
a19EYXRhYmFzZV9PcmlnaW5zX0dldF9DYiBjYWxsYmFjazsKKyAgICBFd2tfRGF0YWJhc2VfT3Jp
Z2luc19Bc3luY19HZXRfQ2IgY2FsbGJhY2s7CiAgICAgdm9pZCogdXNlckRhdGE7CiAKLSAgICBF
d2tfRGF0YWJhc2VfT3JpZ2luc19Bc3luY19HZXRfQ29udGV4dChjb25zdCBFd2tfRGF0YWJhc2Vf
TWFuYWdlciogbWFuYWdlciwgRXdrX0RhdGFiYXNlX09yaWdpbnNfR2V0X0NiIGNhbGxiYWNrLCB2
b2lkKiB1c2VyRGF0YSkKKyAgICBFd2tEYXRhYmFzZU9yaWdpbnNBc3luY0RhdGEoY29uc3QgRXdr
X0RhdGFiYXNlX01hbmFnZXIqIG1hbmFnZXIsIEV3a19EYXRhYmFzZV9PcmlnaW5zX0FzeW5jX0dl
dF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiAgICAgICAgIDogbWFuYWdlcihtYW5hZ2Vy
KQogICAgICAgICAsIGNhbGxiYWNrKGNhbGxiYWNrKQogICAgICAgICAsIHVzZXJEYXRhKHVzZXJE
YXRhKQpAQCAtNzcsMTggKzc3LDE4IEBAIHN0cnVjdCBFd2tfRGF0YWJhc2VfT3JpZ2luc19Bc3lu
Y19HZXRfQ29udGV4dCB7CiAKIHN0YXRpYyB2b2lkIGdldERhdGFiYXNlT3JpZ2luc0NhbGxiYWNr
KFdLQXJyYXlSZWYgb3JpZ2lucywgV0tFcnJvclJlZiB3a0Vycm9yLCB2b2lkKiBjb250ZXh0KQog
ewotICAgIE93blB0cjxFd2tfRGF0YWJhc2VfT3JpZ2luc19Bc3luY19HZXRfQ29udGV4dD4gd2Vi
RGF0YWJhc2VDb250ZXh0ID0gYWRvcHRQdHIoc3RhdGljX2Nhc3Q8RXdrX0RhdGFiYXNlX09yaWdp
bnNfQXN5bmNfR2V0X0NvbnRleHQqPihjb250ZXh0KSk7CisgICAgT3duUHRyPEV3a0RhdGFiYXNl
T3JpZ2luc0FzeW5jRGF0YT4gd2ViRGF0YWJhc2VDb250ZXh0ID0gYWRvcHRQdHIoc3RhdGljX2Nh
c3Q8RXdrRGF0YWJhc2VPcmlnaW5zQXN5bmNEYXRhKj4oY29udGV4dCkpOwogICAgIEVpbmFfTGlz
dCogb3JpZ2luTGlzdCA9IHdlYkRhdGFiYXNlQ29udGV4dC0+bWFuYWdlci0+Y3JlYXRlT3JpZ2lu
TGlzdChvcmlnaW5zKTsKICAgICBPd25QdHI8RXdrRXJyb3I+IGV3a0Vycm9yID0gRXdrRXJyb3I6
OmNyZWF0ZSh3a0Vycm9yKTsKICAgICB3ZWJEYXRhYmFzZUNvbnRleHQtPmNhbGxiYWNrKG9yaWdp
bkxpc3QsIGV3a0Vycm9yLmdldCgpLCB3ZWJEYXRhYmFzZUNvbnRleHQtPnVzZXJEYXRhKTsKIH0K
IAotRWluYV9Cb29sIGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KGNvbnN0IEV3a19E
YXRhYmFzZV9NYW5hZ2VyKiBld2tEYXRhYmFzZU1hbmFnZXIsIEV3a19EYXRhYmFzZV9PcmlnaW5z
X0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCitFaW5hX0Jvb2wgZXdrX2RhdGFiYXNl
X21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQoY29uc3QgRXdrX0RhdGFiYXNlX01hbmFnZXIqIGV3
a0RhdGFiYXNlTWFuYWdlciwgRXdrX0RhdGFiYXNlX09yaWdpbnNfQXN5bmNfR2V0X0NiIGNhbGxi
YWNrLCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoZXdrRGF0YWJhc2VNYW5hZ2VyLCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKGNhbGxiYWNrLCBmYWxzZSk7CiAKLSAgICBFd2tfRGF0YWJhc2VfT3JpZ2luc19B
c3luY19HZXRfQ29udGV4dCogY29udGV4dCA9IG5ldyBFd2tfRGF0YWJhc2VfT3JpZ2luc19Bc3lu
Y19HZXRfQ29udGV4dChld2tEYXRhYmFzZU1hbmFnZXIsIGNhbGxiYWNrLCB1c2VyRGF0YSk7Cisg
ICAgRXdrRGF0YWJhc2VPcmlnaW5zQXN5bmNEYXRhKiBjb250ZXh0ID0gbmV3IEV3a0RhdGFiYXNl
T3JpZ2luc0FzeW5jRGF0YShld2tEYXRhYmFzZU1hbmFnZXIsIGNhbGxiYWNrLCB1c2VyRGF0YSk7
CiAgICAgZXdrRGF0YWJhc2VNYW5hZ2VyLT5nZXREYXRhYmFzZU9yaWdpbnMoZ2V0RGF0YWJhc2VP
cmlnaW5zQ2FsbGJhY2ssIGNvbnRleHQpOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXIu
aAppbmRleCA2MTBhNzM2ZWI4ZDE0OTlmZGRhNGI3Njc5ZTc0OGRiN2YzODA0OTA5Li4xMTcyMzFl
OGM5ZjdhYmFmMDEwNzMxNjZhODAzOWQzYzNhMmY0OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmgKQEAgLTQ0
LDE0ICs0NCwxNCBAQCBleHRlcm4gIkMiIHsKIHR5cGVkZWYgc3RydWN0IEV3a0RhdGFiYXNlTWFu
YWdlciBFd2tfRGF0YWJhc2VfTWFuYWdlcjsKIAogLyoqCi0gKiBAdHlwZWRlZiBFd2tfRGF0YWJh
c2VfT3JpZ2luc19HZXRfQ2IgRXdrX0RhdGFiYXNlX09yaWdpbnNfR2V0X0NiCi0gKiBAYnJpZWYg
Q2FsbGJhY2sgdHlwZSBmb3IgdXNlIHdpdGggZXdrX2RhdGFiYXNlX21hbmFnZXJfb3JpZ2luc19n
ZXQoKQorICogQHR5cGVkZWYgRXdrX0RhdGFiYXNlX09yaWdpbnNfQXN5bmNfR2V0X0NiIEV3a19E
YXRhYmFzZV9PcmlnaW5zX0FzeW5jX0dldF9DYgorICogQGJyaWVmIENhbGxiYWNrIHR5cGUgZm9y
IHVzZSB3aXRoIGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KCkKICAqCiAg
KiBAcGFyYW0gb3JpZ2lucyBAYyBFaW5hX0xpc3QgY29udGFpbmluZyBAYyBFd2tfU2VjdXJpdHlf
T3JpZ2luIGVsZW1lbnRzIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBlcnJvciwKICAqICAgICAgICAg
ICAgICAgICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNob3VsZCBiZSBmcmVl
ZCBhZnRlciB1c2UuIFVzZSBld2tfb2JqZWN0X3VucmVmKCkKICAqICAgICAgICAgICAgICAgICAg
ICAgICAgdG8gZnJlZSB0aGUgaXRlbXMKICAqLwotdHlwZWRlZiB2b2lkICgqRXdrX0RhdGFiYXNl
X09yaWdpbnNfR2V0X0NiKShFaW5hX0xpc3QgKm9yaWdpbnMsIEV3a19FcnJvciAqZXJyb3IsIHZv
aWQgKnVzZXJfZGF0YSk7Cit0eXBlZGVmIHZvaWQgKCpFd2tfRGF0YWJhc2VfT3JpZ2luc19Bc3lu
Y19HZXRfQ2IpKEVpbmFfTGlzdCAqb3JpZ2lucywgRXdrX0Vycm9yICplcnJvciwgdm9pZCAqdXNl
cl9kYXRhKTsKIAogLyoqCiAgKiBHZXRzIGxpc3Qgb2Ygb3JpZ2lucyB1c2luZyB3ZWIgZGF0YWJh
c2UgYXN5bmNocm9ub3VzbHkuCkBAIC02NSw3ICs2NSw3IEBAIHR5cGVkZWYgdm9pZCAoKkV3a19E
YXRhYmFzZV9PcmlnaW5zX0dldF9DYikoRWluYV9MaXN0ICpvcmlnaW5zLCBFd2tfRXJyb3IgKmVy
cm9yCiAgKgogICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxT
RSBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgRWluYV9Cb29sIGV3a19kYXRhYmFzZV9tYW5hZ2VyX29y
aWdpbnNfZ2V0KGNvbnN0IEV3a19EYXRhYmFzZV9NYW5hZ2VyICptYW5hZ2VyLCBFd2tfRGF0YWJh
c2VfT3JpZ2luc19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQgKnVzZXJfZGF0YSk7CitFQVBJIEVpbmFf
Qm9vbCBld2tfZGF0YWJhc2VfbWFuYWdlcl9vcmlnaW5zX2FzeW5jX2dldChjb25zdCBFd2tfRGF0
YWJhc2VfTWFuYWdlciAqbWFuYWdlciwgRXdrX0RhdGFiYXNlX09yaWdpbnNfQXN5bmNfR2V0X0Ni
IGNhbGxiYWNrLCB2b2lkICp1c2VyX2RhdGEpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2Vf
bWFuYWdlci5jcHAKaW5kZXggMzNmNGZkMmFiOGM0YjQ2MzVjZTQ3ZmRiZjA2OGNjYWY4YzU5YzY0
Ny4uZTI5NjFiYTVlNmUyNTk1NzQwZjllNWVjZjU4NmMxMDMzMGVhYmRhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdl
ci5jcHAKQEAgLTYzLDEyICs2MywxMiBAQCBFaW5hX0xpc3QqIEV3a1N0b3JhZ2VNYW5hZ2VyOjpj
cmVhdGVPcmlnaW5MaXN0KFdLQXJyYXlSZWYgb3JpZ2lucykgY29uc3QKICAgICByZXR1cm4gb3Jp
Z2luTGlzdDsKIH0KIAotc3RydWN0IEV3a19TdG9yYWdlX09yaWdpbnNfQXN5bmNfR2V0X0NvbnRl
eHQgeworc3RydWN0IEV3a1N0b3JhZ2VPcmlnaW5zQXN5bmNEYXRhIHsKICAgICBjb25zdCBFd2tf
U3RvcmFnZV9NYW5hZ2VyKiBtYW5hZ2VyOwotICAgIEV3a19TdG9yYWdlX09yaWdpbnNfR2V0X0Ni
IGNhbGxiYWNrOworICAgIEV3a19TdG9yYWdlX09yaWdpbnNfQXN5bmNfR2V0X0NiIGNhbGxiYWNr
OwogICAgIHZvaWQqIHVzZXJEYXRhOwogCi0gICAgRXdrX1N0b3JhZ2VfT3JpZ2luc19Bc3luY19H
ZXRfQ29udGV4dChjb25zdCBFd2tfU3RvcmFnZV9NYW5hZ2VyKiBtYW5hZ2VyLCBFd2tfU3RvcmFn
ZV9PcmlnaW5zX0dldF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCisgICAgRXdrU3RvcmFn
ZU9yaWdpbnNBc3luY0RhdGEoY29uc3QgRXdrX1N0b3JhZ2VfTWFuYWdlciogbWFuYWdlciwgRXdr
X1N0b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKQog
ICAgICAgICA6IG1hbmFnZXIobWFuYWdlcikKICAgICAgICAgLCBjYWxsYmFjayhjYWxsYmFjaykK
ICAgICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKQEAgLTc4LDcgKzc4LDcgQEAgc3RydWN0IEV3
a19TdG9yYWdlX09yaWdpbnNfQXN5bmNfR2V0X0NvbnRleHQgewogc3RhdGljIHZvaWQgZ2V0U3Rv
cmFnZU9yaWdpbnNDYWxsYmFjayhXS0FycmF5UmVmIG9yaWdpbnMsIFdLRXJyb3JSZWYgd2tFcnJv
ciwgdm9pZCogY29udGV4dCkKIHsKICAgICBFaW5hX0xpc3QqIG9yaWdpbkxpc3QgPSAwOwotICAg
IGF1dG8gd2ViU3RvcmFnZUNvbnRleHQgPSBzdGQ6OnVuaXF1ZV9wdHI8RXdrX1N0b3JhZ2VfT3Jp
Z2luc19Bc3luY19HZXRfQ29udGV4dD4oc3RhdGljX2Nhc3Q8RXdrX1N0b3JhZ2VfT3JpZ2luc19B
c3luY19HZXRfQ29udGV4dCo+KGNvbnRleHQpKTsKKyAgICBhdXRvIHdlYlN0b3JhZ2VDb250ZXh0
ID0gc3RkOjp1bmlxdWVfcHRyPEV3a1N0b3JhZ2VPcmlnaW5zQXN5bmNEYXRhPihzdGF0aWNfY2Fz
dDxFd2tTdG9yYWdlT3JpZ2luc0FzeW5jRGF0YSo+KGNvbnRleHQpKTsKIAogICAgIG9yaWdpbkxp
c3QgPSB3ZWJTdG9yYWdlQ29udGV4dC0+bWFuYWdlci0+Y3JlYXRlT3JpZ2luTGlzdChvcmlnaW5z
KTsKIApAQCAtODYsMTIgKzg2LDEyIEBAIHN0YXRpYyB2b2lkIGdldFN0b3JhZ2VPcmlnaW5zQ2Fs
bGJhY2soV0tBcnJheVJlZiBvcmlnaW5zLCBXS0Vycm9yUmVmIHdrRXJyb3IsIHZvCiAgICAgd2Vi
U3RvcmFnZUNvbnRleHQtPmNhbGxiYWNrKG9yaWdpbkxpc3QsIGV3a0Vycm9yLmdldCgpLCB3ZWJT
dG9yYWdlQ29udGV4dC0+dXNlckRhdGEpOwogfQogCi1FaW5hX0Jvb2wgZXdrX3N0b3JhZ2VfbWFu
YWdlcl9vcmlnaW5zX2dldChjb25zdCBFd2tfU3RvcmFnZV9NYW5hZ2VyKiBld2tTdG9yYWdlTWFu
YWdlciwgRXdrX1N0b3JhZ2VfT3JpZ2luc19HZXRfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRh
KQorRWluYV9Cb29sIGV3a19zdG9yYWdlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQoY29uc3Qg
RXdrX1N0b3JhZ2VfTWFuYWdlciogZXdrU3RvcmFnZU1hbmFnZXIsIEV3a19TdG9yYWdlX09yaWdp
bnNfQXN5bmNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrU3RvcmFnZU1hbmFnZXIsIGZhbHNlKTsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FsbGJhY2ssIGZhbHNlKTsKIAotICAgIEV3
a19TdG9yYWdlX09yaWdpbnNfQXN5bmNfR2V0X0NvbnRleHQqIGNvbnRleHQgPSBuZXcgRXdrX1N0
b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ29udGV4dChld2tTdG9yYWdlTWFuYWdlciwgY2FsbGJh
Y2ssIHVzZXJEYXRhKTsKKyAgICBFd2tTdG9yYWdlT3JpZ2luc0FzeW5jRGF0YSogY29udGV4dCA9
IG5ldyBFd2tTdG9yYWdlT3JpZ2luc0FzeW5jRGF0YShld2tTdG9yYWdlTWFuYWdlciwgY2FsbGJh
Y2ssIHVzZXJEYXRhKTsKICAgICBld2tTdG9yYWdlTWFuYWdlci0+Z2V0U3RvcmFnZU9yaWdpbnMo
Y29udGV4dCwgZ2V0U3RvcmFnZU9yaWdpbnNDYWxsYmFjayk7CiAKICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdl
X21hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdl
X21hbmFnZXIuaAppbmRleCA0ZjVjOGZiMzA4OTJmZjc5ZGY2MzlhNmFiYzU0ZDJlODI5M2NjODhi
Li4xM2MyNTlkMmNmYjZmN2NmYmM3ZTZhODQzYTA0ZDc1NDVkYmU0ODI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5o
CkBAIC00NCwxNCArNDQsMTQgQEAgZXh0ZXJuICJDIiB7CiB0eXBlZGVmIHN0cnVjdCBFd2tTdG9y
YWdlTWFuYWdlciBFd2tfU3RvcmFnZV9NYW5hZ2VyOwogCiAvKioKLSAqIEB0eXBlZGVmIEV3a19T
dG9yYWdlX09yaWdpbnNfR2V0X0NiIEV3a19TdG9yYWdlX09yaWdpbnNfR2V0X0NiCi0gKiBAYnJp
ZWYgQ2FsbGJhY2sgdHlwZSBmb3IgdXNlIHdpdGggZXdrX3N0b3JhZ2VfbWFuYWdlcl9vcmlnaW5z
X2dldCgpLgorICogQHR5cGVkZWYgRXdrX1N0b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ2IgRXdr
X1N0b3JhZ2VfT3JpZ2luc19Bc3luY19HZXRfQ2IKKyAqIEBicmllZiBDYWxsYmFjayB0eXBlIGZv
ciB1c2Ugd2l0aCBld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KCkuCiAgKgog
ICogQHBhcmFtIG9yaWdpbnMgQGMgRWluYV9MaXN0IGNvbnRhaW5pbmcgQGMgRXdrX1NlY3VyaXR5
X09yaWdpbiBlbGVtZW50cyBvciBAYyBOVUxMIGluIGNhc2Ugb2YgZXJyb3IsCiAgKiAgICAgICAg
ICAgICAgICAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJl
ZWQgYWZ0ZXIgdXNlLiBVc2UgZXdrX29iamVjdF91bnJlZigpCiAgKiAgICAgICAgICAgICAgICAg
ICAgICAgIHRvIGZyZWUgdGhlIGl0ZW1zCiAgKi8KLXR5cGVkZWYgdm9pZCAoKkV3a19TdG9yYWdl
X09yaWdpbnNfR2V0X0NiKShFaW5hX0xpc3QgKm9yaWdpbnMsIEV3a19FcnJvciAqZXJyb3IsIHZv
aWQgKnVzZXJfZGF0YSk7Cit0eXBlZGVmIHZvaWQgKCpFd2tfU3RvcmFnZV9PcmlnaW5zX0FzeW5j
X0dldF9DYikoRWluYV9MaXN0ICpvcmlnaW5zLCBFd2tfRXJyb3IgKmVycm9yLCB2b2lkICp1c2Vy
X2RhdGEpOwogCiAvKioKICAqIEdldHMgbGlzdCBvZiBvcmlnaW5zIHRoYXQgYXJlIHN0b3JlZCBp
biBzdG9yYWdlIGRiIGFzeW5jaHJvbm91c2x5LgpAQCAtNjUsNyArNjUsNyBAQCB0eXBlZGVmIHZv
aWQgKCpFd2tfU3RvcmFnZV9PcmlnaW5zX0dldF9DYikoRWluYV9MaXN0ICpvcmlnaW5zLCBFd2tf
RXJyb3IgKmVycm9yLAogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MsIEBj
IEVJTkFfRkFMU0Ugb24gZmFpbHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCBld2tfc3RvcmFnZV9t
YW5hZ2VyX29yaWdpbnNfZ2V0KGNvbnN0IEV3a19TdG9yYWdlX01hbmFnZXIgKm1hbmFnZXIsIEV3
a19TdG9yYWdlX09yaWdpbnNfR2V0X0NiIGNhbGxiYWNrLCB2b2lkICp1c2VyX2RhdGEpOworRUFQ
SSBFaW5hX0Jvb2wgZXdrX3N0b3JhZ2VfbWFuYWdlcl9vcmlnaW5zX2FzeW5jX2dldChjb25zdCBF
d2tfU3RvcmFnZV9NYW5hZ2VyICptYW5hZ2VyLCBFd2tfU3RvcmFnZV9PcmlnaW5zX0FzeW5jX0dl
dF9DYiBjYWxsYmFjaywgdm9pZCAqdXNlcl9kYXRhKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0
X2V3azJfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfYXBwbGljYXRpb25fY2FjaGVfbWFuYWdlci5j
cHAKaW5kZXggMmVmZmJmNjVkYWY2NGM0NDExYzQ2N2E4ZmVkNTk0Nzk4NTgyM2ViNS4uY2RjMTI2
YjIwN2I0YmFlZTAzMTI0Y2I1MTA1Mzc5MDE3ZWU3OTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2FwcGxpY2F0aW9uX2NhY2hl
X21hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl9hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyLmNwcApAQCAtOTEsNyArOTEsNyBA
QCBzdGF0aWMgdm9pZCBnZXRPcmlnaW5zQ2FsbGJhY2soRWluYV9MaXN0KiBvcmlnaW5zLCB2b2lk
KiBldmVudF9pbmZvKQogc3RhdGljIEVpbmFfQm9vbCB0aW1lckNhbGxiYWNrKHZvaWQqIHVzZXJE
YXRhKQogewogICAgIE9yaWdpbnNEYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8T3JpZ2luc0RhdGEq
Pih1c2VyRGF0YSk7Ci0gICAgZXdrX2FwcGxpY2F0aW9uX2NhY2hlX21hbmFnZXJfb3JpZ2luc19n
ZXQoZGF0YS0+bWFuYWdlciwgZ2V0T3JpZ2luc0NhbGxiYWNrLCAmZGF0YS0+aXRlbXMpOworICAg
IGV3a19hcHBsaWNhdGlvbl9jYWNoZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KGRhdGEtPm1h
bmFnZXIsIGdldE9yaWdpbnNDYWxsYmFjaywgJmRhdGEtPml0ZW1zKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVz
dHMvdGVzdF9ld2syX2Nvb2tpZV9tYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb29raWVfbWFuYWdlci5jcHAKaW5kZXggMDZjNzgx
NTY0MzAxMDQxMTA1YzIxMjZlYzY0N2M1YWI1MjcwNzhkMS4uMTI1Y2YyMmM4Yzc5MTU3OGM4ZWVk
YjlmNThmN2FiNDliYzYzNTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nvb2tpZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29va2llX21hbmFnZXIu
Y3BwCkBAIC05OCw3ICs5OCw3IEBAIHByb3RlY3RlZDoKICAgICBFd2tfQ29va2llX0FjY2VwdF9Q
b2xpY3kgZ2V0QWNjZXB0UG9saWN5KEV3a19Db29raWVfTWFuYWdlciogbWFuYWdlcikKICAgICB7
CiAgICAgICAgIEV3a19Db29raWVfQWNjZXB0X1BvbGljeSBwb2xpY3kgPSBFV0tfQ09PS0lFX0FD
Q0VQVF9QT0xJQ1lfQUxXQVlTOwotICAgICAgICBld2tfY29va2llX21hbmFnZXJfYXN5bmNfYWNj
ZXB0X3BvbGljeV9nZXQobWFuYWdlciwgZ2V0QWNjZXB0UG9saWN5Q2FsbGJhY2ssICZwb2xpY3kp
OworICAgICAgICBld2tfY29va2llX21hbmFnZXJfYWNjZXB0X3BvbGljeV9hc3luY19nZXQobWFu
YWdlciwgZ2V0QWNjZXB0UG9saWN5Q2FsbGJhY2ssICZwb2xpY3kpOwogICAgICAgICBlY29yZV9t
YWluX2xvb3BfYmVnaW4oKTsKICAgICAgICAgcmV0dXJuIHBvbGljeTsKICAgICB9CkBAIC0xMDYs
NyArMTA2LDcgQEAgcHJvdGVjdGVkOgogICAgIEVpbmFfTGlzdCogZ2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoRXdrX0Nvb2tpZV9NYW5hZ2VyKiBtYW5hZ2VyKQogICAgIHsKICAgICAgICAgRWluYV9M
aXN0KiByZXQgPSAwOwotICAgICAgICBld2tfY29va2llX21hbmFnZXJfYXN5bmNfaG9zdG5hbWVz
X3dpdGhfY29va2llc19nZXQobWFuYWdlciwgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNDYWxsYmFj
aywgJnJldCk7CisgICAgICAgIGV3a19jb29raWVfbWFuYWdlcl9ob3N0bmFtZXNfd2l0aF9jb29r
aWVzX2FzeW5jX2dldChtYW5hZ2VyLCBnZXRIb3N0bmFtZXNXaXRoQ29va2llc0NhbGxiYWNrLCAm
cmV0KTsKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7CiAgICAgICAgIHJldHVybiBy
ZXQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
dGVzdHMvdGVzdF9ld2syX2RhdGFiYXNlX21hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2RhdGFiYXNlX21hbmFnZXIuY3BwCmluZGV4
IDUxM2Q3YjNjMzAyMGEyNWU2ZDg4NGQxNzlmYWQ0YzljYTA1NzcwOTAuLjg1NzUwZWZiOTE3N2Zi
ODllMDVkOGNhOWE4NTEyMWQ2NTgyMjIzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9kYXRhYmFzZV9tYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfZGF0YWJh
c2VfbWFuYWdlci5jcHAKQEAgLTc5LDE0ICs3OSwxNCBAQCBwdWJsaWM6CiAKICAgICAgICAgaWYg
KG9yaWdpbkRhdGEtPmRpZFJlY2VpdmVPcmlnaW5zQ2FsbGJhY2spIHsKICAgICAgICAgICAgIG9y
aWdpbkRhdGEtPmRpZFJlY2VpdmVPcmlnaW5zQ2FsbGJhY2sgPSBmYWxzZTsKLSAgICAgICAgICAg
IGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KG9yaWdpbkRhdGEtPm1hbmFnZXIsIGRh
dGFiYXNlT3JpZ2luc0NhbGxiYWNrLCBvcmlnaW5EYXRhKTsKKyAgICAgICAgICAgIGV3a19kYXRh
YmFzZV9tYW5hZ2VyX29yaWdpbnNfYXN5bmNfZ2V0KG9yaWdpbkRhdGEtPm1hbmFnZXIsIGRhdGFi
YXNlT3JpZ2luc0NhbGxiYWNrLCBvcmlnaW5EYXRhKTsKICAgICAgICAgfQogCiAgICAgICAgIHJl
dHVybiBFQ09SRV9DQUxMQkFDS19SRU5FVzsKICAgICB9CiB9OwogCi1URVNUX0YoRVdLMkRhdGFi
YXNlTWFuYWdlclRlc3QsIGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KQorVEVTVF9G
KEVXSzJEYXRhYmFzZU1hbmFnZXJUZXN0LCBld2tfZGF0YWJhc2VfbWFuYWdlcl9vcmlnaW5zX2Fz
eW5jX2dldCkKIHsKICAgICBFdmFzX09iamVjdCogdmlldyA9IHdlYlZpZXcoKTsKICAgICBjb25z
dCBjaGFyKiBkYXRhYmFzZUhUTUwgPQpAQCAtMTAyLDcgKzEwMiw3IEBAIFRFU1RfRihFV0syRGF0
YWJhc2VNYW5hZ2VyVGVzdCwgZXdrX2RhdGFiYXNlX21hbmFnZXJfb3JpZ2luc19nZXQpCiAKICAg
ICBPcmlnaW5EYXRhIG9yaWdpbkRhdGE7CiAgICAgb3JpZ2luRGF0YS5tYW5hZ2VyID0gZXdrX2Nv
bnRleHRfZGF0YWJhc2VfbWFuYWdlcl9nZXQoZXdrX3ZpZXdfY29udGV4dF9nZXQodmlldykpOwot
ICAgIEFTU0VSVF9UUlVFKGV3a19kYXRhYmFzZV9tYW5hZ2VyX29yaWdpbnNfZ2V0KG9yaWdpbkRh
dGEubWFuYWdlciwgZGF0YWJhc2VPcmlnaW5zQ2FsbGJhY2ssICZvcmlnaW5EYXRhKSk7CisgICAg
QVNTRVJUX1RSVUUoZXdrX2RhdGFiYXNlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQob3JpZ2lu
RGF0YS5tYW5hZ2VyLCBkYXRhYmFzZU9yaWdpbnNDYWxsYmFjaywgJm9yaWdpbkRhdGEpKTsKICAg
ICBFY29yZV9UaW1lciogZGF0YWJhc2VfdGltZXIgPSBlY29yZV90aW1lcl9hZGQoMSwgdGltZXJD
YWxsYmFjaywgJm9yaWdpbkRhdGEpOwogCiAgICAgZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3
azJfc3RvcmFnZV9tYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21hbmFnZXIuY3BwCmluZGV4IDBjNmQzMzZlMGQ1NmEz
ZDY4NjEwMTY2NjhjNjUzZWFkYjY2NWVjODYuLmVhYTkwZTRlNDM5ODg5OTMwNGY1ZTI3MDM1ZmI5
ZTg2MjRlMzZmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9zdG9yYWdlX21hbmFnZXIuY3BwCkBA
IC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKIAogICAgICAgICBpZiAob3JpZ2luRGF0YS0+ZGlkUmVj
ZWl2ZU9yaWdpbnNDYWxsYmFjaykgewogICAgICAgICAgICAgb3JpZ2luRGF0YS0+ZGlkUmVjZWl2
ZU9yaWdpbnNDYWxsYmFjayA9IGZhbHNlOwotICAgICAgICAgICAgZXdrX3N0b3JhZ2VfbWFuYWdl
cl9vcmlnaW5zX2dldChvcmlnaW5EYXRhLT5tYW5hZ2VyLCBnZXRTdG9yYWdlT3JpZ2luc0NhbGxi
YWNrLCBvcmlnaW5EYXRhKTsKKyAgICAgICAgICAgIGV3a19zdG9yYWdlX21hbmFnZXJfb3JpZ2lu
c19hc3luY19nZXQob3JpZ2luRGF0YS0+bWFuYWdlciwgZ2V0U3RvcmFnZU9yaWdpbnNDYWxsYmFj
aywgb3JpZ2luRGF0YSk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gRUNPUkVfQ0FMTEJB
Q0tfUkVORVc7CkBAIC0xMDIsNyArMTAyLDcgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLVRF
U1RfRihFV0syU3RvcmFnZU1hbmFnZXJUZXN0LCBld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNf
Z2V0KQorVEVTVF9GKEVXSzJTdG9yYWdlTWFuYWdlclRlc3QsIGV3a19zdG9yYWdlX21hbmFnZXJf
b3JpZ2luc19hc3luY19nZXQpCiB7CiAgICAgRXZhc19PYmplY3QqIHZpZXcgPSB3ZWJWaWV3KCk7
CiAgICAgY29uc3QgY2hhciogc3RvcmFnZUhUTUwgPQpAQCAtMTE3LDcgKzExNyw3IEBAIFRFU1Rf
RihFV0syU3RvcmFnZU1hbmFnZXJUZXN0LCBld2tfc3RvcmFnZV9tYW5hZ2VyX29yaWdpbnNfZ2V0
KQogCiAgICAgT3JpZ2luRGF0YSBvcmlnaW5EYXRhOwogICAgIG9yaWdpbkRhdGEubWFuYWdlciA9
IGV3a19jb250ZXh0X3N0b3JhZ2VfbWFuYWdlcl9nZXQoZXdrX3ZpZXdfY29udGV4dF9nZXQodmll
dykpOwotICAgIEFTU0VSVF9UUlVFKGV3a19zdG9yYWdlX21hbmFnZXJfb3JpZ2luc19nZXQob3Jp
Z2luRGF0YS5tYW5hZ2VyLCBnZXRTdG9yYWdlT3JpZ2luc0NhbGxiYWNrLCAmb3JpZ2luRGF0YSkp
OworICAgIEFTU0VSVF9UUlVFKGV3a19zdG9yYWdlX21hbmFnZXJfb3JpZ2luc19hc3luY19nZXQo
b3JpZ2luRGF0YS5tYW5hZ2VyLCBnZXRTdG9yYWdlT3JpZ2luc0NhbGxiYWNrLCAmb3JpZ2luRGF0
YSkpOwogICAgIEVjb3JlX1RpbWVyKiBzdG9yYWdlX3RpbWVyID0gZWNvcmVfdGltZXJfYWRkKDEs
IHJlaW50ZXJwcmV0X2Nhc3Q8RWNvcmVfVGFza19DYj4odGltZXJDYWxsYmFjayksICZvcmlnaW5E
YXRhKTsKIAogICAgIGVjb3JlX21haW5fbG9vcF9iZWdpbigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>