<?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>138818</bug_id>
          
          <creation_ts>2014-11-17 18:44:38 -0800</creation_ts>
          <short_desc>Simple line layout: Add renderer based rect collecting to RunResolver.</short_desc>
          <delta_ts>2014-11-19 07:40:31 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1049378</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-11-17 18:44:38 -0800</bug_when>
    <thetext>This is in preparation to multiple renderers support. RunResolver should be able to collect rects for a particular renderer that might overlap multiple runs. (or might be just a subset of a Run)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049392</commentid>
    <comment_count>1</comment_count>
      <attachid>241761</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-11-17 21:12:00 -0800</bug_when>
    <thetext>Created attachment 241761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049552</commentid>
    <comment_count>2</comment_count>
      <attachid>241800</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-11-18 12:04:27 -0800</bug_when>
    <thetext>Created attachment 241800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049555</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-11-18 12:28:52 -0800</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049773</commentid>
    <comment_count>4</comment_count>
      <attachid>241800</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-19 07:40:27 -0800</bug_when>
    <thetext>Comment on attachment 241800
Patch

Clearing flags on attachment: 241800

Committed r176317: &lt;http://trac.webkit.org/changeset/176317&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049774</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-19 07:40:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241761</attachid>
            <date>2014-11-17 21:12:00 -0800</date>
            <delta_ts>2014-11-18 12:04:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138818-20141117211212.patch</filename>
            <type>text/plain</type>
            <size>15142</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQ0NjEzZDkyMjNhODA2
