<?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>142441</bug_id>
          
          <creation_ts>2015-03-07 11:11:47 -0800</creation_ts>
          <short_desc>Don&apos;t call RenderLayerCompositor::needsToBeComposited() so many times</short_desc>
          <delta_ts>2015-03-08 16:39:48 -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>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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1075288</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-07 11:11:47 -0800</bug_when>
    <thetext>RenderLayerCompositor::needsToBeComposited() is called from ensureBacking(), but RenderLayerCompositor::computeCompositingRequirements() has already computed this. (Also lots of assertions call it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075383</commentid>
    <comment_count>1</comment_count>
      <attachid>248189</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-08 11:26:39 -0700</bug_when>
    <thetext>Created attachment 248189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075387</commentid>
    <comment_count>2</comment_count>
      <attachid>248192</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-08 11:47:42 -0700</bug_when>
    <thetext>Created attachment 248192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075394</commentid>
    <comment_count>3</comment_count>
      <attachid>248192</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-08 12:23:28 -0700</bug_when>
    <thetext>Comment on attachment 248192
Patch

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

R=me

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:953
&gt; +

Should we assert that renderer is non-null for debug builds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075455</commentid>
    <comment_count>4</comment_count>
      <attachid>248192</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-08 15:55:26 -0700</bug_when>
    <thetext>Comment on attachment 248192
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:953
&gt;&gt; +
&gt; 
&gt; Should we assert that renderer is non-null for debug builds?

We&apos;ll crash right away, so I don&apos;t think so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075465</commentid>
    <comment_count>5</comment_count>
      <attachid>248192</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-08 16:39:44 -0700</bug_when>
    <thetext>Comment on attachment 248192
Patch

Clearing flags on attachment: 248192

Committed r181247: &lt;http://trac.webkit.org/changeset/181247&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075466</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-08 16:39:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248189</attachid>
            <date>2015-03-08 11:26:39 -0700</date>
            <delta_ts>2015-03-08 11:47:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142441-20150308112617.patch</filename>
            <type>text/plain</type>
            <size>15972</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJmYzFlYjk0NDQ3MGE0
ZTAxMjkzZGJmMTZiNjE1MDgxYzljZTI3OC4uZmE0YjdmZTM1MmJiNzczZDQyNTM0OGRmZGEwM2Zj
NGZhZDM4MmEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTAzLTA4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGNhbGwg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpuZWVkc1RvQmVDb21wb3NpdGVkKCkgc28gbWFueSB0aW1l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNDQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2F2ZSBv
bmUgY2FsbCB0byBuZWVkc1RvQmVDb21wb3NpdGVkKCkgcGVyIFJlbmRlckxheWVyIHdoaWxlIHJl
YnVpbGRpbmcgY29tcG9zaXRpbmcKKyAgICAgICAgbGF5ZXJzLCBhbmQgYSBjYWxsIHRvIGlzUnVu
bmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkgaW4gc29tZSBjYXNlcy4KKyAgICAg
ICAgCisgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cygpIGFscmVhZHkga25v
d3MgaWYgdGhlIGxheWVyIHdpbGwgYmUgY29tcG9zaXRlZCwgc28KKyAgICAgICAgcGFzcyB0aGF0
IHRvIHVwZGF0ZUJhY2tpbmcoKSBpbiB0aGUgZm9ybSBvZiBhICJ5ZXMvbm8vZG9uJ3QiIGtub3cg
ZW51bS4gSG93ZXZlciwKKyAgICAgICAgc2luY2UgdXBkYXRlQmFja2luZygpIG5vIGxvbmdlciBj
YWxscyBuZWVkc1RvQmVDb21wb3NpdGVkKCksIHdlIG5lZWQgdG8gY2FsbCAKKyAgICAgICAgcmVx
dWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKCkgdG8gZ2V0IHRoZSB2aWV3cG9ydENvbnN0cmFp
bmVkTm90Q29tcG9zaXRlZFJlYXNvbiBmbGFncy4KKyAgICAgICAgCisgICAgICAgIGlzUnVubmlu
Z0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkgd2lsbCBvbmx5IGJlIHRydWUgZm9yIGEg
bGF5ZXIgd2hpY2ggaGFzIGEKKyAgICAgICAgZGlyZWN0IGNvbXBvc2l0aW5nIHJlYXNvbiwgc28g
b25seSBjYWxsIGlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkKKyAgICAg
ICAgaW4gdGhhdCBjYXNlLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlcmVyRm9yQ29tcG9zaXRp
bmdUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21w
dXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIpOiBVc2UgcmVmZXJlbmNlcy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVhc29uc0ZvckNvbXBv
c2l0aW5nKTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oOgorCiAyMDE1LTAzLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEluIFJlbmRlckxheWVyQ29tcG9zaXRvciwgdHJhY2sgbGF5
ZXIgYm91bmRzIGFuZCB0aGUgaGF2ZUNvbXB1dGVkQm91bmRzIGZsYWcgdG9nZXRoZXIgaW4gYSBz
dHJ1Y3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggYTIxMGYzMWMwNDIzM2EzZGEyZTEyOTNhNmIwN2IxNWRmZjBiOGM2OC4u
YTcyOTA1YjA5NzQ1N2Y3NDA2NWMyMGJhOGZlY2I3M2QwNDRlOTQxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTk0Mywx
MiArOTQzLDMwIEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5Db21wb3NpdGVDbGlw
UGF0aChjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgcmV0dXJuIChjbGlwUGF0aC50eXBl
KCkgIT0gQ2xpcFBhdGhPcGVyYXRpb246OlNoYXBlIHx8IGNsaXBQYXRoLnR5cGUoKSA9PSBDbGlw
UGF0aE9wZXJhdGlvbjo6U2hhcGUpICYmIEdyYXBoaWNzTGF5ZXI6OnN1cHBvcnRzTGF5ZXJUeXBl
KEdyYXBoaWNzTGF5ZXI6OlR5cGU6OlNoYXBlKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheWVyLCBDb21wb3NpdGluZ0NoYW5n
ZVJlcGFpbnQgc2hvdWxkUmVwYWludCkKK3N0YXRpYyBSZW5kZXJMYXllck1vZGVsT2JqZWN0JiBy
ZW5kZXJlckZvckNvbXBvc2l0aW5nVGVzdHMoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKQorewor
ICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlbmRlcmVyID0gJmxheWVyLnJlbmRlcmVyKCk7
CisKKyAgICAvLyBUaGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgYSByZWZsZWN0aW9uIHNob3VsZCBt
YXRjaCB0aGF0IG9mIGl0cyByZWZsZWN0ZWQgbGF5ZXIuCisgICAgaWYgKGxheWVyLmlzUmVmbGVj
dGlvbigpKQorICAgICAgICByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q+KHJlbmRlcmVyLT5wYXJlbnQoKSk7IC8vIFRoZSBSZW5kZXJSZXBsaWNhJ3MgcGFyZW50IGlz
IHRoZSBvYmplY3QgYmVpbmcgcmVmbGVjdGVkLgorCisgICAgcmV0dXJuICpyZW5kZXJlcjsKK30K
KworYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXIm
IGxheWVyLCBDb21wb3NpdGluZ0NoYW5nZVJlcGFpbnQgc2hvdWxkUmVwYWludCwgQmFja2luZ1Jl
cXVpcmVkIGJhY2tpbmdSZXF1aXJlZCkKIHsKICAgICBib29sIGxheWVyQ2hhbmdlZCA9IGZhbHNl
OwogICAgIFJlbmRlckxheWVyOjpWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNv
biB2aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiA9IFJlbmRlckxheWVyOjpO
b05vdENvbXBvc2l0ZWRSZWFzb247CiAKLSAgICBpZiAobmVlZHNUb0JlQ29tcG9zaXRlZChsYXll
ciwgJnZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKSkgeworICAgIGlmIChi
YWNraW5nUmVxdWlyZWQgPT0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKQorICAgICAgICBiYWNr
aW5nUmVxdWlyZWQgPSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyLCAmdmlld3BvcnRDb25zdHJh
aW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pID8gQmFja2luZ1JlcXVpcmVkOjpZZXMgOiBCYWNraW5n
UmVxdWlyZWQ6Ok5vOworICAgIGVsc2UgeworICAgICAgICAvLyBOZWVkIHRvIGZldGNoIHZpZXdw
b3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uLCBidXQgd2l0aG91dCBkb2luZyBhbGwg
dGhlIHdvcmsgdGhhdCBuZWVkc1RvQmVDb21wb3NpdGVkIGRvZXMuCisgICAgICAgIHJlcXVpcmVz
Q29tcG9zaXRpbmdGb3JQb3NpdGlvbihyZW5kZXJlckZvckNvbXBvc2l0aW5nVGVzdHMobGF5ZXIp
LCBsYXllciwgJnZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKTsKKyAgICB9
CisKKyAgICBpZiAoYmFja2luZ1JlcXVpcmVkID09IEJhY2tpbmdSZXF1aXJlZDo6WWVzKSB7CiAg
ICAgICAgIGVuYWJsZUNvbXBvc2l0aW5nTW9kZSgpOwogICAgICAgICAKICAgICAgICAgaWYgKCFs
YXllci5iYWNraW5nKCkpIHsKQEAgLTEyNDMsMTAgKzEyNjEsMTEgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciog
YW5jZXN0b3IKICAgICBsYXllci5zZXRIYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoZmFsc2UpOwog
ICAgIGxheWVyLnNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oUmVuZGVyTGF5ZXI6OkluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmUpOwogCi0gICAgLy8gQ2hlY2sgaWYgdGhlIGxheWVy
IG5lZWRzIHRvIGJlIGNvbXBvc2l0ZWQgZm9yIG5vbi1pbmRpcmVjdCByZWFzb25zIChleC4gM0Qg
dHJhbnNmb3JtKS4KLSAgICAvLyBXZSB1c2UgdGhpcyB2YWx1ZSB0byBhdm9pZCBjaGVja2luZyB0
aGUgb3ZlcmxhcC1tYXAsIGlmIHdlIGtub3cgZm9yIHN1cmUgdGhlIGxheWVyCisgICAgLy8gQ2hl
Y2sgaWYgdGhlIGxheWVyIG5lZWRzIHRvIGJlIGNvbXBvc2l0ZWQgZm9yIGRpcmVjdCByZWFzb25z
IChlLmcuIDNEIHRyYW5zZm9ybSkuCisgICAgLy8gV2UgdXNlIHRoaXMgdmFsdWUgdG8gYXZvaWQg
Y2hlY2tpbmcgdGhlIG92ZXJsYXAgbWFwLCBpZiB3ZSBrbm93IGZvciBzdXJlIHRoZSBsYXllcgog
ICAgIC8vIGlzIGFscmVhZHkgZ29pbmcgdG8gYmUgY29tcG9zaXRlZCBmb3Igb3RoZXIgcmVhc29u
cy4KICAgICBib29sIHdpbGxCZUNvbXBvc2l0ZWQgPSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVy
KTsKKyAgICBib29sIG1heUhhdmVBbmltYXRlZFRyYW5zZm9ybSA9IHdpbGxCZUNvbXBvc2l0ZWQg
JiYgIWxheWVyLmlzUm9vdExheWVyKCk7CiAKICAgICBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbiBjb21wb3NpdGluZ1JlYXNvbiA9IGNvbXBvc2l0aW5nU3RhdGUuc3VidHJl
ZUlzQ29tcG9zaXRpbmcgPyBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6
U3RhY2tpbmcgOiBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9uZTsK
IApAQCAtMTM5Niw3ICsxNDE1LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICAvLyBU
dXJuIG92ZXJsYXAgdGVzdGluZyBvZmYgZm9yIGxhdGVyIGxheWVycyBpZiBpdCdzIGFscmVhZHkg
b2ZmLCBvciBpZiB3ZSBoYXZlIGFuIGFuaW1hdGluZyB0cmFuc2Zvcm0uCiAgICAgLy8gTm90ZSB0
aGF0IGlmIHRoZSBsYXllciBjbGlwcyBpdHMgZGVzY2VuZGFudHMsIHRoZXJlJ3Mgbm8gcmVhc29u
IHRvIHByb3BhZ2F0ZSB0aGUgY2hpbGQgYW5pbWF0aW9uIHRvIHRoZSBwYXJlbnQgbGF5ZXJzLiBU
aGF0J3MgYmVjYXVzZQogICAgIC8vIHdlIGtub3cgZm9yIHN1cmUgdGhlIGFuaW1hdGlvbiBpcyBj
b250YWluZWQgaW5zaWRlIHRoZSBjbGlwcGluZyByZWN0YW5nbGUsIHdoaWNoIGlzIGFscmVhZHkg
YWRkZWQgdG8gdGhlIG92ZXJsYXAgbWFwLgotICAgIGlmICgoIWNoaWxkU3RhdGUudGVzdGluZ092
ZXJsYXAgJiYgIWlzQ29tcG9zaXRlZENsaXBwaW5nTGF5ZXIpIHx8IGlzUnVubmluZ0FjY2VsZXJh
dGVkVHJhbnNmb3JtQW5pbWF0aW9uKGxheWVyLnJlbmRlcmVyKCkpKQorICAgIGlmICgoIWNoaWxk
U3RhdGUudGVzdGluZ092ZXJsYXAgJiYgIWlzQ29tcG9zaXRlZENsaXBwaW5nTGF5ZXIpIHx8ICht
YXlIYXZlQW5pbWF0ZWRUcmFuc2Zvcm0gJiYgaXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1B
bmltYXRpb24obGF5ZXIucmVuZGVyZXIoKSkpKQogICAgICAgICBjb21wb3NpdGluZ1N0YXRlLnRl
c3RpbmdPdmVybGFwID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKGlzQ29tcG9zaXRlZENsaXBwaW5n
TGF5ZXIpIHsKQEAgLTE0MzQsNyArMTQ1Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAg
ICAgICAgIHJlcGFpbnRPbkNvbXBvc2l0aW5nQ2hhbmdlKGxheWVyKTsKIAogICAgIC8vIFVwZGF0
ZSBiYWNraW5nIG5vdywgc28gdGhhdCB3ZSBjYW4gdXNlIGlzQ29tcG9zaXRlZCgpIHJlbGlhYmx5
IGR1cmluZyB0cmVlIHRyYXZlcnNhbCBpbiByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoKS4K
LSAgICBpZiAodXBkYXRlQmFja2luZyhsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50Tm93
KSkKKyAgICBpZiAodXBkYXRlQmFja2luZyhsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50
Tm93LCB3aWxsQmVDb21wb3NpdGVkID8gQmFja2luZ1JlcXVpcmVkOjpZZXMgOiBCYWNraW5nUmVx
dWlyZWQ6Ok5vKSkKICAgICAgICAgbGF5ZXJzQ2hhbmdlZCA9IHRydWU7CiAKICAgICBpZiAobGF5
ZXIucmVmbGVjdGlvbkxheWVyKCkgJiYgdXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKCpsYXll
ci5yZWZsZWN0aW9uTGF5ZXIoKSwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50Tm93KSkKQEAgLTIx
MzYsMjcgKzIxNTUsMjMgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5lZWRzVG9CZUNv
bXBvc2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBSZW5kZXIKIC8vIHN0YXRpYwogYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdMYXllcihjb25zdCBS
ZW5kZXJMYXllciYgbGF5ZXIsIFJlbmRlckxheWVyOjpWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29t
cG9zaXRlZFJlYXNvbiogdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pIGNv
bnN0CiB7Ci0gICAgYXV0byogcmVuZGVyZXIgPSAmbGF5ZXIucmVuZGVyZXIoKTsKLQotICAgIC8v
IFRoZSBjb21wb3NpdGluZyBzdGF0ZSBvZiBhIHJlZmxlY3Rpb24gc2hvdWxkIG1hdGNoIHRoYXQg
b2YgaXRzIHJlZmxlY3RlZCBsYXllci4KLSAgICBpZiAobGF5ZXIuaXNSZWZsZWN0aW9uKCkpCi0g
ICAgICAgIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4ocmVuZGVy
ZXItPnBhcmVudCgpKTsgLy8gVGhlIFJlbmRlclJlcGxpY2EncyBwYXJlbnQgaXMgdGhlIG9iamVj
dCBiZWluZyByZWZsZWN0ZWQuCisgICAgYXV0byYgcmVuZGVyZXIgPSByZW5kZXJlckZvckNvbXBv
c2l0aW5nVGVzdHMobGF5ZXIpOwogCiAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3YXlzIGhhcyBh
IGNvbXBvc2l0aW5nIGxheWVyLCBidXQgaXQgbWF5IG5vdCBoYXZlIGJhY2tpbmcuCi0gICAgcmV0
dXJuIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JUcmFuc2Zvcm0oKnJlbmRlcmVyKQotICAgICAgICB8
fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8oKnJlbmRlcmVyKQotICAgICAgICB8fCByZXF1
aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKCpyZW5kZXJlcikKLSAgICAgICAgfHwgcmVxdWlyZXND
b21wb3NpdGluZ0ZvclBsdWdpbigqcmVuZGVyZXIpCi0gICAgICAgIHx8IHJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JGcmFtZSgqcmVuZGVyZXIpCi0gICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdG
b3JCYWNrZmFjZVZpc2liaWxpdHkoKnJlbmRlcmVyKQotICAgICAgICB8fCBjbGlwc0NvbXBvc2l0
aW5nRGVzY2VuZGFudHMoKnJlbmRlcmVyLT5sYXllcigpKQotICAgICAgICB8fCByZXF1aXJlc0Nv
bXBvc2l0aW5nRm9yQW5pbWF0aW9uKCpyZW5kZXJlcikKLSAgICAgICAgfHwgcmVxdWlyZXNDb21w
b3NpdGluZ0ZvckZpbHRlcnMoKnJlbmRlcmVyKQotICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0
aW5nRm9yUG9zaXRpb24oKnJlbmRlcmVyLCAqcmVuZGVyZXItPmxheWVyKCksIHZpZXdwb3J0Q29u
c3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKQorICAgIHJldHVybiByZXF1aXJlc0NvbXBvc2l0
aW5nRm9yVHJhbnNmb3JtKHJlbmRlcmVyKQorICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5n
Rm9yVmlkZW8ocmVuZGVyZXIpCisgICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JDYW52
YXMocmVuZGVyZXIpCisgICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4ocmVu
ZGVyZXIpCisgICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGcmFtZShyZW5kZXJlcikK
KyAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0ZvckJhY2tmYWNlVmlzaWJpbGl0eShyZW5k
ZXJlcikKKyAgICAgICAgfHwgY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKCpyZW5kZXJlci5s
YXllcigpKQorICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKHJlbmRl
cmVyKQorICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yRmlsdGVycyhyZW5kZXJlcikK
KyAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKHJlbmRlcmVyLCAqcmVu
ZGVyZXIubGF5ZXIoKSwgdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pCiAj
aWYgUExBVEZPUk0oSU9TKQotICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yU2Nyb2xs
aW5nKCpyZW5kZXJlci0+bGF5ZXIoKSkKKyAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0Zv
clNjcm9sbGluZyhyZW5kZXJlci5sYXllcigpKQogI2VuZGlmCi0gICAgICAgIHx8IHJlcXVpcmVz
Q29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbGluZygqcmVuZGVyZXItPmxheWVyKCkpOworICAg
ICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoKnJlbmRlcmVy
LmxheWVyKCkpOwogfQogCiBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FuQmVDb21wb3Np
dGVkKGNvbnN0IFJlbmRlckxheWVyJiBsYXllcikgY29uc3QKQEAgLTIyMjksNDYgKzIyNDQsNDQg
QEAgQ29tcG9zaXRpbmdSZWFzb25zIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVhc29uc0ZvckNv
bXBvc2l0aW5nKGNvbnN0IFJlbmRlckxheWUKICAgICBpZiAoIWxheWVyLmlzQ29tcG9zaXRlZCgp
KQogICAgICAgICByZXR1cm4gcmVhc29uczsKIAotICAgIGF1dG8qIHJlbmRlcmVyID0gJmxheWVy
LnJlbmRlcmVyKCk7Ci0gICAgaWYgKGxheWVyLmlzUmVmbGVjdGlvbigpKQotICAgICAgICByZW5k
ZXJlciA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmplY3Q+KHJlbmRlcmVyLT5wYXJlbnQo
KSk7CisgICAgYXV0byYgcmVuZGVyZXIgPSByZW5kZXJlckZvckNvbXBvc2l0aW5nVGVzdHMobGF5
ZXIpOwogCi0gICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JUcmFuc2Zvcm0oKnJlbmRlcmVy
KSkKKyAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvclRyYW5zZm9ybShyZW5kZXJlcikpCiAg
ICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb24zRFRyYW5zZm9ybTsKIAotICAgIGlm
IChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8oKnJlbmRlcmVyKSkKKyAgICBpZiAocmVxdWly
ZXNDb21wb3NpdGluZ0ZvclZpZGVvKHJlbmRlcmVyKSkKICAgICAgICAgcmVhc29ucyB8PSBDb21w
b3NpdGluZ1JlYXNvblZpZGVvOwotICAgIGVsc2UgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JD
YW52YXMoKnJlbmRlcmVyKSkKKyAgICBlbHNlIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQ2Fu
dmFzKHJlbmRlcmVyKSkKICAgICAgICAgcmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbkNhbnZh
czsKLSAgICBlbHNlIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUGx1Z2luKCpyZW5kZXJlcikp
CisgICAgZWxzZSBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvclBsdWdpbihyZW5kZXJlcikpCiAg
ICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25QbHVnaW47Ci0gICAgZWxzZSBpZiAo
cmVxdWlyZXNDb21wb3NpdGluZ0ZvckZyYW1lKCpyZW5kZXJlcikpCisgICAgZWxzZSBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0ZvckZyYW1lKHJlbmRlcmVyKSkKICAgICAgICAgcmVhc29ucyB8PSBD
b21wb3NpdGluZ1JlYXNvbklGcmFtZTsKICAgICAKLSAgICBpZiAoKGNhblJlbmRlcjNEVHJhbnNm
b3JtcygpICYmIHJlbmRlcmVyLT5zdHlsZSgpLmJhY2tmYWNlVmlzaWJpbGl0eSgpID09IEJhY2tm
YWNlVmlzaWJpbGl0eUhpZGRlbikpCisgICAgaWYgKChjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSAm
JiByZW5kZXJlci5zdHlsZSgpLmJhY2tmYWNlVmlzaWJpbGl0eSgpID09IEJhY2tmYWNlVmlzaWJp
bGl0eUhpZGRlbikpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25CYWNrZmFj
ZVZpc2liaWxpdHlIaWRkZW47CiAKLSAgICBpZiAoY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRz
KCpyZW5kZXJlci0+bGF5ZXIoKSkpCisgICAgaWYgKGNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50
cygqcmVuZGVyZXIubGF5ZXIoKSkpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFz
b25DbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFudHM7CiAKLSAgICBpZiAocmVxdWlyZXNDb21wb3Np
dGluZ0ZvckFuaW1hdGlvbigqcmVuZGVyZXIpKQorICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5n
Rm9yQW5pbWF0aW9uKHJlbmRlcmVyKSkKICAgICAgICAgcmVhc29ucyB8PSBDb21wb3NpdGluZ1Jl
YXNvbkFuaW1hdGlvbjsKIAotICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yRmlsdGVycygq
cmVuZGVyZXIpKQorICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yRmlsdGVycyhyZW5kZXJl
cikpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25GaWx0ZXJzOwogCi0gICAg
aWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbigqcmVuZGVyZXIsICpyZW5kZXJlci0+
bGF5ZXIoKSkpCi0gICAgICAgIHJlYXNvbnMgfD0gcmVuZGVyZXItPnN0eWxlKCkucG9zaXRpb24o
KSA9PSBGaXhlZFBvc2l0aW9uID8gQ29tcG9zaXRpbmdSZWFzb25Qb3NpdGlvbkZpeGVkIDogQ29t
cG9zaXRpbmdSZWFzb25Qb3NpdGlvblN0aWNreTsKKyAgICBpZiAocmVxdWlyZXNDb21wb3NpdGlu
Z0ZvclBvc2l0aW9uKHJlbmRlcmVyLCAqcmVuZGVyZXIubGF5ZXIoKSkpCisgICAgICAgIHJlYXNv
bnMgfD0gcmVuZGVyZXIuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24gPyBDb21w
b3NpdGluZ1JlYXNvblBvc2l0aW9uRml4ZWQgOiBDb21wb3NpdGluZ1JlYXNvblBvc2l0aW9uU3Rp
Y2t5OwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9y
U2Nyb2xsaW5nKCpyZW5kZXJlci0+bGF5ZXIoKSkpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9z
aXRpbmdSZWFzb25PdmVyZmxvd1Njcm9sbGluZ1RvdWNoOwogI2VuZGlmCiAKLSAgICBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5nKCpyZW5kZXJlci0+bGF5ZXIoKSkp
CisgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbGluZygqcmVuZGVy
ZXIubGF5ZXIoKSkpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25PdmVyZmxv
d1Njcm9sbGluZ1RvdWNoOwogCi0gICAgc3dpdGNoIChyZW5kZXJlci0+bGF5ZXIoKS0+aW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbigpKSB7CisgICAgc3dpdGNoIChyZW5kZXJlci5sYXllcigpLT5p
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkpIHsKICAgICBjYXNlIFJlbmRlckxheWVyOjpJbmRp
cmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lOgogICAgICAgICBicmVhazsKICAgICBjYXNlIFJl
bmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpTdGFja2luZzoKQEAgLTIyODEs
MTkgKzIyOTQsMTkgQEAgQ29tcG9zaXRpbmdSZWFzb25zIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVhc29uc0ZvckNvbXBvc2l0aW5nKGNvbnN0IFJlbmRlckxheWUKICAgICAgICAgcmVhc29ucyB8
PSBDb21wb3NpdGluZ1JlYXNvbk5lZ2F0aXZlWkluZGV4Q2hpbGRyZW47CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OkdyYXBo
aWNhbEVmZmVjdDoKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5oYXNUcmFuc2Zvcm0oKSkKKyAgICAg
ICAgaWYgKHJlbmRlcmVyLmhhc1RyYW5zZm9ybSgpKQogICAgICAgICAgICAgcmVhc29ucyB8PSBD
b21wb3NpdGluZ1JlYXNvblRyYW5zZm9ybVdpdGhDb21wb3NpdGVkRGVzY2VuZGFudHM7CiAKLSAg
ICAgICAgaWYgKHJlbmRlcmVyLT5pc1RyYW5zcGFyZW50KCkpCisgICAgICAgIGlmIChyZW5kZXJl
ci5pc1RyYW5zcGFyZW50KCkpCiAgICAgICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVh
c29uT3BhY2l0eVdpdGhDb21wb3NpdGVkRGVzY2VuZGFudHM7CiAKLSAgICAgICAgaWYgKHJlbmRl
cmVyLT5oYXNNYXNrKCkpCisgICAgICAgIGlmIChyZW5kZXJlci5oYXNNYXNrKCkpCiAgICAgICAg
ICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uTWFza1dpdGhDb21wb3NpdGVkRGVzY2Vu
ZGFudHM7CiAKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5oYXNSZWZsZWN0aW9uKCkpCisgICAgICAg
IGlmIChyZW5kZXJlci5oYXNSZWZsZWN0aW9uKCkpCiAgICAgICAgICAgICByZWFzb25zIHw9IENv
bXBvc2l0aW5nUmVhc29uUmVmbGVjdGlvbldpdGhDb21wb3NpdGVkRGVzY2VuZGFudHM7CiAKLSAg
ICAgICAgaWYgKHJlbmRlcmVyLT5oYXNGaWx0ZXIoKSB8fCByZW5kZXJlci0+aGFzQmFja2Ryb3BG
aWx0ZXIoKSkKKyAgICAgICAgaWYgKHJlbmRlcmVyLmhhc0ZpbHRlcigpIHx8IHJlbmRlcmVyLmhh
c0JhY2tkcm9wRmlsdGVyKCkpCiAgICAgICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVh
c29uRmlsdGVyV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsKIAogI2lmIEVOQUJMRShDU1NfQ09N
UE9TSVRJTkcpCkBAIC0yMzEyLDcgKzIzMjUsNyBAQCBDb21wb3NpdGluZ1JlYXNvbnMgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpyZWFzb25zRm9yQ29tcG9zaXRpbmcoY29uc3QgUmVuZGVyTGF5ZQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAoaW5Db21wb3NpdGluZ01vZGUoKSAmJiBy
ZW5kZXJlci0+bGF5ZXIoKS0+aXNSb290TGF5ZXIoKSkKKyAgICBpZiAoaW5Db21wb3NpdGluZ01v
ZGUoKSAmJiByZW5kZXJlci5sYXllcigpLT5pc1Jvb3RMYXllcigpKQogICAgICAgICByZWFzb25z
IHw9IENvbXBvc2l0aW5nUmVhc29uUm9vdDsKIAogICAgIHJldHVybiByZWFzb25zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IGMy
MzNhY2Y1Y2NiMGM5NjlkOTMxOTJmYzlkOTVmNWZmYmNiOTk4NGQuLmYxNWEyYTIyOWI0M2E0NWM5
YjQ4ZDQwZDkxMmQzOGE1NDFlZWYxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTI5Myw3ICsyOTMsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCkgeyBt
X3JlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0ID0gdHJ1ZTsgfQogCi0gICAgYm9vbCB2
aWV3SGFzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKENvbG9yKiBiYWNrZ3JvdW5kQ29sb3IgPSAwKSBj
b25zdDsKKyAgICBib29sIHZpZXdIYXNUcmFuc3BhcmVudEJhY2tncm91bmQoQ29sb3IqIGJhY2tn
cm91bmRDb2xvciA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNOb25NYWluTGF5ZXJz
V2l0aFRpbGVkQmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJzV2l0aFRpbGVkQmFja2lu
Z0NvdW50OyB9CiAKQEAgLTMyMiwxNCArMzIyLDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGZsdXNoTGF5ZXJzU29vbihHcmFwaGljc0xheWVyVXBkYXRlciopIG92ZXJyaWRlOwogCiAg
ICAgLy8gV2hldGhlciB0aGUgZ2l2ZW4gUkwgbmVlZHMgYSBjb21wb3NpdGluZyBsYXllci4KLSAg
ICBib29sIG5lZWRzVG9CZUNvbXBvc2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXImLCBSZW5kZXJMYXll
cjo6Vmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24qID0gMCkgY29uc3Q7Cisg
ICAgYm9vbCBuZWVkc1RvQmVDb21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJiwgUmVuZGVyTGF5
ZXI6OlZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKiA9IG51bGxwdHIpIGNv
bnN0OwogICAgIC8vIFdoZXRoZXIgdGhlIGxheWVyIGhhcyBhbiBpbnRyaW5zaWMgbmVlZCBmb3Ig
Y29tcG9zaXRpbmcgbGF5ZXIuCi0gICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIoY29u
c3QgUmVuZGVyTGF5ZXImLCBSZW5kZXJMYXllcjo6Vmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBv
c2l0ZWRSZWFzb24qID0gMCkgY29uc3Q7CisgICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nTGF5
ZXIoY29uc3QgUmVuZGVyTGF5ZXImLCBSZW5kZXJMYXllcjo6Vmlld3BvcnRDb25zdHJhaW5lZE5v
dENvbXBvc2l0ZWRSZWFzb24qID0gbnVsbHB0cikgY29uc3Q7CiAgICAgLy8gV2hldGhlciB0aGUg
bGF5ZXIgY291bGQgZXZlciBiZSBjb21wb3NpdGVkLgogICAgIGJvb2wgY2FuQmVDb21wb3NpdGVk
KGNvbnN0IFJlbmRlckxheWVyJikgY29uc3Q7CiAKICAgICAvLyBNYWtlIG9yIGRlc3Ryb3kgdGhl
IGJhY2tpbmcgZm9yIHRoaXMgbGF5ZXI7IHJldHVybnMgdHJ1ZSBpZiBiYWNraW5nIGNoYW5nZWQu
Ci0gICAgYm9vbCB1cGRhdGVCYWNraW5nKFJlbmRlckxheWVyJiwgQ29tcG9zaXRpbmdDaGFuZ2VS
ZXBhaW50IHNob3VsZFJlcGFpbnQpOworICAgIGVudW0gY2xhc3MgQmFja2luZ1JlcXVpcmVkIHsg
Tm8sIFllcywgVW5rbm93biB9OworICAgIGJvb2wgdXBkYXRlQmFja2luZyhSZW5kZXJMYXllciYs
IENvbXBvc2l0aW5nQ2hhbmdlUmVwYWludCBzaG91bGRSZXBhaW50LCBCYWNraW5nUmVxdWlyZWQg
PSBCYWNraW5nUmVxdWlyZWQ6OlVua25vd24pOwogCiAgICAgdm9pZCBjbGVhckJhY2tpbmdGb3JM
YXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyJik7CiAgICAgdm9pZCBzZXRJc0lu
V2luZG93Rm9yTGF5ZXJJbmNsdWRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllciYsIGJvb2wgaXNJ
bldpbmRvdyk7CkBAIC00MTAsNyArNDExLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlcXVpcmVz
Q29tcG9zaXRpbmdGb3JGcmFtZShSZW5kZXJMYXllck1vZGVsT2JqZWN0JikgY29uc3Q7CiAgICAg
Ym9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yRmlsdGVycyhSZW5kZXJMYXllck1vZGVsT2JqZWN0
JikgY29uc3Q7CiAgICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1l
KCkgY29uc3Q7Ci0gICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCYsIGNvbnN0IFJlbmRlckxheWVyJiwgUmVuZGVyTGF5ZXI6OlZpZXdw
b3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKiA9IDApIGNvbnN0OworICAgIGJvb2wg
cmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKFJlbmRlckxheWVyTW9kZWxPYmplY3QmLCBj
b25zdCBSZW5kZXJMYXllciYsIFJlbmRlckxheWVyOjpWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29t
cG9zaXRlZFJlYXNvbiogPSBudWxscHRyKSBjb25zdDsKICAgICBib29sIHJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbGluZyhjb25zdCBSZW5kZXJMYXllciYpIGNvbnN0OwogICAg
IGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0ZvckluZGlyZWN0UmVhc29uKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QmLCBib29sIGhhc0NvbXBvc2l0ZWREZXNjZW5kYW50cywgYm9vbCBoYXMzRFRyYW5z
Zm9ybWVkRGVzY2VuZGFudHMsIFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
JikgY29uc3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248192</attachid>
            <date>2015-03-08 11:47:42 -0700</date>
            <delta_ts>2015-03-08 16:39:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142441-20150308114719.patch</filename>
            <type>text/plain</type>
            <size>16034</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJmYzFlYjk0NDQ3MGE0
ZTAxMjkzZGJmMTZiNjE1MDgxYzljZTI3OC4uZmE0YjdmZTM1MmJiNzczZDQyNTM0OGRmZGEwM2Zj
NGZhZDM4MmEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTAzLTA4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGNhbGwg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpuZWVkc1RvQmVDb21wb3NpdGVkKCkgc28gbWFueSB0aW1l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNDQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2F2ZSBv
bmUgY2FsbCB0byBuZWVkc1RvQmVDb21wb3NpdGVkKCkgcGVyIFJlbmRlckxheWVyIHdoaWxlIHJl
YnVpbGRpbmcgY29tcG9zaXRpbmcKKyAgICAgICAgbGF5ZXJzLCBhbmQgYSBjYWxsIHRvIGlzUnVu
bmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkgaW4gc29tZSBjYXNlcy4KKyAgICAg
ICAgCisgICAgICAgIGNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cygpIGFscmVhZHkga25v
d3MgaWYgdGhlIGxheWVyIHdpbGwgYmUgY29tcG9zaXRlZCwgc28KKyAgICAgICAgcGFzcyB0aGF0
IHRvIHVwZGF0ZUJhY2tpbmcoKSBpbiB0aGUgZm9ybSBvZiBhICJ5ZXMvbm8vZG9uJ3QiIGtub3cg
ZW51bS4gSG93ZXZlciwKKyAgICAgICAgc2luY2UgdXBkYXRlQmFja2luZygpIG5vIGxvbmdlciBj
YWxscyBuZWVkc1RvQmVDb21wb3NpdGVkKCksIHdlIG5lZWQgdG8gY2FsbCAKKyAgICAgICAgcmVx
dWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKCkgdG8gZ2V0IHRoZSB2aWV3cG9ydENvbnN0cmFp
bmVkTm90Q29tcG9zaXRlZFJlYXNvbiBmbGFncy4KKyAgICAgICAgCisgICAgICAgIGlzUnVubmlu
Z0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkgd2lsbCBvbmx5IGJlIHRydWUgZm9yIGEg
bGF5ZXIgd2hpY2ggaGFzIGEKKyAgICAgICAgZGlyZWN0IGNvbXBvc2l0aW5nIHJlYXNvbiwgc28g
b25seSBjYWxsIGlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkKKyAgICAg
ICAgaW4gdGhhdCBjYXNlLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlcmVyRm9yQ29tcG9zaXRp
bmdUZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21w
dXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nTGF5ZXIpOiBVc2UgcmVmZXJlbmNlcy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVhc29uc0ZvckNvbXBv
c2l0aW5nKTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oOgorCiAyMDE1LTAzLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEluIFJlbmRlckxheWVyQ29tcG9zaXRvciwgdHJhY2sgbGF5
ZXIgYm91bmRzIGFuZCB0aGUgaGF2ZUNvbXB1dGVkQm91bmRzIGZsYWcgdG9nZXRoZXIgaW4gYSBz
dHJ1Y3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggYTIxMGYzMWMwNDIzM2EzZGEyZTEyOTNhNmIwN2IxNWRmZjBiOGM2OC4u
YzgxYmZiYzY0NTAzM2NhOGI0YzAyZGQ0OWNlZjIxNmY0NTYyYzVkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTk0Mywx
MiArOTQzLDMwIEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYW5Db21wb3NpdGVDbGlw
UGF0aChjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgcmV0dXJuIChjbGlwUGF0aC50eXBl
KCkgIT0gQ2xpcFBhdGhPcGVyYXRpb246OlNoYXBlIHx8IGNsaXBQYXRoLnR5cGUoKSA9PSBDbGlw
UGF0aE9wZXJhdGlvbjo6U2hhcGUpICYmIEdyYXBoaWNzTGF5ZXI6OnN1cHBvcnRzTGF5ZXJUeXBl
KEdyYXBoaWNzTGF5ZXI6OlR5cGU6OlNoYXBlKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheWVyLCBDb21wb3NpdGluZ0NoYW5n
ZVJlcGFpbnQgc2hvdWxkUmVwYWludCkKK3N0YXRpYyBSZW5kZXJMYXllck1vZGVsT2JqZWN0JiBy
ZW5kZXJlckZvckNvbXBvc2l0aW5nVGVzdHMoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKQorewor
ICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlbmRlcmVyID0gJmxheWVyLnJlbmRlcmVyKCk7
CisKKyAgICAvLyBUaGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgYSByZWZsZWN0aW9uIHNob3VsZCBt
YXRjaCB0aGF0IG9mIGl0cyByZWZsZWN0ZWQgbGF5ZXIuCisgICAgaWYgKGxheWVyLmlzUmVmbGVj
dGlvbigpKQorICAgICAgICByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q+KHJlbmRlcmVyLT5wYXJlbnQoKSk7IC8vIFRoZSBSZW5kZXJSZXBsaWNhJ3MgcGFyZW50IGlz
IHRoZSBvYmplY3QgYmVpbmcgcmVmbGVjdGVkLgorCisgICAgcmV0dXJuICpyZW5kZXJlcjsKK30K
KworYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXIm
IGxheWVyLCBDb21wb3NpdGluZ0NoYW5nZVJlcGFpbnQgc2hvdWxkUmVwYWludCwgQmFja2luZ1Jl
cXVpcmVkIGJhY2tpbmdSZXF1aXJlZCkKIHsKICAgICBib29sIGxheWVyQ2hhbmdlZCA9IGZhbHNl
OwogICAgIFJlbmRlckxheWVyOjpWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNv
biB2aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiA9IFJlbmRlckxheWVyOjpO
b05vdENvbXBvc2l0ZWRSZWFzb247CiAKLSAgICBpZiAobmVlZHNUb0JlQ29tcG9zaXRlZChsYXll
ciwgJnZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKSkgeworICAgIGlmIChi
YWNraW5nUmVxdWlyZWQgPT0gQmFja2luZ1JlcXVpcmVkOjpVbmtub3duKQorICAgICAgICBiYWNr
aW5nUmVxdWlyZWQgPSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVyLCAmdmlld3BvcnRDb25zdHJh
aW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pID8gQmFja2luZ1JlcXVpcmVkOjpZZXMgOiBCYWNraW5n
UmVxdWlyZWQ6Ok5vOworICAgIGVsc2UgeworICAgICAgICAvLyBOZWVkIHRvIGZldGNoIHZpZXdw
b3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uLCBidXQgd2l0aG91dCBkb2luZyBhbGwg
dGhlIHdvcmsgdGhhdCBuZWVkc1RvQmVDb21wb3NpdGVkIGRvZXMuCisgICAgICAgIHJlcXVpcmVz
Q29tcG9zaXRpbmdGb3JQb3NpdGlvbihyZW5kZXJlckZvckNvbXBvc2l0aW5nVGVzdHMobGF5ZXIp
LCBsYXllciwgJnZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKTsKKyAgICB9
CisKKyAgICBpZiAoYmFja2luZ1JlcXVpcmVkID09IEJhY2tpbmdSZXF1aXJlZDo6WWVzKSB7CiAg
ICAgICAgIGVuYWJsZUNvbXBvc2l0aW5nTW9kZSgpOwogICAgICAgICAKICAgICAgICAgaWYgKCFs
YXllci5iYWNraW5nKCkpIHsKQEAgLTEyNDMsMTAgKzEyNjEsMTEgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciog
YW5jZXN0b3IKICAgICBsYXllci5zZXRIYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoZmFsc2UpOwog
ICAgIGxheWVyLnNldEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oUmVuZGVyTGF5ZXI6OkluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmUpOwogCi0gICAgLy8gQ2hlY2sgaWYgdGhlIGxheWVy
IG5lZWRzIHRvIGJlIGNvbXBvc2l0ZWQgZm9yIG5vbi1pbmRpcmVjdCByZWFzb25zIChleC4gM0Qg
dHJhbnNmb3JtKS4KLSAgICAvLyBXZSB1c2UgdGhpcyB2YWx1ZSB0byBhdm9pZCBjaGVja2luZyB0
aGUgb3ZlcmxhcC1tYXAsIGlmIHdlIGtub3cgZm9yIHN1cmUgdGhlIGxheWVyCisgICAgLy8gQ2hl
Y2sgaWYgdGhlIGxheWVyIG5lZWRzIHRvIGJlIGNvbXBvc2l0ZWQgZm9yIGRpcmVjdCByZWFzb25z
IChlLmcuIDNEIHRyYW5zZm9ybSkuCisgICAgLy8gV2UgdXNlIHRoaXMgdmFsdWUgdG8gYXZvaWQg
Y2hlY2tpbmcgdGhlIG92ZXJsYXAgbWFwLCBpZiB3ZSBrbm93IGZvciBzdXJlIHRoZSBsYXllcgog
ICAgIC8vIGlzIGFscmVhZHkgZ29pbmcgdG8gYmUgY29tcG9zaXRlZCBmb3Igb3RoZXIgcmVhc29u
cy4KICAgICBib29sIHdpbGxCZUNvbXBvc2l0ZWQgPSBuZWVkc1RvQmVDb21wb3NpdGVkKGxheWVy
KTsKKyAgICBib29sIG1heUhhdmVBbmltYXRlZFRyYW5zZm9ybSA9IHdpbGxCZUNvbXBvc2l0ZWQg
JiYgIWxheWVyLmlzUm9vdExheWVyKCk7CiAKICAgICBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbiBjb21wb3NpdGluZ1JlYXNvbiA9IGNvbXBvc2l0aW5nU3RhdGUuc3VidHJl
ZUlzQ29tcG9zaXRpbmcgPyBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6
U3RhY2tpbmcgOiBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9uZTsK
IApAQCAtMTM5Niw3ICsxNDE1LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1
dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICAvLyBU
dXJuIG92ZXJsYXAgdGVzdGluZyBvZmYgZm9yIGxhdGVyIGxheWVycyBpZiBpdCdzIGFscmVhZHkg
b2ZmLCBvciBpZiB3ZSBoYXZlIGFuIGFuaW1hdGluZyB0cmFuc2Zvcm0uCiAgICAgLy8gTm90ZSB0
aGF0IGlmIHRoZSBsYXllciBjbGlwcyBpdHMgZGVzY2VuZGFudHMsIHRoZXJlJ3Mgbm8gcmVhc29u
IHRvIHByb3BhZ2F0ZSB0aGUgY2hpbGQgYW5pbWF0aW9uIHRvIHRoZSBwYXJlbnQgbGF5ZXJzLiBU
aGF0J3MgYmVjYXVzZQogICAgIC8vIHdlIGtub3cgZm9yIHN1cmUgdGhlIGFuaW1hdGlvbiBpcyBj
b250YWluZWQgaW5zaWRlIHRoZSBjbGlwcGluZyByZWN0YW5nbGUsIHdoaWNoIGlzIGFscmVhZHkg
YWRkZWQgdG8gdGhlIG92ZXJsYXAgbWFwLgotICAgIGlmICgoIWNoaWxkU3RhdGUudGVzdGluZ092
ZXJsYXAgJiYgIWlzQ29tcG9zaXRlZENsaXBwaW5nTGF5ZXIpIHx8IGlzUnVubmluZ0FjY2VsZXJh
dGVkVHJhbnNmb3JtQW5pbWF0aW9uKGxheWVyLnJlbmRlcmVyKCkpKQorICAgIGlmICgoIWNoaWxk
U3RhdGUudGVzdGluZ092ZXJsYXAgJiYgIWlzQ29tcG9zaXRlZENsaXBwaW5nTGF5ZXIpIHx8ICht
YXlIYXZlQW5pbWF0ZWRUcmFuc2Zvcm0gJiYgaXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1B
bmltYXRpb24obGF5ZXIucmVuZGVyZXIoKSkpKQogICAgICAgICBjb21wb3NpdGluZ1N0YXRlLnRl
c3RpbmdPdmVybGFwID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKGlzQ29tcG9zaXRlZENsaXBwaW5n
TGF5ZXIpIHsKQEAgLTE0MzQsNyArMTQ1Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAg
ICAgICAgIHJlcGFpbnRPbkNvbXBvc2l0aW5nQ2hhbmdlKGxheWVyKTsKIAogICAgIC8vIFVwZGF0
ZSBiYWNraW5nIG5vdywgc28gdGhhdCB3ZSBjYW4gdXNlIGlzQ29tcG9zaXRlZCgpIHJlbGlhYmx5
IGR1cmluZyB0cmVlIHRyYXZlcnNhbCBpbiByZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoKS4K
LSAgICBpZiAodXBkYXRlQmFja2luZyhsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50Tm93
KSkKKyAgICBpZiAodXBkYXRlQmFja2luZyhsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50
Tm93LCB3aWxsQmVDb21wb3NpdGVkID8gQmFja2luZ1JlcXVpcmVkOjpZZXMgOiBCYWNraW5nUmVx
dWlyZWQ6Ok5vKSkKICAgICAgICAgbGF5ZXJzQ2hhbmdlZCA9IHRydWU7CiAKICAgICBpZiAobGF5
ZXIucmVmbGVjdGlvbkxheWVyKCkgJiYgdXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKCpsYXll
ci5yZWZsZWN0aW9uTGF5ZXIoKSwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50Tm93KSkKQEAgLTIx
MzYsMjcgKzIxNTUsMjMgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6Om5lZWRzVG9CZUNv
bXBvc2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBSZW5kZXIKIC8vIHN0YXRpYwogYm9v
bCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdMYXllcihjb25zdCBS
ZW5kZXJMYXllciYgbGF5ZXIsIFJlbmRlckxheWVyOjpWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29t
cG9zaXRlZFJlYXNvbiogdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pIGNv
bnN0CiB7Ci0gICAgYXV0byogcmVuZGVyZXIgPSAmbGF5ZXIucmVuZGVyZXIoKTsKLQotICAgIC8v
IFRoZSBjb21wb3NpdGluZyBzdGF0ZSBvZiBhIHJlZmxlY3Rpb24gc2hvdWxkIG1hdGNoIHRoYXQg
b2YgaXRzIHJlZmxlY3RlZCBsYXllci4KLSAgICBpZiAobGF5ZXIuaXNSZWZsZWN0aW9uKCkpCi0g
ICAgICAgIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4ocmVuZGVy
ZXItPnBhcmVudCgpKTsgLy8gVGhlIFJlbmRlclJlcGxpY2EncyBwYXJlbnQgaXMgdGhlIG9iamVj
dCBiZWluZyByZWZsZWN0ZWQuCisgICAgYXV0byYgcmVuZGVyZXIgPSByZW5kZXJlckZvckNvbXBv
c2l0aW5nVGVzdHMobGF5ZXIpOwogCiAgICAgLy8gVGhlIHJvb3QgbGF5ZXIgYWx3YXlzIGhhcyBh
IGNvbXBvc2l0aW5nIGxheWVyLCBidXQgaXQgbWF5IG5vdCBoYXZlIGJhY2tpbmcuCi0gICAgcmV0
dXJuIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JUcmFuc2Zvcm0oKnJlbmRlcmVyKQotICAgICAgICB8
fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8oKnJlbmRlcmVyKQotICAgICAgICB8fCByZXF1
aXJlc0NvbXBvc2l0aW5nRm9yQ2FudmFzKCpyZW5kZXJlcikKLSAgICAgICAgfHwgcmVxdWlyZXND
b21wb3NpdGluZ0ZvclBsdWdpbigqcmVuZGVyZXIpCi0gICAgICAgIHx8IHJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JGcmFtZSgqcmVuZGVyZXIpCi0gICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdG
b3JCYWNrZmFjZVZpc2liaWxpdHkoKnJlbmRlcmVyKQotICAgICAgICB8fCBjbGlwc0NvbXBvc2l0
aW5nRGVzY2VuZGFudHMoKnJlbmRlcmVyLT5sYXllcigpKQotICAgICAgICB8fCByZXF1aXJlc0Nv
bXBvc2l0aW5nRm9yQW5pbWF0aW9uKCpyZW5kZXJlcikKLSAgICAgICAgfHwgcmVxdWlyZXNDb21w
b3NpdGluZ0ZvckZpbHRlcnMoKnJlbmRlcmVyKQotICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0
aW5nRm9yUG9zaXRpb24oKnJlbmRlcmVyLCAqcmVuZGVyZXItPmxheWVyKCksIHZpZXdwb3J0Q29u
c3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKQorICAgIHJldHVybiByZXF1aXJlc0NvbXBvc2l0
aW5nRm9yVHJhbnNmb3JtKHJlbmRlcmVyKQorICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5n
Rm9yVmlkZW8ocmVuZGVyZXIpCisgICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JDYW52
YXMocmVuZGVyZXIpCisgICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4ocmVu
ZGVyZXIpCisgICAgICAgIHx8IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGcmFtZShyZW5kZXJlcikK
KyAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0ZvckJhY2tmYWNlVmlzaWJpbGl0eShyZW5k
ZXJlcikKKyAgICAgICAgfHwgY2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzKCpyZW5kZXJlci5s
YXllcigpKQorICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKHJlbmRl
cmVyKQorICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yRmlsdGVycyhyZW5kZXJlcikK
KyAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKHJlbmRlcmVyLCAqcmVu
ZGVyZXIubGF5ZXIoKSwgdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pCiAj
aWYgUExBVEZPUk0oSU9TKQotICAgICAgICB8fCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yU2Nyb2xs
aW5nKCpyZW5kZXJlci0+bGF5ZXIoKSkKKyAgICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0Zv
clNjcm9sbGluZygqcmVuZGVyZXIubGF5ZXIoKSkKICNlbmRpZgotICAgICAgICB8fCByZXF1aXJl
c0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoKnJlbmRlcmVyLT5sYXllcigpKTsKKyAg
ICAgICAgfHwgcmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5nKCpyZW5kZXJl
ci5sYXllcigpKTsKIH0KIAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbkJlQ29tcG9z
aXRlZChjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpIGNvbnN0CkBAIC0yMjI5LDQ2ICsyMjQ0LDQ0
IEBAIENvbXBvc2l0aW5nUmVhc29ucyBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbnNGb3JD
b21wb3NpdGluZyhjb25zdCBSZW5kZXJMYXllCiAgICAgaWYgKCFsYXllci5pc0NvbXBvc2l0ZWQo
KSkKICAgICAgICAgcmV0dXJuIHJlYXNvbnM7CiAKLSAgICBhdXRvKiByZW5kZXJlciA9ICZsYXll
ci5yZW5kZXJlcigpOwotICAgIGlmIChsYXllci5pc1JlZmxlY3Rpb24oKSkKLSAgICAgICAgcmVu
ZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PihyZW5kZXJlci0+cGFyZW50
KCkpOworICAgIGF1dG8mIHJlbmRlcmVyID0gcmVuZGVyZXJGb3JDb21wb3NpdGluZ1Rlc3RzKGxh
eWVyKTsKIAotICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yVHJhbnNmb3JtKCpyZW5kZXJl
cikpCisgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JUcmFuc2Zvcm0ocmVuZGVyZXIpKQog
ICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uM0RUcmFuc2Zvcm07CiAKLSAgICBp
ZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKCpyZW5kZXJlcikpCisgICAgaWYgKHJlcXVp
cmVzQ29tcG9zaXRpbmdGb3JWaWRlbyhyZW5kZXJlcikpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29t
cG9zaXRpbmdSZWFzb25WaWRlbzsKLSAgICBlbHNlIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9y
Q2FudmFzKCpyZW5kZXJlcikpCisgICAgZWxzZSBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvckNh
bnZhcyhyZW5kZXJlcikpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25DYW52
YXM7Ci0gICAgZWxzZSBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvclBsdWdpbigqcmVuZGVyZXIp
KQorICAgIGVsc2UgaWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4ocmVuZGVyZXIpKQog
ICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uUGx1Z2luOwotICAgIGVsc2UgaWYg
KHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGcmFtZSgqcmVuZGVyZXIpKQorICAgIGVsc2UgaWYgKHJl
cXVpcmVzQ29tcG9zaXRpbmdGb3JGcmFtZShyZW5kZXJlcikpCiAgICAgICAgIHJlYXNvbnMgfD0g
Q29tcG9zaXRpbmdSZWFzb25JRnJhbWU7CiAgICAgCi0gICAgaWYgKChjYW5SZW5kZXIzRFRyYW5z
Zm9ybXMoKSAmJiByZW5kZXJlci0+c3R5bGUoKS5iYWNrZmFjZVZpc2liaWxpdHkoKSA9PSBCYWNr
ZmFjZVZpc2liaWxpdHlIaWRkZW4pKQorICAgIGlmICgoY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkg
JiYgcmVuZGVyZXIuc3R5bGUoKS5iYWNrZmFjZVZpc2liaWxpdHkoKSA9PSBCYWNrZmFjZVZpc2li
aWxpdHlIaWRkZW4pKQogICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uQmFja2Zh
Y2VWaXNpYmlsaXR5SGlkZGVuOwogCi0gICAgaWYgKGNsaXBzQ29tcG9zaXRpbmdEZXNjZW5kYW50
cygqcmVuZGVyZXItPmxheWVyKCkpKQorICAgIGlmIChjbGlwc0NvbXBvc2l0aW5nRGVzY2VuZGFu
dHMoKnJlbmRlcmVyLmxheWVyKCkpKQogICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVh
c29uQ2xpcHNDb21wb3NpdGluZ0Rlc2NlbmRhbnRzOwogCi0gICAgaWYgKHJlcXVpcmVzQ29tcG9z
aXRpbmdGb3JBbmltYXRpb24oKnJlbmRlcmVyKSkKKyAgICBpZiAocmVxdWlyZXNDb21wb3NpdGlu
Z0ZvckFuaW1hdGlvbihyZW5kZXJlcikpCiAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdS
ZWFzb25BbmltYXRpb247CiAKLSAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvckZpbHRlcnMo
KnJlbmRlcmVyKSkKKyAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0ZvckZpbHRlcnMocmVuZGVy
ZXIpKQogICAgICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uRmlsdGVyczsKIAotICAg
IGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oKnJlbmRlcmVyLCAqcmVuZGVyZXIt
PmxheWVyKCkpKQotICAgICAgICByZWFzb25zIHw9IHJlbmRlcmVyLT5zdHlsZSgpLnBvc2l0aW9u
KCkgPT0gRml4ZWRQb3NpdGlvbiA/IENvbXBvc2l0aW5nUmVhc29uUG9zaXRpb25GaXhlZCA6IENv
bXBvc2l0aW5nUmVhc29uUG9zaXRpb25TdGlja3k7CisgICAgaWYgKHJlcXVpcmVzQ29tcG9zaXRp
bmdGb3JQb3NpdGlvbihyZW5kZXJlciwgKnJlbmRlcmVyLmxheWVyKCkpKQorICAgICAgICByZWFz
b25zIHw9IHJlbmRlcmVyLnN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uID8gQ29t
cG9zaXRpbmdSZWFzb25Qb3NpdGlvbkZpeGVkIDogQ29tcG9zaXRpbmdSZWFzb25Qb3NpdGlvblN0
aWNreTsKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0Zv
clNjcm9sbGluZygqcmVuZGVyZXItPmxheWVyKCkpKQorICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0
aW5nRm9yU2Nyb2xsaW5nKCpyZW5kZXJlci5sYXllcigpKSkKICAgICAgICAgcmVhc29ucyB8PSBD
b21wb3NpdGluZ1JlYXNvbk92ZXJmbG93U2Nyb2xsaW5nVG91Y2g7CiAjZW5kaWYKIAotICAgIGlm
IChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxpbmcoKnJlbmRlcmVyLT5sYXll
cigpKSkKKyAgICBpZiAocmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5nKCpy
ZW5kZXJlci5sYXllcigpKSkKICAgICAgICAgcmVhc29ucyB8PSBDb21wb3NpdGluZ1JlYXNvbk92
ZXJmbG93U2Nyb2xsaW5nVG91Y2g7CiAKLSAgICBzd2l0Y2ggKHJlbmRlcmVyLT5sYXllcigpLT5p
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKCkpIHsKKyAgICBzd2l0Y2ggKHJlbmRlcmVyLmxheWVy
KCktPmluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSkgewogICAgIGNhc2UgUmVuZGVyTGF5ZXI6
OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmU6CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlN0YWNraW5nOgpAQCAt
MjI4MSwxOSArMjI5NCwxOSBAQCBDb21wb3NpdGluZ1JlYXNvbnMgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpyZWFzb25zRm9yQ29tcG9zaXRpbmcoY29uc3QgUmVuZGVyTGF5ZQogICAgICAgICByZWFz
b25zIHw9IENvbXBvc2l0aW5nUmVhc29uTmVnYXRpdmVaSW5kZXhDaGlsZHJlbjsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6
R3JhcGhpY2FsRWZmZWN0OgotICAgICAgICBpZiAocmVuZGVyZXItPmhhc1RyYW5zZm9ybSgpKQor
ICAgICAgICBpZiAocmVuZGVyZXIuaGFzVHJhbnNmb3JtKCkpCiAgICAgICAgICAgICByZWFzb25z
IHw9IENvbXBvc2l0aW5nUmVhc29uVHJhbnNmb3JtV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsK
IAotICAgICAgICBpZiAocmVuZGVyZXItPmlzVHJhbnNwYXJlbnQoKSkKKyAgICAgICAgaWYgKHJl
bmRlcmVyLmlzVHJhbnNwYXJlbnQoKSkKICAgICAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRp
bmdSZWFzb25PcGFjaXR5V2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsKIAotICAgICAgICBpZiAo
cmVuZGVyZXItPmhhc01hc2soKSkKKyAgICAgICAgaWYgKHJlbmRlcmVyLmhhc01hc2soKSkKICAg
ICAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25NYXNrV2l0aENvbXBvc2l0ZWRE
ZXNjZW5kYW50czsKIAotICAgICAgICBpZiAocmVuZGVyZXItPmhhc1JlZmxlY3Rpb24oKSkKKyAg
ICAgICAgaWYgKHJlbmRlcmVyLmhhc1JlZmxlY3Rpb24oKSkKICAgICAgICAgICAgIHJlYXNvbnMg
fD0gQ29tcG9zaXRpbmdSZWFzb25SZWZsZWN0aW9uV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50czsK
IAotICAgICAgICBpZiAocmVuZGVyZXItPmhhc0ZpbHRlcigpIHx8IHJlbmRlcmVyLT5oYXNCYWNr
ZHJvcEZpbHRlcigpKQorICAgICAgICBpZiAocmVuZGVyZXIuaGFzRmlsdGVyKCkgfHwgcmVuZGVy
ZXIuaGFzQmFja2Ryb3BGaWx0ZXIoKSkKICAgICAgICAgICAgIHJlYXNvbnMgfD0gQ29tcG9zaXRp
bmdSZWFzb25GaWx0ZXJXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzOwogCiAjaWYgRU5BQkxFKENT
U19DT01QT1NJVElORykKQEAgLTIzMTIsNyArMjMyNSw3IEBAIENvbXBvc2l0aW5nUmVhc29ucyBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdCBSZW5kZXJM
YXllCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmIChpbkNvbXBvc2l0aW5nTW9kZSgp
ICYmIHJlbmRlcmVyLT5sYXllcigpLT5pc1Jvb3RMYXllcigpKQorICAgIGlmIChpbkNvbXBvc2l0
aW5nTW9kZSgpICYmIHJlbmRlcmVyLmxheWVyKCktPmlzUm9vdExheWVyKCkpCiAgICAgICAgIHJl
YXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb25Sb290OwogCiAgICAgcmV0dXJuIHJlYXNvbnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5k
ZXggYzIzM2FjZjVjY2IwYzk2OWQ5MzE5MmZjOWQ5NWY1ZmZiY2I5OTg0ZC4uZjE1YTJhMjI5YjQz
YTQ1YzliNDhkNDBkOTEyZDM4YTU0MWVlZjFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMjkzLDcgKzI5Myw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQo
KSB7IG1fcmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQgPSB0cnVlOyB9CiAKLSAgICBi
b29sIHZpZXdIYXNUcmFuc3BhcmVudEJhY2tncm91bmQoQ29sb3IqIGJhY2tncm91bmRDb2xvciA9
IDApIGNvbnN0OworICAgIGJvb2wgdmlld0hhc1RyYW5zcGFyZW50QmFja2dyb3VuZChDb2xvciog
YmFja2dyb3VuZENvbG9yID0gbnVsbHB0cikgY29uc3Q7CiAKICAgICBib29sIGhhc05vbk1haW5M
YXllcnNXaXRoVGlsZWRCYWNraW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcnNXaXRoVGlsZWRC
YWNraW5nQ291bnQ7IH0KIApAQCAtMzIyLDE0ICszMjIsMTUgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZmx1c2hMYXllcnNTb29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyKikgb3ZlcnJpZGU7
CiAKICAgICAvLyBXaGV0aGVyIHRoZSBnaXZlbiBSTCBuZWVkcyBhIGNvbXBvc2l0aW5nIGxheWVy
LgotICAgIGJvb2wgbmVlZHNUb0JlQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYsIFJlbmRl
ckxheWVyOjpWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiogPSAwKSBjb25z
dDsKKyAgICBib29sIG5lZWRzVG9CZUNvbXBvc2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXImLCBSZW5k
ZXJMYXllcjo6Vmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24qID0gbnVsbHB0
cikgY29uc3Q7CiAgICAgLy8gV2hldGhlciB0aGUgbGF5ZXIgaGFzIGFuIGludHJpbnNpYyBuZWVk
IGZvciBjb21wb3NpdGluZyBsYXllci4KLSAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdMYXll
cihjb25zdCBSZW5kZXJMYXllciYsIFJlbmRlckxheWVyOjpWaWV3cG9ydENvbnN0cmFpbmVkTm90
Q29tcG9zaXRlZFJlYXNvbiogPSAwKSBjb25zdDsKKyAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRp
bmdMYXllcihjb25zdCBSZW5kZXJMYXllciYsIFJlbmRlckxheWVyOjpWaWV3cG9ydENvbnN0cmFp
bmVkTm90Q29tcG9zaXRlZFJlYXNvbiogPSBudWxscHRyKSBjb25zdDsKICAgICAvLyBXaGV0aGVy
IHRoZSBsYXllciBjb3VsZCBldmVyIGJlIGNvbXBvc2l0ZWQuCiAgICAgYm9vbCBjYW5CZUNvbXBv
c2l0ZWQoY29uc3QgUmVuZGVyTGF5ZXImKSBjb25zdDsKIAogICAgIC8vIE1ha2Ugb3IgZGVzdHJv
eSB0aGUgYmFja2luZyBmb3IgdGhpcyBsYXllcjsgcmV0dXJucyB0cnVlIGlmIGJhY2tpbmcgY2hh
bmdlZC4KLSAgICBib29sIHVwZGF0ZUJhY2tpbmcoUmVuZGVyTGF5ZXImLCBDb21wb3NpdGluZ0No
YW5nZVJlcGFpbnQgc2hvdWxkUmVwYWludCk7CisgICAgZW51bSBjbGFzcyBCYWNraW5nUmVxdWly
ZWQgeyBObywgWWVzLCBVbmtub3duIH07CisgICAgYm9vbCB1cGRhdGVCYWNraW5nKFJlbmRlckxh
eWVyJiwgQ29tcG9zaXRpbmdDaGFuZ2VSZXBhaW50IHNob3VsZFJlcGFpbnQsIEJhY2tpbmdSZXF1
aXJlZCA9IEJhY2tpbmdSZXF1aXJlZDo6VW5rbm93bik7CiAKICAgICB2b2lkIGNsZWFyQmFja2lu
Z0ZvckxheWVySW5jbHVkaW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXImKTsKICAgICB2b2lkIHNl
dElzSW5XaW5kb3dGb3JMYXllckluY2x1ZGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyJiwgYm9v
bCBpc0luV2luZG93KTsKQEAgLTQxMCw3ICs0MTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVx
dWlyZXNDb21wb3NpdGluZ0ZvckZyYW1lKFJlbmRlckxheWVyTW9kZWxPYmplY3QmKSBjb25zdDsK
ICAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGaWx0ZXJzKFJlbmRlckxheWVyTW9kZWxP
YmplY3QmKSBjb25zdDsKICAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxl
RnJhbWUoKSBjb25zdDsKLSAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXImLCBSZW5kZXJMYXllcjo6
Vmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24qID0gMCkgY29uc3Q7CisgICAg
Ym9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24oUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCYsIGNvbnN0IFJlbmRlckxheWVyJiwgUmVuZGVyTGF5ZXI6OlZpZXdwb3J0Q29uc3RyYWluZWRO
b3RDb21wb3NpdGVkUmVhc29uKiA9IG51bGxwdHIpIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXND
b21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5nKGNvbnN0IFJlbmRlckxheWVyJikgY29uc3Q7
CiAgICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9ySW5kaXJlY3RSZWFzb24oUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCYsIGJvb2wgaGFzQ29tcG9zaXRlZERlc2NlbmRhbnRzLCBib29sIGhhczNE
VHJhbnNmb3JtZWREZXNjZW5kYW50cywgUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdS
ZWFzb24mKSBjb25zdDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>