<?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>237572</bug_id>
          
          <creation_ts>2022-03-07 18:21:06 -0800</creation_ts>
          <short_desc>[libpas] Report more actionable crash in pas_enumerator</short_desc>
          <delta_ts>2022-03-11 16:00:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1849058</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-07 18:21:06 -0800</bug_when>
    <thetext>[libpas] Report more actionable crash in pas_enumerator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849066</commentid>
    <comment_count>1</comment_count>
      <attachid>454060</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-07 18:34:50 -0800</bug_when>
    <thetext>Created attachment 454060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849067</commentid>
    <comment_count>2</comment_count>
      <attachid>454060</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-03-07 18:52:20 -0800</bug_when>
    <thetext>Comment on attachment 454060
Patch

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

&gt; Source/bmalloc/libpas/src/libpas/pas_utils.c:60
&gt; +    pas_panic(&quot;%s:%d: %s: assertion %s failed.\n&quot;, filename, line, function, expression);

It looks like pas_panic will trample on the incoming args:
```
void pas_panic(const char* format, ...)
{
    static const bool fast_panic = false;
    if (!fast_panic) {
       ... 
        pas_vlog(format, arg_list);
    }
    __builtin_trap();
}
```

Can you also change pas_panic to not call __builtin_trap() directly, but call a NEVER_INLINE pas_trap(const char* filename, int line, const char* function, const char* expression) (similar to WTFCrashWithInfoImpl()).  This way we can at least see the line number in crash logs as well.  I think this will be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849096</commentid>
    <comment_count>3</comment_count>
      <attachid>454060</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-03-07 20:54:05 -0800</bug_when>
    <thetext>Comment on attachment 454060
Patch

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

&gt;&gt; Source/bmalloc/libpas/src/libpas/pas_utils.c:60
&gt;&gt; +    pas_panic(&quot;%s:%d: %s: assertion %s failed.\n&quot;, filename, line, function, expression);
&gt; 
&gt; It looks like pas_panic will trample on the incoming args:
&gt; ```
&gt; void pas_panic(const char* format, ...)
&gt; {
&gt;     static const bool fast_panic = false;
&gt;     if (!fast_panic) {
&gt;        ... 
&gt;         pas_vlog(format, arg_list);
&gt;     }
&gt;     __builtin_trap();
&gt; }
&gt; ```
&gt; 
&gt; Can you also change pas_panic to not call __builtin_trap() directly, but call a NEVER_INLINE pas_trap(const char* filename, int line, const char* function, const char* expression) (similar to WTFCrashWithInfoImpl()).  This way we can at least see the line number in crash logs as well.  I think this will be useful.

Never mind.  Yusuke reminded me offline that the caller of pas_assertion_failed_no_inline will be on the stack trace in the crash log.  So, the needed information is captured after all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849377</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-08 12:49:42 -0800</bug_when>
    <thetext>Committed r291007 (248183@main): &lt;https://commits.webkit.org/248183@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454060.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849378</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-08 12:50:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89984164&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850640</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-11 16:00:22 -0800</bug_when>
    <thetext>Committed r291199 (248354@trunk): &lt;https://commits.webkit.org/248354@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454060</attachid>
            <date>2022-03-07 18:34:50 -0800</date>
            <delta_ts>2022-03-08 12:49:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237572-20220307183449.patch</filename>
            <type>text/plain</type>
            <size>35778</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYzM5MzJmZTcyYjNjMTJl
