<?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>217225</bug_id>
          
          <creation_ts>2020-10-02 07:53:27 -0700</creation_ts>
          <short_desc>[LFC][Integration] Avoid ensureLineBoxes for some call sites of inlineBoxAndOffset</short_desc>
          <delta_ts>2020-10-05 07:40:19 -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>Layout and Rendering</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694081</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-02 07:53:27 -0700</bug_when>
    <thetext>Progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694083</commentid>
    <comment_count>1</comment_count>
      <attachid>410324</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-02 07:58:19 -0700</bug_when>
    <thetext>Created attachment 410324
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694638</commentid>
    <comment_count>2</comment_count>
      <attachid>410503</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-04 23:19:48 -0700</bug_when>
    <thetext>Created attachment 410503
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694639</commentid>
    <comment_count>3</comment_count>
      <attachid>410504</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-04 23:22:44 -0700</bug_when>
    <thetext>Created attachment 410504
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694670</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-05 07:39:07 -0700</bug_when>
    <thetext>Committed r267962: &lt;https://trac.webkit.org/changeset/267962&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410504.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694671</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-05 07:40:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/69953912&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410324</attachid>
            <date>2020-10-02 07:58:19 -0700</date>
            <delta_ts>2020-10-04 23:19:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>inlineRunAndOffset.patch</filename>
            <type>text/plain</type>
            <size>16370</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NGJhNjdjZGMwYjkuLjI3MWI5MzczYjQwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDIwLTEwLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gQXZvaWQgZW5zdXJlTGluZUJveGVzIGZv