MzFjOGZkY2U1NGNlYTVkMjk3OTdmY2E0ZC4uNmY5ODljMjc2YjIxN2ViNWQyZDMxZDY4NWZhN2Q4
YjAxZjM1MjA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDE0LTExLTE3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0
OiBBZGQgcmVuZGVyZXIgYmFzZWQgcmVjdCBjb2xsZWN0aW5nIHRvIFJ1blJlc29sdmVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4ODE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBw
cmVwYXJhdGlvbiB0byBtdWx0aXBsZSByZW5kZXJlcnMgc3VwcG9ydC4KKyAgICAgICAgUnVuUmVz
b2x2ZXIgc2hvdWxkIGJlIGFibGUgdG8gY29sbGVjdCByZWN0cyBmb3IgYSBwYXJ0aWN1bGFyIHJl
bmRlcmVyCisgICAgICAgIHRoYXQgbWlnaHQgb3ZlcmxhcCBtdWx0aXBsZSBydW5zLiAob3IgbWln
aHQganVzdCBiZSBhIHN1YnNldCBvZiBhIFJ1bikKKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29u
dGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6Rmxvd0NvbnRl
bnRzOjp0ZXh0KTogSXQgb3BlcmF0ZXMgb24gYSBzaW5nbGUgcmVuZGVyZXIgY3VycmVudGx5Lgor
ICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6Rmxvd0NvbnRlbnRzOjpyZXNvbHZl
UmVuZGVyZXJQb3NpdGlvbnMpOiBJdCBvcGVyYXRlcyBvbiBhIHNpbmdsZSByZW5kZXJlciBjdXJy
ZW50bHkuCisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojpjb21wdXRlVGV4dEJvdW5kaW5nQm94
KToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OmNvbXB1dGVUZXh0Rmlyc3RS
dW5Mb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojpjb2xsZWN0
VGV4dEFic29sdXRlUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6
Y29sbGVjdFRleHRBYnNvbHV0ZVF1YWRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVM
YXlvdXQ6OnNob3dMaW5lTGF5b3V0Rm9yRmxvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1NpbXBs
ZUxpbmVMYXlvdXRSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5
b3V0OjpiYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlv
dXQ6OmxpbmVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojps
aW5lU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpSdW5SZXNvbHZl
cjo6UnVuOjpyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OlJ1blJl
c29sdmVyOjpSdW46OnJlY3RGb3JUZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlTGluZUxheW91dDo6UnVuUmVzb2x2ZXI6OlJ1bjo6YmFzZWxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2ltcGxlTGluZUxheW91dDo6UnVuUmVzb2x2ZXI6OlJ1bjo6dGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpSdW5SZXNvbHZlcjo6UnVuOjpjb21wdXRlUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpSdW5SZXNvbHZlcjo6UnVu
UmVzb2x2ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIu
aDoKKworMjAxNC0xMS0xNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCiAgICAg
ICAgIFNpbXBsZSBsaW5lIGxheW91dDogUmVuYW1lIEZsb3dDb250ZW50SXRlcmF0b3IgYW5kIG1v
dmUgaW1wbGVtZW50YXRpb24gdG8gU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50cy5jcHAKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODc5OQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZsb3dD
b250ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZs
b3dDb250ZW50cy5jcHAKaW5kZXggNDQ2MzllYmM2Nzc5OGZjZDZlOGRjYTYwYzk0ZTJiZGE0NGFh
YzYxMy4uMzU3OGMzY2RlMjU1NjZiOWYwOTYyNTE3M2ExZWNjZmU2YWVkZjE5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxvd0Nv
bnRlbnRzLmNwcApAQCAtNjAsNiArNjAsMTIgQEAgdW5zaWduZWQgRmxvd0NvbnRlbnRzOjpmaW5k
TmV4dE5vbldoaXRlc3BhY2VQb3NpdGlvbih1bnNpZ25lZCBwb3NpdGlvbiwgdW5zaWduZWQKICAg
ICByZXR1cm4gbGVuZ3RoOwogfQogCitTdHJpbmcgRmxvd0NvbnRlbnRzOjp0ZXh0KHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvKSBjb25zdAoreworICAgIEFTU0VSVCh0byA8PSBtX2xpbmVCcmVh
a0l0ZXJhdG9yLnN0cmluZygpLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gbV9saW5lQnJlYWtJdGVy
YXRvci5zdHJpbmcoKS5zdWJzdHJpbmcoZnJvbSwgdG8gLSBmcm9tKTsKK30KKwogZmxvYXQgRmxv
d0NvbnRlbnRzOjp0ZXh0V2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIGZsb2F0IHhQ
b3NpdGlvbikgY29uc3QKIHsKICAgICBTdHJpbmcgc3RyaW5nID0gbV9saW5lQnJlYWtJdGVyYXRv
ci5zdHJpbmcoKTsKQEAgLTc3LDUgKzgzLDEzIEBAIGZsb2F0IEZsb3dDb250ZW50czo6dGV4dFdp
ZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBmbG9hdCB4UG9zaXRpb24pIGNvbnN0CiAg
ICAgcmV0dXJuIG1fc3R5bGUuZm9udC53aWR0aChydW4pOwogfQogCitib29sIEZsb3dDb250ZW50
czo6cmVzb2x2ZVJlbmRlcmVyUG9zaXRpb25zKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCB1
bnNpZ25lZCYgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQmIGVuZFBvc2l0aW9uKSBjb25zdAorewor
ICAgIEFTU0VSVF9VTlVTRUQocmVuZGVyZXIsICZyZW5kZXJlciA9PSBkb3duY2FzdDxSZW5kZXJU
ZXh0PihtX2Zsb3cuZmlyc3RDaGlsZCgpKSk7CisgICAgc3RhcnRQb3NpdGlvbiA9IDA7CisgICAg
ZW5kUG9zaXRpb24gPSBtX2xpbmVCcmVha0l0ZXJhdG9yLnN0cmluZygpLmxlbmd0aCgpOworICAg
IHJldHVybiB0cnVlOworfQorCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMuaAppbmRleCBiNTZmYzViNTg2YmQ3
OTQyMGE5ZjYwYWYyMDFjZjkwYjNhZjgwNjEyLi42YzI1YTdkYTU2OTc4MTEyMTdiZWYwMTg0MGRj
NDUxZTM3MzZmZTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxl
TGluZUxheW91dEZsb3dDb250ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
aW1wbGVMaW5lTGF5b3V0Rmxvd0NvbnRlbnRzLmgKQEAgLTQzLDExICs0MywxNCBAQCBwdWJsaWM6
CiAgICAgdW5zaWduZWQgZmluZE5leHRCcmVha2FibGVQb3NpdGlvbih1bnNpZ25lZCBwb3NpdGlv
bik7CiAgICAgdW5zaWduZWQgZmluZE5leHROb25XaGl0ZXNwYWNlUG9zaXRpb24odW5zaWduZWQg
cG9zaXRpb24sIHVuc2lnbmVkJiBzcGFjZUNvdW50KSBjb25zdDsKIAorICAgIFN0cmluZyB0ZXh0
KHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKSBjb25zdDsKICAgICBmbG9hdCB0ZXh0V2lkdGgo
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIGZsb2F0IHhQb3NpdGlvbikgY29uc3Q7CiAKICAg
ICBib29sIGlzTmV3bGluZUNoYXJhY3Rlcih1bnNpZ25lZCBwb3NpdGlvbikgY29uc3Q7CiAgICAg
Ym9vbCBpc0VuZE9mQ29udGVudCh1bnNpZ25lZCBwb3NpdGlvbikgY29uc3Q7CiAKKyAgICBib29s
IHJlc29sdmVSZW5kZXJlclBvc2l0aW9ucyhjb25zdCBSZW5kZXJUZXh0JiwgdW5zaWduZWQmIHN0
YXJ0UG9zaXRpb24sIHVuc2lnbmVkJiBlbmRQb3NpdGlvbikgY29uc3Q7CisKICAgICBjbGFzcyBT
dHlsZSB7CiAgICAgcHVibGljOgogICAgICAgICBTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91
dEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91
dEZ1bmN0aW9ucy5jcHAKaW5kZXggYzZhYzcyYmFkMDZhNmE0OGFjNTkxOGI5YTdkYTFkZGYzYmVi
ZWEyZi4uYmM0ZjllYWI3MzM1ZTBhODY0NzQzNWVlYWU0MDc0ZmI3ODMwZGM3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25z
LmNwcApAQCAtMTM2LDM4ICsxMzYsMjkgQEAgdm9pZCBjb2xsZWN0Rmxvd092ZXJmbG93KFJlbmRl
ckJsb2NrRmxvdyYgZmxvdywgY29uc3QgTGF5b3V0JiBsYXlvdXQpCiAKIEludFJlY3QgY29tcHV0
ZVRleHRCb3VuZGluZ0JveChjb25zdCBSZW5kZXJUZXh0JiB0ZXh0UmVuZGVyZXIsIGNvbnN0IExh
eW91dCYgbGF5b3V0KQogewotICAgIGF1dG8gcmVzb2x2ZXIgPSBsaW5lUmVzb2x2ZXIoZG93bmNh
c3Q8UmVuZGVyQmxvY2tGbG93PigqdGV4dFJlbmRlcmVyLnBhcmVudCgpKSwgbGF5b3V0KTsKLSAg
ICBhdXRvIGl0ID0gcmVzb2x2ZXIuYmVnaW4oKTsKLSAgICBhdXRvIGVuZCA9IHJlc29sdmVyLmVu
ZCgpOwotICAgIGlmIChpdCA9PSBlbmQpCi0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAg
YXV0byBmaXJzdExpbmVSZWN0ID0gKml0OwotICAgIGZsb2F0IGxlZnQgPSBmaXJzdExpbmVSZWN0
LngoKTsKLSAgICBmbG9hdCByaWdodCA9IGZpcnN0TGluZVJlY3QubWF4WCgpOwotICAgIGZsb2F0
IGJvdHRvbSA9IGZpcnN0TGluZVJlY3QubWF4WSgpOwotICAgIGZvciAoKytpdDsgaXQgIT0gZW5k
OyArK2l0KSB7Ci0gICAgICAgIGF1dG8gcmVjdCA9ICppdDsKLSAgICAgICAgaWYgKHJlY3QueCgp
IDwgbGVmdCkKLSAgICAgICAgICAgIGxlZnQgPSByZWN0LngoKTsKLSAgICAgICAgaWYgKHJlY3Qu
bWF4WCgpID4gcmlnaHQpCi0gICAgICAgICAgICByaWdodCA9IHJlY3QubWF4WCgpOwotICAgICAg
ICBpZiAocmVjdC5tYXhZKCkgPiBib3R0b20pCi0gICAgICAgICAgICBib3R0b20gPSByZWN0Lm1h
eFkoKTsKKyAgICBhdXRvIHJlc29sdmVyID0gcnVuUmVzb2x2ZXIoZG93bmNhc3Q8UmVuZGVyQmxv
Y2tGbG93PigqdGV4dFJlbmRlcmVyLnBhcmVudCgpKSwgbGF5b3V0KTsKKyAgICBGbG9hdFJlY3Qg
Ym91bmRpbmdCb3hSZWN0OworICAgIGZvciAoYXV0byBpdCA9IHJlc29sdmVyLmJlZ2luKCksIGVu
ZCA9IHJlc29sdmVyLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgRmxvYXRSZWN0
IHJlY3QgPSAoKml0KS5yZWN0Rm9yVGV4dFJlbmRlcmVyKHRleHRSZW5kZXJlcik7CisgICAgICAg
IGlmIChyZWN0ID09IEZsb2F0UmVjdCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGlmIChib3VuZGluZ0JveFJlY3QgPT0gRmxvYXRSZWN0KCkpCisgICAgICAgICAgICBib3VuZGlu
Z0JveFJlY3QgPSByZWN0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBib3VuZGluZ0JveFJl
Y3QudW5pdGVFdmVuSWZFbXB0eShyZWN0KTsKICAgICB9Ci0gICAgZmxvYXQgeCA9IGxlZnQ7Ci0g
ICAgZmxvYXQgeSA9IGZpcnN0TGluZVJlY3QueSgpOwotICAgIGZsb2F0IHdpZHRoID0gcmlnaHQg
LSBsZWZ0OwotICAgIGZsb2F0IGhlaWdodCA9IGJvdHRvbSAtIHk7Ci0gICAgcmV0dXJuIGVuY2xv
c2luZ0ludFJlY3QoRmxvYXRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKKyAgICByZXR1cm4g
ZW5jbG9zaW5nSW50UmVjdChib3VuZGluZ0JveFJlY3QpOwogfQogCiBJbnRQb2ludCBjb21wdXRl
VGV4dEZpcnN0UnVuTG9jYXRpb24oY29uc3QgUmVuZGVyVGV4dCYgdGV4dFJlbmRlcmVyLCBjb25z
dCBMYXlvdXQmIGxheW91dCkKIHsKICAgICBhdXRvIHJlc29sdmVyID0gcnVuUmVzb2x2ZXIoZG93
bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqdGV4dFJlbmRlcmVyLnBhcmVudCgpKSwgbGF5b3V0KTsK
LSAgICBhdXRvIGJlZ2luID0gcmVzb2x2ZXIuYmVnaW4oKTsKLSAgICBpZiAoYmVnaW4gPT0gcmVz
b2x2ZXIuZW5kKCkpCi0gICAgICAgIHJldHVybiBJbnRQb2ludCgpOwotICAgIHJldHVybiBmbG9v
cmVkSW50UG9pbnQoKCpiZWdpbikucmVjdCgpLmxvY2F0aW9uKCkpOworICAgIGZvciAoYXV0byBp
dCA9IHJlc29sdmVyLmJlZ2luKCksIGVuZCA9IHJlc29sdmVyLmVuZCgpOyBpdCAhPSBlbmQ7ICsr
aXQpIHsKKyAgICAgICAgYXV0byByZWN0ID0gKCppdCkucmVjdEZvclRleHRSZW5kZXJlcih0ZXh0
UmVuZGVyZXIpOworICAgICAgICBpZiAocmVjdCAhPSBMYXlvdXRSZWN0KCkpCisgICAgICAgICAg
ICByZXR1cm4gZmxvb3JlZEludFBvaW50KHJlY3QubG9jYXRpb24oKSk7CisgICAgfQorICAgIHJl
dHVybiBJbnRQb2ludCgwLCAwKTsKIH0KIAogVmVjdG9yPEludFJlY3Q+IGNvbGxlY3RUZXh0QWJz
b2x1dGVSZWN0cyhjb25zdCBSZW5kZXJUZXh0JiB0ZXh0UmVuZGVyZXIsIGNvbnN0IExheW91dCYg
bGF5b3V0LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpCkBAIC0xNzYsNyAr
MTY3LDkgQEAgVmVjdG9yPEludFJlY3Q+IGNvbGxlY3RUZXh0QWJzb2x1dGVSZWN0cyhjb25zdCBS
ZW5kZXJUZXh0JiB0ZXh0UmVuZGVyZXIsIGNvbnN0IEwKICAgICBhdXRvIHJlc29sdmVyID0gcnVu
UmVzb2x2ZXIoZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqdGV4dFJlbmRlcmVyLnBhcmVudCgp
KSwgbGF5b3V0KTsKICAgICBmb3IgKGF1dG8gaXQgPSByZXNvbHZlci5iZWdpbigpLCBlbmQgPSBy
ZXNvbHZlci5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIHJ1
biA9ICppdDsKLSAgICAgICAgYXV0byByZWN0ID0gcnVuLnJlY3QoKTsKKyAgICAgICAgYXV0byBy
ZWN0ID0gcnVuLnJlY3RGb3JUZXh0UmVuZGVyZXIodGV4dFJlbmRlcmVyKTsKKyAgICAgICAgaWYg
KHJlY3QgPT0gTGF5b3V0UmVjdCgpKQorICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHJl
Y3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChhY2N1bXVsYXRlZE9mZnNldCAr
IHJlY3QubG9jYXRpb24oKSwgcmVjdC5zaXplKCkpKSk7CiAgICAgfQogICAgIHJldHVybiByZWN0
czsKQEAgLTE4OCw3ICsxODEsOSBAQCBWZWN0b3I8RmxvYXRRdWFkPiBjb2xsZWN0VGV4dEFic29s
dXRlUXVhZHMoY29uc3QgUmVuZGVyVGV4dCYgdGV4dFJlbmRlcmVyLCBjb25zdAogICAgIGF1dG8g
cmVzb2x2ZXIgPSBydW5SZXNvbHZlcihkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCp0ZXh0UmVu
ZGVyZXIucGFyZW50KCkpLCBsYXlvdXQpOwogICAgIGZvciAoYXV0byBpdCA9IHJlc29sdmVyLmJl
Z2luKCksIGVuZCA9IHJlc29sdmVyLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAg
Y29uc3QgYXV0byYgcnVuID0gKml0OwotICAgICAgICBhdXRvIHJlY3QgPSBydW4ucmVjdCgpOwor
ICAgICAgICBhdXRvIHJlY3QgPSBydW4ucmVjdEZvclRleHRSZW5kZXJlcih0ZXh0UmVuZGVyZXIp
OworICAgICAgICBpZiAocmVjdCA9PSBMYXlvdXRSZWN0KCkpCisgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgcXVhZHMuYXBwZW5kKHRleHRSZW5kZXJlci5sb2NhbFRvQWJzb2x1dGVRdWFk
KEZsb2F0UXVhZChyZWN0KSwgMCwgd2FzRml4ZWQpKTsKICAgICB9CiAgICAgcmV0dXJuIHF1YWRz
OwpAQCAtMjE3LDcgKzIxMiw3IEBAIHZvaWQgc2hvd0xpbmVMYXlvdXRGb3JGbG93KGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYgZmxvdywgY29uc3QgTGF5b3V0JiBsYXlvdXQsIGluCiAgICAgICAgIExh
eW91dFJlY3QgciA9IHJ1bi5yZWN0KCk7CiAgICAgICAgIHByaW50UHJlZml4KHByaW50ZWRDaGFy
YWN0ZXJzLCBkZXB0aCk7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAibGluZSAldSBydW4oJXUs
ICV1KSAoJS4yZiwgJS4yZikgKCUuMmYsICUuMmYpIFwiJXNcIlxuIiwgcnVuLmxpbmVJbmRleCgp
LCBydW4uc3RhcnQoKSwgcnVuLmVuZCgpLAotICAgICAgICAgICAgci54KCkudG9GbG9hdCgpLCBy
LnkoKS50b0Zsb2F0KCksIHIud2lkdGgoKS50b0Zsb2F0KCksIHIuaGVpZ2h0KCkudG9GbG9hdCgp
LCBydW4udGV4dCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgICAgIHIueCgpLnRvRmxvYXQoKSwgci55KCkudG9GbG9hdCgpLCByLndpZHRoKCkudG9G
bG9hdCgpLCByLmhlaWdodCgpLnRvRmxvYXQoKSwgcnVuLnRleHQoKS51dGY4KCkuZGF0YSgpKTsK
ICAgICB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
aW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Np
bXBsZUxpbmVMYXlvdXRSZXNvbHZlci5jcHAKaW5kZXggY2NiNDUyODZkMTgyM2ZmYjZmYjc5YzQ2
NDY0ZTE3ZjcwMTYzNzI4Mi4uMWE5ZTJjMDMwZDM2MjQ4ZDY0MjE2NGRmMDAyNDJmZWY5NjhhYWIx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRS
ZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlv
dXRSZXNvbHZlci5jcHAKQEAgLTMzLDYgKzMzLDIxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgU2ltcGxlTGluZUxheW91dCB7CiAKK3N0YXRpYyBmbG9hdCBiYXNlbGluZVBvc2l0
aW9uKGZsb2F0IGxpbmVIZWlnaHQsIGZsb2F0IGJhc2VsaW5lLCBpbnQgbGluZUluZGV4KQorewor
ICAgIHJldHVybiBsaW5lSGVpZ2h0ICogbGluZUluZGV4ICsgYmFzZWxpbmU7Cit9CisKK3N0YXRp
YyBMYXlvdXRQb2ludCBsaW5lUG9zaXRpb24oZmxvYXQgbG9naWNhbExlZnQsIGZsb2F0IGxvZ2lj
YWxUb3ApCit7CisgICAgcmV0dXJuIExheW91dFBvaW50KExheW91dFVuaXQ6OmZyb21GbG9hdEZs
b29yKGxvZ2ljYWxMZWZ0KSwgcm91bmRUb0ludChsb2dpY2FsVG9wKSk7Cit9CisKK3N0YXRpYyBM
YXlvdXRTaXplIGxpbmVTaXplKGZsb2F0IGxvZ2ljYWxMZWZ0LCBmbG9hdCBsb2dpY2FsUmlnaHQs
IGZsb2F0IGhlaWdodCkKK3sKKyAgICByZXR1cm4gTGF5b3V0U2l6ZShMYXlvdXRVbml0Ojpmcm9t
RmxvYXRDZWlsKGxvZ2ljYWxSaWdodCkgLSBMYXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9vcihsb2dp
Y2FsTGVmdCksIGhlaWdodCk7Cit9CisKIFJ1blJlc29sdmVyOjpSdW46OlJ1bihjb25zdCBJdGVy
YXRvciYgaXRlcmF0b3IpCiAgICAgOiBtX2l0ZXJhdG9yKGl0ZXJhdG9yKQogewpAQCAtNDAsMTMg
KzU1LDM0IEBAIFJ1blJlc29sdmVyOjpSdW46OlJ1bihjb25zdCBJdGVyYXRvciYgaXRlcmF0b3Ip
CiAKIExheW91dFJlY3QgUnVuUmVzb2x2ZXI6OlJ1bjo6cmVjdCgpIGNvbnN0CiB7Ci0gICAgYXV0
byYgcmVzb2x2ZXIgPSBtX2l0ZXJhdG9yLnJlc29sdmVyKCk7CiAgICAgYXV0byYgcnVuID0gbV9p
dGVyYXRvci5zaW1wbGVSdW4oKTsKKyAgICByZXR1cm4gY29tcHV0ZVJlY3QocnVuLmxvZ2ljYWxM
ZWZ0LCBydW4ubG9naWNhbFJpZ2h0KTsKK30KIAotICAgIGZsb2F0IGJhc2VsaW5lUG9zaXRpb24g
PSByZXNvbHZlci5tX2xpbmVIZWlnaHQgKiBtX2l0ZXJhdG9yLmxpbmVJbmRleCgpICsgcmVzb2x2
ZXIubV9iYXNlbGluZTsKLSAgICBMYXlvdXRQb2ludCBsaW5lUG9zaXRpb24oTGF5b3V0VW5pdDo6
ZnJvbUZsb2F0Rmxvb3IocnVuLmxvZ2ljYWxMZWZ0KSwgcm91bmRUb0ludChiYXNlbGluZVBvc2l0
aW9uIC0gcmVzb2x2ZXIubV9hc2NlbnQgKyByZXNvbHZlci5tX2JvcmRlckFuZFBhZGRpbmdCZWZv
cmUpKTsKLSAgICBMYXlvdXRTaXplIGxpbmVTaXplKExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwo
cnVuLmxvZ2ljYWxSaWdodCkgLSBMYXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9vcihydW4ubG9naWNh
bExlZnQpLCByZXNvbHZlci5tX2FzY2VudCArIHJlc29sdmVyLm1fZGVzY2VudCk7Ci0gICAgcmV0
dXJuIExheW91dFJlY3QobGluZVBvc2l0aW9uLCBsaW5lU2l6ZSk7CitMYXlvdXRSZWN0IFJ1blJl
c29sdmVyOjpSdW46OnJlY3RGb3JUZXh0UmVuZGVyZXIoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVy
ZXIpIGNvbnN0Cit7CisgICAgYXV0byYgcmVzb2x2ZXIgPSBtX2l0ZXJhdG9yLnJlc29sdmVyKCk7
CisgICAgdW5zaWduZWQgcmVuZGVyZXJTdGFydCA9IDA7CisgICAgdW5zaWduZWQgcmVuZGVyZXJF
bmQgPSAwOworICAgIGJvb2wgZm91bmQgPSByZXNvbHZlci5tX2Zsb3dDb250ZW50cy5yZXNvbHZl
UmVuZGVyZXJQb3NpdGlvbnMocmVuZGVyZXIsIHJlbmRlcmVyU3RhcnQsIHJlbmRlcmVyRW5kKTsK
KyAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7CisgICAgY29uc3QgYXV0byYgcnVuID0g
bV9pdGVyYXRvci5zaW1wbGVSdW4oKTsKKworICAgIGlmIChyZW5kZXJlclN0YXJ0ID49IHJ1bi5l
bmQgfHwgcmVuZGVyZXJFbmQgPD0gcnVuLnN0YXJ0KQorICAgICAgICByZXR1cm4gTGF5b3V0UmVj
dCgpOworCisgICAgaWYgKHJlbmRlcmVyU3RhcnQgPT0gcnVuLnN0YXJ0ICYmIHJlbmRlcmVyRW5k
ID09IHJ1bi5lbmQpCisgICAgICAgIHJldHVybiBjb21wdXRlUmVjdChydW4ubG9naWNhbExlZnQs
IHJ1bi5sb2dpY2FsUmlnaHQpOworCisgICAgdW5zaWduZWQgZW5kUG9zaXRpb24gPSBzdGQ6Om1p
bihydW4uZW5kLCByZW5kZXJlckVuZCk7CisgICAgLy8gTWVhc3VyZSB0aGUgdGV4dCB0aGF0J3Mg
aW4gZnJvbnQgb2YgdGhlIHJlbmRlcmVyIGluIHRoaXMgcnVuLgorICAgIGZsb2F0IGJlZm9yZUZy
YWdtZW50V2lkdGggPSAwOworICAgIGlmIChydW4uc3RhcnQgPCByZW5kZXJlclN0YXJ0KQorICAg
ICAgICBiZWZvcmVGcmFnbWVudFdpZHRoID0gcmVzb2x2ZXIubV9mbG93Q29udGVudHMudGV4dFdp
ZHRoKHJ1bi5zdGFydCwgZW5kUG9zaXRpb24sIHJ1bi5sb2dpY2FsTGVmdCk7CisKKyAgICBmbG9h
dCBsb2dpY2FsTGVmdCA9IHJ1bi5sb2dpY2FsTGVmdCArIGJlZm9yZUZyYWdtZW50V2lkdGg7Cisg
ICAgZmxvYXQgbG9naWNhbFJpZ2h0ID0gbG9naWNhbExlZnQgKyByZXNvbHZlci5tX2Zsb3dDb250
ZW50cy50ZXh0V2lkdGgoc3RkOjptYXgocnVuLnN0YXJ0LCByZW5kZXJlclN0YXJ0KSwgZW5kUG9z
aXRpb24sIGxvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gY29tcHV0ZVJlY3QobG9naWNhbExlZnQs
IGxvZ2ljYWxSaWdodCk7CiB9CiAKIEZsb2F0UG9pbnQgUnVuUmVzb2x2ZXI6OlJ1bjo6YmFzZWxp
bmUoKSBjb25zdApAQCAtNTQsMTUgKzkwLDI0IEBAIEZsb2F0UG9pbnQgUnVuUmVzb2x2ZXI6OlJ1
bjo6YmFzZWxpbmUoKSBjb25zdAogICAgIGF1dG8mIHJlc29sdmVyID0gbV9pdGVyYXRvci5yZXNv
bHZlcigpOwogICAgIGF1dG8mIHJ1biA9IG1faXRlcmF0b3Iuc2ltcGxlUnVuKCk7CiAKLSAgICBm
bG9hdCBiYXNlbGluZVBvc2l0aW9uID0gcmVzb2x2ZXIubV9saW5lSGVpZ2h0ICogbV9pdGVyYXRv
ci5saW5lSW5kZXgoKSArIHJlc29sdmVyLm1fYmFzZWxpbmU7Ci0gICAgcmV0dXJuIEZsb2F0UG9p
bnQocnVuLmxvZ2ljYWxMZWZ0LCByb3VuZFRvSW50KGJhc2VsaW5lUG9zaXRpb24gKyByZXNvbHZl
ci5tX2JvcmRlckFuZFBhZGRpbmdCZWZvcmUpKTsKKyAgICBmbG9hdCBiYXNlbGluZSA9IGJhc2Vs
aW5lUG9zaXRpb24ocmVzb2x2ZXIubV9saW5lSGVpZ2h0LCByZXNvbHZlci5tX2Jhc2VsaW5lLCBt
X2l0ZXJhdG9yLmxpbmVJbmRleCgpKTsKKyAgICByZXR1cm4gRmxvYXRQb2ludChydW4ubG9naWNh
bExlZnQsIHJvdW5kVG9JbnQoYmFzZWxpbmUgKyByZXNvbHZlci5tX2JvcmRlckFuZFBhZGRpbmdC
ZWZvcmUpKTsKIH0KIAotU3RyaW5nVmlldyBSdW5SZXNvbHZlcjo6UnVuOjp0ZXh0KCkgY29uc3QK
K1N0cmluZyBSdW5SZXNvbHZlcjo6UnVuOjp0ZXh0KCkgY29uc3QKIHsKICAgICBhdXRvJiByZXNv
bHZlciA9IG1faXRlcmF0b3IucmVzb2x2ZXIoKTsKICAgICBhdXRvJiBydW4gPSBtX2l0ZXJhdG9y
LnNpbXBsZVJ1bigpOwotICAgIHJldHVybiBTdHJpbmdWaWV3KHJlc29sdmVyLm1fc3RyaW5nKS5z
dWJzdHJpbmcocnVuLnN0YXJ0LCBydW4uZW5kIC0gcnVuLnN0YXJ0KTsKKyAgICByZXR1cm4gcmVz
b2x2ZXIubV9mbG93Q29udGVudHMudGV4dChydW4uc3RhcnQsIHJ1bi5lbmQpOworfQorCitMYXlv
dXRSZWN0IFJ1blJlc29sdmVyOjpSdW46OmNvbXB1dGVSZWN0KGZsb2F0IGxvZ2ljYWxMZWZ0LCBm
bG9hdCBsb2dpY2FsUmlnaHQpIGNvbnN0Cit7CisgICAgYXV0byYgcmVzb2x2ZXIgPSBtX2l0ZXJh
dG9yLnJlc29sdmVyKCk7CisgICAgZmxvYXQgYmFzZWxpbmUgPSBiYXNlbGluZVBvc2l0aW9uKHJl
c29sdmVyLm1fbGluZUhlaWdodCwgcmVzb2x2ZXIubV9iYXNlbGluZSwgbV9pdGVyYXRvci5saW5l
SW5kZXgoKSk7CisgICAgTGF5b3V0UG9pbnQgcG9zaXRpb24gPSBsaW5lUG9zaXRpb24obG9naWNh
bExlZnQsIGJhc2VsaW5lIC0gcmVzb2x2ZXIubV9hc2NlbnQgKyByZXNvbHZlci5tX2JvcmRlckFu
ZFBhZGRpbmdCZWZvcmUpOworICAgIExheW91dFNpemUgc2l6ZSA9IGxpbmVTaXplKGxvZ2ljYWxM
ZWZ0LCBsb2dpY2FsUmlnaHQsIHJlc29sdmVyLm1fYXNjZW50ICsgcmVzb2x2ZXIubV9kZXNjZW50
KTsKKyAgICByZXR1cm4gTGF5b3V0UmVjdChwb3NpdGlvbiwgc2l6ZSk7CiB9CiAKIFJ1blJlc29s
dmVyOjpJdGVyYXRvcjo6SXRlcmF0b3IoY29uc3QgUnVuUmVzb2x2ZXImIHJlc29sdmVyLCB1bnNp
Z25lZCBydW5JbmRleCwgdW5zaWduZWQgbGluZUluZGV4KQpAQCAtOTcsNyArMTQyLDcgQEAgUnVu
UmVzb2x2ZXI6Okl0ZXJhdG9yJiBSdW5SZXNvbHZlcjo6SXRlcmF0b3I6OmFkdmFuY2VMaW5lcyh1
bnNpZ25lZCBsaW5lQ291bnQpCiAKIFJ1blJlc29sdmVyOjpSdW5SZXNvbHZlcihjb25zdCBSZW5k
ZXJCbG9ja0Zsb3cmIGZsb3csIGNvbnN0IExheW91dCYgbGF5b3V0KQogICAgIDogbV9sYXlvdXQo
bGF5b3V0KQotICAgICwgbV9zdHJpbmcoZG93bmNhc3Q8UmVuZGVyVGV4dD4oKmZsb3cuZmlyc3RD
aGlsZCgpKS50ZXh0KCkpCisgICAgLCBtX2Zsb3dDb250ZW50cyhmbG93KQogICAgICwgbV9saW5l
SGVpZ2h0KGxpbmVIZWlnaHRGcm9tRmxvdyhmbG93KSkKICAgICAsIG1fYmFzZWxpbmUoYmFzZWxp
bmVGcm9tRmxvdyhmbG93KSkKICAgICAsIG1fYm9yZGVyQW5kUGFkZGluZ0JlZm9yZShmbG93LmJv
cmRlckFuZFBhZGRpbmdCZWZvcmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaAppbmRleCA5MjI3MzE5ZTE3ZTBmYjQ3NDI1ODlh
NTcxZDEyYjMyOTQxMTVlNTE2Li45OWQwNjgzY2FkZDY2YzNhYTNhNDE4ZjRiM2E1MjIxOWI1ODUz
MGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91
dFJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlv
dXRSZXNvbHZlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgog
I2luY2x1ZGUgIlJlbmRlckJsb2NrRmxvdy5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKyNp
bmNsdWRlICJTaW1wbGVMaW5lTGF5b3V0Rmxvd0NvbnRlbnRzLmgiCiAjaW5jbHVkZSAiU2ltcGxl
TGluZUxheW91dEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTYxLDEyICs2MiwxNSBAQCBwdWJsaWM6CiAgICAg
ICAgIHVuc2lnbmVkIGVuZCgpIGNvbnN0OwogCiAgICAgICAgIExheW91dFJlY3QgcmVjdCgpIGNv
bnN0OworICAgICAgICBMYXlvdXRSZWN0IHJlY3RGb3JUZXh0UmVuZGVyZXIoY29uc3QgUmVuZGVy
VGV4dCYpIGNvbnN0OwogICAgICAgICBGbG9hdFBvaW50IGJhc2VsaW5lKCkgY29uc3Q7Ci0gICAg
ICAgIFN0cmluZ1ZpZXcgdGV4dCgpIGNvbnN0OworICAgICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0
OwogCiAgICAgICAgIHVuc2lnbmVkIGxpbmVJbmRleCgpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToK
KyAgICAgICAgTGF5b3V0UmVjdCBjb21wdXRlUmVjdChmbG9hdCBsb2dpY2FsTGVmdCwgZmxvYXQg
bG9naWNhbFJpZ2h0KSBjb25zdDsKKwogICAgICAgICBjb25zdCBJdGVyYXRvciYgbV9pdGVyYXRv
cjsKICAgICB9OwogCkBAIC0xMDYsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBs
aW5lSW5kZXhGb3JIZWlnaHQoTGF5b3V0VW5pdCwgSW5kZXhUeXBlKSBjb25zdDsKIAogICAgIGNv
bnN0IExheW91dCYgbV9sYXlvdXQ7Ci0gICAgY29uc3QgU3RyaW5nIG1fc3RyaW5nOworICAgIGNv
bnN0IEZsb3dDb250ZW50cyBtX2Zsb3dDb250ZW50czsKICAgICBjb25zdCBMYXlvdXRVbml0IG1f
bGluZUhlaWdodDsKICAgICBjb25zdCBMYXlvdXRVbml0IG1fYmFzZWxpbmU7CiAgICAgY29uc3Qg
TGF5b3V0VW5pdCBtX2JvcmRlckFuZFBhZGRpbmdCZWZvcmU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241800</attachid>
            <date>2014-11-18 12:04:27 -0800</date>
            <delta_ts>2014-11-19 07:40:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138818-20141118120439.patch</filename>
            <type>text/plain</type>
            <size>13104</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQ0NjEzZDkyMjNhODA2