YWVmOWRiY2U5YWU1MTJhZGI5MzU0MzI2Yy4uYzE5ZWNmZGRhZTE4NmI2NTkwOWY3OGQ3YWNjOWQ5
N2FkZWJjZGJkYSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDIyLTAzLTA3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gUmVwb3J0
IG1vcmUgYWN0aW9uYWJsZSBjcmFzaCBpbiBwYXNfZW51bWVyYXRvcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTcyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gQWRkcyBQQVNfQVNTRVJUX1dJVEhf
REVUQUlMLCB3aGljaCBjYW4gcmVwb3J0IG1vcmUgZGV0YWlsZWQgY3Jhc2ggaW5mb3JtYXRpb24g
dGhhbiBQQVNfQVNTRVJUCisgICAgICAgICAgIHdoaWxlIGl0IGlzIG5vdCBlZmZpY2llbnQgYXMg
bXVjaCBhcyBQQVNfQVNTRVJULiBXZSB1c2UgaXQgb25seSBpbiBwYXNfZW51bWVyYXRvciByZWxh
dGVkIGNvZGUKKyAgICAgICAgICAgdG8gcmVwb3J0IG1vcmUgYWN0aW9uYWJsZSBjcmFzaCBmcm9t
IHRoZXNlIGNvZGUuIEl0IGlzIE9LIHNpbmNlIHBhc19lbnVtZXJhdG9yIGlzIG5vdCB1c2VkIHVz
dWFsbHksCisgICAgICAgICAgIHdoaWNoIHdpbGwgYmUgdXNlZCBvbmx5IHdoZW4gdm1tYXAgaXMg
YXR0YWNoZWQuCisgICAgICAgIDIuIEV4dHJhY3QgZW51bWVyYXRlX2xhcmdlX21hcCwgZW51bWVy
YXRlX3NtYWxsX2xhcmdlX21hcCwgYW5kIGVudW1lcmF0ZV90aW55X2xhcmdlX21hcCB0byByZXBv
cnQKKyAgICAgICAgICAgd2hpY2ggcGFydCBvZiB0aGVzZSBmdW5jdGlvbnMgY2FuIGNyYXNoIChp
biB2ZXJ5IHJhcmUgY2FzZSkuCisgICAgICAgIDMuIEVuc3VyZSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2NyZWF0ZSdzIHRocmVhZF9sb2NhbF9jYWNoZSBpcyBleHBvc2VkIGFmdGVyIHNldHRpbmcg
dXAgYWxsIHRoZSBkYXRhLgorCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1l
cmFibGVfcmFuZ2VfbGlzdC5jOgorICAgICAgICAocGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9h
cHBlbmQpOgorICAgICAgICAocGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9pdGVyYXRlKToKKyAg
ICAgICAgKHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfaXRlcmF0ZV9yZW1vdGUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmM6CisgICAg
ICAgICh2aWV3X2NhbGxiYWNrKToKKyAgICAgICAgKGVudW1lcmF0ZV9iaXRmaXRfaGVhcF9jYWxs
YmFjayk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9pbml0aWFs
bHlfdW5hY2NvdW50ZWRfcGFnZXMuYzoKKyAgICAgICAgKHJhbmdlX2xpc3RfaXRlcmF0ZV9hZGRf
dW5hY2NvdW50ZWRfY2FsbGJhY2spOgorICAgICAgICAocmFuZ2VfbGlzdF9pdGVyYXRlX2V4Y2x1
ZGVfYWNjb3VudGVkX2NhbGxiYWNrKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZW51bWVyYXRlX2xhcmdlX2hlYXBzLmM6CisgICAgICAgIChyYW5nZV9saXN0X2l0ZXJhdGVfYWRk
X2xhcmdlX3BheWxvYWRfY2FsbGJhY2spOgorICAgICAgICAocmVjb3JkX3NwYW4pOgorICAgICAg
ICAobGFyZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9jYWxsYmFjayk6CisgICAgICAgIChzbWFsbF9s
YXJnZV9tYXBfaGFzaHRhYmxlX2VudHJ5X2NhbGxiYWNrKToKKyAgICAgICAgKHRpbnlfbGFyZ2Vf
bWFwX2hhc2h0YWJsZV9lbnRyeV9jYWxsYmFjayk6CisgICAgICAgIChlbnVtZXJhdGVfbGFyZ2Vf
bWFwKToKKyAgICAgICAgKGVudW1lcmF0ZV9zbWFsbF9sYXJnZV9tYXApOgorICAgICAgICAoZW51
bWVyYXRlX3RpbnlfbGFyZ2VfbWFwKToKKyAgICAgICAgKHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVh
cHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRl
ZF9oZWFwcy5jOgorICAgICAgICAobG9jYWxfYWxsb2NhdG9yX21hcF9lbnRyeV9pc19lbXB0eV9v
cl9kZWxldGVkKToKKyAgICAgICAgKGxvY2FsX2FsbG9jYXRvcl9tYXBfZW50cnlfaXNfZW1wdHkp
OgorICAgICAgICAobG9jYWxfYWxsb2NhdG9yX21hcF9lbnRyeV9pc19kZWxldGVkKToKKyAgICAg
ICAgKGNvbGxlY3Rfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXNfaGVhcF9jYWxsYmFjayk6CisgICAg
ICAgIChlbnVtZXJhdGVfZXhjbHVzaXZlX3ZpZXcpOgorICAgICAgICAoZW51bWVyYXRlX3NoYXJl
ZF92aWV3KToKKyAgICAgICAgKGVudW1lcmF0ZV9wYXJ0aWFsX3ZpZXcpOgorICAgICAgICAoc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5X3ZpZXdfY2FsbGJhY2spOgorICAgICAgICAoc2l6ZV9kaXJlY3Rv
cnlfdmlld19jYWxsYmFjayk6CisgICAgICAgIChjb25zaWRlcl9hbGxvY2F0b3IpOgorICAgICAg
ICAocGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuYzoKKyAgICAg
ICAgKHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YSk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0b3IuYzoKKyAgICAgICAgKHBhc19lbnVtZXJh
dG9yX2NyZWF0ZSk6CisgICAgICAgIChwYXNfZW51bWVyYXRvcl9yZWFkX2NvbXBhY3QpOgorICAg
ICAgICAocGFzX2VudW1lcmF0b3JfcmVhZCk6CisgICAgICAgIChwYXNfZW51bWVyYXRvcl9hZGRf
dW5hY2NvdW50ZWRfcGFnZXMpOgorICAgICAgICAocGFzX2VudW1lcmF0b3JfZXhjbHVkZV9hY2Nv
dW50ZWRfcGFnZSk6CisgICAgICAgIChwYXNfZW51bWVyYXRvcl9leGNsdWRlX2FjY291bnRlZF9w
YWdlcyk6CisgICAgICAgIChwYXNfZW51bWVyYXRvcl9yZWNvcmQpOgorICAgICAgICAocGFzX2Vu
dW1lcmF0b3JfcmVjb3JkX3BhZ2VfcGF5bG9hZF9hbmRfbWV0YSk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2VudW1lcmF0b3IuaDoKKyAgICAgICAgKHBhc19lbnVtZXJhdG9yX3Jl
Y29yZF9raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19l
bnVtZXJhdG9yX3JlZ2lvbi5jOgorICAgICAgICAocGFzX2VudW1lcmF0b3JfcmVnaW9uX2FsbG9j
YXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
LmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2NyZWF0ZSk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmM6CisgICAgICAgIChwYXNfYXNzZXJ0aW9uX2Zh
aWxlZF9ub19pbmxpbmUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5o
OgorICAgICAgICAocGFzX3plcm9fbWVtb3J5KToKKwogMjAyMi0wMy0wMSAgQmFzdWtlIFN1enVr
aSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW2xpYnBhc10gQWRkIG1pc3Np
bmcgUGxheVN0YXRpb24gaW1wbGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmMgYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmMKaW5k
ZXggZmFjMTNmOWZkMzc5Y2E0YjAyNTNhYjVmZDAwYzcxMWI0N2YxZGQ5OC4uYzNhNWQ5NjMzNmVh
NTdlMWZhMWVhN2FjNzdjNTg1OWFlNTgxNzQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdC5jCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuYwpA
QCAtNDcsNyArNDcsNyBAQCB2b2lkIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfYXBwZW5kKHBh
c19lbnVtZXJhYmxlX3JhbmdlX2xpc3QqIGxpc3QsCiAgICAgaWYgKCFjaHVuayB8fCBjaHVuay0+
bnVtX2VudHJpZXMgPj0gUEFTX0VOVU1FUkFCTEVfUkFOR0VfTElTVF9DSFVOS19TSVpFKSB7CiAg
ICAgICAgIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfY2h1bmsqIG5ld19jaHVuazsKICAgICAg
ICAgCi0gICAgICAgIFBBU19BU1NFUlQoIWNodW5rIHx8IGNodW5rLT5udW1fZW50cmllcyA9PSBQ
QVNfRU5VTUVSQUJMRV9SQU5HRV9MSVNUX0NIVU5LX1NJWkUpOworICAgICAgICBQQVNfQVNTRVJU
X1dJVEhfREVUQUlMKCFjaHVuayB8fCBjaHVuay0+bnVtX2VudHJpZXMgPT0gUEFTX0VOVU1FUkFC
TEVfUkFOR0VfTElTVF9DSFVOS19TSVpFKTsKIAogICAgICAgICBuZXdfY2h1bmsgPSBwYXNfaW1t
b3J0YWxfaGVhcF9hbGxvY2F0ZShzaXplb2YocGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVu
ayksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXNf
ZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5rIiwKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBwYXNf
ZW51bWVyYWJsZV9yYW5nZV9saXN0X2FwcGVuZChwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0KiBs
aXN0LAogICAgICAgICBjaHVuayA9IG5ld19jaHVuazsKICAgICB9CiAKLSAgICBQQVNfQVNTRVJU
KGNodW5rLT5udW1fZW50cmllcyA8IFBBU19FTlVNRVJBQkxFX1JBTkdFX0xJU1RfQ0hVTktfU0la
RSk7CisgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTChjaHVuay0+bnVtX2VudHJpZXMgPCBQQVNf
RU5VTUVSQUJMRV9SQU5HRV9MSVNUX0NIVU5LX1NJWkUpOwogCiAgICAgY2h1bmstPmVudHJpZXNb
Y2h1bmstPm51bV9lbnRyaWVzXSA9IHJhbmdlOwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwpA
QCAtNzgsNyArNzgsNyBAQCBib29sIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfaXRlcmF0ZSgK
ICAgICAgICAgIGNodW5rID0gcGFzX2NvbXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFuZ2VfbGlz
dF9jaHVua19wdHJfbG9hZCgmY2h1bmstPm5leHQpKSB7CiAgICAgICAgIHNpemVfdCBpbmRleDsK
IAotICAgICAgICBQQVNfQVNTRVJUKGNodW5rLT5udW1fZW50cmllcyA8PSBQQVNfRU5VTUVSQUJM
RV9SQU5HRV9MSVNUX0NIVU5LX1NJWkUpOworICAgICAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlM
KGNodW5rLT5udW1fZW50cmllcyA8PSBQQVNfRU5VTUVSQUJMRV9SQU5HRV9MSVNUX0NIVU5LX1NJ
WkUpOwogCiAgICAgICAgIGZvciAoaW5kZXggPSBjaHVuay0+bnVtX2VudHJpZXM7IGluZGV4LS07
KSB7CiAgICAgICAgICAgICBwYXNfcmFuZ2UgcmFuZ2U7CkBAIC0xMTMsNyArMTEzLDcgQEAgYm9v
bCBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2l0ZXJhdGVfcmVtb3RlKAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmY2h1bmstPm5leHQpKSB7CiAgICAgICAgIHNpemVfdCBpbmRleDsKIAotICAg
ICAgICBQQVNfQVNTRVJUKGNodW5rLT5udW1fZW50cmllcyA8PSBQQVNfRU5VTUVSQUJMRV9SQU5H
RV9MSVNUX0NIVU5LX1NJWkUpOworICAgICAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKGNodW5r
LT5udW1fZW50cmllcyA8PSBQQVNfRU5VTUVSQUJMRV9SQU5HRV9MSVNUX0NIVU5LX1NJWkUpOwog
CiAgICAgICAgIGZvciAoaW5kZXggPSBjaHVuay0+bnVtX2VudHJpZXM7IGluZGV4LS07KSB7CiAg
ICAgICAgICAgICBwYXNfcmFuZ2UgcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYwppbmRl
eCA5NGRhMWM1OWMyNWYxNzA3NzdiNzhhNmVkYzA2ZTkwNzdiN2IwM2Q5Li44Y2IyM2JhNDU1M2Qz
Y2ExNTg2NTBkNzYzZDFjOGYxNzYxMTIxNWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMK
QEAgLTc0LDExICs3NCwxMSBAQCBzdGF0aWMgYm9vbCB2aWV3X2NhbGxiYWNrKHBhc19lbnVtZXJh
dG9yKiBlbnVtZXJhdG9yLAogICAgIGlmICghdmlldy0+aXNfb3duZWQpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgUEFTX0FTU0VSVChwYWdlX2JvdW5kYXJ5KTsKKyAgICBQQVNfQVNTRVJU
X1dJVEhfREVUQUlMKHBhZ2VfYm91bmRhcnkpOwogCiAgICAgcGFnZSA9IChwYXNfYml0Zml0X3Bh
Z2UqKXBhZ2VfY29uZmlnLT5iYXNlLnBhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeV9yZW1vdGUoCiAg
ICAgICAgIGVudW1lcmF0b3IsICh2b2lkKilwYWdlX2JvdW5kYXJ5KTsKLSAgICBQQVNfQVNTRVJU
KHBhZ2UpOworICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwocGFnZSk7CiAKICAgICBwYWdlID0g
cGFzX2VudW1lcmF0b3JfcmVhZChlbnVtZXJhdG9yLCBwYWdlLCBwYXNfYml0Zml0X3BhZ2VfaGVh
ZGVyX3NpemUoKnBhZ2VfY29uZmlnKSk7CiAgICAgaWYgKCFwYWdlKQpAQCAtMTU5LDcgKzE1OSw3
IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9iaXRmaXRfaGVhcF9jYWxsYmFjayhwYXNfZW51bWVy
YXRvciogZW51bWVyYXRvciwKICAgICBwYXNfYml0Zml0X2hlYXAqIGJpdGZpdF9oZWFwOwogICAg
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudCB2YXJpYW50OwogICAgIAotICAgIFBBU19B
U1NFUlQoIWFyZyk7CisgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTCghYXJnKTsKIAogICAgIGJp
dGZpdF9oZWFwID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9oZWFwX3B0cl9sb2FkX3JlbW90
ZSgKICAgICAgICAgZW51bWVyYXRvciwgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcC5iaXRmaXRfaGVh
cCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51
bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5jIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMu
YwppbmRleCBlNjdlMTNiMDFhZGE4NWI1YTQxMGI0NzYzYTBmMDRhZTc3MWMwOTRkLi4zNDNiNDBm
NjJjOTUwMTI2MTBmYWIwNTg1NWNmNDg4ODRhYjYxZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRl
ZF9wYWdlcy5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVt
ZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMKQEAgLTM4LDcgKzM4LDcgQEAgc3Rh
dGljIGJvb2wgcmFuZ2VfbGlzdF9pdGVyYXRlX2FkZF91bmFjY291bnRlZF9jYWxsYmFjayhwYXNf
ZW51bWVyYXRvciogZW51bWVyYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3JhbmdlIHJhbmdlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCiB7Ci0gICAg
UEFTX0FTU0VSVCghYXJnKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKCFhcmcpOwogICAg
IHBhc19lbnVtZXJhdG9yX2FkZF91bmFjY291bnRlZF9wYWdlcyhlbnVtZXJhdG9yLCAodm9pZCop
cmFuZ2UuYmVnaW4sIHBhc19yYW5nZV9zaXplKHJhbmdlKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBib29sIHJhbmdlX2xpc3RfaXRlcmF0ZV9leGNsdWRl
X2FjY291bnRlZF9jYWxsYmFjayhwYXNfZW51bWVyYXRvciogZW51bWVyCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JhbmdlIHJh
bmdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZvaWQqIGFyZykKIHsKLSAgICBQQVNfQVNTRVJUKCFhcmcpOworICAgIFBBU19BU1NF
UlRfV0lUSF9ERVRBSUwoIWFyZyk7CiAgICAgcGFzX2VudW1lcmF0b3JfZXhjbHVkZV9hY2NvdW50
ZWRfcGFnZXMoZW51bWVyYXRvciwgKHZvaWQqKXJhbmdlLmJlZ2luLCBwYXNfcmFuZ2Vfc2l6ZShy
YW5nZSkpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jCmluZGV4
IGUxMzRlMjYwY2FiYmEyZDdlNGJmMGU3MjhhNzRjOTIwZmIwZTllMDEuLmM0ZmFlODZmZTVjNjk0
MGI2ZGFlMmU0ZTkyZmQ5Y2UyNDQ3NmM0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYworKysgYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMKQEAg
LTQyLDE0ICs0MiwxMyBAQCBzdGF0aWMgYm9vbCByYW5nZV9saXN0X2l0ZXJhdGVfYWRkX2xhcmdl
X3BheWxvYWRfY2FsbGJhY2socGFzX2VudW1lcmF0b3IqIGVudW1lcgogCiAgICAgcGF5bG9hZHMg
PSBhcmc7CiAKLSAgICBQQVNfQVNTRVJUKCFwYXNfcmFuZ2VfaXNfZW1wdHkocmFuZ2UpKTsKKyAg
ICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKCFwYXNfcmFuZ2VfaXNfZW1wdHkocmFuZ2UpKTsKIAog
ICAgIHBhc19yYW5nZV9iZWdpbl9taW5faGVhcF9hZGQocGF5bG9hZHMsIHJhbmdlLCAmZW51bWVy
YXRvci0+YWxsb2NhdGlvbl9jb25maWcpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
dm9pZCByZWNvcmRfc3BhbihwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19yYW5nZSByYW5nZSkKK3N0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHZv
aWQgcmVjb3JkX3NwYW4ocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsIHBhc19yYW5nZSByYW5n
ZSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgaWYgKHZl
cmJvc2UpCkBAIC02MSw3ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9zcGFuKHBhc19lbnVt
ZXJhdG9yKiBlbnVtZXJhdG9yLAogc3RhdGljIGJvb2wgbGFyZ2VfbWFwX2hhc2h0YWJsZV9lbnRy
eV9jYWxsYmFjaygKICAgICBwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwgcGFzX2xhcmdlX21h
cF9lbnRyeSogZW50cnksIHZvaWQqIGFyZykKIHsKLSAgICBQQVNfQVNTRVJUKCFhcmcpOworICAg
IFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoIWFyZyk7CiAgICAgCiAgICAgcGFzX2VudW1lcmF0b3Jf
cmVjb3JkKAogICAgICAgICBlbnVtZXJhdG9yLCAodm9pZCopZW50cnktPmJlZ2luLCBlbnRyeS0+
ZW5kIC0gZW50cnktPmJlZ2luLCBwYXNfZW51bWVyYXRvcl9vYmplY3RfcmVjb3JkKTsKQEAgLTc1
LDcgKzc0LDcgQEAgc3RhdGljIGJvb2wgc21hbGxfbGFyZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9j
YWxsYmFjaygKICAgICB1aW50cHRyX3QgYmVnaW47CiAgICAgdWludHB0cl90IGVuZDsKICAgICAK
LSAgICBQQVNfQVNTRVJUKCFhcmcpOworICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoIWFyZyk7
CiAKICAgICBiZWdpbiA9IHBhc19zbWFsbF9sYXJnZV9tYXBfZW50cnlfYmVnaW4oKmVudHJ5KTsK
ICAgICBlbmQgPSBwYXNfc21hbGxfbGFyZ2VfbWFwX2VudHJ5X2VuZCgqZW50cnkpOwpAQCAtMTA0
LDcgKzEwMyw3IEBAIHN0YXRpYyBib29sIHRpbnlfbGFyZ2VfbWFwX3NlY29uZF9sZXZlbF9oYXNo
dGFibGVfZW50cnlfY2FsbGJhY2soCiBzdGF0aWMgYm9vbCB0aW55X2xhcmdlX21hcF9oYXNodGFi
bGVfZW50cnlfY2FsbGJhY2soCiAgICAgcGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsIHBhc19m
aXJzdF9sZXZlbF90aW55X2xhcmdlX21hcF9lbnRyeSogZW50cnksIHZvaWQqIGFyZykKIHsKLSAg
ICBQQVNfQVNTRVJUKCFhcmcpOworICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoIWFyZyk7CiAg
ICAgCiAgICAgcmV0dXJuIHBhc190aW55X2xhcmdlX21hcF9zZWNvbmRfbGV2ZWxfaGFzaHRhYmxl
X2Zvcl9lYWNoX2VudHJ5X3JlbW90ZSgKICAgICAgICAgZW51bWVyYXRvciwgZW50cnktPmhhc2h0
YWJsZSwKQEAgLTExMiw2ICsxMTEsMzYgQEAgc3RhdGljIGJvb2wgdGlueV9sYXJnZV9tYXBfaGFz
aHRhYmxlX2VudHJ5X2NhbGxiYWNrKAogICAgICAgICB0aW55X2xhcmdlX21hcF9zZWNvbmRfbGV2
ZWxfaGFzaHRhYmxlX2VudHJ5X2NhbGxiYWNrLCAodm9pZCopZW50cnktPmJhc2UpOwogfQogCitz
dGF0aWMgUEFTX05FVkVSX0lOTElORSBib29sIGVudW1lcmF0ZV9sYXJnZV9tYXAocGFzX2VudW1l
cmF0b3IqIGVudW1lcmF0b3IpCit7CisgICAgcmV0dXJuIHBhc19sYXJnZV9tYXBfaGFzaHRhYmxl
X2Zvcl9lYWNoX2VudHJ5X3JlbW90ZSgKKyAgICAgICAgZW51bWVyYXRvciwKKyAgICAgICAgZW51
bWVyYXRvci0+cm9vdC0+bGFyZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZSwKKyAgICAgICAgZW51
bWVyYXRvci0+cm9vdC0+bGFyZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZV9pbl9mbHV4X3N0YXNo
LAorICAgICAgICBsYXJnZV9tYXBfaGFzaHRhYmxlX2VudHJ5X2NhbGxiYWNrLAorICAgICAgICBO
VUxMKTsKK30KKworc3RhdGljIFBBU19ORVZFUl9JTkxJTkUgYm9vbCBlbnVtZXJhdGVfc21hbGxf
bGFyZ2VfbWFwKHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yKQoreworICAgIHJldHVybiBwYXNf
c21hbGxfbGFyZ2VfbWFwX2hhc2h0YWJsZV9mb3JfZWFjaF9lbnRyeV9yZW1vdGUoCisgICAgICAg
IGVudW1lcmF0b3IsCisgICAgICAgIGVudW1lcmF0b3ItPnJvb3QtPnNtYWxsX2xhcmdlX21hcF9o
YXNodGFibGVfaW5zdGFuY2UsCisgICAgICAgIGVudW1lcmF0b3ItPnJvb3QtPnNtYWxsX2xhcmdl
X21hcF9oYXNodGFibGVfaW5zdGFuY2VfaW5fZmx1eF9zdGFzaCwKKyAgICAgICAgc21hbGxfbGFy
Z2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9jYWxsYmFjaywKKyAgICAgICAgTlVMTCk7Cit9CisKK3N0
YXRpYyBQQVNfTkVWRVJfSU5MSU5FIGJvb2wgZW51bWVyYXRlX3RpbnlfbGFyZ2VfbWFwKHBhc19l
bnVtZXJhdG9yKiBlbnVtZXJhdG9yKQoreworICAgIHJldHVybiBwYXNfdGlueV9sYXJnZV9tYXBf
aGFzaHRhYmxlX2Zvcl9lYWNoX2VudHJ5X3JlbW90ZSgKKyAgICAgICAgZW51bWVyYXRvciwKKyAg
ICAgICAgZW51bWVyYXRvci0+cm9vdC0+dGlueV9sYXJnZV9tYXBfaGFzaHRhYmxlX2luc3RhbmNl
LAorICAgICAgICBlbnVtZXJhdG9yLT5yb290LT50aW55X2xhcmdlX21hcF9oYXNodGFibGVfaW5z
dGFuY2VfaW5fZmx1eF9zdGFzaCwKKyAgICAgICAgdGlueV9sYXJnZV9tYXBfaGFzaHRhYmxlX2Vu
dHJ5X2NhbGxiYWNrLAorICAgICAgICBOVUxMKTsKK30KKwogYm9vbCBwYXNfZW51bWVyYXRlX2xh
cmdlX2hlYXBzKHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yKQogewogICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKQEAgLTEzNyw3ICsxNjYsNyBAQCBib29sIHBhc19lbnVt
ZXJhdGVfbGFyZ2VfaGVhcHMocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IpCiAgICAgICAgIHVp
bnRwdHJfdCBwYWdlOwogCiAgICAgICAgIGZvciAocGFnZSA9IHJhbmdlLmJlZ2luOyBwYWdlIDwg
cmFuZ2UuZW5kOyBwYWdlICs9IGVudW1lcmF0b3ItPnJvb3QtPnBhZ2VfbWFsbG9jX2FsaWdubWVu
dCkgewotICAgICAgICAgICAgUEFTX0FTU0VSVChwYWdlKTsKKyAgICAgICAgICAgIFBBU19BU1NF
UlRfV0lUSF9ERVRBSUwocGFnZSk7CiAKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgICAgIHBhc19sb2coIkxvb2tpbmcgYXQgcGFnZSAlcFxuIiwgKHZvaWQqKXBhZ2UpOwpA
QCAtMTU4LDI4ICsxODcsMTMgQEAgYm9vbCBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzKHBhc19l
bnVtZXJhdG9yKiBlbnVtZXJhdG9yKQogICAgIHJlY29yZF9zcGFuKGVudW1lcmF0b3IsIHNwYW4p
OwogCiAgICAgaWYgKGVudW1lcmF0b3ItPnJlY29yZF9vYmplY3QpIHsKLSAgICAgICAgaWYgKCFw
YXNfbGFyZ2VfbWFwX2hhc2h0YWJsZV9mb3JfZWFjaF9lbnRyeV9yZW1vdGUoCi0gICAgICAgICAg
ICAgICAgZW51bWVyYXRvciwKLSAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLT5yb290LT5sYXJn
ZV9tYXBfaGFzaHRhYmxlX2luc3RhbmNlLAotICAgICAgICAgICAgICAgIGVudW1lcmF0b3ItPnJv
b3QtPmxhcmdlX21hcF9oYXNodGFibGVfaW5zdGFuY2VfaW5fZmx1eF9zdGFzaCwKLSAgICAgICAg
ICAgICAgICBsYXJnZV9tYXBfaGFzaHRhYmxlX2VudHJ5X2NhbGxiYWNrLAotICAgICAgICAgICAg
ICAgIE5VTEwpKQorICAgICAgICBpZiAoIWVudW1lcmF0ZV9sYXJnZV9tYXAoZW51bWVyYXRvcikp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBpZiAoIXBhc19z
bWFsbF9sYXJnZV9tYXBfaGFzaHRhYmxlX2Zvcl9lYWNoX2VudHJ5X3JlbW90ZSgKLSAgICAgICAg
ICAgICAgICBlbnVtZXJhdG9yLAotICAgICAgICAgICAgICAgIGVudW1lcmF0b3ItPnJvb3QtPnNt
YWxsX2xhcmdlX21hcF9oYXNodGFibGVfaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgZW51bWVy
YXRvci0+cm9vdC0+c21hbGxfbGFyZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZV9pbl9mbHV4X3N0
YXNoLAotICAgICAgICAgICAgICAgIHNtYWxsX2xhcmdlX21hcF9oYXNodGFibGVfZW50cnlfY2Fs
bGJhY2ssCi0gICAgICAgICAgICAgICAgTlVMTCkpCisKKyAgICAgICAgaWYgKCFlbnVtZXJhdGVf
c21hbGxfbGFyZ2VfbWFwKGVudW1lcmF0b3IpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAKLSAgICAgICAgaWYgKCFwYXNfdGlueV9sYXJnZV9tYXBfaGFzaHRhYmxlX2Zvcl9l
YWNoX2VudHJ5X3JlbW90ZSgKLSAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLAotICAgICAgICAg
ICAgICAgIGVudW1lcmF0b3ItPnJvb3QtPnRpbnlfbGFyZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5j
ZSwKLSAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLT5yb290LT50aW55X2xhcmdlX21hcF9oYXNo
dGFibGVfaW5zdGFuY2VfaW5fZmx1eF9zdGFzaCwKLSAgICAgICAgICAgICAgICB0aW55X2xhcmdl
X21hcF9oYXNodGFibGVfZW50cnlfY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgTlVMTCkpCisK
KyAgICAgICAgaWYgKCFlbnVtZXJhdGVfdGlueV9sYXJnZV9tYXAoZW51bWVyYXRvcikpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYyBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9o
ZWFwcy5jCmluZGV4IDk5NDA3ZDBmZDRlMjc0NTY1MTdmYTNhYWFmMGRmYWNmZTY4NjgyNWYuLjRk
NzI2OWEyNzFhZWFiZTg4YjI0MjVjZjllMDg0NmNjMzFmZGJlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFw
cy5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVf
c2VncmVnYXRlZF9oZWFwcy5jCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBpbmxpbmUgbG9jYWxf
YWxsb2NhdG9yX21hcF9lbnRyeSBsb2NhbF9hbGxvY2F0b3JfbWFwX2VudHJ5X2NyZWF0ZV9kZWxl
dGVkCiBzdGF0aWMgaW5saW5lIGJvb2wgbG9jYWxfYWxsb2NhdG9yX21hcF9lbnRyeV9pc19lbXB0
eV9vcl9kZWxldGVkKGxvY2FsX2FsbG9jYXRvcl9tYXBfZW50cnkgZW50cnkpCiB7CiAgICAgaWYg
KGVudHJ5LnBhZ2VfYm91bmRhcnkgPD0gMSkgewotICAgICAgICBQQVNfQVNTRVJUKCFlbnRyeS5o
ZWFkKTsKKyAgICAgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTCghZW50cnkuaGVhZCk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC05NSw3ICs5NSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBsb2NhbF9hbGxvY2F0b3JfbWFwX2VudHJ5X2lzX2VtcHR5
X29yX2RlbGV0ZWQobG9jYWxfYWxsb2NhdG9yCiBzdGF0aWMgaW5saW5lIGJvb2wgbG9jYWxfYWxs
b2NhdG9yX21hcF9lbnRyeV9pc19lbXB0eShsb2NhbF9hbGxvY2F0b3JfbWFwX2VudHJ5IGVudHJ5
KQogewogICAgIGlmICghZW50cnkucGFnZV9ib3VuZGFyeSkgewotICAgICAgICBQQVNfQVNTRVJU
KCFlbnRyeS5oZWFkKTsKKyAgICAgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTCghZW50cnkuaGVh
ZCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC0x
MDQsNyArMTA0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGxvY2FsX2FsbG9jYXRvcl9tYXBfZW50
cnlfaXNfZW1wdHkobG9jYWxfYWxsb2NhdG9yX21hcF9lbnRyeQogc3RhdGljIGlubGluZSBib29s
IGxvY2FsX2FsbG9jYXRvcl9tYXBfZW50cnlfaXNfZGVsZXRlZChsb2NhbF9hbGxvY2F0b3JfbWFw
X2VudHJ5IGVudHJ5KQogewogICAgIGlmIChlbnRyeS5wYWdlX2JvdW5kYXJ5ID09IDEpIHsKLSAg
ICAgICAgUEFTX0FTU0VSVCghZW50cnkuaGVhZCk7CisgICAgICAgIFBBU19BU1NFUlRfV0lUSF9E
RVRBSUwoIWVudHJ5LmhlYWQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIHN0YXRpYyBib29sIGNvbGxlY3Rfc2hhcmVk
X3BhZ2VfZGlyZWN0b3JpZXNfaGVhcF9jYWxsYmFjaygKICAgICBjb250ZXh0ID0gYXJnOwogCiAg
ICAgY29uZmlnID0gcGFzX2hlYXBfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhoZWFwLT5jb25maWdf
a2luZCk7Ci0gICAgUEFTX0FTU0VSVChjb25maWcpOworICAgIFBBU19BU1NFUlRfV0lUSF9ERVRB
SUwoY29uZmlnKTsKIAogICAgIHJldHVybiBjb25maWctPmZvcl9lYWNoX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9yZW1vdGUoCiAgICAgICAgIGVudW1lcmF0b3IsICZoZWFwLT5zZWdyZWdhdGVkX2hl
YXAsCkBAIC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX2V4Y2x1c2l2ZV92
aWV3KHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLAogCiAgICAgcGFnZSA9IChwYXNfc2VncmVn
YXRlZF9wYWdlKilwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVt
b3RlKAogICAgICAgICBlbnVtZXJhdG9yLCAodm9pZCopcGFnZV9ib3VuZGFyeSk7Ci0gICAgUEFT
X0FTU0VSVChwYWdlKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKHBhZ2UpOwogCiAgICAg
cGFnZSA9IHBhc19lbnVtZXJhdG9yX3JlYWQoCiAgICAgICAgIGVudW1lcmF0b3IsIHBhZ2UsIHBh
c19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3NpemUoKnBhZ2VfY29uZmlnLCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2V4Y2x1c2l2ZV9yb2xlKSk7CkBAIC0zNTQsOSArMzU0LDkgQEAgc3RhdGljIGJvb2wg
ZW51bWVyYXRlX2V4Y2x1c2l2ZV92aWV3KHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLAogICAg
ICAgICBhbGxvY2F0b3IgPSBOVUxMOwogICAgIGVsc2UgewogICAgICAgICAvKiBFeGNsdXNpdmVz
IGNhbiBvbmx5IGhhdmUgb25lIGFsbG9jYXRvciBhbGxvY2F0aW5nIGluIHRoZW0gYXQgYSB0aW1l
LiAqLwotICAgICAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3Jfbm9kZS0+bmV4dCk7CisgICAgICAg
IFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoIWFsbG9jYXRvcl9ub2RlLT5uZXh0KTsKICAgICAgICAg
YWxsb2NhdG9yID0gYWxsb2NhdG9yX25vZGUtPmFsbG9jYXRvcjsKLSAgICAgICAgUEFTX0FTU0VS
VChhbGxvY2F0b3IpOworICAgICAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKGFsbG9jYXRvcik7
CiAgICAgfQogCiAgICAgaWYgKHZlcmJvc2UpCkBAIC00MDMsNyArNDAzLDcgQEAgc3RhdGljIGJv
b2wgZW51bWVyYXRlX3NoYXJlZF92aWV3KHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLAogICAg
ICAgICBpZiAodmlldy0+aXNfb3duZWQpIHsKICAgICAgICAgICAgIHBhZ2UgPSAocGFzX3NlZ3Jl
Z2F0ZWRfcGFnZSopcGFnZV9jb25maWctPmJhc2UucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3Jl
bW90ZSgKICAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLCAodm9pZCopcGFnZV9ib3VuZGFyeSk7
Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhZ2UpOworICAgICAgICAgICAgUEFTX0FTU0VSVF9X
SVRIX0RFVEFJTChwYWdlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcGFnZSA9IHBhc19l
bnVtZXJhdG9yX3JlYWQoCiAgICAgICAgICAgICAgICAgZW51bWVyYXRvciwgcGFnZSwKQEAgLTQx
Nyw3ICs0MTcsNyBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfc2hhcmVkX3ZpZXcocGFzX2VudW1l
cmF0b3IqIGVudW1lcmF0b3IsCiAgICAgfQogCiAgICAgaWYgKCFwYWdlX2JvdW5kYXJ5KSB7Ci0g
ICAgICAgIFBBU19BU1NFUlQoIXZpZXctPmlzX293bmVkKTsKKyAgICAgICAgUEFTX0FTU0VSVF9X
SVRIX0RFVEFJTCghdmlldy0+aXNfb3duZWQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKQEAgLTQzMSw3ICs0MzEsNyBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfc2hhcmVkX3ZpZXco
cGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCiAgICAgICAgIHVpbnRwdHJfdCBwYXlsb2FkX2Jl
Z2luOwogICAgICAgICB1aW50cHRyX3QgcGF5bG9hZF9lbmQ7CiAgICAgICAgIAotICAgICAgICBQ
QVNfQVNTRVJUKHBhZ2UpOworICAgICAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKHBhZ2UpOwog
ICAgICAgICAKICAgICAgICAgcGF5bG9hZF9iZWdpbiA9IHBhc19yb3VuZF91cF90b19wb3dlcl9v
Zl8yKHBhZ2VfY29uZmlnLT5zaGFyZWRfcGF5bG9hZF9vZmZzZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19taW5fYWxpZ24oKnBhZ2VfY29uZmlnKSk7CkBAIC00NzEsNyArNDcxLDcgQEAgc3RhdGlj
IGJvb2wgZW51bWVyYXRlX3BhcnRpYWxfdmlldyhwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwK
ICAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2Nv
bmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiAKICAgICBzaGFyZWRfdmll
dyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWRfcmVtb3RlKGVu
dW1lcmF0b3IsICZ2aWV3LT5zaGFyZWRfdmlldyk7Ci0gICAgUEFTX0FTU0VSVChzaGFyZWRfdmll
dyk7CisgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTChzaGFyZWRfdmlldyk7CiAgICAgaWYgKCFz
aGFyZWRfdmlldy0+aXNfb3duZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC00ODMsNyAr
NDgzLDcgQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX3BhcnRpYWxfdmlldyhwYXNfZW51bWVyYXRv
ciogZW51bWVyYXRvciwKIAogICAgIHBhZ2UgPSAocGFzX3NlZ3JlZ2F0ZWRfcGFnZSopcGFnZV9j
b25maWctPmJhc2UucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSgKICAgICAgICAgZW51
bWVyYXRvciwgKHZvaWQqKXBhZ2VfYm91bmRhcnkpOwotICAgIFBBU19BU1NFUlQocGFnZSk7Cisg
ICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTChwYWdlKTsKICAgICAKICAgICBwYWdlID0gcGFzX2Vu
dW1lcmF0b3JfcmVhZCgKICAgICAgICAgZW51bWVyYXRvciwgcGFnZSwgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9oZWFkZXJfc2l6ZSgqcGFnZV9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc2hhcmVk
X3JvbGUpKTsKQEAgLTU0MSw3ICs1NDEsNyBAQCBzdGF0aWMgYm9vbCBzaGFyZWRfcGFnZV9kaXJl
Y3Rvcnlfdmlld19jYWxsYmFjayhwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwKIAogICAgIGRh
dGEgPSBhcmc7CiAKLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQo
dmlldykgPT0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZCk7CisgICAgUEFTX0FTU0VS
VF9XSVRIX0RFVEFJTChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpID09IHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQpOwogCiAgICAgcmV0dXJuIGVudW1lcmF0ZV9zaGFy
ZWRfdmlldygKICAgICAgICAgZW51bWVyYXRvciwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRy
KHZpZXcpLCBkYXRhLT5kaXJlY3RvcnksIGRhdGEtPmNvbnRleHQpOwpAQCAtNTY2LDcgKzU2Niw3
IEBAIHN0YXRpYyBib29sIHNpemVfZGlyZWN0b3J5X3ZpZXdfY2FsbGJhY2socGFzX2VudW1lcmF0
b3IqIGVudW1lcmF0b3IsCiAgICAgZGVmYXVsdDoKICAgICAgICAgcGFzX2xvZygiSW52YWxpZCB2
aWV3IGtpbmQgaW4gc2l6ZSBkaXJlY3Rvcnk6ICVzXG4iLAogICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfc3RyaW5nKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tp
bmQodmlldykpKTsKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIp
OworICAgICAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVk
Iik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIH0KQEAgLTU5MCw5ICs1OTAsNyBAQCBz
dGF0aWMgYm9vbCBlbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwX2NhbGxiYWNrKHBhc19lbnVtZXJh
dG9yKiBlbnVtZXJhdG9yLAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBjb25z
aWRlcl9hbGxvY2F0b3IocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZW51bWVyYXRpb25fY29udGV4dCogY29udGV4dCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCitz
dGF0aWMgUEFTX05FVkVSX0lOTElORSB2b2lkIGNvbnNpZGVyX2FsbG9jYXRvcihwYXNfZW51bWVy
YXRvciogZW51bWVyYXRvciwgZW51bWVyYXRpb25fY29udGV4dCogY29udGV4dCwgcGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yKQogewogICAgIGxvY2FsX2FsbG9jYXRvcl9tYXBfYWRkX3Jl
c3VsdCBhZGRfcmVzdWx0OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2Nv
bmZpZzsKQEAgLTYwNSw3ICs2MDMsNyBAQCBzdGF0aWMgdm9pZCBjb25zaWRlcl9hbGxvY2F0b3Io
cGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBh
c19sb2coIkhhdmUgYWxsb2NhdG9yICVwIGluIHBhZ2VfaXNoID0gJXBcbiIsIGFsbG9jYXRvciwg
KHZvaWQqKWFsbG9jYXRvci0+cGFnZV9pc2gpOwogICAgIAotICAgIFBBU19BU1NFUlQoIXBhc19s
b2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfaXNfYml0Zml0KGFsbG9jYXRvci0+Y29uZmlnX2tp
bmQpKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2Nv
bmZpZ19raW5kX2lzX2JpdGZpdChhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSk7CiAgICAgCiAgICAg
cGFnZV9jb25maWcgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWco
CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZChhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSk7CkBAIC03MzIsNyArNzMw
LDcgQEAgYm9vbCBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMocGFzX2VudW1lcmF0b3Iq
IGVudW1lcmF0b3IpCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRf
bG9jYWxfdmlld19jYWNoZV9ub2RlKGxheW91dF9ub2RlKSk7CisgICAgICAgICAgICAgICAgICAg
IFBBU19BU1NFUlRfV0lUSF9ERVRBSUwocGFzX2lzX3dyYXBwZWRfbG9jYWxfdmlld19jYWNoZV9u
b2RlKGxheW91dF9ub2RlKSk7CiAKICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFz
X3Vud3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUobGF5b3V0X25vZGUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3VuYWNjb3Vu
dGVkX3BhZ2VzX2FzX21ldGEuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5jCmluZGV4IDkwNzVmZGQxZmZh
MTgxZmEyYmNiZGE4ZWRhMWQ0YTBhMDRlZDIwZTEuLmZhZDE2NTkwZjBjZjgyZTZmOGI5NmFmNzll
YjdkNThhYmZjMjM1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5jCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFn
ZXNfYXNfbWV0YS5jCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgcGFzX2VudW1lcmF0ZV91bmFjY291
bnRlZF9wYWdlc19hc19tZXRhKHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yKQogICAgICAgICBp
ZiAocGFzX3B0cl9oYXNoX3NldF9lbnRyeV9pc19lbXB0eV9vcl9kZWxldGVkKHBhZ2UpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgUEFTX0FTU0VSVChwYWdlKTsKKyAgICAgICAg
UEFTX0FTU0VSVF9XSVRIX0RFVEFJTChwYWdlKTsKIAogICAgICAgICBwYXNfcHRyX21pbl9oZWFw
X2FkZCgmcHRyX2hlYXAsIHBhZ2UsICZlbnVtZXJhdG9yLT5hbGxvY2F0aW9uX2NvbmZpZyk7CiAg
ICAgfQpAQCAtNjIsNyArNjIsNyBAQCBib29sIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFn
ZXNfYXNfbWV0YShwYXNfZW51bWVyYXRvciogZW51bWVyYXRvcikKICAgICBzcGFuX2VuZCA9IE5V
TEw7CiAgICAgd2hpbGUgKChwYWdlID0gcGFzX3B0cl9taW5faGVhcF90YWtlX21pbigmcHRyX2hl
YXApKSkgewogICAgICAgICBpZiAoc3Bhbl9lbmQgIT0gcGFnZSkgewotICAgICAgICAgICAgUEFT
X0FTU0VSVChwYWdlID4gc3Bhbl9lbmQpOworICAgICAgICAgICAgUEFTX0FTU0VSVF9XSVRIX0RF
VEFJTChwYWdlID4gc3Bhbl9lbmQpOwogICAgICAgICAgICAgcGFzX2VudW1lcmF0b3JfcmVjb3Jk
KAogICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsCiAgICAgICAgICAgICAgICAgc3Bhbl9iZWdp
biwKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVt
ZXJhdG9yLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRv
ci5jCmluZGV4IDk2YjE5ZDEzNGNiNTBlMDMwMjA4OGJhMzRjNGM0OGNjYmM2OTg0MzQuLjhmNTUy
ZmY0YWJhNjg0NWNjOTM4MmI1OWI4NjcxYjE0YzMzYzM2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdG9yLmMKKysrIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0b3IuYwpAQCAtOTksOCArOTksOCBA
QCBwYXNfZW51bWVyYXRvciogcGFzX2VudW1lcmF0b3JfY3JlYXRlKHBhc19yb290KiByZW1vdGVf
cm9vdF9hZGRyZXNzLAogICAgIGlmICghcmVzdWx0LT5yb290KQogICAgICAgICBnb3RvIGZhaWw7
CiAKLSAgICBQQVNfQVNTRVJUKHJlc3VsdC0+cm9vdC0+bWFnaWMgPT0gUEFTX1JPT1RfTUFHSUMp
OwotICAgIFBBU19BU1NFUlQocmVzdWx0LT5yb290LT5udW1faGVhcF9jb25maWdzID09IHBhc19o
ZWFwX2NvbmZpZ19raW5kX251bV9raW5kcyk7CisgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTChy
ZXN1bHQtPnJvb3QtPm1hZ2ljID09IFBBU19ST09UX01BR0lDKTsKKyAgICBQQVNfQVNTRVJUX1dJ
VEhfREVUQUlMKHJlc3VsdC0+cm9vdC0+bnVtX2hlYXBfY29uZmlncyA9PSBwYXNfaGVhcF9jb25m
aWdfa2luZF9udW1fa2luZHMpOwogCiAgICAgY29tcGFjdF9oZWFwX2Jhc2UgPSByZWFkZXIoCiAg
ICAgICAgIHJlc3VsdCwgcmVzdWx0LT5yb290LT5jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb25fYmFz
ZSwgc2l6ZW9mKHVpbnRwdHJfdCksIHJlYWRlcl9hcmcpOwpAQCAtMTU3LDEzICsxNTcsMTMgQEAg
cGFzX2VudW1lcmF0b3IqIHBhc19lbnVtZXJhdG9yX2NyZWF0ZShwYXNfcm9vdCogcmVtb3RlX3Jv
b3RfYWRkcmVzcywKIAogICAgICAgICBjb25maWcgPSBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRf
Y29uZmlnKGNvbmZpZ19raW5kKTsKIAotICAgICAgICBQQVNfQVNTRVJUKGNvbmZpZyk7CisgICAg
ICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoY29uZmlnKTsKIAogICAgICAgICByZW1vdGVfY29u
ZmlnID0gcmVhZGVyKHJlc3VsdCwgY29uZmlnc1tjb25maWctPmtpbmRdLCBzaXplb2YocGFzX2hl
YXBfY29uZmlnKSwgcmVhZGVyX2FyZyk7CiAgICAgICAgIGlmICghcmVtb3RlX2NvbmZpZykKICAg
ICAgICAgICAgIGdvdG8gZmFpbDsKIAotICAgICAgICBQQVNfQVNTRVJUKHJlbW90ZV9jb25maWct
PmtpbmQgPT0gY29uZmlnLT5raW5kKTsKKyAgICAgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTChy
ZW1vdGVfY29uZmlnLT5raW5kID09IGNvbmZpZy0+a2luZCk7CiAKICAgICAgICAgaWYgKCFjb25m
aWctPnByZXBhcmVfdG9fZW51bWVyYXRlKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xOTcs
OSArMTk3LDkgQEAgdm9pZCogcGFzX2VudW1lcmF0b3JfcmVhZF9jb21wYWN0KHBhc19lbnVtZXJh
dG9yKiBlbnVtZXJhdG9yLAogICAgIGlmICgodWludHB0cl90KXJlbW90ZV9hZGRyZXNzIDwgKHVp
bnRwdHJfdClQQVNfSU5URVJOQUxfTUlOX0FMSUdOKQogICAgICAgICByZXR1cm4gcmVtb3RlX2Fk
ZHJlc3M7CiAgICAgCi0gICAgUEFTX0FTU0VSVChyZW1vdGVfYWRkcmVzcyA+PSAodm9pZCopKCh1
aW50cHRyX3QpZW51bWVyYXRvci0+Y29tcGFjdF9oZWFwX3JlbW90ZV9iYXNlICsKKyAgICBQQVNf
QVNTRVJUX1dJVEhfREVUQUlMKHJlbW90ZV9hZGRyZXNzID49ICh2b2lkKikoKHVpbnRwdHJfdCll
bnVtZXJhdG9yLT5jb21wYWN0X2hlYXBfcmVtb3RlX2Jhc2UgKwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLT5jb21wYWN0X2hlYXBfZ3VhcmRfc2l6
ZSkpOwotICAgIFBBU19BU1NFUlQocmVtb3RlX2FkZHJlc3MgPCAodm9pZCopKCh1aW50cHRyX3Qp
ZW51bWVyYXRvci0+Y29tcGFjdF9oZWFwX3JlbW90ZV9iYXNlICsKKyAgICBQQVNfQVNTRVJUX1dJ
VEhfREVUQUlMKHJlbW90ZV9hZGRyZXNzIDwgKHZvaWQqKSgodWludHB0cl90KWVudW1lcmF0b3It
PmNvbXBhY3RfaGVhcF9yZW1vdGVfYmFzZSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW51bWVyYXRvci0+Y29tcGFjdF9oZWFwX3NpemUpKTsKICAgICByZXR1cm4g
KHZvaWQqKSgKICAgICAgICAgKHVpbnRwdHJfdCllbnVtZXJhdG9yLT5jb21wYWN0X2hlYXBfY29w
eV9iYXNlCkBAIC0yMTIsMTQgKzIxMiwxNCBAQCB2b2lkKiBwYXNfZW51bWVyYXRvcl9yZWFkKHBh
c19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLAogewogICAgIHZvaWQqIGNvbXBhY3RfaGVhcF9lbmQ7
CiAKLSAgICBQQVNfQVNTRVJUKHJlbW90ZV9hZGRyZXNzKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhf
REVUQUlMKHJlbW90ZV9hZGRyZXNzKTsKIAogICAgIGNvbXBhY3RfaGVhcF9lbmQgPSAodm9pZCop
KAogICAgICAgICAodWludHB0cl90KWVudW1lcmF0b3ItPmNvbXBhY3RfaGVhcF9yZW1vdGVfYmFz
ZSArIGVudW1lcmF0b3ItPmNvbXBhY3RfaGVhcF9zaXplKTsKICAgICAKICAgICBpZiAocmVtb3Rl
X2FkZHJlc3MgPj0gZW51bWVyYXRvci0+Y29tcGFjdF9oZWFwX3JlbW90ZV9iYXNlCiAgICAgICAg
ICYmIHJlbW90ZV9hZGRyZXNzIDwgY29tcGFjdF9oZWFwX2VuZCkgewotICAgICAgICBQQVNfQVNT
RVJUKCh1aW50cHRyX3QpcmVtb3RlX2FkZHJlc3MgKyBzaXplIDw9ICh1aW50cHRyX3QpY29tcGFj
dF9oZWFwX2VuZCk7CisgICAgICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoKHVpbnRwdHJfdCly
ZW1vdGVfYWRkcmVzcyArIHNpemUgPD0gKHVpbnRwdHJfdCljb21wYWN0X2hlYXBfZW5kKTsKICAg
ICAgICAgcmV0dXJuIHBhc19lbnVtZXJhdG9yX3JlYWRfY29tcGFjdChlbnVtZXJhdG9yLCByZW1v
dGVfYWRkcmVzcyk7CiAgICAgfQogCkBAIC0yMzUsMTEgKzIzNSwxMSBAQCB2b2lkIHBhc19lbnVt
ZXJhdG9yX2FkZF91bmFjY291bnRlZF9wYWdlcyhwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwK
IHsKICAgICBzaXplX3Qgb2Zmc2V0OwogCi0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZCgo
dWludHB0cl90KXJlbW90ZV9hZGRyZXNzLCBlbnVtZXJhdG9yLT5yb290LT5wYWdlX21hbGxvY19h
bGlnbm1lbnQpKTsKLSAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKHNpemUsIGVudW1lcmF0
b3ItPnJvb3QtPnBhZ2VfbWFsbG9jX2FsaWdubWVudCkpOworICAgIFBBU19BU1NFUlRfV0lUSF9E
RVRBSUwocGFzX2lzX2FsaWduZWQoKHVpbnRwdHJfdClyZW1vdGVfYWRkcmVzcywgZW51bWVyYXRv
ci0+cm9vdC0+cGFnZV9tYWxsb2NfYWxpZ25tZW50KSk7CisgICAgUEFTX0FTU0VSVF9XSVRIX0RF
VEFJTChwYXNfaXNfYWxpZ25lZChzaXplLCBlbnVtZXJhdG9yLT5yb290LT5wYWdlX21hbGxvY19h
bGlnbm1lbnQpKTsKIAogICAgIC8qIENhdGNoIGJvZ3VzIHNpemVzLCBpbiBjYXNlIHdlIGRpZCBz
b21lIG92ZXJmbG93IG9yIHdlaXJkIHN1YnRyYWN0aW9uLiAqLwotICAgIFBBU19BU1NFUlQoKHVp
bnQ2NF90KXNpemUgPCAoKHVpbnQ2NF90KTEgPDwgUEFTX0FERFJFU1NfQklUUykpOworICAgIFBB
U19BU1NFUlRfV0lUSF9ERVRBSUwoKHVpbnQ2NF90KXNpemUgPCAoKHVpbnQ2NF90KTEgPDwgUEFT
X0FERFJFU1NfQklUUykpOwogCiAgICAgZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBzaXplOyBv
ZmZzZXQgKz0gZW51bWVyYXRvci0+cm9vdC0+cGFnZV9tYWxsb2NfYWxpZ25tZW50KSB7CiAgICAg
ICAgIHBhc19wdHJfaGFzaF9zZXRfc2V0KGVudW1lcmF0b3ItPnVuYWNjb3VudGVkX3BhZ2VzLApA
QCAtMjUzLDcgKzI1Myw3IEBAIGJvb2wgcGFzX2VudW1lcmF0b3JfZXhjbHVkZV9hY2NvdW50ZWRf
cGFnZShwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwKIHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CiAgICAgYm9vbCByZXN1bHQ7Ci0gICAgUEFTX0FTU0VSVChwYXNf
aXNfYWxpZ25lZCgodWludHB0cl90KXJlbW90ZV9hZGRyZXNzLCBlbnVtZXJhdG9yLT5yb290LT5w
YWdlX21hbGxvY19hbGlnbm1lbnQpKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKHBhc19p
c19hbGlnbmVkKCh1aW50cHRyX3QpcmVtb3RlX2FkZHJlc3MsIGVudW1lcmF0b3ItPnJvb3QtPnBh
Z2VfbWFsbG9jX2FsaWdubWVudCkpOwogICAgIHJlc3VsdCA9IHBhc19wdHJfaGFzaF9zZXRfcmVt
b3ZlKAogICAgICAgICBlbnVtZXJhdG9yLT51bmFjY291bnRlZF9wYWdlcywgcmVtb3RlX2FkZHJl
c3MsIE5VTEwsICZlbnVtZXJhdG9yLT5hbGxvY2F0aW9uX2NvbmZpZyk7CiAgICAgaWYgKHZlcmJv
c2UpIHsKQEAgLTI3MSwxMSArMjcxLDExIEBAIHZvaWQgcGFzX2VudW1lcmF0b3JfZXhjbHVkZV9h
Y2NvdW50ZWRfcGFnZXMocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCiB7CiAgICAgc2l6ZV90
IG9mZnNldDsKIAotICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoKHVpbnRwdHJfdClyZW1v
dGVfYWRkcmVzcywgZW51bWVyYXRvci0+cm9vdC0+cGFnZV9tYWxsb2NfYWxpZ25tZW50KSk7Ci0g
ICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChzaXplLCBlbnVtZXJhdG9yLT5yb290LT5wYWdl
X21hbGxvY19hbGlnbm1lbnQpKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKHBhc19pc19h
bGlnbmVkKCh1aW50cHRyX3QpcmVtb3RlX2FkZHJlc3MsIGVudW1lcmF0b3ItPnJvb3QtPnBhZ2Vf
bWFsbG9jX2FsaWdubWVudCkpOworICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwocGFzX2lzX2Fs
aWduZWQoc2l6ZSwgZW51bWVyYXRvci0+cm9vdC0+cGFnZV9tYWxsb2NfYWxpZ25tZW50KSk7CiAK
ICAgICAvKiBDYXRjaCBib2d1cyBzaXplcywgaW4gY2FzZSB3ZSBkaWQgc29tZSBvdmVyZmxvdyBv
ciB3ZWlyZCBzdWJ0cmFjdGlvbi4gKi8KLSAgICBQQVNfQVNTRVJUKCh1aW50NjRfdClzaXplIDwg
KCh1aW50NjRfdCkxIDw8IFBBU19BRERSRVNTX0JJVFMpKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhf
REVUQUlMKCh1aW50NjRfdClzaXplIDwgKCh1aW50NjRfdCkxIDw8IFBBU19BRERSRVNTX0JJVFMp
KTsKIAogICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgc2l6ZTsgb2Zmc2V0ICs9IGVudW1l
cmF0b3ItPnJvb3QtPnBhZ2VfbWFsbG9jX2FsaWdubWVudCkKICAgICAgICAgcGFzX2VudW1lcmF0
b3JfZXhjbHVkZV9hY2NvdW50ZWRfcGFnZShlbnVtZXJhdG9yLCAodm9pZCopKCh1aW50cHRyX3Qp
cmVtb3RlX2FkZHJlc3MgKyBvZmZzZXQpKTsKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIHBhc19l
bnVtZXJhdG9yX3JlY29yZChwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLyogQ2F0Y2ggYm9ndXMgc2l6ZXMsIGluIGNhc2Ugd2UgZGlkIHNvbWUgb3Zl
cmZsb3cgb3Igd2VpcmQgc3VidHJhY3Rpb24uICovCi0gICAgUEFTX0FTU0VSVCgodWludDY0X3Qp
c2l6ZSA8ICgodWludDY0X3QpMSA8PCBQQVNfQUREUkVTU19CSVRTKSk7CisgICAgUEFTX0FTU0VS
VF9XSVRIX0RFVEFJTCgodWludDY0X3Qpc2l6ZSA8ICgodWludDY0X3QpMSA8PCBQQVNfQUREUkVT
U19CSVRTKSk7CiAgICAgCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBwYXNfZW51bWVy
YXRvcl9tZXRhX3JlY29yZDoKQEAgLTMyOCw5ICszMjgsOSBAQCB2b2lkIHBhc19lbnVtZXJhdG9y
X3JlY29yZF9wYWdlX3BheWxvYWRfYW5kX21ldGEocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3Is
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0
cl90IHBheWxvYWRfYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludHB0cl90IHBheWxvYWRfZW5kKQogewotICAgIFBBU19BU1NFUlQocGF5
bG9hZF9iZWdpbiA8IHBhZ2Vfc2l6ZSk7Ci0gICAgUEFTX0FTU0VSVChwYXlsb2FkX2VuZCA8PSBw
YWdlX3NpemUpOwotICAgIFBBU19BU1NFUlQocGF5bG9hZF9iZWdpbiA8IHBheWxvYWRfZW5kKTsK
KyAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKHBheWxvYWRfYmVnaW4gPCBwYWdlX3NpemUpOwor
ICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwocGF5bG9hZF9lbmQgPD0gcGFnZV9zaXplKTsKKyAg
ICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKHBheWxvYWRfYmVnaW4gPCBwYXlsb2FkX2VuZCk7CiAK
ICAgICAvKiBXZSBhc3N1bWUsIGNvcnJlY3RseSBmb3Igbm93LCB0aGF0IG5vbi1wYXlsb2FkIGFy
ZWFzIG9mIHRoZSBwYWdlIGFyZSBhbHdheXMgY29tbWl0dGVkIGlmIHRoZSBwYWdlCiAgICAgICAg
aXMgY29tbWl0dGVkLiAqLwpAQCAtMzQ1LDcgKzM0NSw3IEBAIHZvaWQgcGFzX2VudW1lcmF0b3Jf
cmVjb3JkX3BhZ2VfcGF5bG9hZF9hbmRfbWV0YShwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwK
IAogICAgIGlmIChlbnVtZXJhdG9yLT5yZWNvcmRfcGF5bG9hZCkgewogICAgICAgICBpZiAocGFn
ZV9zaXplID09IGdyYW51bGVfc2l6ZSkgewotICAgICAgICAgICAgUEFTX0FTU0VSVCghdXNlX2Nv
dW50cyk7CisgICAgICAgICAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKCF1c2VfY291bnRzKTsK
ICAgICAgICAgICAgIHBhc19lbnVtZXJhdG9yX3JlY29yZChlbnVtZXJhdG9yLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKikocGFnZV9ib3VuZGFyeSArIHBheWxvYWRf
YmVnaW4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWRfZW5kIC0g
cGF5bG9hZF9iZWdpbiwKQEAgLTM1NCw4ICszNTQsOCBAQCB2b2lkIHBhc19lbnVtZXJhdG9yX3Jl
Y29yZF9wYWdlX3BheWxvYWRfYW5kX21ldGEocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCiAg
ICAgICAgICAgICB1aW50cHRyX3QgZ3JhbnVsZV9pbmRleDsKICAgICAgICAgICAgIHBhc19yYW5n
ZSBzcGFuOwogCi0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhZ2Vfc2l6ZSA+IGdyYW51bGVfc2l6
ZSk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKHVzZV9jb3VudHMpOworICAgICAgICAgICAgUEFT
X0FTU0VSVF9XSVRIX0RFVEFJTChwYWdlX3NpemUgPiBncmFudWxlX3NpemUpOworICAgICAgICAg
ICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTCh1c2VfY291bnRzKTsKIAogICAgICAgICAgICAgc3Bh
biA9IHBhc19yYW5nZV9jcmVhdGUocGF5bG9hZF9iZWdpbiwgcGF5bG9hZF9iZWdpbik7CiAgICAg
ICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19lbnVtZXJhdG9yLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51
bWVyYXRvci5oCmluZGV4IDgwN2MwN2Q0ZjNmMmE3M2NmNDA0Mzg3NGZiMjBhYzNjZjc0NGQzNWIu
LmM4MTIzYzE4YWQ4MTMyMDFlMDQwZDg0Y2UzYTk0NzJhYWYzYWExOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdG9yLmgKKysrIGIvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0b3IuaApAQCAtNjUsNyAr
NjUsNyBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19lbnVtZXJhdG9yX3JlY29yZF9r
aW5kX2dldF9zdHJpbmcocGFzX2VudW1lcmF0b3JfcgogICAgIGNhc2UgcGFzX2VudW1lcmF0b3Jf
b2JqZWN0X3JlY29yZDoKICAgICAgICAgcmV0dXJuICJvYmplY3QiOwogICAgIH0KLSAgICBQQVNf
QVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgUEFTX0FTU0VSVF9XSVRIX0RF
VEFJTCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogICAgIHJldHVybiBOVUxMOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRv
cl9yZWdpb24uYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJh
dG9yX3JlZ2lvbi5jCmluZGV4IGRlYjJmY2MwNzE0YWU5ODQ3NDU5OWE1YmM3NmM3MTY3MmQ3NmJh
MWIuLjU1NTJhZDRjZjJhOTI0ZjIwODQzYjU5MGQ1ZjBkODM1Nzg5ZGI2ZTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdG9yX3JlZ2lvbi5j
CisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdG9yX3Jl
Z2lvbi5jCkBAIC00OSwxNCArNDksMTQgQEAgdm9pZCogcGFzX2VudW1lcmF0b3JfcmVnaW9uX2Fs
bG9jYXRlKHBhc19lbnVtZXJhdG9yX3JlZ2lvbioqIHJlZ2lvbl9wdHIsCiAKICAgICAgICAgYWxs
b2NhdGlvbl9zaXplID0gUEFTX09GRlNFVE9GKHBhc19lbnVtZXJhdG9yX3JlZ2lvbiwgcGF5bG9h
ZCkgKyBzaXplOwogCi0gICAgICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoYWxsb2NhdGlv
bl9zaXplLCBQQVNfSU5URVJOQUxfTUlOX0FMSUdOKSk7CisgICAgICAgIFBBU19BU1NFUlRfV0lU
SF9ERVRBSUwocGFzX2lzX2FsaWduZWQoYWxsb2NhdGlvbl9zaXplLCBQQVNfSU5URVJOQUxfTUlO
X0FMSUdOKSk7CiAKICAgICAgICAgYWxsb2NhdGlvbl9yZXN1bHQgPSBwYXNfcGFnZV9tYWxsb2Nf
dHJ5X2FsbG9jYXRlX3dpdGhvdXRfZGVhbGxvY2F0aW5nX3BhZGRpbmcoCiAgICAgICAgICAgICBh
bGxvY2F0aW9uX3NpemUsIHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyaXZpYWwoKSk7CiAKLSAgICAg
ICAgUEFTX0FTU0VSVChhbGxvY2F0aW9uX3Jlc3VsdC5yZXN1bHQpOwotICAgICAgICBQQVNfQVNT
RVJUKGFsbG9jYXRpb25fcmVzdWx0LnJlc3VsdCA9PSBhbGxvY2F0aW9uX3Jlc3VsdC5sZWZ0X3Bh
ZGRpbmcpOwotICAgICAgICBQQVNfQVNTRVJUKCFhbGxvY2F0aW9uX3Jlc3VsdC5sZWZ0X3BhZGRp
bmdfc2l6ZSk7CisgICAgICAgIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoYWxsb2NhdGlvbl9yZXN1
bHQucmVzdWx0KTsKKyAgICAgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTChhbGxvY2F0aW9uX3Jl
c3VsdC5yZXN1bHQgPT0gYWxsb2NhdGlvbl9yZXN1bHQubGVmdF9wYWRkaW5nKTsKKyAgICAgICAg
UEFTX0FTU0VSVF9XSVRIX0RFVEFJTCghYWxsb2NhdGlvbl9yZXN1bHQubGVmdF9wYWRkaW5nX3Np
emUpOwogCiAgICAgICAgIG5ld19yZWdpb24gPSBhbGxvY2F0aW9uX3Jlc3VsdC5yZXN1bHQ7CiAg
ICAgICAgIG5ld19yZWdpb24tPnByZXZpb3VzID0gcmVnaW9uOwpAQCAtNjksOCArNjksOCBAQCB2
b2lkKiBwYXNfZW51bWVyYXRvcl9yZWdpb25fYWxsb2NhdGUocGFzX2VudW1lcmF0b3JfcmVnaW9u
KiogcmVnaW9uX3B0ciwKICAgICAgICAgcmVnaW9uID0gbmV3X3JlZ2lvbjsKICAgICB9CiAKLSAg
ICBQQVNfQVNTRVJUKHJlZ2lvbik7Ci0gICAgUEFTX0FTU0VSVChyZWdpb24tPnNpemUgLSByZWdp
b24tPm9mZnNldCA+PSBzaXplKTsKKyAgICBQQVNfQVNTRVJUX1dJVEhfREVUQUlMKHJlZ2lvbik7
CisgICAgUEFTX0FTU0VSVF9XSVRIX0RFVEFJTChyZWdpb24tPnNpemUgLSByZWdpb24tPm9mZnNl
dCA+PSBzaXplKTsKIAogICAgIHJlc3VsdCA9IChjaGFyKilyZWdpb24tPnBheWxvYWQgKyByZWdp
b24tPm9mZnNldDsKICAgICByZWdpb24tPm9mZnNldCArPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGIv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5j
CmluZGV4IDkxYWQ3NDc0YmEzZGVjYmI4MjM5ZTI4ODJkZmI3OTU0NmZhNjNkOGQuLjZkODQyZWE2
NTI0MGMzZDEwNzUzNzUxZGM0OTE4YjBlZGI5NjI0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYworKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMKQEAg
LTIyMCwxNiArMjIwLDE2IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfY3JlYXRlKHZvaWQpCiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlID0gYWxsb2NhdGVf
Y2FjaGUoYWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKTsKICAgICAKICAgICB0aHJlYWRfbG9j
YWxfY2FjaGUtPm5vZGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGVfYWxsb2NhdGUoKTsK
LSAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmNhY2hlID0gdGhyZWFkX2xvY2FsX2NhY2hl
OwogCiAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgcGFzX2xvZygiWyVkXSBUTEMgJXAgY3Jl
YXRlZCB3aXRoIHRocmVhZCAlcFxuIiwgZ2V0cGlkKCksIHRocmVhZF9sb2NhbF9jYWNoZSwgKHZv
aWQqKXB0aHJlYWRfc2VsZigpKTsKICAgICAgICAgZHVtcF90aHJlYWRfZGlhZ25vc3RpY3MocHRo
cmVhZF9zZWxmKCkpOwogICAgIH0KICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPnRocmVhZCA9IHB0
aHJlYWRfc2VsZigpOwotICAgIAotICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2lu
ZGV4X3VwcGVyX2JvdW5kID0gYWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kOwogCisgICAgcGFz
X2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5k
ZXhfdXBwZXJfYm91bmQgPSBhbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQ7CisgICAgCiAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3RfdW5zZWxlY3RlZCgKICAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3IqKXBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3RfdW5jaGVja2VkKAogICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBQQVNf
TE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfSU5ERVgpKTsKQEAgLTIzNyw2ICsyMzcsOSBAQCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2NyZWF0ZSh2b2lk
KQogICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1Io
bGF5b3V0X25vZGUpKQogICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2NvbW1pdF9hbmRfY29uc3RydWN0KGxheW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwog
CisgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2Rl
LT5jYWNoZSA9IHRocmVhZF9sb2NhbF9jYWNoZTsKKwogICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfc2V0KHRocmVhZF9sb2NhbF9jYWNoZSk7CiAgICAgCiAgICAgcmV0dXJuIHRocmVhZF9sb2Nh
bF9jYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c191dGlscy5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmMK
aW5kZXggMTVjZmVjNzJiNTYyMzhhZWQwMmI5ZDE3ZGQ4NjczMDAxZjQwMGJlYy4uNzM0ZjAyZjgy
OGYzYTMzZWM4Y2QyOWE1MTRlMjQ0NTRhMzY5NzU0YyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmMKQEAgLTU1LDYgKzU1LDExIEBAIHZvaWQgcGFzX2Fz
c2VydGlvbl9mYWlsZWQoY29uc3QgY2hhciogZmlsZW5hbWUsIGludCBsaW5lLCBjb25zdCBjaGFy
KiBmdW5jdGlvbiwKIH0KICNlbmRpZiAvKiBQQVNfRU5BQkxFX1RFU1RJTkcgKi8KIAordm9pZCBw
YXNfYXNzZXJ0aW9uX2ZhaWxlZF9ub19pbmxpbmUoY29uc3QgY2hhciogZmlsZW5hbWUsIGludCBs
aW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwgY29uc3QgY2hhciogZXhwcmVzc2lvbikKK3sKKyAg
ICBwYXNfcGFuaWMoIiVzOiVkOiAlczogYXNzZXJ0aW9uICVzIGZhaWxlZC5cbiIsIGZpbGVuYW1l
LCBsaW5lLCBmdW5jdGlvbiwgZXhwcmVzc2lvbik7Cit9CisKIHZvaWQgcGFzX3BhbmljX29uX291
dF9vZl9tZW1vcnlfZXJyb3IoKQogewogICAgIF9fYnVpbHRpbl90cmFwKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaCBiL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCmluZGV4IGJmN2RkYjJkNmVlMzU1
ZmYxZmFjMTVkMWY5OGVjZGRmZDZhNmZlZDQuLjg1YjhmZTI4MmUxNzZjMWVlMzZhMmMwMjNmN2Yx
Y2UzOWNmN2YwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc191dGlscy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191
dGlscy5oCkBAIC00OCw4ICs0OCw2IEBACiAKICNpbmNsdWRlICJwYXNfdXRpbHNfcHJlZml4Lmgi
CiAKLSNkZWZpbmUgcGFzX3plcm9fbWVtb3J5IGJ6ZXJvCi0KICNkZWZpbmUgUEFTX0JFR0lOX0VY
VEVSTl9DIF9fUEFTX0JFR0lOX0VYVEVSTl9DCiAjZGVmaW5lIFBBU19FTkRfRVhURVJOX0MgX19Q
QVNfRU5EX0VYVEVSTl9DCiAKQEAgLTE2MCw2ICsxNTgsMTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9D
OwogI2RlZmluZSBQQVNfVFlQRU9GKGEpIHR5cGVvZiAoYSkKICNlbmRpZgogCitQQVNfQUxXQVlT
X0lOTElORSB2b2lkIHBhc196ZXJvX21lbW9yeSh2b2lkKiBtZW1vcnksIHNpemVfdCBzaXplKQor
eworICAgIG1lbXNldChtZW1vcnksIDAsIHNpemUpOworfQorCiAvKiBOT1RFOiBwYW5pYyBmb3Jt
YXQgc3RyaW5nIG11c3QgaGF2ZSBcbiBhdCB0aGUgZW5kLiAqLwogUEFTX0FQSSBQQVNfTk9fUkVU
VVJOIHZvaWQgcGFzX3BhbmljKGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKSBQQVNfRk9STUFUX1BS
SU5URigxLCAyKTsKIApAQCAtMTkyLDYgKzE5NSw4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBQQVNfTk9fUkVUVVJOIHZvaWQgcGFzX2Fzc2VydGlvbl9mYWlsZWQoCiB9CiAjZW5kaWYgLyog
UEFTX0VOQUJMRV9URVNUSU5HIC0+IHNvIGVuZCBvZiAhUEFTX0VOQUJMRV9URVNUSU5HICovCiAK
K1BBU19BUEkgUEFTX05PX1JFVFVSTiBQQVNfTkVWRVJfSU5MSU5FIHZvaWQgcGFzX2Fzc2VydGlv
bl9mYWlsZWRfbm9faW5saW5lKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBpbnQgbGluZSwgY29uc3Qg
Y2hhciogZnVuY3Rpb24sIGNvbnN0IGNoYXIqIGV4cHJlc3Npb24pOworCiBQQVNfSUdOT1JFX1dB
Uk5JTkdTX0JFR0lOKCJtaXNzaW5nLW5vcmV0dXJuIikKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB2b2lkIHBhc19hc3NlcnRpb25fZmFpbGVkX25vcmV0dXJuX3NpbGVuY2VyKAogICAgIGNvbnN0
IGNoYXIqIGZpbGVuYW1lLCBpbnQgbGluZSwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNvbnN0IGNo
YXIqIGV4cHJlc3Npb24pCkBAIC0yMjEsNiArMjI2LDE1IEBAIFBBU19JR05PUkVfV0FSTklOR1Nf
RU5ECiAgICAgICAgIHBhc19hc3NlcnRpb25fZmFpbGVkX25vcmV0dXJuX3NpbGVuY2VyKF9fRklM
RV9fLCBfX0xJTkVfXywgX19QUkVUVFlfRlVOQ1RJT05fXywgI2V4cCk7IFwKICAgICB9IHdoaWxl
ICgwKQogCisjZGVmaW5lIFBBU19BU1NFUlRfV0lUSF9ERVRBSUwoZXhwKSBcCisgICAgZG8geyBc
CisgICAgICAgIGlmICghUEFTX0VOQUJMRV9BU1NFUlQpIFwKKyAgICAgICAgICAgIGJyZWFrOyBc
CisgICAgICAgIGlmIChQQVNfTElLRUxZKGV4cCkpIFwKKyAgICAgICAgICAgIGJyZWFrOyBcCisg
ICAgICAgIHBhc19hc3NlcnRpb25fZmFpbGVkX25vX2lubGluZShfX0ZJTEVfXywgX19MSU5FX18s
IF9fUFJFVFRZX0ZVTkNUSU9OX18sICNleHApOyBcCisgICAgfSB3aGlsZSAoMCkKKwogc3RhdGlj
IGlubGluZSBib29sIHBhc19pc19wb3dlcl9vZl8yKHVpbnRwdHJfdCB2YWx1ZSkKIHsKICAgICBy
ZXR1cm4gdmFsdWUgJiYgISh2YWx1ZSAmICh2YWx1ZSAtIDEpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>