ciBzb21lIGNhbGwgc2l0ZXMgb2YgaW5saW5lQm94QW5kT2Zmc2V0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBpbmxpbmVSdW5BbmRPZmZz
ZXQgZnJvbSBpbmxpbmVCb3hBbmRPZmZzZXQuCisgICAgICAgIFRoZSBmb3JtZXQgcmV0dXJucyBp
dGVyYXRvciB3aGlsZSB0aGUgbGF0ZXIgZm9yY2VzIHRoZSBsZWdhY3kgcGF0aC4KKworICAgICAg
ICBVc2UgaW5saW5lUnVuQW5kT2Zmc2V0IGluIGEgZmV3IHBsYWNlcy4KKworICAgICAgICAqIGRv
bS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6cmVuZGVyc0luRGlm
ZmVyZW50UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmlubGlu
ZVJ1bkFuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aW5saW5l
Qm94QW5kT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjplbnN1cmVM
aW5lQm94ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94QW5kT2Zmc2V0OjpJ
bmxpbmVCb3hBbmRPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94QW5kT2Zmc2V0OjpJbmxpbmVCb3hBbmRPZmZzZXQp
OgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OmRpcmVjdGlvbk9mU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0
aW5nL1Zpc2libGVQb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
OjppbmxpbmVSdW5BbmRPZmZzZXQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpjYW5Vc2VGb3JGb250QW5kVGV4dCk6CisgICAgICAgICogbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpSdW46Om9uU2FtZUxpbmUgY29uc3QpOgorICAgICAgICAq
IGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0
aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxlZ2FjeVBhdGg6Om9u
U2FtZUxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxl
Z2FjeVBhdGg6OmF0RW5kIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjpvblNhbWVMaW5lIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjphdEVuZCBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dExpbmVCb3hlcy5oOgorCiAyMDIwLTEwLTAyICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gQ29udmVydCByZXN0
IG9mIFBvc2l0aW9uOjppbmxpbmVCb3hBbmRPZmZzZXQgdG8gdXNlIGl0ZXJhdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcAppbmRleCA3ZTU3MGY1YTg1MjIuLjYzOGYwYjYxMWY3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUG9zaXRpb24uY3BwCkBAIC0xMDEsMTIgKzEwMSw2IEBAIHN0YXRpYyBOb2RlKiBwcmV2aW91
c1JlbmRlcmVkRWRpdGFibGUoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
SW5saW5lQm94QW5kT2Zmc2V0OjpJbmxpbmVCb3hBbmRPZmZzZXQoTGF5b3V0SW50ZWdyYXRpb246
OlJ1bkl0ZXJhdG9yIHJ1biwgdW5zaWduZWQgb2Zmc2V0KQotICAgIDogYm94KHJ1biA/IHJ1bi0+
bGVnYWN5SW5saW5lQm94KCkgOiBudWxscHRyKQotICAgICwgb2Zmc2V0KG9mZnNldCkKLXsKLX0K
LQogUG9zaXRpb246OlBvc2l0aW9uKE5vZGUqIGFuY2hvck5vZGUsIHVuc2lnbmVkIG9mZnNldCwg
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uRmxhZykKICAgICA6IG1fYW5jaG9yTm9kZShhbmNob3JOb2Rl
KQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQpAQCAtMTA3MSwyMSArMTA2NSwyMSBAQCBib29sIFBv
c2l0aW9uOjpyZW5kZXJzSW5EaWZmZXJlbnRQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYgcG9zaXRp
b24pIGNvbnN0CiAgICAgaWYgKHJlbmRlcmVyID09IHBvc2l0aW9uUmVuZGVyZXIgJiYgdGhpc1Jl
bmRlcmVkT2Zmc2V0ID09IHBvc2l0aW9uUmVuZGVyZWRPZmZzZXQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGF1dG8gYjEgPSBpbmxpbmVCb3hBbmRPZmZzZXQoQWZmaW5pdHk6OkRvd25z
dHJlYW0pLmJveDsKLSAgICBhdXRvIGIyID0gcG9zaXRpb24uaW5saW5lQm94QW5kT2Zmc2V0KEFm
ZmluaXR5OjpEb3duc3RyZWFtKS5ib3g7CisgICAgYXV0byBydW4xID0gaW5saW5lUnVuQW5kT2Zm
c2V0KEFmZmluaXR5OjpEb3duc3RyZWFtKS5ydW47CisgICAgYXV0byBydW4yID0gcG9zaXRpb24u
aW5saW5lUnVuQW5kT2Zmc2V0KEFmZmluaXR5OjpEb3duc3RyZWFtKS5ydW47CiAKLSAgICBMT0co
RWRpdGluZywgInJlbmRlcmVyOiAgICAgICAgICAgICAgICVwIFslcF1cbiIsIHJlbmRlcmVyLCBi
MSk7CisgICAgTE9HKEVkaXRpbmcsICJyZW5kZXJlcjogICAgICAgICAgICAgICAlcFxuIiwgcmVu
ZGVyZXIpOwogICAgIExPRyhFZGl0aW5nLCAidGhpc1JlbmRlcmVkT2Zmc2V0OiAgICAgICAgICVk
XG4iLCB0aGlzUmVuZGVyZWRPZmZzZXQpOwotICAgIExPRyhFZGl0aW5nLCAicG9zUmVuZGVyZXI6
ICAgICAgICAgICAgJXAgWyVwXVxuIiwgcG9zaXRpb25SZW5kZXJlciwgYjIpOworICAgIExPRyhF
ZGl0aW5nLCAicG9zUmVuZGVyZXI6ICAgICAgICAgICAgJXBcbiIsIHBvc2l0aW9uUmVuZGVyZXIp
OwogICAgIExPRyhFZGl0aW5nLCAicG9zUmVuZGVyZWRPZmZzZXQ6ICAgICAgJWRcbiIsIHBvc2l0
aW9uUmVuZGVyZWRPZmZzZXQpOwogICAgIExPRyhFZGl0aW5nLCAibm9kZSBtaW4vbWF4OiAgICAg
ICAgICAgJWQ6JWRcbiIsIGNhcmV0TWluT2Zmc2V0KCpkZXByZWNhdGVkTm9kZSgpKSwgY2FyZXRN
YXhPZmZzZXQoKmRlcHJlY2F0ZWROb2RlKCkpKTsKICAgICBMT0coRWRpdGluZywgInBvcyBub2Rl
IG1pbi9tYXg6ICAgICAgICVkOiVkXG4iLCBjYXJldE1pbk9mZnNldCgqcG9zaXRpb24uZGVwcmVj
YXRlZE5vZGUoKSksIGNhcmV0TWF4T2Zmc2V0KCpwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpKSk7
CiAgICAgTE9HKEVkaXRpbmcsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKIAotICAgIGlmICghYjEgfHwg
IWIyKQorICAgIGlmICghcnVuMSB8fCAhcnVuMikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgaWYgKCZiMS0+cm9vdCgpICE9ICZiMi0+cm9vdCgpKQorICAgIGlmICghcnVuMS0+b25TYW1l
TGluZSgqcnVuMikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKG5leHRSZW5kZXJl
ZEVkaXRhYmxlKGRlcHJlY2F0ZWROb2RlKCkpID09IHBvc2l0aW9uLmRlcHJlY2F0ZWROb2RlKCkK
QEAgLTExNDAsOSArMTEzNCw5IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjp0cmFpbGluZ1doaXRlc3Bh
Y2VQb3NpdGlvbihBZmZpbml0eSwgYm9vbCBjb25zaWRlck5vbkNvbGxhcHNpCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotSW5saW5lQm94QW5kT2Zmc2V0IFBvc2l0aW9uOjppbmxpbmVCb3hBbmRPZmZz
ZXQoQWZmaW5pdHkgYWZmaW5pdHkpIGNvbnN0CitJbmxpbmVSdW5BbmRPZmZzZXQgUG9zaXRpb246
OmlubGluZVJ1bkFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSkgY29uc3QKIHsKLSAgICByZXR1
cm4gaW5saW5lQm94QW5kT2Zmc2V0KGFmZmluaXR5LCBwcmltYXJ5RGlyZWN0aW9uKCkpOworICAg
IHJldHVybiBpbmxpbmVSdW5BbmRPZmZzZXQoYWZmaW5pdHksIHByaW1hcnlEaXJlY3Rpb24oKSk7
CiB9CiAKIHN0YXRpYyBib29sIGlzTm9uVGV4dExlYWZDaGlsZChSZW5kZXJPYmplY3QmIG9iamVj
dCkKQEAgLTExOTEsNyArMTE4NSw3IEBAIHN0YXRpYyBQb3NpdGlvbiB1cHN0cmVhbUlnbm9yaW5n
RWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9zaXRpb24pCiAgICAgcmV0dXJuIHBvc2l0aW9u
OwogfQogCi1JbmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246OmlubGluZUJveEFuZE9mZnNldChB
ZmZpbml0eSBhZmZpbml0eSwgVGV4dERpcmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uKSBjb25zdAor
SW5saW5lUnVuQW5kT2Zmc2V0IFBvc2l0aW9uOjppbmxpbmVSdW5BbmRPZmZzZXQoQWZmaW5pdHkg
YWZmaW5pdHksIFRleHREaXJlY3Rpb24gcHJpbWFyeURpcmVjdGlvbikgY29uc3QKIHsKICAgICBh
dXRvIGNhcmV0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlcHJlY2F0ZWRFZGl0aW5n
T2Zmc2V0KCkpOwogCkBAIC0xMjA2LDEyICsxMjAwLDEwIEBAIElubGluZUJveEFuZE9mZnNldCBQ
b3NpdGlvbjo6aW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5IGFmZmluaXR5LCBUZXh0RGlyZWN0
aW9uCiAKICAgICBpZiAocmVuZGVyZXItPmlzQlIoKSkgewogICAgICAgICBhdXRvJiBsaW5lQnJl
YWtSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxpbmVCcmVhaz4oKnJlbmRlcmVyKTsKLSAgICAg
ICAgbGluZUJyZWFrUmVuZGVyZXIuZW5zdXJlTGluZUJveGVzKCk7CiAgICAgICAgIGlmICghY2Fy
ZXRPZmZzZXQpCiAgICAgICAgICAgICBydW4gPSBMYXlvdXRJbnRlZ3JhdGlvbjo6cnVuRm9yKGxp
bmVCcmVha1JlbmRlcmVyKTsKICAgICB9IGVsc2UgaWYgKGlzPFJlbmRlclRleHQ+KCpyZW5kZXJl
cikpIHsKICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4o
KnJlbmRlcmVyKTsKLSAgICAgICAgdGV4dFJlbmRlcmVyLmVuc3VyZUxpbmVCb3hlcygpOwogCiAg
ICAgICAgIGF1dG8gdGV4dFJ1biA9IExheW91dEludGVncmF0aW9uOjpmaXJzdFRleHRSdW5Gb3Io
dGV4dFJlbmRlcmVyKTsKICAgICAgICAgTGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRv
ciBjYW5kaWRhdGU7CkBAIC0xMjYxLDcgKzEyNTMsNyBAQCBJbmxpbmVCb3hBbmRPZmZzZXQgUG9z
aXRpb246OmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSwgVGV4dERpcmVjdGlv
bgogICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB7IH0sIGNhcmV0T2Zmc2V0IH07CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIHJldHVybiBlcXVpdmFsZW50LmlubGluZUJveEFuZE9m
ZnNldChBZmZpbml0eTo6VXBzdHJlYW0sIHByaW1hcnlEaXJlY3Rpb24pOworICAgICAgICAgICAg
cmV0dXJuIGVxdWl2YWxlbnQuaW5saW5lUnVuQW5kT2Zmc2V0KEFmZmluaXR5OjpVcHN0cmVhbSwg
cHJpbWFyeURpcmVjdGlvbik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlzPFJlbmRlckJveD4o
KnJlbmRlcmVyKSkgewogICAgICAgICAgICAgcnVuID0gTGF5b3V0SW50ZWdyYXRpb246OnJ1bkZv
cihkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikpOwpAQCAtMTM2OSw2ICsxMzYxLDM1IEBA
IElubGluZUJveEFuZE9mZnNldCBQb3NpdGlvbjo6aW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5
IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9uCiAgICAgcmV0dXJuIHsgcnVuLCBjYXJldE9mZnNldCB9
OwogfQogCitJbmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246OmlubGluZUJveEFuZE9mZnNldChB
ZmZpbml0eSBhZmZpbml0eSkgY29uc3QKK3sKKyAgICByZXR1cm4gaW5saW5lQm94QW5kT2Zmc2V0
KGFmZmluaXR5LCBwcmltYXJ5RGlyZWN0aW9uKCkpOworfQorCitJbmxpbmVCb3hBbmRPZmZzZXQg
UG9zaXRpb246OmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSwgVGV4dERpcmVj
dGlvbiBwcmltYXJ5RGlyZWN0aW9uKSBjb25zdAoreworICAgIGVuc3VyZUxpbmVCb3hlcygpOwor
CisgICAgcmV0dXJuIHsgaW5saW5lUnVuQW5kT2Zmc2V0KGFmZmluaXR5LCBwcmltYXJ5RGlyZWN0
aW9uKSB9OworfQorCit2b2lkIFBvc2l0aW9uOjplbnN1cmVMaW5lQm94ZXMoKSBjb25zdAorewor
ICAgIGF1dG8gbm9kZSA9IGRlcHJlY2F0ZWROb2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisgICAgYXV0byByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYg
KCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHJlbmRlcmVyLT5pc0JSKCkp
IHsKKyAgICAgICAgZG93bmNhc3Q8UmVuZGVyTGluZUJyZWFrPigqcmVuZGVyZXIpLmVuc3VyZUxp
bmVCb3hlcygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChpczxSZW5kZXJUZXh0
PigqcmVuZGVyZXIpKQorICAgICAgICBkb3duY2FzdDxSZW5kZXJUZXh0PigqcmVuZGVyZXIpLmVu
c3VyZUxpbmVCb3hlcygpOworfQorCiBUZXh0RGlyZWN0aW9uIFBvc2l0aW9uOjpwcmltYXJ5RGly
ZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2Rl
LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCA4YjBhNzQxYjJlOWEuLmY5NTcz
YzNmZDU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
ICJDaGFyYWN0ZXJEYXRhLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgogI2luY2x1ZGUg
IkVkaXRpbmdCb3VuZGFyeS5oIgorI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uUnVuSXRlcmF0
b3IuaCIKICNpbmNsdWRlICJUZXh0QWZmaW5pdHkuaCIKIAogbmFtZXNwYWNlIFdURiB7CkBAIC00
MywxOCArNDQsMjIgQEAgY2xhc3MgVGV4dDsKIHN0cnVjdCBCb3VuZGFyeVBvaW50Owogc3RydWN0
IFNpbXBsZVJhbmdlOwogCi1uYW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRpb24gewotY2xhc3MgUnVu
SXRlcmF0b3I7Ci19Ci0KIGVudW0gUG9zaXRpb25Nb3ZlVHlwZSB7CiAgICAgQ29kZVBvaW50LCAg
ICAgICAvLyBNb3ZlIGJ5IGEgc2luZ2xlIGNvZGUgcG9pbnQuCiAgICAgQ2hhcmFjdGVyLCAgICAg
ICAvLyBNb3ZlIHRvIHRoZSBuZXh0IFVuaWNvZGUgY2hhcmFjdGVyIGJyZWFrLgogICAgIEJhY2t3
YXJkRGVsZXRpb24gLy8gU3ViamVjdCB0byBwbGF0Zm9ybSBjb252ZW50aW9ucy4KIH07CiAKK3N0
cnVjdCBJbmxpbmVSdW5BbmRPZmZzZXQgeworICAgIExheW91dEludGVncmF0aW9uOjpSdW5JdGVy
YXRvciBydW4geyB9OworICAgIHVuc2lnbmVkIG9mZnNldCB7IDAgfTsKK307CisKIHN0cnVjdCBJ
bmxpbmVCb3hBbmRPZmZzZXQgewotICAgIElubGluZUJveEFuZE9mZnNldChMYXlvdXRJbnRlZ3Jh
dGlvbjo6UnVuSXRlcmF0b3IsIHVuc2lnbmVkIG9mZnNldCk7CisgICAgSW5saW5lQm94QW5kT2Zm
c2V0KElubGluZVJ1bkFuZE9mZnNldCBydW5BbmRPZmZzZXQpCisgICAgICAgIDogYm94KHJ1bkFu
ZE9mZnNldC5ydW4gPyBydW5BbmRPZmZzZXQucnVuLT5sZWdhY3lJbmxpbmVCb3goKSA6IG51bGxw
dHIpCisgICAgICAgICwgb2Zmc2V0KHJ1bkFuZE9mZnNldC5vZmZzZXQpCisgICAgeyB9CiAKICAg
ICBJbmxpbmVCb3gqIGJveCB7IG51bGxwdHIgfTsKICAgICBpbnQgb2Zmc2V0IHsgMCB9OwpAQCAt
MTc4LDYgKzE4Myw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzUmVuZGVyZWRDaGFyYWN0ZXIoKSBj
b25zdDsKICAgICBib29sIHJlbmRlcnNJbkRpZmZlcmVudFBvc2l0aW9uKGNvbnN0IFBvc2l0aW9u
JikgY29uc3Q7CiAKKyAgICBJbmxpbmVSdW5BbmRPZmZzZXQgaW5saW5lUnVuQW5kT2Zmc2V0KEFm
ZmluaXR5KSBjb25zdDsKKyAgICBJbmxpbmVSdW5BbmRPZmZzZXQgaW5saW5lUnVuQW5kT2Zmc2V0
KEFmZmluaXR5LCBUZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24pIGNvbnN0OworCiAgICAg
SW5saW5lQm94QW5kT2Zmc2V0IGlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSkgY29uc3Q7CiAg
ICAgSW5saW5lQm94QW5kT2Zmc2V0IGlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSwgVGV4dERp
cmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uKSBjb25zdDsKIApAQCAtMjE5LDYgKzIyNyw4IEBAIHBy
aXZhdGU6CiAgICAgUG9zaXRpb24gcHJldmlvdXNDaGFyYWN0ZXJQb3NpdGlvbihBZmZpbml0eSkg
Y29uc3Q7CiAgICAgUG9zaXRpb24gbmV4dENoYXJhY3RlclBvc2l0aW9uKEFmZmluaXR5KSBjb25z
dDsKIAorICAgIHZvaWQgZW5zdXJlTGluZUJveGVzKCkgY29uc3Q7CisKICAgICBzdGF0aWMgQW5j
aG9yVHlwZSBhbmNob3JUeXBlRm9yTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKE5vZGUqIGFuY2hvck5v
ZGUsIHVuc2lnbmVkIG9mZnNldCk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbV9hbmNob3JOb2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCBlMDRlNzY1N2M5
M2YuLmUzYzA2NDI4ZTE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKQEAgLTYzNywxMCArNjM3LDEwIEBAIFRleHREaXJlY3Rpb24gRnJhbWVTZWxlY3Rpb246
OmRpcmVjdGlvbk9mU2VsZWN0aW9uKCkKICAgICAvLyBjYW4gY2F1c2UgbGF5b3V0LCB3aGljaCBo
YXMgdGhlIHBvdGVudGlhbCB0byBpbnZhbGlkYXRlIGxpbmVib3hlcy4KICAgICBhdXRvIHN0YXJ0
UG9zaXRpb24gPSBtX3NlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKICAgICBhdXRvIGVuZFBvc2l0
aW9uID0gbV9zZWxlY3Rpb24udmlzaWJsZUVuZCgpOwotICAgIGF1dG8gc3RhcnRCb3ggPSBzdGFy
dFBvc2l0aW9uLmlubGluZUJveEFuZE9mZnNldCgpLmJveDsKLSAgICBhdXRvIGVuZEJveCA9IGVu
ZFBvc2l0aW9uLmlubGluZUJveEFuZE9mZnNldCgpLmJveDsKLSAgICBpZiAoc3RhcnRCb3ggJiYg
ZW5kQm94ICYmIHN0YXJ0Qm94LT5kaXJlY3Rpb24oKSA9PSBlbmRCb3gtPmRpcmVjdGlvbigpKQot
ICAgICAgICByZXR1cm4gc3RhcnRCb3gtPmRpcmVjdGlvbigpOworICAgIGF1dG8gc3RhcnRSdW4g
PSBzdGFydFBvc2l0aW9uLmlubGluZVJ1bkFuZE9mZnNldCgpLnJ1bjsKKyAgICBhdXRvIGVuZFJ1
biA9IGVuZFBvc2l0aW9uLmlubGluZVJ1bkFuZE9mZnNldCgpLnJ1bjsKKyAgICBpZiAoc3RhcnRS
dW4gJiYgZW5kUnVuICYmIHN0YXJ0UnVuLT5kaXJlY3Rpb24oKSA9PSBlbmRSdW4tPmRpcmVjdGlv
bigpKQorICAgICAgICByZXR1cm4gc3RhcnRSdW4tPmRpcmVjdGlvbigpOwogICAgIHJldHVybiBk
aXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVQb3NpdGlvbi5oCmluZGV4IDE3ZjgyMThmYTJiOC4uZDk5NWVhZjI2Y2ZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgKQEAgLTY3LDYgKzY3LDkgQEAgcHVi
bGljOgogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGhhbmRsZSBbdGFibGUsIDBdIGNvcnJl
Y3RseS4KICAgICBFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9kZWVwUG9zaXRpb24uaXNOb3ROdWxsKCkgPyBtX2RlZXBQb3NpdGlvbi5kZXByZWNhdGVkTm9k
ZSgpLT5yb290RWRpdGFibGVFbGVtZW50KCkgOiAwOyB9CiAKKyAgICBJbmxpbmVSdW5BbmRPZmZz
ZXQgaW5saW5lUnVuQW5kT2Zmc2V0KCkgY29uc3Q7CisgICAgSW5saW5lUnVuQW5kT2Zmc2V0IGlu
bGluZVJ1bkFuZE9mZnNldChUZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24pIGNvbnN0Owor
CiAgICAgSW5saW5lQm94QW5kT2Zmc2V0IGlubGluZUJveEFuZE9mZnNldCgpIGNvbnN0OwogICAg
IElubGluZUJveEFuZE9mZnNldCBpbmxpbmVCb3hBbmRPZmZzZXQoVGV4dERpcmVjdGlvbiBwcmlt
YXJ5RGlyZWN0aW9uKSBjb25zdDsKIApAQCAtMTY4LDYgKzE3MSwxNiBAQCBpbmxpbmUgYm9vbCBv
cGVyYXRvcj49KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYSwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBiKQogICAgIHJldHVybiBpc19ndGVxKGRvY3VtZW50T3JkZXIoYSwgYikpOwogfQogCitpbmxp
bmUgYXV0byBWaXNpYmxlUG9zaXRpb246OmlubGluZVJ1bkFuZE9mZnNldCgpIGNvbnN0IC0+IElu
bGluZVJ1bkFuZE9mZnNldAoreworICAgIHJldHVybiBtX2RlZXBQb3NpdGlvbi5pbmxpbmVSdW5B
bmRPZmZzZXQobV9hZmZpbml0eSk7Cit9CisKK2lubGluZSBhdXRvIFZpc2libGVQb3NpdGlvbjo6
aW5saW5lUnVuQW5kT2Zmc2V0KFRleHREaXJlY3Rpb24gcHJpbWFyeURpcmVjdGlvbikgY29uc3Qg
LT4gSW5saW5lUnVuQW5kT2Zmc2V0Cit7CisgICAgcmV0dXJuIG1fZGVlcFBvc2l0aW9uLmlubGlu
ZVJ1bkFuZE9mZnNldChtX2FmZmluaXR5LCBwcmltYXJ5RGlyZWN0aW9uKTsKK30KKwogaW5saW5l
IGF1dG8gVmlzaWJsZVBvc2l0aW9uOjppbmxpbmVCb3hBbmRPZmZzZXQoKSBjb25zdCAtPiBJbmxp
bmVCb3hBbmRPZmZzZXQKIHsKICAgICByZXR1cm4gbV9kZWVwUG9zaXRpb24uaW5saW5lQm94QW5k
T2Zmc2V0KG1fYWZmaW5pdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCmluZGV4IDUy
YTJhMzkyNTA2Zi4uODBkODViODRlODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3Bw
CkBAIC0xODAsNyArMTgwLDcgQEAgc3RhdGljIE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNh
blVzZUZvckZvbnRBbmRUZXh0KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmwKICAgICAgICAgICAg
IC8vIE5vIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGUgcGF0aCBhdCB0aGlzIHBvaW50LiBXZSBhbHJl
YWR5IGtub3cgaXQgY2FuJ3QgYmUgc2ltcGxlLgogICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRf
UkVUVVJOX0lGX05FRURFRChGbG93SGFzQ29tcGxleEZvbnRDb2RlUGF0aCwgcmVhc29ucywgaW5j
bHVkZVJlYXNvbnMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgVGV4dFJ1biBydW4o
U3RyaW5nKHRleHRSZW5kZXJlci50ZXh0KCkpKTsKKyAgICAgICAgICAgIFdlYkNvcmU6OlRleHRS
dW4gcnVuKFN0cmluZyh0ZXh0UmVuZGVyZXIudGV4dCgpKSk7CiAgICAgICAgICAgICBydW4uc2V0
Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKGZhbHNlKTsKICAgICAgICAgICAgIGlmIChzdHlsZS5m
b250Q2FzY2FkZSgpLmNvZGVQYXRoKHJ1bikgIT0gRm9udENhc2NhZGU6OlNpbXBsZSkKICAgICAg
ICAgICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dIYXNDb21wbGV4
Rm9udENvZGVQYXRoLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
UnVuSXRlcmF0b3IuaAppbmRleCA1YmFmNzRmMTY2MDkuLjIxNzU2ZGY1NDQ1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCkBAIC03Myw2ICs3Myw4IEBAIHB1YmxpYzoKICAgICBU
ZXh0RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGJpZGlMZXZlbCgpICUgMiA/
IFRleHREaXJlY3Rpb246OlJUTCA6IFRleHREaXJlY3Rpb246OkxUUjsgfQogICAgIGJvb2wgaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGRpcmVjdGlvbigpID09IFRleHRE
aXJlY3Rpb246OkxUUjsgfQogCisgICAgYm9vbCBvblNhbWVMaW5lKGNvbnN0IFJ1biYpIGNvbnN0
OworCiAgICAgLy8gRm9yIGludGVybWVkaWF0ZSBwb3J0aW5nIHN0ZXBzIG9ubHkuCiAgICAgSW5s
aW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdDsKIApAQCAtMjY5LDYgKzI3MSwxNiBAQCBp
bmxpbmUgdW5zaWduZWQgY2hhciBSdW46OmJpZGlMZXZlbCgpIGNvbnN0CiAgICAgfSk7CiB9CiAK
K2lubGluZSBib29sIFJ1bjo6b25TYW1lTGluZShjb25zdCBSdW4mIG90aGVyKSBjb25zdAorewor
ICAgIGlmIChtX3BhdGhWYXJpYW50LmluZGV4KCkgIT0gb3RoZXIubV9wYXRoVmFyaWFudC5pbmRl
eCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbiht
X3BhdGhWYXJpYW50LCBbJl0oY29uc3QgYXV0byYgcGF0aCkgeworICAgICAgICByZXR1cm4gcGF0
aC5vblNhbWVMaW5lKFdURjo6Z2V0PHN0ZDo6ZGVjYXlfdDxkZWNsdHlwZShwYXRoKT4+KG90aGVy
Lm1fcGF0aFZhcmlhbnQpKTsKKyAgICB9KTsKK30KKwogaW5saW5lIElubGluZUJveCogUnVuOjps
ZWdhY3lJbmxpbmVCb3goKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0
aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JMZWdhY3lQYXRoLmgKaW5kZXggNTg2MjI3MTJlNTBjLi4zNjg4N2ZiYjllNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCkBAIC05
MSw4ICs5MSw5IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
TGVnYWN5UGF0aCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94ID09IG90aGVyLm1f
aW5saW5lQm94OyB9Ci0gICAgYm9vbCBhdEVuZCgpIGNvbnN0IHsgcmV0dXJuICFtX2lubGluZUJv
eDsgfQorICAgIGJvb2wgb25TYW1lTGluZShjb25zdCBMZWdhY3lQYXRoJiBvdGhlcikgY29uc3Qg
eyByZXR1cm4gJm1faW5saW5lQm94LT5yb290KCkgPT0gJm90aGVyLm1faW5saW5lQm94LT5yb290
KCk7IH0KIAorICAgIGJvb2wgYXRFbmQoKSBjb25zdCB7IHJldHVybiAhbV9pbmxpbmVCb3g7IH0K
ICAgICB2b2lkIHNldEF0RW5kKCkgeyBtX2lubGluZUJveCA9IG51bGxwdHI7IH0KIAogICAgIElu
bGluZUJveCogbGVnYWN5SW5saW5lQm94KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxJbmxp
bmVCb3gqPihtX2lubGluZUJveCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRl
cmF0b3JNb2Rlcm5QYXRoLmgKaW5kZXggY2E4ZThiNGFlZTNlLi40MzU0ZmRkNjM2YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
blJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC0xNDQs
OCArMTQ0LDkgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBN
b2Rlcm5QYXRoJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVDb250ZW50ID09IG90aGVy
Lm1faW5saW5lQ29udGVudCAmJiBtX3J1bkluZGV4ID09IG90aGVyLm1fcnVuSW5kZXg7IH0KLSAg
ICBib29sIGF0RW5kKCkgY29uc3QgeyByZXR1cm4gbV9ydW5JbmRleCA9PSBydW5zKCkuc2l6ZSgp
IHx8ICFydW4oKS5oYXNVbmRlcmx5aW5nTGF5b3V0KCk7IH0KKyAgICBib29sIG9uU2FtZUxpbmUo
Y29uc3QgTW9kZXJuUGF0aCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIHJ1bigpLmxpbmVJbmRleCgp
ID09IG90aGVyLnJ1bigpLmxpbmVJbmRleCgpOyB9CiAKKyAgICBib29sIGF0RW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9ydW5JbmRleCA9PSBydW5zKCkuc2l6ZSgpIHx8ICFydW4oKS5oYXNVbmRlcmx5
aW5nTGF5b3V0KCk7IH0KICAgICB2b2lkIHNldEF0RW5kKCkgeyBtX3J1bkluZGV4ID0gcnVucygp
LnNpemUoKTsgfQogCiAgICAgSW5saW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKaW5kZXggM2U5OWJmODA3MGMwLi42MzBkNDZl
MmI1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5oIgogI2luY2x1
ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAi
U2ltcGxlUmFuZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0TGluZUJveGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExp
bmVCb3hlcy5oCmluZGV4IDJlYjVkZDM2MGE3NC4uNDU5NDlhMzFkODNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmgKQEAgLTI3LDEzICsyNywx
MyBAQAogCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgotI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIElubGluZVRleHRCb3g7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclRl
eHQ7CitjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKIGNsYXNzIFJlbmRlclRleHRMaW5lQm94ZXMg
ewogcHVibGljOgo=
</data>
<flag name="commit-queue"
          id="426229"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410503</attachid>
            <date>2020-10-04 23:19:48 -0700</date>
            <delta_ts>2020-10-04 23:24:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>inlineRunAndOffset-2.patch</filename>
            <type>text/plain</type>
            <size>21131</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NGJhNjdjZGMwYjkuLjI3MWI5MzczYjQwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDIwLTEwLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gQXZvaWQgZW5zdXJlTGluZUJveGVzIGZv