MzFjOGZkY2U1NGNlYTVkMjk3OTdmY2E0ZC4uYTViZjdiMjcwOGZhZDE4OTRiNTU1NzU0NTI0YWQx
MWQ2OGMxY2FlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDE0LTExLTE3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0
OiBBZGQgcmVuZGVyZXIgYmFzZWQgcmVjdCBjb2xsZWN0aW5nIHRvIFJ1blJlc29sdmVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4ODE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBw
cmVwYXJhdGlvbiB0byBtdWx0aXBsZSByZW5kZXJlcnMgc3VwcG9ydC4KKyAgICAgICAgUnVuUmVz
b2x2ZXIgc2hvdWxkIGJlIGFibGUgdG8gY29sbGVjdCByZWN0cyBmb3IgYSBwYXJ0aWN1bGFyIHJl
bmRlcmVyCisgICAgICAgIHRoYXQgbWlnaHQgb3ZlcmxhcCBtdWx0aXBsZSBydW5zLiAob3IgbWln
aHQganVzdCBiZSBhIHN1YnNldCBvZiBhIFJ1bikKKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGbG93Q29u
dGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6Rmxvd0NvbnRl
bnRzOjpyZW5kZXJlcik6IEl0IG9wZXJhdGVzIG9uIGEgc2luZ2xlIHJlbmRlcmVyIGN1cnJlbnRs
eS4KKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OkZsb3dDb250ZW50czo6cmVz
b2x2ZVJlbmRlcmVyUG9zaXRpb25zKTogSXQgb3BlcmF0ZXMgb24gYSBzaW5nbGUgcmVuZGVyZXIg
Y3VycmVudGx5LgorICAgICAgICAqIHJlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxvd0NvbnRl
bnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6Y29tcHV0ZVRleHRCb3VuZGlu
Z0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojpjb21wdXRlVGV4dEZp
cnN0UnVuTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6Y29s
bGVjdFRleHRBYnNvbHV0ZVJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlv
dXQ6OmNvbGxlY3RUZXh0QWJzb2x1dGVRdWFkcyk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVM
aW5lTGF5b3V0OjpzaG93TGluZUxheW91dEZvckZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9T
aW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGlu
ZUxheW91dDo6YmFzZWxpbmVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5l
TGF5b3V0OjpsaW5lUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91
dDo6bGluZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6UnVuUmVz
b2x2ZXI6OlJ1bjo6cmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpS
dW5SZXNvbHZlcjo6UnVuOjpyZWN0Rm9yVGV4dFJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXBsZUxpbmVMYXlvdXQ6OlJ1blJlc29sdmVyOjpSdW46OmJhc2VsaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZUxpbmVMYXlvdXQ6OlJ1blJlc29sdmVyOjpSdW46OnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6UnVuUmVzb2x2ZXI6OlJ1bjo6Y29tcHV0
ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6UnVuUmVzb2x2ZXI6
OlJ1blJlc29sdmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dFJlc29s
dmVyLmg6CisKKzIwMTQtMTEtMTcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKwog
ICAgICAgICBTaW1wbGUgbGluZSBsYXlvdXQ6IFJlbmFtZSBGbG93Q29udGVudEl0ZXJhdG9yIGFu
ZCBtb3ZlIGltcGxlbWVudGF0aW9uIHRvIFNpbXBsZUxpbmVMYXlvdXRGbG93Q29udGVudHMuY3Bw
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg3OTkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRG
bG93Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlv
dXRGbG93Q29udGVudHMuY3BwCmluZGV4IDQ0NjM5ZWJjNjc3OThmY2Q2ZThkY2E2MGM5NGUyYmRh
NDRhYWM2MTMuLmRmYjI4ZDRjNDM1YzBiODg0YjhmMTcyZDdhYzExMmM5NjdmZmZmYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxvd0NvbnRl
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZs
b3dDb250ZW50cy5jcHAKQEAgLTc3LDUgKzc3LDE4IEBAIGZsb2F0IEZsb3dDb250ZW50czo6dGV4
dFdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBmbG9hdCB4UG9zaXRpb24pIGNvbnN0
CiAgICAgcmV0dXJuIG1fc3R5bGUuZm9udC53aWR0aChydW4pOwogfQogCitib29sIEZsb3dDb250
ZW50czo6cmVzb2x2ZVJlbmRlcmVyUG9zaXRpb25zKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVy
LCB1bnNpZ25lZCYgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQmIGVuZFBvc2l0aW9uKSBjb25zdAor
eworICAgIEFTU0VSVCgmcmVuZGVyZXIgPT0gZG93bmNhc3Q8UmVuZGVyVGV4dD4obV9mbG93LmZp
cnN0Q2hpbGQoKSkpOworICAgIHN0YXJ0UG9zaXRpb24gPSAwOworICAgIGVuZFBvc2l0aW9uID0g
cmVuZGVyZXIudGV4dCgpLT5sZW5ndGgoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworY29uc3Qg
UmVuZGVyVGV4dCYgRmxvd0NvbnRlbnRzOjpyZW5kZXJlcih1bnNpZ25lZCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyVGV4dD4oKm1fZmxvdy5maXJzdENoaWxkKCkpOworfQor
CiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxh
eW91dEZsb3dDb250ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVM
YXlvdXRGbG93Q29udGVudHMuaAppbmRleCBiNTZmYzViNTg2YmQ3OTQyMGE5ZjYwYWYyMDFjZjkw
YjNhZjgwNjEyLi4xZjJmODYxNDU3ODc1ZGYxMjRhMGNiMWRkN2ZjMmMzZmIwZDU2ZWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZsb3dDb250
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0Rmxv
d0NvbnRlbnRzLmgKQEAgLTQ4LDYgKzQ4LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNOZXdsaW5l
Q2hhcmFjdGVyKHVuc2lnbmVkIHBvc2l0aW9uKSBjb25zdDsKICAgICBib29sIGlzRW5kT2ZDb250
ZW50KHVuc2lnbmVkIHBvc2l0aW9uKSBjb25zdDsKIAorICAgIGJvb2wgcmVzb2x2ZVJlbmRlcmVy
UG9zaXRpb25zKGNvbnN0IFJlbmRlclRleHQmLCB1bnNpZ25lZCYgc3RhcnRQb3NpdGlvbiwgdW5z
aWduZWQmIGVuZFBvc2l0aW9uKSBjb25zdDsKKyAgICBjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJl
cih1bnNpZ25lZCBwb3NpdGlvbikgY29uc3Q7CisKICAgICBjbGFzcyBTdHlsZSB7CiAgICAgcHVi
bGljOgogICAgICAgICBTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAK
aW5kZXggYzZhYzcyYmFkMDZhNmE0OGFjNTkxOGI5YTdkYTFkZGYzYmViZWEyZi4uOTM2NWE1NzBl
ODIwZWNmZjRiYWQzYmJmZDk2NWViZWYzYzQ2NGQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcApAQCAtMTM2LDM3
ICsxMzYsMjYgQEAgdm9pZCBjb2xsZWN0Rmxvd092ZXJmbG93KFJlbmRlckJsb2NrRmxvdyYgZmxv
dywgY29uc3QgTGF5b3V0JiBsYXlvdXQpCiAKIEludFJlY3QgY29tcHV0ZVRleHRCb3VuZGluZ0Jv
eChjb25zdCBSZW5kZXJUZXh0JiB0ZXh0UmVuZGVyZXIsIGNvbnN0IExheW91dCYgbGF5b3V0KQog
ewotICAgIGF1dG8gcmVzb2x2ZXIgPSBsaW5lUmVzb2x2ZXIoZG93bmNhc3Q8UmVuZGVyQmxvY2tG
bG93PigqdGV4dFJlbmRlcmVyLnBhcmVudCgpKSwgbGF5b3V0KTsKLSAgICBhdXRvIGl0ID0gcmVz
b2x2ZXIuYmVnaW4oKTsKLSAgICBhdXRvIGVuZCA9IHJlc29sdmVyLmVuZCgpOwotICAgIGlmIChp
dCA9PSBlbmQpCi0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgYXV0byBmaXJzdExpbmVS
ZWN0ID0gKml0OwotICAgIGZsb2F0IGxlZnQgPSBmaXJzdExpbmVSZWN0LngoKTsKLSAgICBmbG9h
dCByaWdodCA9IGZpcnN0TGluZVJlY3QubWF4WCgpOwotICAgIGZsb2F0IGJvdHRvbSA9IGZpcnN0
TGluZVJlY3QubWF4WSgpOwotICAgIGZvciAoKytpdDsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAg
ICAgIGF1dG8gcmVjdCA9ICppdDsKLSAgICAgICAgaWYgKHJlY3QueCgpIDwgbGVmdCkKLSAgICAg
ICAgICAgIGxlZnQgPSByZWN0LngoKTsKLSAgICAgICAgaWYgKHJlY3QubWF4WCgpID4gcmlnaHQp
Ci0gICAgICAgICAgICByaWdodCA9IHJlY3QubWF4WCgpOwotICAgICAgICBpZiAocmVjdC5tYXhZ
KCkgPiBib3R0b20pCi0gICAgICAgICAgICBib3R0b20gPSByZWN0Lm1heFkoKTsKKyAgICBhdXRv
IHJlc29sdmVyID0gcnVuUmVzb2x2ZXIoZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqdGV4dFJl
bmRlcmVyLnBhcmVudCgpKSwgbGF5b3V0KTsKKyAgICBGbG9hdFJlY3QgYm91bmRpbmdCb3hSZWN0
OworICAgIGZvciAoY29uc3QgYXV0byYgcnVuIDogcmVzb2x2ZXIucmFuZ2VGb3JSZW5kZXJlcih0
ZXh0UmVuZGVyZXIpKSB7CisgICAgICAgIEZsb2F0UmVjdCByZWN0ID0gcnVuLnJlY3QoKTsKKyAg
ICAgICAgaWYgKGJvdW5kaW5nQm94UmVjdCA9PSBGbG9hdFJlY3QoKSkKKyAgICAgICAgICAgIGJv
dW5kaW5nQm94UmVjdCA9IHJlY3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJvdW5kaW5n
Qm94UmVjdC51bml0ZUV2ZW5JZkVtcHR5KHJlY3QpOwogICAgIH0KLSAgICBmbG9hdCB4ID0gbGVm
dDsKLSAgICBmbG9hdCB5ID0gZmlyc3RMaW5lUmVjdC55KCk7Ci0gICAgZmxvYXQgd2lkdGggPSBy
aWdodCAtIGxlZnQ7Ci0gICAgZmxvYXQgaGVpZ2h0ID0gYm90dG9tIC0geTsKLSAgICByZXR1cm4g
ZW5jbG9zaW5nSW50UmVjdChGbG9hdFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOworICAgIHJl
dHVybiBlbmNsb3NpbmdJbnRSZWN0KGJvdW5kaW5nQm94UmVjdCk7CiB9CiAKIEludFBvaW50IGNv
bXB1dGVUZXh0Rmlyc3RSdW5Mb2NhdGlvbihjb25zdCBSZW5kZXJUZXh0JiB0ZXh0UmVuZGVyZXIs
IGNvbnN0IExheW91dCYgbGF5b3V0KQogewogICAgIGF1dG8gcmVzb2x2ZXIgPSBydW5SZXNvbHZl
cihkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCp0ZXh0UmVuZGVyZXIucGFyZW50KCkpLCBsYXlv
dXQpOwotICAgIGF1dG8gYmVnaW4gPSByZXNvbHZlci5iZWdpbigpOwotICAgIGlmIChiZWdpbiA9
PSByZXNvbHZlci5lbmQoKSkKLSAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CisgICAgY29uc3Qg
YXV0byYgaXQgPSByZXNvbHZlci5yYW5nZUZvclJlbmRlcmVyKHRleHRSZW5kZXJlcik7CisgICAg
YXV0byBiZWdpbiA9IGl0LmJlZ2luKCk7CisgICAgaWYgKGJlZ2luID09IGl0LmVuZCgpKQorICAg
ICAgICByZXR1cm4gSW50UG9pbnQoMCwgMCk7CisKICAgICByZXR1cm4gZmxvb3JlZEludFBvaW50
KCgqYmVnaW4pLnJlY3QoKS5sb2NhdGlvbigpKTsKIH0KIApAQCAtMTc0LDkgKzE2Myw4IEBAIFZl
Y3RvcjxJbnRSZWN0PiBjb2xsZWN0VGV4dEFic29sdXRlUmVjdHMoY29uc3QgUmVuZGVyVGV4dCYg
dGV4dFJlbmRlcmVyLCBjb25zdCBMCiB7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlY3RzOwogICAg
IGF1dG8gcmVzb2x2ZXIgPSBydW5SZXNvbHZlcihkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCp0
ZXh0UmVuZGVyZXIucGFyZW50KCkpLCBsYXlvdXQpOwotICAgIGZvciAoYXV0byBpdCA9IHJlc29s
dmVyLmJlZ2luKCksIGVuZCA9IHJlc29sdmVyLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAg
ICAgICAgY29uc3QgYXV0byYgcnVuID0gKml0OwotICAgICAgICBhdXRvIHJlY3QgPSBydW4ucmVj
dCgpOworICAgIGZvciAoY29uc3QgYXV0byYgcnVuIDogcmVzb2x2ZXIucmFuZ2VGb3JSZW5kZXJl
cih0ZXh0UmVuZGVyZXIpKSB7CisgICAgICAgIExheW91dFJlY3QgcmVjdCA9IHJ1bi5yZWN0KCk7
CiAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChhY2N1bXVs
YXRlZE9mZnNldCArIHJlY3QubG9jYXRpb24oKSwgcmVjdC5zaXplKCkpKSk7CiAgICAgfQogICAg
IHJldHVybiByZWN0czsKQEAgLTE4NiwxMSArMTc0LDggQEAgVmVjdG9yPEZsb2F0UXVhZD4gY29s
bGVjdFRleHRBYnNvbHV0ZVF1YWRzKGNvbnN0IFJlbmRlclRleHQmIHRleHRSZW5kZXJlciwgY29u
c3QKIHsKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKICAgICBhdXRvIHJlc29sdmVyID0g
cnVuUmVzb2x2ZXIoZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqdGV4dFJlbmRlcmVyLnBhcmVu
dCgpKSwgbGF5b3V0KTsKLSAgICBmb3IgKGF1dG8gaXQgPSByZXNvbHZlci5iZWdpbigpLCBlbmQg
PSByZXNvbHZlci5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGNvbnN0IGF1dG8m
IHJ1biA9ICppdDsKLSAgICAgICAgYXV0byByZWN0ID0gcnVuLnJlY3QoKTsKLSAgICAgICAgcXVh
ZHMuYXBwZW5kKHRleHRSZW5kZXJlci5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChyZWN0
KSwgMCwgd2FzRml4ZWQpKTsKLSAgICB9CisgICAgZm9yIChjb25zdCBhdXRvJiBydW4gOiByZXNv
bHZlci5yYW5nZUZvclJlbmRlcmVyKHRleHRSZW5kZXJlcikpCisgICAgICAgIHF1YWRzLmFwcGVu
ZCh0ZXh0UmVuZGVyZXIubG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQocnVuLnJlY3QoKSks
IDAsIHdhc0ZpeGVkKSk7CiAgICAgcmV0dXJuIHF1YWRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwCmluZGV4IGNj
YjQ1Mjg2ZDE4MjNmZmI2ZmI3OWM0NjQ2NGUxN2Y3MDE2MzcyODIuLmUyZWEzNWQ1MmY3YWNlNjEy
OGNjMGE4YWNmOTFkMmMwYTE5YWZkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuY3BwCkBAIC0zMyw2ICszMywyMSBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFNpbXBsZUxpbmVMYXlvdXQgewogCitzdGF0
aWMgZmxvYXQgYmFzZWxpbmVQb3NpdGlvbihmbG9hdCBsaW5lSGVpZ2h0LCBmbG9hdCBiYXNlbGlu
ZSwgaW50IGxpbmVJbmRleCkKK3sKKyAgICByZXR1cm4gbGluZUhlaWdodCAqIGxpbmVJbmRleCAr
IGJhc2VsaW5lOworfQorCitzdGF0aWMgTGF5b3V0UG9pbnQgbGluZVBvc2l0aW9uKGZsb2F0IGxv
Z2ljYWxMZWZ0LCBmbG9hdCBsb2dpY2FsVG9wKQoreworICAgIHJldHVybiBMYXlvdXRQb2ludChM
YXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9vcihsb2dpY2FsTGVmdCksIHJvdW5kVG9JbnQobG9naWNh
bFRvcCkpOworfQorCitzdGF0aWMgTGF5b3V0U2l6ZSBsaW5lU2l6ZShmbG9hdCBsb2dpY2FsTGVm
dCwgZmxvYXQgbG9naWNhbFJpZ2h0LCBmbG9hdCBoZWlnaHQpCit7CisgICAgcmV0dXJuIExheW91
dFNpemUoTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChsb2dpY2FsUmlnaHQpIC0gTGF5b3V0VW5p
dDo6ZnJvbUZsb2F0Rmxvb3IobG9naWNhbExlZnQpLCBoZWlnaHQpOworfQorCiBSdW5SZXNvbHZl
cjo6UnVuOjpSdW4oY29uc3QgSXRlcmF0b3ImIGl0ZXJhdG9yKQogICAgIDogbV9pdGVyYXRvcihp
dGVyYXRvcikKIHsKQEAgLTQwLDEzICs1NSwxMiBAQCBSdW5SZXNvbHZlcjo6UnVuOjpSdW4oY29u
c3QgSXRlcmF0b3ImIGl0ZXJhdG9yKQogCiBMYXlvdXRSZWN0IFJ1blJlc29sdmVyOjpSdW46OnJl
Y3QoKSBjb25zdAogewotICAgIGF1dG8mIHJlc29sdmVyID0gbV9pdGVyYXRvci5yZXNvbHZlcigp
OwogICAgIGF1dG8mIHJ1biA9IG1faXRlcmF0b3Iuc2ltcGxlUnVuKCk7Ci0KLSAgICBmbG9hdCBi
YXNlbGluZVBvc2l0aW9uID0gcmVzb2x2ZXIubV9saW5lSGVpZ2h0ICogbV9pdGVyYXRvci5saW5l
SW5kZXgoKSArIHJlc29sdmVyLm1fYmFzZWxpbmU7Ci0gICAgTGF5b3V0UG9pbnQgbGluZVBvc2l0
aW9uKExheW91dFVuaXQ6OmZyb21GbG9hdEZsb29yKHJ1bi5sb2dpY2FsTGVmdCksIHJvdW5kVG9J
bnQoYmFzZWxpbmVQb3NpdGlvbiAtIHJlc29sdmVyLm1fYXNjZW50ICsgcmVzb2x2ZXIubV9ib3Jk
ZXJBbmRQYWRkaW5nQmVmb3JlKSk7Ci0gICAgTGF5b3V0U2l6ZSBsaW5lU2l6ZShMYXlvdXRVbml0
Ojpmcm9tRmxvYXRDZWlsKHJ1bi5sb2dpY2FsUmlnaHQpIC0gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0
Rmxvb3IocnVuLmxvZ2ljYWxMZWZ0KSwgcmVzb2x2ZXIubV9hc2NlbnQgKyByZXNvbHZlci5tX2Rl
c2NlbnQpOwotICAgIHJldHVybiBMYXlvdXRSZWN0KGxpbmVQb3NpdGlvbiwgbGluZVNpemUpOwor
ICAgIGF1dG8mIHJlc29sdmVyID0gbV9pdGVyYXRvci5yZXNvbHZlcigpOworICAgIGZsb2F0IGJh
c2VsaW5lID0gYmFzZWxpbmVQb3NpdGlvbihyZXNvbHZlci5tX2xpbmVIZWlnaHQsIHJlc29sdmVy
Lm1fYmFzZWxpbmUsIG1faXRlcmF0b3IubGluZUluZGV4KCkpOworICAgIExheW91dFBvaW50IHBv
c2l0aW9uID0gbGluZVBvc2l0aW9uKHJ1bi5sb2dpY2FsTGVmdCwgYmFzZWxpbmUgLSByZXNvbHZl
ci5tX2FzY2VudCArIHJlc29sdmVyLm1fYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSk7CisgICAgTGF5
b3V0U2l6ZSBzaXplID0gbGluZVNpemUocnVuLmxvZ2ljYWxMZWZ0LCBydW4ubG9naWNhbFJpZ2h0
LCByZXNvbHZlci5tX2FzY2VudCArIHJlc29sdmVyLm1fZGVzY2VudCk7CisgICAgcmV0dXJuIExh
eW91dFJlY3QocG9zaXRpb24sIHNpemUpOwogfQogCiBGbG9hdFBvaW50IFJ1blJlc29sdmVyOjpS
dW46OmJhc2VsaW5lKCkgY29uc3QKQEAgLTU0LDE1ICs2OCwxNyBAQCBGbG9hdFBvaW50IFJ1blJl
c29sdmVyOjpSdW46OmJhc2VsaW5lKCkgY29uc3QKICAgICBhdXRvJiByZXNvbHZlciA9IG1faXRl
cmF0b3IucmVzb2x2ZXIoKTsKICAgICBhdXRvJiBydW4gPSBtX2l0ZXJhdG9yLnNpbXBsZVJ1bigp
OwogCi0gICAgZmxvYXQgYmFzZWxpbmVQb3NpdGlvbiA9IHJlc29sdmVyLm1fbGluZUhlaWdodCAq
IG1faXRlcmF0b3IubGluZUluZGV4KCkgKyByZXNvbHZlci5tX2Jhc2VsaW5lOwotICAgIHJldHVy
biBGbG9hdFBvaW50KHJ1bi5sb2dpY2FsTGVmdCwgcm91bmRUb0ludChiYXNlbGluZVBvc2l0aW9u
ICsgcmVzb2x2ZXIubV9ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKSk7CisgICAgZmxvYXQgYmFzZWxp
bmUgPSBiYXNlbGluZVBvc2l0aW9uKHJlc29sdmVyLm1fbGluZUhlaWdodCwgcmVzb2x2ZXIubV9i
YXNlbGluZSwgbV9pdGVyYXRvci5saW5lSW5kZXgoKSk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQo
cnVuLmxvZ2ljYWxMZWZ0LCByb3VuZFRvSW50KGJhc2VsaW5lICsgcmVzb2x2ZXIubV9ib3JkZXJB
bmRQYWRkaW5nQmVmb3JlKSk7CiB9CiAKIFN0cmluZ1ZpZXcgUnVuUmVzb2x2ZXI6OlJ1bjo6dGV4
dCgpIGNvbnN0CiB7CiAgICAgYXV0byYgcmVzb2x2ZXIgPSBtX2l0ZXJhdG9yLnJlc29sdmVyKCk7
CiAgICAgYXV0byYgcnVuID0gbV9pdGVyYXRvci5zaW1wbGVSdW4oKTsKLSAgICByZXR1cm4gU3Ry
aW5nVmlldyhyZXNvbHZlci5tX3N0cmluZykuc3Vic3RyaW5nKHJ1bi5zdGFydCwgcnVuLmVuZCAt
IHJ1bi5zdGFydCk7CisgICAgY29uc3QgYXV0byYgcmVuZGVyZXIgPSByZXNvbHZlci5tX2Zsb3dD
b250ZW50cy5yZW5kZXJlcihydW4uc3RhcnQpOworICAgIEFTU0VSVChyZW5kZXJlci5pczhCaXQo
KSk7CisgICAgcmV0dXJuIFN0cmluZ1ZpZXcocmVuZGVyZXIuY2hhcmFjdGVyczgoKSwgcmVuZGVy
ZXIudGV4dExlbmd0aCgpKS5zdWJzdHJpbmcocnVuLnN0YXJ0LCBydW4uZW5kIC0gcnVuLnN0YXJ0
KTsKIH0KIAogUnVuUmVzb2x2ZXI6Okl0ZXJhdG9yOjpJdGVyYXRvcihjb25zdCBSdW5SZXNvbHZl
ciYgcmVzb2x2ZXIsIHVuc2lnbmVkIHJ1bkluZGV4LCB1bnNpZ25lZCBsaW5lSW5kZXgpCkBAIC05
Nyw3ICsxMTMsNyBAQCBSdW5SZXNvbHZlcjo6SXRlcmF0b3ImIFJ1blJlc29sdmVyOjpJdGVyYXRv
cjo6YWR2YW5jZUxpbmVzKHVuc2lnbmVkIGxpbmVDb3VudCkKIAogUnVuUmVzb2x2ZXI6OlJ1blJl
c29sdmVyKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdywgY29uc3QgTGF5b3V0JiBsYXlvdXQp
CiAgICAgOiBtX2xheW91dChsYXlvdXQpCi0gICAgLCBtX3N0cmluZyhkb3duY2FzdDxSZW5kZXJU
ZXh0PigqZmxvdy5maXJzdENoaWxkKCkpLnRleHQoKSkKKyAgICAsIG1fZmxvd0NvbnRlbnRzKGZs
b3cpCiAgICAgLCBtX2xpbmVIZWlnaHQobGluZUhlaWdodEZyb21GbG93KGZsb3cpKQogICAgICwg
bV9iYXNlbGluZShiYXNlbGluZUZyb21GbG93KGZsb3cpKQogICAgICwgbV9ib3JkZXJBbmRQYWRk
aW5nQmVmb3JlKGZsb3cuYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpKQpAQCAtMTM2LDYgKzE1Miwx
OCBAQCBSYW5nZTxSdW5SZXNvbHZlcjo6SXRlcmF0b3I+IFJ1blJlc29sdmVyOjpyYW5nZUZvclJl
Y3QoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkgYwogICAgIHJldHVybiBSYW5nZTxJdGVyYXRvcj4o
cmFuZ2VCZWdpbiwgcmFuZ2VFbmQpOwogfQogCitSYW5nZTxSdW5SZXNvbHZlcjo6SXRlcmF0b3I+
IFJ1blJlc29sdmVyOjpyYW5nZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVy
KSBjb25zdAoreworICAgIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24gPSAwOworICAgIHVuc2lnbmVk
IGVuZFBvc2l0aW9uID0gMDsKKyAgICBtX2Zsb3dDb250ZW50cy5yZXNvbHZlUmVuZGVyZXJQb3Np
dGlvbnMocmVuZGVyZXIsIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKKyAgICBhdXRvIHJh
bmdlQmVnaW4gPSBiZWdpbigpOworICAgIGZvciAoOygqcmFuZ2VCZWdpbikuc3RhcnQoKSA8IHN0
YXJ0UG9zaXRpb24gJiYgcmFuZ2VCZWdpbiAhPSBlbmQoKTsgKytyYW5nZUJlZ2luKSB7IH0KKyAg
ICBhdXRvIHJhbmdlRW5kID0gcmFuZ2VCZWdpbjsKKyAgICBmb3IgKDsoKnJhbmdlRW5kKS5lbmQo
KSA8PSBlbmRQb3NpdGlvbiAmJiByYW5nZUVuZCAhPSBlbmQoKTsgKytyYW5nZUVuZCkgeyB9Cisg
ICAgcmV0dXJuIFJhbmdlPEl0ZXJhdG9yPihyYW5nZUJlZ2luLCByYW5nZUVuZCk7Cit9CisKIExp
bmVSZXNvbHZlcjo6SXRlcmF0b3I6Okl0ZXJhdG9yKFJ1blJlc29sdmVyOjpJdGVyYXRvciBydW5J
dGVyYXRvcikKICAgICA6IG1fcnVuSXRlcmF0b3IocnVuSXRlcmF0b3IpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmgKaW5kZXgg
OTIyNzMxOWUxN2UwZmI0NzQyNTg5YTU3MWQxMmIzMjk0MTE1ZTUxNi4uN2YxNzg3ZWUyZjI2OTI2
NTNkMjJkZGU3NTkwNTQ2ZjRjNmNiNDVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50
cy5oIgogI2luY2x1ZGUgIlNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMDAsMTMg
KzEwMSwxNCBAQCBwdWJsaWM6CiAgICAgSXRlcmF0b3IgZW5kKCkgY29uc3Q7CiAKICAgICBSYW5n
ZTxJdGVyYXRvcj4gcmFuZ2VGb3JSZWN0KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKKyAgICBS
YW5nZTxJdGVyYXRvcj4gcmFuZ2VGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJUZXh0JikgY29uc3Q7
CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBJbmRleFR5cGUgeyBGaXJzdCwgTGFzdCB9Owog
ICAgIHVuc2lnbmVkIGxpbmVJbmRleEZvckhlaWdodChMYXlvdXRVbml0LCBJbmRleFR5cGUpIGNv
bnN0OwogCiAgICAgY29uc3QgTGF5b3V0JiBtX2xheW91dDsKLSAgICBjb25zdCBTdHJpbmcgbV9z
dHJpbmc7CisgICAgY29uc3QgRmxvd0NvbnRlbnRzIG1fZmxvd0NvbnRlbnRzOwogICAgIGNvbnN0
IExheW91dFVuaXQgbV9saW5lSGVpZ2h0OwogICAgIGNvbnN0IExheW91dFVuaXQgbV9iYXNlbGlu
ZTsKICAgICBjb25zdCBMYXlvdXRVbml0IG1fYm9yZGVyQW5kUGFkZGluZ0JlZm9yZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>