ciBzb21lIGNhbGwgc2l0ZXMgb2YgaW5saW5lQm94QW5kT2Zmc2V0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBpbmxpbmVSdW5BbmRPZmZz
ZXQgZnJvbSBpbmxpbmVCb3hBbmRPZmZzZXQuCisgICAgICAgIFRoZSBmb3JtZXQgcmV0dXJucyBp
dGVyYXRvciB3aGlsZSB0aGUgbGF0ZXIgZm9yY2VzIHRoZSBsZWdhY3kgcGF0aC4KKworICAgICAg
ICBVc2UgaW5saW5lUnVuQW5kT2Zmc2V0IGluIGEgZmV3IHBsYWNlcy4KKworICAgICAgICAqIGRv
bS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6cmVuZGVyc0luRGlm
ZmVyZW50UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmlubGlu
ZVJ1bkFuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aW5saW5l
Qm94QW5kT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjplbnN1cmVM
aW5lQm94ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94QW5kT2Zmc2V0OjpJ
bmxpbmVCb3hBbmRPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94QW5kT2Zmc2V0OjpJbmxpbmVCb3hBbmRPZmZzZXQp
OgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OmRpcmVjdGlvbk9mU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0
aW5nL1Zpc2libGVQb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
OjppbmxpbmVSdW5BbmRPZmZzZXQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpjYW5Vc2VGb3JGb250QW5kVGV4dCk6CisgICAgICAgICogbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpSdW46Om9uU2FtZUxpbmUgY29uc3QpOgorICAgICAgICAq
IGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0
aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxlZ2FjeVBhdGg6Om9u
U2FtZUxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxl
Z2FjeVBhdGg6OmF0RW5kIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjpvblNhbWVMaW5lIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjphdEVuZCBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dExpbmVCb3hlcy5oOgorCiAyMDIwLTEwLTAyICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gQ29udmVydCByZXN0
IG9mIFBvc2l0aW9uOjppbmxpbmVCb3hBbmRPZmZzZXQgdG8gdXNlIGl0ZXJhdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCBjODc0OGEyMTYyN2MuLjYxZDg2YTg4ZTkzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC01MjUsNiArNTI1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGVkaXRpbmcvRm9udFNoYWRvdy5oCiAgICAgZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5oCiAgICAgZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuaAorICAgIGVkaXRpbmcvSW5saW5lUnVu
QW5kT2Zmc2V0LmgKICAgICBlZGl0aW5nL1NlbGVjdGlvblJlY3RHYXRoZXJlci5oCiAgICAgZWRp
dGluZy9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaAogICAgIGVkaXRpbmcvU21hcnRSZXBsYWNl
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBjYTAwZjllMGEyNmIuLjdiNjcwMjUyM2JkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3NSw2ICs1MDc1LDcg
QEAKIAkJRTRDM0IxRkEwRjBFNDE2MTAwOTY5M0Y2IC8qIExlZ2FjeVRpbGVDYWNoZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRDM0IxRjkwRjBFNDE2
MTAwOTY5M0Y2IC8qIExlZ2FjeVRpbGVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0QzkxQTBFMTgwMjM0MzEwMEExN0Y2RCAvKiBUZXh0
UGFpbnRTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRDOTFBMEQxODAyMzQzMTAwQTE3RjZEIC8qIFRleHRQYWludFN0eWxlLmggKi87IH07CiAJ
CUU0QzkxQTE2MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEM5MUExNTE4MDk5OUYx
MDBBMTdGNkQgLyogUmVuZGVyVGV4dExpbmVCb3hlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU0RDMzRjNCMjUyQUVFQ0QwMDgzN0QwNSAvKiBJ
bmxpbmVSdW5BbmRPZmZzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0RDMzRjM5MjUyQUVFQ0MwMDgzN0QwNSAvKiBJbmxpbmVSdW5BbmRPZmZzZXQu
aCAqLzsgfTsKIAkJRTRENThFQjUxN0I0REJEQzAwQ0JEQ0E4IC8qIFN0eWxlUmVzb2x2ZUZvckRv
Y3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEQ1OEVCMzE3QjREQkRDMDBDQkRDQTggLyogU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuaCAqLzsg
fTsKIAkJRTRENThFQjkxN0I0RUQ4OTAwQ0JEQ0E4IC8qIFN0eWxlRm9udFNpemVGdW5jdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RDU4RUI3
MTdCNEVEODkwMENCRENBOCAvKiBTdHlsZUZvbnRTaXplRnVuY3Rpb25zLmggKi87IH07CiAJCUU0
RDU4RUJCMTdCOEYxMjgwMENCRENBOCAvKiBFbGVtZW50VHJhdmVyc2FsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEQ1OEVCQTE3QjhGMTI4MDBDQkRD
QTggLyogRWxlbWVudFRyYXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xNjAzMiw2ICsxNjAzMyw3IEBACiAJCUU0QzkxQTBGMTgwMjM0
MzkwMEExN0Y2RCAvKiBUZXh0UGFpbnRTdHlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUZXh0UGFpbnRTdHlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0QzkxQTE1MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRMaW5lQm94ZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRDOTFBMTcxODA5OTlGQjAwQTE3RjZEIC8q
IFJlbmRlclRleHRMaW5lQm94ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyVGV4dExpbmVCb3hlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU0RDMzRjM5MjUyQUVFQ0MwMDgzN0QwNSAvKiBJbmxpbmVSdW5BbmRPZmZzZXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lUnVuQW5kT2Zmc2V0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RDU4RUIyMTdCNERCREMwMENCRENBOCAvKiBTdHls
ZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0RDU4RUIzMTdCNERCREMwMENCRENBOCAvKiBTdHlsZVJlc29sdmVGb3JEb2N1bWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVJlc29sdmVGb3JEb2N1
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEQ1OEVCNjE3QjRFRDg5MDBD
QkRDQTggLyogU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTdHlsZUZvbnRTaXplRnVuY3Rpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNTkxLDYgKzIyNTkzLDcgQEAKIAkJCQk5MzMwOUQ5NzA5OUU2
NDkxMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggKi8sCiAJCQkJREIyM0MyQzkwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLywKIAkJCQlEQjIzQzJDQTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLywKKwkJCQlFNEQzM0Yz
OTI1MkFFRUNDMDA4MzdEMDUgLyogSW5saW5lUnVuQW5kT2Zmc2V0LmggKi8sCiAJCQkJOTMzMDlE
OUEwOTlFNjQ5MTAwNTZFNTgxIC8qIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAog
CQkJCTkzMzA5RDlCMDk5RTY0OTEwMDU2RTU4MSAvKiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEOUMwOTlFNjQ5MTAwNTZFNTgxIC8qIEluc2VydExpbmVCcmVha0Nv
bW1hbmQuY3BwICovLApAQCAtMzQ2OTQsNiArMzQ2OTcsNyBAQAogCQkJCUUxRUU4Qjk5MjQxMzE5
NTAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTJBOUY0QTI0OEE5OUUyMDAzRjA2QzggLyogWFJJbnRlcmFjdGlvbk1vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxRUU4Qjg0MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0RDMzRjNCMjUyQUVFQ0QwMDgzN0QwNSAv
KiBJbmxpbmVSdW5BbmRPZmZzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4Qjc3MjQxMzE5
MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTFFRThCNzkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggN2U1NzBmNWE4NTIyLi4w
ZTA1YWE5MGE4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJJbmxpbmVFbGVtZW50Qm94
LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJJbmxpbmVSdW5BbmRP
ZmZzZXQuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTEwMSw5ICsx
MDIsOSBAQCBzdGF0aWMgTm9kZSogcHJldmlvdXNSZW5kZXJlZEVkaXRhYmxlKE5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUlubGluZUJveEFuZE9mZnNldDo6SW5saW5lQm94
QW5kT2Zmc2V0KExheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvciBydW4sIHVuc2lnbmVkIG9m
ZnNldCkKLSAgICA6IGJveChydW4gPyBydW4tPmxlZ2FjeUlubGluZUJveCgpIDogbnVsbHB0cikK
LSAgICAsIG9mZnNldChvZmZzZXQpCitJbmxpbmVCb3hBbmRPZmZzZXQ6OklubGluZUJveEFuZE9m
ZnNldChJbmxpbmVSdW5BbmRPZmZzZXQgcnVuQW5kT2Zmc2V0KQorICAgIDogYm94KHJ1bkFuZE9m
ZnNldC5ydW4gPyBydW5BbmRPZmZzZXQucnVuLT5sZWdhY3lJbmxpbmVCb3goKSA6IG51bGxwdHIp
CisgICAgLCBvZmZzZXQocnVuQW5kT2Zmc2V0Lm9mZnNldCkKIHsKIH0KIApAQCAtMTA3MSwyMSAr
MTA3MiwyMSBAQCBib29sIFBvc2l0aW9uOjpyZW5kZXJzSW5EaWZmZXJlbnRQb3NpdGlvbihjb25z
dCBQb3NpdGlvbiYgcG9zaXRpb24pIGNvbnN0CiAgICAgaWYgKHJlbmRlcmVyID09IHBvc2l0aW9u
UmVuZGVyZXIgJiYgdGhpc1JlbmRlcmVkT2Zmc2V0ID09IHBvc2l0aW9uUmVuZGVyZWRPZmZzZXQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gYjEgPSBpbmxpbmVCb3hBbmRPZmZz
ZXQoQWZmaW5pdHk6OkRvd25zdHJlYW0pLmJveDsKLSAgICBhdXRvIGIyID0gcG9zaXRpb24uaW5s
aW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5OjpEb3duc3RyZWFtKS5ib3g7CisgICAgYXV0byBydW4x
ID0gaW5saW5lUnVuQW5kT2Zmc2V0KEFmZmluaXR5OjpEb3duc3RyZWFtKS5ydW47CisgICAgYXV0
byBydW4yID0gcG9zaXRpb24uaW5saW5lUnVuQW5kT2Zmc2V0KEFmZmluaXR5OjpEb3duc3RyZWFt
KS5ydW47CiAKLSAgICBMT0coRWRpdGluZywgInJlbmRlcmVyOiAgICAgICAgICAgICAgICVwIFsl
cF1cbiIsIHJlbmRlcmVyLCBiMSk7CisgICAgTE9HKEVkaXRpbmcsICJyZW5kZXJlcjogICAgICAg
ICAgICAgICAlcFxuIiwgcmVuZGVyZXIpOwogICAgIExPRyhFZGl0aW5nLCAidGhpc1JlbmRlcmVk
T2Zmc2V0OiAgICAgICAgICVkXG4iLCB0aGlzUmVuZGVyZWRPZmZzZXQpOwotICAgIExPRyhFZGl0
aW5nLCAicG9zUmVuZGVyZXI6ICAgICAgICAgICAgJXAgWyVwXVxuIiwgcG9zaXRpb25SZW5kZXJl
ciwgYjIpOworICAgIExPRyhFZGl0aW5nLCAicG9zUmVuZGVyZXI6ICAgICAgICAgICAgJXBcbiIs
IHBvc2l0aW9uUmVuZGVyZXIpOwogICAgIExPRyhFZGl0aW5nLCAicG9zUmVuZGVyZWRPZmZzZXQ6
ICAgICAgJWRcbiIsIHBvc2l0aW9uUmVuZGVyZWRPZmZzZXQpOwogICAgIExPRyhFZGl0aW5nLCAi
bm9kZSBtaW4vbWF4OiAgICAgICAgICAgJWQ6JWRcbiIsIGNhcmV0TWluT2Zmc2V0KCpkZXByZWNh
dGVkTm9kZSgpKSwgY2FyZXRNYXhPZmZzZXQoKmRlcHJlY2F0ZWROb2RlKCkpKTsKICAgICBMT0co
RWRpdGluZywgInBvcyBub2RlIG1pbi9tYXg6ICAgICAgICVkOiVkXG4iLCBjYXJldE1pbk9mZnNl
dCgqcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKSksIGNhcmV0TWF4T2Zmc2V0KCpwb3NpdGlvbi5k
ZXByZWNhdGVkTm9kZSgpKSk7CiAgICAgTE9HKEVkaXRpbmcsICItLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsK
IAotICAgIGlmICghYjEgfHwgIWIyKQorICAgIGlmICghcnVuMSB8fCAhcnVuMikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCZiMS0+cm9vdCgpICE9ICZiMi0+cm9vdCgpKQorICAg
IGlmICghcnVuMS0+b25TYW1lTGluZSgqcnVuMikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgaWYgKG5leHRSZW5kZXJlZEVkaXRhYmxlKGRlcHJlY2F0ZWROb2RlKCkpID09IHBvc2l0aW9u
LmRlcHJlY2F0ZWROb2RlKCkKQEAgLTExNDAsOSArMTE0MSw5IEBAIFBvc2l0aW9uIFBvc2l0aW9u
Ojp0cmFpbGluZ1doaXRlc3BhY2VQb3NpdGlvbihBZmZpbml0eSwgYm9vbCBjb25zaWRlck5vbkNv
bGxhcHNpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotSW5saW5lQm94QW5kT2Zmc2V0IFBvc2l0aW9u
OjppbmxpbmVCb3hBbmRPZmZzZXQoQWZmaW5pdHkgYWZmaW5pdHkpIGNvbnN0CitJbmxpbmVSdW5B
bmRPZmZzZXQgUG9zaXRpb246OmlubGluZVJ1bkFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSkg
Y29uc3QKIHsKLSAgICByZXR1cm4gaW5saW5lQm94QW5kT2Zmc2V0KGFmZmluaXR5LCBwcmltYXJ5
RGlyZWN0aW9uKCkpOworICAgIHJldHVybiBpbmxpbmVSdW5BbmRPZmZzZXQoYWZmaW5pdHksIHBy
aW1hcnlEaXJlY3Rpb24oKSk7CiB9CiAKIHN0YXRpYyBib29sIGlzTm9uVGV4dExlYWZDaGlsZChS
ZW5kZXJPYmplY3QmIG9iamVjdCkKQEAgLTExOTEsNyArMTE5Miw3IEBAIHN0YXRpYyBQb3NpdGlv
biB1cHN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9zaXRpb24pCiAg
ICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1JbmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246Omlu
bGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSwgVGV4dERpcmVjdGlvbiBwcmltYXJ5
RGlyZWN0aW9uKSBjb25zdAorSW5saW5lUnVuQW5kT2Zmc2V0IFBvc2l0aW9uOjppbmxpbmVSdW5B
bmRPZmZzZXQoQWZmaW5pdHkgYWZmaW5pdHksIFRleHREaXJlY3Rpb24gcHJpbWFyeURpcmVjdGlv
bikgY29uc3QKIHsKICAgICBhdXRvIGNhcmV0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkpOwogCkBAIC0xMjA2LDEyICsxMjA3LDEwIEBAIElu
bGluZUJveEFuZE9mZnNldCBQb3NpdGlvbjo6aW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5IGFm
ZmluaXR5LCBUZXh0RGlyZWN0aW9uCiAKICAgICBpZiAocmVuZGVyZXItPmlzQlIoKSkgewogICAg
ICAgICBhdXRvJiBsaW5lQnJlYWtSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxpbmVCcmVhaz4o
KnJlbmRlcmVyKTsKLSAgICAgICAgbGluZUJyZWFrUmVuZGVyZXIuZW5zdXJlTGluZUJveGVzKCk7
CiAgICAgICAgIGlmICghY2FyZXRPZmZzZXQpCiAgICAgICAgICAgICBydW4gPSBMYXlvdXRJbnRl
Z3JhdGlvbjo6cnVuRm9yKGxpbmVCcmVha1JlbmRlcmVyKTsKICAgICB9IGVsc2UgaWYgKGlzPFJl
bmRlclRleHQ+KCpyZW5kZXJlcikpIHsKICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93
bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKTsKLSAgICAgICAgdGV4dFJlbmRlcmVyLmVuc3Vy
ZUxpbmVCb3hlcygpOwogCiAgICAgICAgIGF1dG8gdGV4dFJ1biA9IExheW91dEludGVncmF0aW9u
OjpmaXJzdFRleHRSdW5Gb3IodGV4dFJlbmRlcmVyKTsKICAgICAgICAgTGF5b3V0SW50ZWdyYXRp
b246OlRleHRSdW5JdGVyYXRvciBjYW5kaWRhdGU7CkBAIC0xMjYxLDcgKzEyNjAsNyBAQCBJbmxp
bmVCb3hBbmRPZmZzZXQgUG9zaXRpb246OmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZp
bml0eSwgVGV4dERpcmVjdGlvbgogICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB7IH0sIGNh
cmV0T2Zmc2V0IH07CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJldHVybiBlcXVpdmFs
ZW50LmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eTo6VXBzdHJlYW0sIHByaW1hcnlEaXJlY3Rp
b24pOworICAgICAgICAgICAgcmV0dXJuIGVxdWl2YWxlbnQuaW5saW5lUnVuQW5kT2Zmc2V0KEFm
ZmluaXR5OjpVcHN0cmVhbSwgcHJpbWFyeURpcmVjdGlvbik7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGlzPFJlbmRlckJveD4oKnJlbmRlcmVyKSkgewogICAgICAgICAgICAgcnVuID0gTGF5b3V0
SW50ZWdyYXRpb246OnJ1bkZvcihkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikpOwpAQCAt
MTM2OSw2ICsxMzY4LDM1IEBAIElubGluZUJveEFuZE9mZnNldCBQb3NpdGlvbjo6aW5saW5lQm94
QW5kT2Zmc2V0KEFmZmluaXR5IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9uCiAgICAgcmV0dXJuIHsg
cnVuLCBjYXJldE9mZnNldCB9OwogfQogCitJbmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246Omlu
bGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSkgY29uc3QKK3sKKyAgICByZXR1cm4g
aW5saW5lQm94QW5kT2Zmc2V0KGFmZmluaXR5LCBwcmltYXJ5RGlyZWN0aW9uKCkpOworfQorCitJ
bmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246OmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSBh
ZmZpbml0eSwgVGV4dERpcmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uKSBjb25zdAoreworICAgIGVu
c3VyZUxpbmVCb3hlcygpOworCisgICAgcmV0dXJuIHsgaW5saW5lUnVuQW5kT2Zmc2V0KGFmZmlu
aXR5LCBwcmltYXJ5RGlyZWN0aW9uKSB9OworfQorCit2b2lkIFBvc2l0aW9uOjplbnN1cmVMaW5l
Qm94ZXMoKSBjb25zdAoreworICAgIGF1dG8gbm9kZSA9IGRlcHJlY2F0ZWROb2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgYXV0byByZW5kZXJlciA9IG5vZGUtPnJl
bmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHJlbmRlcmVyLT5pc0JSKCkpIHsKKyAgICAgICAgZG93bmNhc3Q8UmVuZGVyTGluZUJyZWFrPigq
cmVuZGVyZXIpLmVuc3VyZUxpbmVCb3hlcygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKQorICAgICAgICBkb3duY2FzdDxSZW5kZXJU
ZXh0PigqcmVuZGVyZXIpLmVuc3VyZUxpbmVCb3hlcygpOworfQorCiBUZXh0RGlyZWN0aW9uIFBv
c2l0aW9uOjpwcmltYXJ5RGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIW1fYW5jaG9yTm9k
ZSB8fCAhbV9hbmNob3JOb2RlLT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCA4
YjBhNzQxYjJlOWEuLmMyYTFkMTljOWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAgLTQzLDE4
ICs0MywxNiBAQCBjbGFzcyBUZXh0Owogc3RydWN0IEJvdW5kYXJ5UG9pbnQ7CiBzdHJ1Y3QgU2lt
cGxlUmFuZ2U7CiAKLW5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7Ci1jbGFzcyBSdW5JdGVy
YXRvcjsKLX0KLQogZW51bSBQb3NpdGlvbk1vdmVUeXBlIHsKICAgICBDb2RlUG9pbnQsICAgICAg
IC8vIE1vdmUgYnkgYSBzaW5nbGUgY29kZSBwb2ludC4KICAgICBDaGFyYWN0ZXIsICAgICAgIC8v
IE1vdmUgdG8gdGhlIG5leHQgVW5pY29kZSBjaGFyYWN0ZXIgYnJlYWsuCiAgICAgQmFja3dhcmRE
ZWxldGlvbiAvLyBTdWJqZWN0IHRvIHBsYXRmb3JtIGNvbnZlbnRpb25zLgogfTsKIAorc3RydWN0
IElubGluZVJ1bkFuZE9mZnNldDsKKwogc3RydWN0IElubGluZUJveEFuZE9mZnNldCB7Ci0gICAg
SW5saW5lQm94QW5kT2Zmc2V0KExheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvciwgdW5zaWdu
ZWQgb2Zmc2V0KTsKKyAgICBJbmxpbmVCb3hBbmRPZmZzZXQoSW5saW5lUnVuQW5kT2Zmc2V0KTsK
IAogICAgIElubGluZUJveCogYm94IHsgbnVsbHB0ciB9OwogICAgIGludCBvZmZzZXQgeyAwIH07
CkBAIC0xNzgsNiArMTc2LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNSZW5kZXJlZENoYXJhY3Rl
cigpIGNvbnN0OwogICAgIGJvb2wgcmVuZGVyc0luRGlmZmVyZW50UG9zaXRpb24oY29uc3QgUG9z
aXRpb24mKSBjb25zdDsKIAorICAgIElubGluZVJ1bkFuZE9mZnNldCBpbmxpbmVSdW5BbmRPZmZz
ZXQoQWZmaW5pdHkpIGNvbnN0OworICAgIElubGluZVJ1bkFuZE9mZnNldCBpbmxpbmVSdW5BbmRP
ZmZzZXQoQWZmaW5pdHksIFRleHREaXJlY3Rpb24gcHJpbWFyeURpcmVjdGlvbikgY29uc3Q7CisK
ICAgICBJbmxpbmVCb3hBbmRPZmZzZXQgaW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5KSBjb25z
dDsKICAgICBJbmxpbmVCb3hBbmRPZmZzZXQgaW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5LCBU
ZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24pIGNvbnN0OwogCkBAIC0yMTksNiArMjIwLDgg
QEAgcHJpdmF0ZToKICAgICBQb3NpdGlvbiBwcmV2aW91c0NoYXJhY3RlclBvc2l0aW9uKEFmZmlu
aXR5KSBjb25zdDsKICAgICBQb3NpdGlvbiBuZXh0Q2hhcmFjdGVyUG9zaXRpb24oQWZmaW5pdHkp
IGNvbnN0OwogCisgICAgdm9pZCBlbnN1cmVMaW5lQm94ZXMoKSBjb25zdDsKKwogICAgIHN0YXRp
YyBBbmNob3JUeXBlIGFuY2hvclR5cGVGb3JMZWdhY3lFZGl0aW5nUG9zaXRpb24oTm9kZSogYW5j
aG9yTm9kZSwgdW5zaWduZWQgb2Zmc2V0KTsKIAogICAgIFJlZlB0cjxOb2RlPiBtX2FuY2hvck5v
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGUwNGU3
NjU3YzkzZi4uNDFkMjNiYzY5MGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCisjaW5jbHVkZSAiSW5saW5lUnVuQW5kT2Zmc2V0LmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4
dEJveC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC02Mzcs
MTAgKzYzOCwxMCBAQCBUZXh0RGlyZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjpkaXJlY3Rpb25PZlNl
bGVjdGlvbigpCiAgICAgLy8gY2FuIGNhdXNlIGxheW91dCwgd2hpY2ggaGFzIHRoZSBwb3RlbnRp
YWwgdG8gaW52YWxpZGF0ZSBsaW5lYm94ZXMuCiAgICAgYXV0byBzdGFydFBvc2l0aW9uID0gbV9z
ZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCk7CiAgICAgYXV0byBlbmRQb3NpdGlvbiA9IG1fc2VsZWN0
aW9uLnZpc2libGVFbmQoKTsKLSAgICBhdXRvIHN0YXJ0Qm94ID0gc3RhcnRQb3NpdGlvbi5pbmxp
bmVCb3hBbmRPZmZzZXQoKS5ib3g7Ci0gICAgYXV0byBlbmRCb3ggPSBlbmRQb3NpdGlvbi5pbmxp
bmVCb3hBbmRPZmZzZXQoKS5ib3g7Ci0gICAgaWYgKHN0YXJ0Qm94ICYmIGVuZEJveCAmJiBzdGFy
dEJveC0+ZGlyZWN0aW9uKCkgPT0gZW5kQm94LT5kaXJlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJu
IHN0YXJ0Qm94LT5kaXJlY3Rpb24oKTsKKyAgICBhdXRvIHN0YXJ0UnVuID0gc3RhcnRQb3NpdGlv
bi5pbmxpbmVSdW5BbmRPZmZzZXQoKS5ydW47CisgICAgYXV0byBlbmRSdW4gPSBlbmRQb3NpdGlv
bi5pbmxpbmVSdW5BbmRPZmZzZXQoKS5ydW47CisgICAgaWYgKHN0YXJ0UnVuICYmIGVuZFJ1biAm
JiBzdGFydFJ1bi0+ZGlyZWN0aW9uKCkgPT0gZW5kUnVuLT5kaXJlY3Rpb24oKSkKKyAgICAgICAg
cmV0dXJuIHN0YXJ0UnVuLT5kaXJlY3Rpb24oKTsKICAgICByZXR1cm4gZGlyZWN0aW9uT2ZFbmNs
b3NpbmdCbG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVQb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlv
bi5jcHAKaW5kZXggYTJlMDE0MDhiMzdlLi4wMWVkZDUzYzA3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIklubGluZVJ1bkFuZE9mZnNldC5oIgogI2luY2x1ZGUg
IklubGluZVRleHRCb3guaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmFuZ2Uu
aCIKQEAgLTYyMSw2ICs2MjIsMTYgQEAgVUNoYXIzMiBWaXNpYmxlUG9zaXRpb246OmNoYXJhY3Rl
ckFmdGVyKCkgY29uc3QKICAgICByZXR1cm4gY2g7CiB9CiAKK0lubGluZVJ1bkFuZE9mZnNldCBW
aXNpYmxlUG9zaXRpb246OmlubGluZVJ1bkFuZE9mZnNldCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZGVlcFBvc2l0aW9uLmlubGluZVJ1bkFuZE9mZnNldChtX2FmZmluaXR5KTsKK30KKworSW5s
aW5lUnVuQW5kT2Zmc2V0IFZpc2libGVQb3NpdGlvbjo6aW5saW5lUnVuQW5kT2Zmc2V0KFRleHRE
aXJlY3Rpb24gcHJpbWFyeURpcmVjdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZWVwUG9z
aXRpb24uaW5saW5lUnVuQW5kT2Zmc2V0KG1fYWZmaW5pdHksIHByaW1hcnlEaXJlY3Rpb24pOwor
fQorCiBhdXRvIFZpc2libGVQb3NpdGlvbjo6bG9jYWxDYXJldFJlY3QoKSBjb25zdCAtPiBMb2Nh
bENhcmV0UmVjdAogewogICAgIGF1dG8gbm9kZSA9IG1fZGVlcFBvc2l0aW9uLmFuY2hvck5vZGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5oCmluZGV4IDE3ZjgyMThm
YTJiOC4uYzdlNWViOGZiOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0
aW9uLmgKQEAgLTY3LDYgKzY3LDkgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMg
bm90IGhhbmRsZSBbdGFibGUsIDBdIGNvcnJlY3RseS4KICAgICBFbGVtZW50KiByb290RWRpdGFi
bGVFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kZWVwUG9zaXRpb24uaXNOb3ROdWxsKCkgPyBt
X2RlZXBQb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yb290RWRpdGFibGVFbGVtZW50KCkgOiAw
OyB9CiAKKyAgICBJbmxpbmVSdW5BbmRPZmZzZXQgaW5saW5lUnVuQW5kT2Zmc2V0KCkgY29uc3Q7
CisgICAgSW5saW5lUnVuQW5kT2Zmc2V0IGlubGluZVJ1bkFuZE9mZnNldChUZXh0RGlyZWN0aW9u
IHByaW1hcnlEaXJlY3Rpb24pIGNvbnN0OworCiAgICAgSW5saW5lQm94QW5kT2Zmc2V0IGlubGlu
ZUJveEFuZE9mZnNldCgpIGNvbnN0OwogICAgIElubGluZUJveEFuZE9mZnNldCBpbmxpbmVCb3hB
bmRPZmZzZXQoVGV4dERpcmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
Q292ZXJhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uQ292ZXJhZ2UuY3BwCmluZGV4IDUyYTJhMzkyNTA2Zi4uODBkODViODRlODI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25Db3ZlcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwCkBAIC0xODAsNyArMTgwLDcgQEAgc3RhdGlj
IE9wdGlvblNldDxBdm9pZGFuY2VSZWFzb24+IGNhblVzZUZvckZvbnRBbmRUZXh0KGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYgZmwKICAgICAgICAgICAgIC8vIE5vIG5lZWQgdG8gY2hlY2sgdGhlIGNv
ZGUgcGF0aCBhdCB0aGlzIHBvaW50LiBXZSBhbHJlYWR5IGtub3cgaXQgY2FuJ3QgYmUgc2ltcGxl
LgogICAgICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChGbG93SGFzQ29t
cGxleEZvbnRDb2RlUGF0aCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgVGV4dFJ1biBydW4oU3RyaW5nKHRleHRSZW5kZXJlci50ZXh0KCkp
KTsKKyAgICAgICAgICAgIFdlYkNvcmU6OlRleHRSdW4gcnVuKFN0cmluZyh0ZXh0UmVuZGVyZXIu
dGV4dCgpKSk7CiAgICAgICAgICAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKGZh
bHNlKTsKICAgICAgICAgICAgIGlmIChzdHlsZS5mb250Q2FzY2FkZSgpLmNvZGVQYXRoKHJ1bikg
IT0gRm9udENhc2NhZGU6OlNpbXBsZSkKICAgICAgICAgICAgICAgICBTRVRfUkVBU09OX0FORF9S
RVRVUk5fSUZfTkVFREVEKEZsb3dIYXNDb21wbGV4Rm9udENvZGVQYXRoLCByZWFzb25zLCBpbmNs
dWRlUmVhc29ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaAppbmRleCA1YmFmNzRm
MTY2MDkuLjIxNzU2ZGY1NDQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCkBA
IC03Myw2ICs3Myw4IEBAIHB1YmxpYzoKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIGJpZGlMZXZlbCgpICUgMiA/IFRleHREaXJlY3Rpb246OlJUTCA6IFRleHRE
aXJlY3Rpb246OkxUUjsgfQogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIGRpcmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OkxUUjsgfQogCisgICAgYm9v
bCBvblNhbWVMaW5lKGNvbnN0IFJ1biYpIGNvbnN0OworCiAgICAgLy8gRm9yIGludGVybWVkaWF0
ZSBwb3J0aW5nIHN0ZXBzIG9ubHkuCiAgICAgSW5saW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBj
b25zdDsKIApAQCAtMjY5LDYgKzI3MSwxNiBAQCBpbmxpbmUgdW5zaWduZWQgY2hhciBSdW46OmJp
ZGlMZXZlbCgpIGNvbnN0CiAgICAgfSk7CiB9CiAKK2lubGluZSBib29sIFJ1bjo6b25TYW1lTGlu
ZShjb25zdCBSdW4mIG90aGVyKSBjb25zdAoreworICAgIGlmIChtX3BhdGhWYXJpYW50LmluZGV4
KCkgIT0gb3RoZXIubV9wYXRoVmFyaWFudC5pbmRleCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbJl0oY29uc3QgYXV0
byYgcGF0aCkgeworICAgICAgICByZXR1cm4gcGF0aC5vblNhbWVMaW5lKFdURjo6Z2V0PHN0ZDo6
ZGVjYXlfdDxkZWNsdHlwZShwYXRoKT4+KG90aGVyLm1fcGF0aFZhcmlhbnQpKTsKKyAgICB9KTsK
K30KKwogaW5saW5lIElubGluZUJveCogUnVuOjpsZWdhY3lJbmxpbmVCb3goKSBjb25zdAogewog
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgKaW5kZXgg
NTg2MjI3MTJlNTBjLi4zNjg4N2ZiYjllNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
blJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCkBAIC05MSw4ICs5MSw5IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVnYWN5UGF0aCYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG1faW5saW5lQm94ID09IG90aGVyLm1faW5saW5lQm94OyB9Ci0gICAgYm9vbCBhdEVu
ZCgpIGNvbnN0IHsgcmV0dXJuICFtX2lubGluZUJveDsgfQorICAgIGJvb2wgb25TYW1lTGluZShj
b25zdCBMZWdhY3lQYXRoJiBvdGhlcikgY29uc3QgeyByZXR1cm4gJm1faW5saW5lQm94LT5yb290
KCkgPT0gJm90aGVyLm1faW5saW5lQm94LT5yb290KCk7IH0KIAorICAgIGJvb2wgYXRFbmQoKSBj
b25zdCB7IHJldHVybiAhbV9pbmxpbmVCb3g7IH0KICAgICB2b2lkIHNldEF0RW5kKCkgeyBtX2lu
bGluZUJveCA9IG51bGxwdHI7IH0KIAogICAgIElubGluZUJveCogbGVnYWN5SW5saW5lQm94KCkg
Y29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxJbmxpbmVCb3gqPihtX2lubGluZUJveCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKaW5kZXggY2E4
ZThiNGFlZTNlLi40MzU0ZmRkNjM2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1
bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC0xNDQsOCArMTQ0LDkgQEAgcHVibGljOgogICAgIH0K
IAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNb2Rlcm5QYXRoJiBvdGhlcikgY29uc3QgeyBy
ZXR1cm4gbV9pbmxpbmVDb250ZW50ID09IG90aGVyLm1faW5saW5lQ29udGVudCAmJiBtX3J1bklu
ZGV4ID09IG90aGVyLm1fcnVuSW5kZXg7IH0KLSAgICBib29sIGF0RW5kKCkgY29uc3QgeyByZXR1
cm4gbV9ydW5JbmRleCA9PSBydW5zKCkuc2l6ZSgpIHx8ICFydW4oKS5oYXNVbmRlcmx5aW5nTGF5
b3V0KCk7IH0KKyAgICBib29sIG9uU2FtZUxpbmUoY29uc3QgTW9kZXJuUGF0aCYgb3RoZXIpIGNv
bnN0IHsgcmV0dXJuIHJ1bigpLmxpbmVJbmRleCgpID09IG90aGVyLnJ1bigpLmxpbmVJbmRleCgp
OyB9CiAKKyAgICBib29sIGF0RW5kKCkgY29uc3QgeyByZXR1cm4gbV9ydW5JbmRleCA9PSBydW5z
KCkuc2l6ZSgpIHx8ICFydW4oKS5oYXNVbmRlcmx5aW5nTGF5b3V0KCk7IH0KICAgICB2b2lkIHNl
dEF0RW5kKCkgeyBtX3J1bkluZGV4ID0gcnVucygpLnNpemUoKTsgfQogCiAgICAgSW5saW5lQm94
KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5j
cHAKaW5kZXggM2U5OWJmODA3MGMwLi42MzBkNDZlMmI1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRHJhZ0ltYWdlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KyNpbmNsdWRlICJQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2ltcGxlUmFuZ2UuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5oCmluZGV4IDJlYjVkZDM2MGE3
NC4uNDU5NDlhMzFkODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dExpbmVCb3hlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0TGluZUJveGVzLmgKQEAgLTI3LDEzICsyNywxMyBAQAogCiAjaW5jbHVkZSAiTGF5b3V0UmVj
dC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlZpc2libGVQb3NpdGlv
bi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElubGluZVRleHRCb3g7CiBjbGFz
cyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclRleHQ7CitjbGFzcyBWaXNpYmxlUG9zaXRpb247
CiAKIGNsYXNzIFJlbmRlclRleHRMaW5lQm94ZXMgewogcHVibGljOgo=
</data>
<flag name="commit-queue"
          id="426461"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410504</attachid>
            <date>2020-10-04 23:22:44 -0700</date>
            <delta_ts>2020-10-05 07:39:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>inlineRunAndOffset-3.patch</filename>
            <type>text/plain</type>
            <size>22945</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NGJhNjdjZGMwYjkuLjI3MWI5MzczYjQwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDIwLTEwLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gQXZvaWQgZW5zdXJlTGluZUJveGVzIGZv
ciBzb21lIGNhbGwgc2l0ZXMgb2YgaW5saW5lQm94QW5kT2Zmc2V0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcyMjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZXBhcmF0ZSBpbmxpbmVSdW5BbmRPZmZz
ZXQgZnJvbSBpbmxpbmVCb3hBbmRPZmZzZXQuCisgICAgICAgIFRoZSBmb3JtZXQgcmV0dXJucyBp
dGVyYXRvciB3aGlsZSB0aGUgbGF0ZXIgZm9yY2VzIHRoZSBsZWdhY3kgcGF0aC4KKworICAgICAg
ICBVc2UgaW5saW5lUnVuQW5kT2Zmc2V0IGluIGEgZmV3IHBsYWNlcy4KKworICAgICAgICAqIGRv
bS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6cmVuZGVyc0luRGlm
ZmVyZW50UG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmlubGlu
ZVJ1bkFuZE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6aW5saW5l
Qm94QW5kT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjplbnN1cmVM
aW5lQm94ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94QW5kT2Zmc2V0OjpJ
bmxpbmVCb3hBbmRPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94QW5kT2Zmc2V0OjpJbmxpbmVCb3hBbmRPZmZzZXQp
OgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb246OmRpcmVjdGlvbk9mU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0
aW5nL1Zpc2libGVQb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9u
OjppbmxpbmVSdW5BbmRPZmZzZXQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpjYW5Vc2VGb3JGb250QW5kVGV4dCk6CisgICAgICAgICogbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpSdW46Om9uU2FtZUxpbmUgY29uc3QpOgorICAgICAgICAq
IGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0
aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxlZ2FjeVBhdGg6Om9u
U2FtZUxpbmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxl
Z2FjeVBhdGg6OmF0RW5kIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjpvblNhbWVMaW5lIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjphdEVuZCBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dExpbmVCb3hlcy5oOgorCiAyMDIwLTEwLTAyICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gQ29udmVydCByZXN0
IG9mIFBvc2l0aW9uOjppbmxpbmVCb3hBbmRPZmZzZXQgdG8gdXNlIGl0ZXJhdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCBjODc0OGEyMTYyN2MuLjYxZDg2YTg4ZTkzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCkBAIC01MjUsNiArNTI1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGVkaXRpbmcvRm9udFNoYWRvdy5oCiAgICAgZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5oCiAgICAgZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuaAorICAgIGVkaXRpbmcvSW5saW5lUnVu
QW5kT2Zmc2V0LmgKICAgICBlZGl0aW5nL1NlbGVjdGlvblJlY3RHYXRoZXJlci5oCiAgICAgZWRp
dGluZy9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaAogICAgIGVkaXRpbmcvU21hcnRSZXBsYWNl
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBjYTAwZjllMGEyNmIuLjdiNjcwMjUyM2JkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3NSw2ICs1MDc1LDcg
QEAKIAkJRTRDM0IxRkEwRjBFNDE2MTAwOTY5M0Y2IC8qIExlZ2FjeVRpbGVDYWNoZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRDM0IxRjkwRjBFNDE2
MTAwOTY5M0Y2IC8qIExlZ2FjeVRpbGVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0QzkxQTBFMTgwMjM0MzEwMEExN0Y2RCAvKiBUZXh0
UGFpbnRTdHlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRDOTFBMEQxODAyMzQzMTAwQTE3RjZEIC8qIFRleHRQYWludFN0eWxlLmggKi87IH07CiAJ
CUU0QzkxQTE2MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEM5MUExNTE4MDk5OUYx
MDBBMTdGNkQgLyogUmVuZGVyVGV4dExpbmVCb3hlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU0RDMzRjNCMjUyQUVFQ0QwMDgzN0QwNSAvKiBJ
bmxpbmVSdW5BbmRPZmZzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0RDMzRjM5MjUyQUVFQ0MwMDgzN0QwNSAvKiBJbmxpbmVSdW5BbmRPZmZzZXQu
aCAqLzsgfTsKIAkJRTRENThFQjUxN0I0REJEQzAwQ0JEQ0E4IC8qIFN0eWxlUmVzb2x2ZUZvckRv
Y3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NEQ1OEVCMzE3QjREQkRDMDBDQkRDQTggLyogU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuaCAqLzsg
fTsKIAkJRTRENThFQjkxN0I0RUQ4OTAwQ0JEQ0E4IC8qIFN0eWxlRm9udFNpemVGdW5jdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RDU4RUI3
MTdCNEVEODkwMENCRENBOCAvKiBTdHlsZUZvbnRTaXplRnVuY3Rpb25zLmggKi87IH07CiAJCUU0
RDU4RUJCMTdCOEYxMjgwMENCRENBOCAvKiBFbGVtZW50VHJhdmVyc2FsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEQ1OEVCQTE3QjhGMTI4MDBDQkRD
QTggLyogRWxlbWVudFRyYXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xNjAzMiw2ICsxNjAzMyw3IEBACiAJCUU0QzkxQTBGMTgwMjM0
MzkwMEExN0Y2RCAvKiBUZXh0UGFpbnRTdHlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUZXh0UGFpbnRTdHlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0QzkxQTE1MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRMaW5lQm94ZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRDOTFBMTcxODA5OTlGQjAwQTE3RjZEIC8q
IFJlbmRlclRleHRMaW5lQm94ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyVGV4dExpbmVCb3hlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU0RDMzRjM5MjUyQUVFQ0MwMDgzN0QwNSAvKiBJbmxpbmVSdW5BbmRPZmZzZXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lUnVuQW5kT2Zmc2V0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RDU4RUIyMTdCNERCREMwMENCRENBOCAvKiBTdHls
ZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0RDU4RUIzMTdCNERCREMwMENCRENBOCAvKiBTdHlsZVJlc29sdmVGb3JEb2N1bWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVJlc29sdmVGb3JEb2N1
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEQ1OEVCNjE3QjRFRDg5MDBD
QkRDQTggLyogU3R5bGVGb250U2l6ZUZ1bmN0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTdHlsZUZvbnRTaXplRnVuY3Rpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNTkxLDYgKzIyNTkzLDcgQEAKIAkJCQk5MzMwOUQ5NzA5OUU2
NDkxMDA1NkU1ODEgLyogSFRNTEludGVyY2hhbmdlLmggKi8sCiAJCQkJREIyM0MyQzkwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLywKIAkJCQlEQjIzQzJDQTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLywKKwkJCQlFNEQzM0Yz
OTI1MkFFRUNDMDA4MzdEMDUgLyogSW5saW5lUnVuQW5kT2Zmc2V0LmggKi8sCiAJCQkJOTMzMDlE
OUEwOTlFNjQ5MTAwNTZFNTgxIC8qIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwICovLAog
CQkJCTkzMzA5RDlCMDk5RTY0OTEwMDU2RTU4MSAvKiBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEOUMwOTlFNjQ5MTAwNTZFNTgxIC8qIEluc2VydExpbmVCcmVha0Nv
bW1hbmQuY3BwICovLApAQCAtMzQ2OTQsNiArMzQ2OTcsNyBAQAogCQkJCUUxRUU4Qjk5MjQxMzE5
NTAwMEU3OTRENiAvKiBYUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTJBOUY0QTI0OEE5OUUyMDAzRjA2QzggLyogWFJJbnRlcmFjdGlvbk1vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxRUU4Qjg0MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNw
YWNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0RDMzRjNCMjUyQUVFQ0QwMDgzN0QwNSAv
KiBJbmxpbmVSdW5BbmRPZmZzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4Qjc3MjQxMzE5
MUYwMEU3OTRENiAvKiBYUlJlZmVyZW5jZVNwYWNlVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTFFRThCNzkyNDEzMTkxRjAwRTc5NEQ2IC8qIFhSUmVuZGVyU3RhdGVJbml0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUVFOEI4RDI0MTMxOTUwMDBFNzk0RDYgLyogWFJTZXNzaW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggN2U1NzBmNWE4NTIyLi4w
ZTA1YWE5MGE4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJJbmxpbmVFbGVtZW50Qm94
LmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJJbmxpbmVSdW5BbmRP
ZmZzZXQuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTEwMSw5ICsx
MDIsOSBAQCBzdGF0aWMgTm9kZSogcHJldmlvdXNSZW5kZXJlZEVkaXRhYmxlKE5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUlubGluZUJveEFuZE9mZnNldDo6SW5saW5lQm94
QW5kT2Zmc2V0KExheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvciBydW4sIHVuc2lnbmVkIG9m
ZnNldCkKLSAgICA6IGJveChydW4gPyBydW4tPmxlZ2FjeUlubGluZUJveCgpIDogbnVsbHB0cikK
LSAgICAsIG9mZnNldChvZmZzZXQpCitJbmxpbmVCb3hBbmRPZmZzZXQ6OklubGluZUJveEFuZE9m
ZnNldChJbmxpbmVSdW5BbmRPZmZzZXQgcnVuQW5kT2Zmc2V0KQorICAgIDogYm94KHJ1bkFuZE9m
ZnNldC5ydW4gPyBydW5BbmRPZmZzZXQucnVuLT5sZWdhY3lJbmxpbmVCb3goKSA6IG51bGxwdHIp
CisgICAgLCBvZmZzZXQocnVuQW5kT2Zmc2V0Lm9mZnNldCkKIHsKIH0KIApAQCAtMTA3MSwyMSAr
MTA3MiwyMSBAQCBib29sIFBvc2l0aW9uOjpyZW5kZXJzSW5EaWZmZXJlbnRQb3NpdGlvbihjb25z
dCBQb3NpdGlvbiYgcG9zaXRpb24pIGNvbnN0CiAgICAgaWYgKHJlbmRlcmVyID09IHBvc2l0aW9u
UmVuZGVyZXIgJiYgdGhpc1JlbmRlcmVkT2Zmc2V0ID09IHBvc2l0aW9uUmVuZGVyZWRPZmZzZXQp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gYjEgPSBpbmxpbmVCb3hBbmRPZmZz
ZXQoQWZmaW5pdHk6OkRvd25zdHJlYW0pLmJveDsKLSAgICBhdXRvIGIyID0gcG9zaXRpb24uaW5s
aW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5OjpEb3duc3RyZWFtKS5ib3g7CisgICAgYXV0byBydW4x
ID0gaW5saW5lUnVuQW5kT2Zmc2V0KEFmZmluaXR5OjpEb3duc3RyZWFtKS5ydW47CisgICAgYXV0
byBydW4yID0gcG9zaXRpb24uaW5saW5lUnVuQW5kT2Zmc2V0KEFmZmluaXR5OjpEb3duc3RyZWFt
KS5ydW47CiAKLSAgICBMT0coRWRpdGluZywgInJlbmRlcmVyOiAgICAgICAgICAgICAgICVwIFsl
cF1cbiIsIHJlbmRlcmVyLCBiMSk7CisgICAgTE9HKEVkaXRpbmcsICJyZW5kZXJlcjogICAgICAg
ICAgICAgICAlcFxuIiwgcmVuZGVyZXIpOwogICAgIExPRyhFZGl0aW5nLCAidGhpc1JlbmRlcmVk
T2Zmc2V0OiAgICAgICAgICVkXG4iLCB0aGlzUmVuZGVyZWRPZmZzZXQpOwotICAgIExPRyhFZGl0
aW5nLCAicG9zUmVuZGVyZXI6ICAgICAgICAgICAgJXAgWyVwXVxuIiwgcG9zaXRpb25SZW5kZXJl
ciwgYjIpOworICAgIExPRyhFZGl0aW5nLCAicG9zUmVuZGVyZXI6ICAgICAgICAgICAgJXBcbiIs
IHBvc2l0aW9uUmVuZGVyZXIpOwogICAgIExPRyhFZGl0aW5nLCAicG9zUmVuZGVyZWRPZmZzZXQ6
ICAgICAgJWRcbiIsIHBvc2l0aW9uUmVuZGVyZWRPZmZzZXQpOwogICAgIExPRyhFZGl0aW5nLCAi
bm9kZSBtaW4vbWF4OiAgICAgICAgICAgJWQ6JWRcbiIsIGNhcmV0TWluT2Zmc2V0KCpkZXByZWNh
dGVkTm9kZSgpKSwgY2FyZXRNYXhPZmZzZXQoKmRlcHJlY2F0ZWROb2RlKCkpKTsKICAgICBMT0co
RWRpdGluZywgInBvcyBub2RlIG1pbi9tYXg6ICAgICAgICVkOiVkXG4iLCBjYXJldE1pbk9mZnNl
dCgqcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKSksIGNhcmV0TWF4T2Zmc2V0KCpwb3NpdGlvbi5k
ZXByZWNhdGVkTm9kZSgpKSk7CiAgICAgTE9HKEVkaXRpbmcsICItLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsK
IAotICAgIGlmICghYjEgfHwgIWIyKQorICAgIGlmICghcnVuMSB8fCAhcnVuMikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCZiMS0+cm9vdCgpICE9ICZiMi0+cm9vdCgpKQorICAg
IGlmICghcnVuMS0+b25TYW1lTGluZSgqcnVuMikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgaWYgKG5leHRSZW5kZXJlZEVkaXRhYmxlKGRlcHJlY2F0ZWROb2RlKCkpID09IHBvc2l0aW9u
LmRlcHJlY2F0ZWROb2RlKCkKQEAgLTExNDAsOSArMTE0MSw5IEBAIFBvc2l0aW9uIFBvc2l0aW9u
Ojp0cmFpbGluZ1doaXRlc3BhY2VQb3NpdGlvbihBZmZpbml0eSwgYm9vbCBjb25zaWRlck5vbkNv
bGxhcHNpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotSW5saW5lQm94QW5kT2Zmc2V0IFBvc2l0aW9u
OjppbmxpbmVCb3hBbmRPZmZzZXQoQWZmaW5pdHkgYWZmaW5pdHkpIGNvbnN0CitJbmxpbmVSdW5B
bmRPZmZzZXQgUG9zaXRpb246OmlubGluZVJ1bkFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSkg
Y29uc3QKIHsKLSAgICByZXR1cm4gaW5saW5lQm94QW5kT2Zmc2V0KGFmZmluaXR5LCBwcmltYXJ5
RGlyZWN0aW9uKCkpOworICAgIHJldHVybiBpbmxpbmVSdW5BbmRPZmZzZXQoYWZmaW5pdHksIHBy
aW1hcnlEaXJlY3Rpb24oKSk7CiB9CiAKIHN0YXRpYyBib29sIGlzTm9uVGV4dExlYWZDaGlsZChS
ZW5kZXJPYmplY3QmIG9iamVjdCkKQEAgLTExOTEsNyArMTE5Miw3IEBAIHN0YXRpYyBQb3NpdGlv
biB1cHN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9zaXRpb24pCiAg
ICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1JbmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246Omlu
bGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSwgVGV4dERpcmVjdGlvbiBwcmltYXJ5
RGlyZWN0aW9uKSBjb25zdAorSW5saW5lUnVuQW5kT2Zmc2V0IFBvc2l0aW9uOjppbmxpbmVSdW5B
bmRPZmZzZXQoQWZmaW5pdHkgYWZmaW5pdHksIFRleHREaXJlY3Rpb24gcHJpbWFyeURpcmVjdGlv
bikgY29uc3QKIHsKICAgICBhdXRvIGNhcmV0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkpOwogCkBAIC0xMjA2LDEyICsxMjA3LDEwIEBAIElu
bGluZUJveEFuZE9mZnNldCBQb3NpdGlvbjo6aW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5IGFm
ZmluaXR5LCBUZXh0RGlyZWN0aW9uCiAKICAgICBpZiAocmVuZGVyZXItPmlzQlIoKSkgewogICAg
ICAgICBhdXRvJiBsaW5lQnJlYWtSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxpbmVCcmVhaz4o
KnJlbmRlcmVyKTsKLSAgICAgICAgbGluZUJyZWFrUmVuZGVyZXIuZW5zdXJlTGluZUJveGVzKCk7
CiAgICAgICAgIGlmICghY2FyZXRPZmZzZXQpCiAgICAgICAgICAgICBydW4gPSBMYXlvdXRJbnRl
Z3JhdGlvbjo6cnVuRm9yKGxpbmVCcmVha1JlbmRlcmVyKTsKICAgICB9IGVsc2UgaWYgKGlzPFJl
bmRlclRleHQ+KCpyZW5kZXJlcikpIHsKICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVyID0gZG93
bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKTsKLSAgICAgICAgdGV4dFJlbmRlcmVyLmVuc3Vy
ZUxpbmVCb3hlcygpOwogCiAgICAgICAgIGF1dG8gdGV4dFJ1biA9IExheW91dEludGVncmF0aW9u
OjpmaXJzdFRleHRSdW5Gb3IodGV4dFJlbmRlcmVyKTsKICAgICAgICAgTGF5b3V0SW50ZWdyYXRp
b246OlRleHRSdW5JdGVyYXRvciBjYW5kaWRhdGU7CkBAIC0xMjYxLDcgKzEyNjAsNyBAQCBJbmxp
bmVCb3hBbmRPZmZzZXQgUG9zaXRpb246OmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZp
bml0eSwgVGV4dERpcmVjdGlvbgogICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB7IH0sIGNh
cmV0T2Zmc2V0IH07CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJldHVybiBlcXVpdmFs
ZW50LmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eTo6VXBzdHJlYW0sIHByaW1hcnlEaXJlY3Rp
b24pOworICAgICAgICAgICAgcmV0dXJuIGVxdWl2YWxlbnQuaW5saW5lUnVuQW5kT2Zmc2V0KEFm
ZmluaXR5OjpVcHN0cmVhbSwgcHJpbWFyeURpcmVjdGlvbik7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGlzPFJlbmRlckJveD4oKnJlbmRlcmVyKSkgewogICAgICAgICAgICAgcnVuID0gTGF5b3V0
SW50ZWdyYXRpb246OnJ1bkZvcihkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikpOwpAQCAt
MTM2OSw2ICsxMzY4LDM1IEBAIElubGluZUJveEFuZE9mZnNldCBQb3NpdGlvbjo6aW5saW5lQm94
QW5kT2Zmc2V0KEFmZmluaXR5IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9uCiAgICAgcmV0dXJuIHsg
cnVuLCBjYXJldE9mZnNldCB9OwogfQogCitJbmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246Omlu
bGluZUJveEFuZE9mZnNldChBZmZpbml0eSBhZmZpbml0eSkgY29uc3QKK3sKKyAgICByZXR1cm4g
aW5saW5lQm94QW5kT2Zmc2V0KGFmZmluaXR5LCBwcmltYXJ5RGlyZWN0aW9uKCkpOworfQorCitJ
bmxpbmVCb3hBbmRPZmZzZXQgUG9zaXRpb246OmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eSBh
ZmZpbml0eSwgVGV4dERpcmVjdGlvbiBwcmltYXJ5RGlyZWN0aW9uKSBjb25zdAoreworICAgIGVu
c3VyZUxpbmVCb3hlcygpOworCisgICAgcmV0dXJuIHsgaW5saW5lUnVuQW5kT2Zmc2V0KGFmZmlu
aXR5LCBwcmltYXJ5RGlyZWN0aW9uKSB9OworfQorCit2b2lkIFBvc2l0aW9uOjplbnN1cmVMaW5l
Qm94ZXMoKSBjb25zdAoreworICAgIGF1dG8gbm9kZSA9IGRlcHJlY2F0ZWROb2RlKCk7CisgICAg
aWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisgICAgYXV0byByZW5kZXJlciA9IG5vZGUtPnJl
bmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHJlbmRlcmVyLT5pc0JSKCkpIHsKKyAgICAgICAgZG93bmNhc3Q8UmVuZGVyTGluZUJyZWFrPigq
cmVuZGVyZXIpLmVuc3VyZUxpbmVCb3hlcygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKQorICAgICAgICBkb3duY2FzdDxSZW5kZXJU
ZXh0PigqcmVuZGVyZXIpLmVuc3VyZUxpbmVCb3hlcygpOworfQorCiBUZXh0RGlyZWN0aW9uIFBv
c2l0aW9uOjpwcmltYXJ5RGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIW1fYW5jaG9yTm9k
ZSB8fCAhbV9hbmNob3JOb2RlLT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCA4
YjBhNzQxYjJlOWEuLmMyYTFkMTljOWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmgKQEAgLTQzLDE4
ICs0MywxNiBAQCBjbGFzcyBUZXh0Owogc3RydWN0IEJvdW5kYXJ5UG9pbnQ7CiBzdHJ1Y3QgU2lt
cGxlUmFuZ2U7CiAKLW5hbWVzcGFjZSBMYXlvdXRJbnRlZ3JhdGlvbiB7Ci1jbGFzcyBSdW5JdGVy
YXRvcjsKLX0KLQogZW51bSBQb3NpdGlvbk1vdmVUeXBlIHsKICAgICBDb2RlUG9pbnQsICAgICAg
IC8vIE1vdmUgYnkgYSBzaW5nbGUgY29kZSBwb2ludC4KICAgICBDaGFyYWN0ZXIsICAgICAgIC8v
IE1vdmUgdG8gdGhlIG5leHQgVW5pY29kZSBjaGFyYWN0ZXIgYnJlYWsuCiAgICAgQmFja3dhcmRE
ZWxldGlvbiAvLyBTdWJqZWN0IHRvIHBsYXRmb3JtIGNvbnZlbnRpb25zLgogfTsKIAorc3RydWN0
IElubGluZVJ1bkFuZE9mZnNldDsKKwogc3RydWN0IElubGluZUJveEFuZE9mZnNldCB7Ci0gICAg
SW5saW5lQm94QW5kT2Zmc2V0KExheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvciwgdW5zaWdu
ZWQgb2Zmc2V0KTsKKyAgICBJbmxpbmVCb3hBbmRPZmZzZXQoSW5saW5lUnVuQW5kT2Zmc2V0KTsK
IAogICAgIElubGluZUJveCogYm94IHsgbnVsbHB0ciB9OwogICAgIGludCBvZmZzZXQgeyAwIH07
CkBAIC0xNzgsNiArMTc2LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNSZW5kZXJlZENoYXJhY3Rl
cigpIGNvbnN0OwogICAgIGJvb2wgcmVuZGVyc0luRGlmZmVyZW50UG9zaXRpb24oY29uc3QgUG9z
aXRpb24mKSBjb25zdDsKIAorICAgIElubGluZVJ1bkFuZE9mZnNldCBpbmxpbmVSdW5BbmRPZmZz
ZXQoQWZmaW5pdHkpIGNvbnN0OworICAgIElubGluZVJ1bkFuZE9mZnNldCBpbmxpbmVSdW5BbmRP
ZmZzZXQoQWZmaW5pdHksIFRleHREaXJlY3Rpb24gcHJpbWFyeURpcmVjdGlvbikgY29uc3Q7CisK
ICAgICBJbmxpbmVCb3hBbmRPZmZzZXQgaW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5KSBjb25z
dDsKICAgICBJbmxpbmVCb3hBbmRPZmZzZXQgaW5saW5lQm94QW5kT2Zmc2V0KEFmZmluaXR5LCBU
ZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24pIGNvbnN0OwogCkBAIC0yMTksNiArMjIwLDgg
QEAgcHJpdmF0ZToKICAgICBQb3NpdGlvbiBwcmV2aW91c0NoYXJhY3RlclBvc2l0aW9uKEFmZmlu
aXR5KSBjb25zdDsKICAgICBQb3NpdGlvbiBuZXh0Q2hhcmFjdGVyUG9zaXRpb24oQWZmaW5pdHkp
IGNvbnN0OwogCisgICAgdm9pZCBlbnN1cmVMaW5lQm94ZXMoKSBjb25zdDsKKwogICAgIHN0YXRp
YyBBbmNob3JUeXBlIGFuY2hvclR5cGVGb3JMZWdhY3lFZGl0aW5nUG9zaXRpb24oTm9kZSogYW5j
aG9yTm9kZSwgdW5zaWduZWQgb2Zmc2V0KTsKIAogICAgIFJlZlB0cjxOb2RlPiBtX2FuY2hvck5v
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IGUwNGU3
NjU3YzkzZi4uNDFkMjNiYzY5MGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCisjaW5jbHVkZSAiSW5saW5lUnVuQW5kT2Zmc2V0LmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4
dEJveC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC02Mzcs
MTAgKzYzOCwxMCBAQCBUZXh0RGlyZWN0aW9uIEZyYW1lU2VsZWN0aW9uOjpkaXJlY3Rpb25PZlNl
bGVjdGlvbigpCiAgICAgLy8gY2FuIGNhdXNlIGxheW91dCwgd2hpY2ggaGFzIHRoZSBwb3RlbnRp
YWwgdG8gaW52YWxpZGF0ZSBsaW5lYm94ZXMuCiAgICAgYXV0byBzdGFydFBvc2l0aW9uID0gbV9z
ZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCk7CiAgICAgYXV0byBlbmRQb3NpdGlvbiA9IG1fc2VsZWN0
aW9uLnZpc2libGVFbmQoKTsKLSAgICBhdXRvIHN0YXJ0Qm94ID0gc3RhcnRQb3NpdGlvbi5pbmxp
bmVCb3hBbmRPZmZzZXQoKS5ib3g7Ci0gICAgYXV0byBlbmRCb3ggPSBlbmRQb3NpdGlvbi5pbmxp
bmVCb3hBbmRPZmZzZXQoKS5ib3g7Ci0gICAgaWYgKHN0YXJ0Qm94ICYmIGVuZEJveCAmJiBzdGFy
dEJveC0+ZGlyZWN0aW9uKCkgPT0gZW5kQm94LT5kaXJlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJu
IHN0YXJ0Qm94LT5kaXJlY3Rpb24oKTsKKyAgICBhdXRvIHN0YXJ0UnVuID0gc3RhcnRQb3NpdGlv
bi5pbmxpbmVSdW5BbmRPZmZzZXQoKS5ydW47CisgICAgYXV0byBlbmRSdW4gPSBlbmRQb3NpdGlv
bi5pbmxpbmVSdW5BbmRPZmZzZXQoKS5ydW47CisgICAgaWYgKHN0YXJ0UnVuICYmIGVuZFJ1biAm
JiBzdGFydFJ1bi0+ZGlyZWN0aW9uKCkgPT0gZW5kUnVuLT5kaXJlY3Rpb24oKSkKKyAgICAgICAg
cmV0dXJuIHN0YXJ0UnVuLT5kaXJlY3Rpb24oKTsKICAgICByZXR1cm4gZGlyZWN0aW9uT2ZFbmNs
b3NpbmdCbG9jaygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0lu
bGluZVJ1bkFuZE9mZnNldC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbmxpbmVSdW5BbmRP
ZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzNGU0OTI3
Y2E0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5saW5lUnVu
QW5kT2Zmc2V0LmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBJbmxpbmVSdW5BbmRPZmZzZXQgeworICAgIExheW91dEludGVn
cmF0aW9uOjpSdW5JdGVyYXRvciBydW4geyB9OworICAgIHVuc2lnbmVkIG9mZnNldCB7IDAgfTsK
K307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAppbmRl
eCBhMmUwMTQwOGIzN2UuLjAxZWRkNTNjMDc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VmlzaWJsZVBvc2l0aW9uLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiSW5saW5lUnVuQW5kT2Zmc2V0LmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4
dEJveC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSYW5nZS5oIgpAQCAtNjIx
LDYgKzYyMiwxNiBAQCBVQ2hhcjMyIFZpc2libGVQb3NpdGlvbjo6Y2hhcmFjdGVyQWZ0ZXIoKSBj
b25zdAogICAgIHJldHVybiBjaDsKIH0KIAorSW5saW5lUnVuQW5kT2Zmc2V0IFZpc2libGVQb3Np
dGlvbjo6aW5saW5lUnVuQW5kT2Zmc2V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kZWVwUG9z
aXRpb24uaW5saW5lUnVuQW5kT2Zmc2V0KG1fYWZmaW5pdHkpOworfQorCitJbmxpbmVSdW5BbmRP
ZmZzZXQgVmlzaWJsZVBvc2l0aW9uOjppbmxpbmVSdW5BbmRPZmZzZXQoVGV4dERpcmVjdGlvbiBw
cmltYXJ5RGlyZWN0aW9uKSBjb25zdAoreworICAgIHJldHVybiBtX2RlZXBQb3NpdGlvbi5pbmxp
bmVSdW5BbmRPZmZzZXQobV9hZmZpbml0eSwgcHJpbWFyeURpcmVjdGlvbik7Cit9CisKIGF1dG8g
VmlzaWJsZVBvc2l0aW9uOjpsb2NhbENhcmV0UmVjdCgpIGNvbnN0IC0+IExvY2FsQ2FyZXRSZWN0
CiB7CiAgICAgYXV0byBub2RlID0gbV9kZWVwUG9zaXRpb24uYW5jaG9yTm9kZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmgKaW5kZXggMTdmODIxOGZhMmI4Li5jN2U1
ZWI4ZmI5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uaApAQCAt
NjcsNiArNjcsOSBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgaGFuZGxl
IFt0YWJsZSwgMF0gY29ycmVjdGx5LgogICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiBtX2RlZXBQb3NpdGlvbi5pc05vdE51bGwoKSA/IG1fZGVlcFBvc2l0
aW9uLmRlcHJlY2F0ZWROb2RlKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA6IDA7IH0KIAorICAg
IElubGluZVJ1bkFuZE9mZnNldCBpbmxpbmVSdW5BbmRPZmZzZXQoKSBjb25zdDsKKyAgICBJbmxp
bmVSdW5BbmRPZmZzZXQgaW5saW5lUnVuQW5kT2Zmc2V0KFRleHREaXJlY3Rpb24gcHJpbWFyeURp
cmVjdGlvbikgY29uc3Q7CisKICAgICBJbmxpbmVCb3hBbmRPZmZzZXQgaW5saW5lQm94QW5kT2Zm
c2V0KCkgY29uc3Q7CiAgICAgSW5saW5lQm94QW5kT2Zmc2V0IGlubGluZUJveEFuZE9mZnNldChU
ZXh0RGlyZWN0aW9uIHByaW1hcnlEaXJlY3Rpb24pIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25D
b3ZlcmFnZS5jcHAKaW5kZXggNTJhMmEzOTI1MDZmLi44MGQ4NWI4NGU4MjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVy
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25Db3ZlcmFnZS5jcHAKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgT3B0aW9uU2V0
PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNlRm9yRm9udEFuZFRleHQoY29uc3QgUmVuZGVyQmxvY2tG
bG93JiBmbAogICAgICAgICAgICAgLy8gTm8gbmVlZCB0byBjaGVjayB0aGUgY29kZSBwYXRoIGF0
IHRoaXMgcG9pbnQuIFdlIGFscmVhZHkga25vdyBpdCBjYW4ndCBiZSBzaW1wbGUuCiAgICAgICAg
ICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dIYXNDb21wbGV4Rm9udENv
ZGVQYXRoLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBUZXh0UnVuIHJ1bihTdHJpbmcodGV4dFJlbmRlcmVyLnRleHQoKSkpOworICAgICAg
ICAgICAgV2ViQ29yZTo6VGV4dFJ1biBydW4oU3RyaW5nKHRleHRSZW5kZXJlci50ZXh0KCkpKTsK
ICAgICAgICAgICAgIHJ1bi5zZXRDaGFyYWN0ZXJTY2FuRm9yQ29kZVBhdGgoZmFsc2UpOwogICAg
ICAgICAgICAgaWYgKHN0eWxlLmZvbnRDYXNjYWRlKCkuY29kZVBhdGgocnVuKSAhPSBGb250Q2Fz
Y2FkZTo6U2ltcGxlKQogICAgICAgICAgICAgICAgIFNFVF9SRUFTT05fQU5EX1JFVFVSTl9JRl9O
RUVERUQoRmxvd0hhc0NvbXBsZXhGb250Q29kZVBhdGgsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25z
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCmluZGV4IDViYWY3NGYxNjYwOS4uMjE3
NTZkZjU0NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKQEAgLTczLDYgKzcz
LDggQEAgcHVibGljOgogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKCkgY29uc3QgeyByZXR1
cm4gYmlkaUxldmVsKCkgJSAyID8gVGV4dERpcmVjdGlvbjo6UlRMIDogVGV4dERpcmVjdGlvbjo6
TFRSOyB9CiAgICAgYm9vbCBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
ZGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6TFRSOyB9CiAKKyAgICBib29sIG9uU2FtZUxp
bmUoY29uc3QgUnVuJikgY29uc3Q7CisKICAgICAvLyBGb3IgaW50ZXJtZWRpYXRlIHBvcnRpbmcg
c3RlcHMgb25seS4KICAgICBJbmxpbmVCb3gqIGxlZ2FjeUlubGluZUJveCgpIGNvbnN0OwogCkBA
IC0yNjksNiArMjcxLDE2IEBAIGlubGluZSB1bnNpZ25lZCBjaGFyIFJ1bjo6YmlkaUxldmVsKCkg
Y29uc3QKICAgICB9KTsKIH0KIAoraW5saW5lIGJvb2wgUnVuOjpvblNhbWVMaW5lKGNvbnN0IFJ1
biYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKG1fcGF0aFZhcmlhbnQuaW5kZXgoKSAhPSBvdGhl
ci5tX3BhdGhWYXJpYW50LmluZGV4KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFsmXShjb25zdCBhdXRvJiBwYXRoKSB7
CisgICAgICAgIHJldHVybiBwYXRoLm9uU2FtZUxpbmUoV1RGOjpnZXQ8c3RkOjpkZWNheV90PGRl
Y2x0eXBlKHBhdGgpPj4ob3RoZXIubV9wYXRoVmFyaWFudCkpOworICAgIH0pOworfQorCiBpbmxp
bmUgSW5saW5lQm94KiBSdW46OmxlZ2FjeUlubGluZUJveCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JMZWdhY3lQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaAppbmRleCA1ODYyMjcxMmU1
MGMuLjM2ODg3ZmJiOWU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0
b3JMZWdhY3lQYXRoLmgKQEAgLTkxLDggKzkxLDkgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBMZWdhY3lQYXRoJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9p
bmxpbmVCb3ggPT0gb3RoZXIubV9pbmxpbmVCb3g7IH0KLSAgICBib29sIGF0RW5kKCkgY29uc3Qg
eyByZXR1cm4gIW1faW5saW5lQm94OyB9CisgICAgYm9vbCBvblNhbWVMaW5lKGNvbnN0IExlZ2Fj
eVBhdGgmIG90aGVyKSBjb25zdCB7IHJldHVybiAmbV9pbmxpbmVCb3gtPnJvb3QoKSA9PSAmb3Ro
ZXIubV9pbmxpbmVCb3gtPnJvb3QoKTsgfQogCisgICAgYm9vbCBhdEVuZCgpIGNvbnN0IHsgcmV0
dXJuICFtX2lubGluZUJveDsgfQogICAgIHZvaWQgc2V0QXRFbmQoKSB7IG1faW5saW5lQm94ID0g
bnVsbHB0cjsgfQogCiAgICAgSW5saW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdCB7IHJl
dHVybiBjb25zdF9jYXN0PElubGluZUJveCo+KG1faW5saW5lQm94KTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRl
cmF0b3JNb2Rlcm5QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaAppbmRleCBjYThlOGI0YWVlM2Uu
LjQzNTRmZGQ2MzZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JN
b2Rlcm5QYXRoLmgKQEAgLTE0NCw4ICsxNDQsOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IE1vZGVyblBhdGgmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2lu
bGluZUNvbnRlbnQgPT0gb3RoZXIubV9pbmxpbmVDb250ZW50ICYmIG1fcnVuSW5kZXggPT0gb3Ro
ZXIubV9ydW5JbmRleDsgfQotICAgIGJvb2wgYXRFbmQoKSBjb25zdCB7IHJldHVybiBtX3J1bklu
ZGV4ID09IHJ1bnMoKS5zaXplKCkgfHwgIXJ1bigpLmhhc1VuZGVybHlpbmdMYXlvdXQoKTsgfQor
ICAgIGJvb2wgb25TYW1lTGluZShjb25zdCBNb2Rlcm5QYXRoJiBvdGhlcikgY29uc3QgeyByZXR1
cm4gcnVuKCkubGluZUluZGV4KCkgPT0gb3RoZXIucnVuKCkubGluZUluZGV4KCk7IH0KIAorICAg
IGJvb2wgYXRFbmQoKSBjb25zdCB7IHJldHVybiBtX3J1bkluZGV4ID09IHJ1bnMoKS5zaXplKCkg
fHwgIXJ1bigpLmhhc1VuZGVybHlpbmdMYXlvdXQoKTsgfQogICAgIHZvaWQgc2V0QXRFbmQoKSB7
IG1fcnVuSW5kZXggPSBydW5zKCkuc2l6ZSgpOyB9CiAKICAgICBJbmxpbmVCb3gqIGxlZ2FjeUlu
bGluZUJveCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAppbmRleCAz
ZTk5YmY4MDcwYzAuLjYzMGQ0NmUyYjU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJTaW1wbGVSYW5nZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0TGluZUJveGVzLmgKaW5kZXggMmViNWRkMzYwYTc0Li40NTk0OWEz
MWQ4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0TGlu
ZUJveGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94
ZXMuaApAQCAtMjcsMTMgKzI3LDEzIEBACiAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCi0jaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5saW5lVGV4dEJveDsKIGNsYXNzIFJlbmRlclN0
eWxlOwogY2xhc3MgUmVuZGVyVGV4dDsKK2NsYXNzIFZpc2libGVQb3NpdGlvbjsKIAogY2xhc3Mg
UmVuZGVyVGV4dExpbmVCb3hlcyB7CiBwdWJsaWM6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>