<?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>179594</bug_id>
          
          <creation_ts>2017-11-12 08:36:14 -0800</creation_ts>
          <short_desc>[DFG][FTL] Support Array::DirectArguments with OutOfBounds</short_desc>
          <delta_ts>2017-11-15 09:35:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>buildbot</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1370755</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-12 08:36:14 -0800</bug_when>
    <thetext>[DFG][FTL] Support Array::DirectArguments with OutOfBounds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370756</commentid>
    <comment_count>1</comment_count>
      <attachid>326713</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-12 08:36:32 -0800</bug_when>
    <thetext>Created attachment 326713
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370757</commentid>
    <comment_count>2</comment_count>
      <attachid>326714</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-12 08:42:30 -0800</bug_when>
    <thetext>Created attachment 326714
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370768</commentid>
    <comment_count>3</comment_count>
      <attachid>326720</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-12 10:48:34 -0800</bug_when>
    <thetext>Created attachment 326720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371370</commentid>
    <comment_count>4</comment_count>
      <attachid>326876</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-14 07:15:03 -0800</bug_when>
    <thetext>Created attachment 326876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371398</commentid>
    <comment_count>5</comment_count>
      <attachid>326876</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-14 09:20:43 -0800</bug_when>
    <thetext>Comment on attachment 326876
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp:245
&gt; +                    m_graph.registerAndWatchStructureTransition(objectPrototypeStructure);

Don’t you want to check OOB mode here? Or is the !prototypeChaneIsSane rare enough that we just do it unconditionally?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371403</commentid>
    <comment_count>6</comment_count>
      <attachid>326876</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-14 09:31:56 -0800</bug_when>
    <thetext>Comment on attachment 326876
Patch

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

Thank you!

&gt;&gt; Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp:245
&gt;&gt; +                    m_graph.registerAndWatchStructureTransition(objectPrototypeStructure);
&gt; 
&gt; Don’t you want to check OOB mode here? Or is the !prototypeChaneIsSane rare enough that we just do it unconditionally?

Oh, nice catch. We should insert

if (mode.isInBounds())
    break;

check before this to align it to ClonedArguments case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371405</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-14 09:35:42 -0800</bug_when>
    <thetext>Committed r224818: &lt;https://trac.webkit.org/changeset/224818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371900</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:35:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/35562030&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326713</attachid>
            <date>2017-11-12 08:36:32 -0800</date>
            <delta_ts>2017-11-12 08:42:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179594-20171113013631.patch</filename>
            <type>text/plain</type>
            <size>8660</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NTUyYjU3ZjMxZDA1ZGY5Y2U2ZGJmZTM2YmI0NDFmZDRlOTc2NjU1Li4wNDliNDk3YTU3ODM5OWJm
NTI5ZDc5Yjk2OTU0Zjk0YWE1M2RmOTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNy0xMS0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIFN1cHBvcnQgQXJyYXk6OkRpcmVjdEFyZ3VtZW50
cyB3aXRoIE91dE9mQm91bmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk1OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6
OnJlZmluZSBjb25zdCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25EaXJlY3RB
cmd1bWVudHMpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0TXlBcmd1bWVudEJ5VmFsKToK
KwogMjAxNy0xMS0xMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
V2Ugc2hvdWxkIGVuc3VyZSB0aGF0IG9wZXJhdGlvblN0ckNhdDIgYW5kIG9wZXJhdGlvblN0ckNh
dDMgYXJlIG5ldmVyIHBhc3NlZCBTeW1ib2xzIGFzIGFyZ3VtZW50cy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2Uu
Y3BwCmluZGV4IDUwYWNhMjNiZDY4YzUxMGUwNWJiOWJlOTg3NTUzMzkwZjVjODc4MDMuLmQ4ZGU3
M2Q4Mjg3ZGI0YWY0ZmY0YWM5YmM0ZDM4ZTQzODQ5MWQ0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNw
cApAQCAtMjMwLDE1ICsyMzAsMjkgQEAgY2xhc3MgQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZSA6
IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIAogICAgICAgICBhdXRvIGVzY2FwZUJhc2VkT25BcnJh
eU1vZGUgPSBbJl0gKEFycmF5TW9kZSBtb2RlLCBFZGdlIGVkZ2UsIE5vZGUqIHNvdXJjZSkgewog
ICAgICAgICAgICAgc3dpdGNoIChtb2RlLnR5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBBcnJh
eTo6RGlyZWN0QXJndW1lbnRzOgotICAgICAgICAgICAgICAgIGlmIChlZGdlLT5vcCgpICE9IENy
ZWF0ZURpcmVjdEFyZ3VtZW50cykKKyAgICAgICAgICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3Vt
ZW50czogeworICAgICAgICAgICAgICAgIGlmIChlZGdlLT5vcCgpICE9IENyZWF0ZURpcmVjdEFy
Z3VtZW50cykgewogICAgICAgICAgICAgICAgICAgICBlc2NhcGUoZWRnZSwgc291cmNlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgLy8gSWYgd2UncmUgb3V0LW9mLWJvdW5kcyB0aGVuIHdlIHByb2NlZWQgb25seSBpZiB0
aGUgcHJvdG90eXBlIGNoYWluCisgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSBhbGxvY2F0aW9u
IGlzIHNhbmUgKGkuZS4gZG9lc24ndCBoYXZlIGluZGV4ZWQgcHJvcGVydGllcykuCisgICAgICAg
ICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKGVkZ2UtPm9yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgICAgICAgICAgU3RydWN0dXJl
KiBvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlw
ZSgpLT5zdHJ1Y3R1cmUoKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0UHJvdG90eXBlU3Ry
dWN0dXJlLT50cmFuc2l0aW9uV2F0Y2hwb2ludFNldElzU3RpbGxWYWxpZCgpCisgICAgICAgICAg
ICAgICAgICAgICYmIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlSXNTYW5lKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgbV9ncmFwaC5yZWdpc3RlckFuZFdhdGNoU3RydWN0dXJlVHJhbnNp
dGlvbihvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXNjYXBlKGVkZ2UsIHNvdXJj
ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKICAgICAgICAgICAgICAgICBp
ZiAoZWRnZS0+b3AoKSAhPSBDcmVhdGVDbG9uZWRBcmd1bWVudHMgJiYgZWRnZS0+b3AoKSAhPSBD
cmVhdGVSZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgIGVzY2FwZShlZGdlLCBzb3VyY2UpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIEV2ZXJ5
dGhpbmcgaXMgZmluZSBpZiB3ZSdyZSBkb2luZyBhbiBpbi1ib3VuZHMgYWNjZXNzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCmluZGV4IDMxOWY0MTk2NGQ2ZDEw
NGZjNTM4YzUyNTdiODBjYWI4OTE5NTE1MGEuLjcyOTMwNDk3YWI1Yzc1MzljYWI0NTliNjQ4YWZk
ODk5YjFjYjQzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJy
YXlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5j
cHAKQEAgLTI1OSwxMiArMjU5LDE0IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKICAg
ICAgICAgCiAgICAgICAgIGlmIChpc0RpcmVjdEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpIHx8
IGlzU2NvcGVkQXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpIHsKICAgICAgICAgICAgIC8vIEhh
bmRsZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFzIGdlbmVyaWMgYWNjZXNzZXMuCi0gICAgICAg
ICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJv
dW5kcykgfHwgIWlzSW5Cb3VuZHMoKSkKKyAgICAgICAgICAgIEFycmF5OjpUeXBlIHR5cGUgPSBp
c0RpcmVjdEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpID8gQXJyYXk6OkRpcmVjdEFyZ3VtZW50
cyA6IEFycmF5OjpTY29wZWRBcmd1bWVudHM7CisgICAgICAgICAgICBpZiAoZ3JhcGguaGFzRXhp
dFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykgfHwgIWlzSW5Cb3VuZHMo
KSkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IE9PQiBhY2Nlc3MgZm9yIFNj
b3BlZEFyZ3VtZW50cy4KKyAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBBcnJheTo6RGlyZWN0
QXJndW1lbnRzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXlNb2RlKHR5cGUsIEFy
cmF5OjpOb25BcnJheSwgQXJyYXk6Ok91dE9mQm91bmRzLCBBcnJheTo6QXNJcyk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIEFycmF5TW9kZShBcnJheTo6R2VuZXJpYyk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIGlmIChpc0RpcmVjdEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpKQotICAg
ICAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6RGlyZWN0QXJndW1lbnRzKTsKLSAg
ICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6U2NvcGVkQXJndW1lbnRzKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZSh0eXBlKTsKICAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgQXJyYXlNb2RlIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggYjhjNmQ3OWE5NTg3N2Y3MThl
M2NmNDMzY2Y3MzhmODYxMzU1ZTEzZS4uZGM4Y2E4N2E1MWY4NTgyZTEzZGNiMTFmOTdlMzIwMWQy
MGEyODE1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTY0OTAsMTkgKzY0OTAsMjUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ5VmFsT25EaXJlY3RBcmd1bWVudHMoTm9kZSogbm9kZSkKICAgICAgICAgbV9qaXQu
YnJhbmNoVGVzdFB0cigKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLAogICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgRGlyZWN0QXJndW1lbnRz
OjpvZmZzZXRPZk1hcHBlZEFyZ3VtZW50cygpKSkpOwotICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0g
ICAgICAgIEV4b3RpY09iamVjdE1vZGUsIEpTVmFsdWVTb3VyY2UoKSwgMCwKLSAgICAgICAgbV9q
aXQuYnJhbmNoMzIoCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBw
cm9wZXJ0eVJlZywKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcs
IERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0T2ZMZW5ndGgoKSkpKTsKLSAgICAKKworICAgIGF1dG8g
aXNPdXRPZkJvdW5kcyA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFs
LCBwcm9wZXJ0eVJlZywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VSZWcsIERpcmVjdEFyZ3Vt
ZW50czo6b2Zmc2V0T2ZMZW5ndGgoKSkpOworICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5pc0lu
Qm91bmRzKCkpCisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVT
b3VyY2UoKSwgMCwgaXNPdXRPZkJvdW5kcyk7CisKICAgICBtX2ppdC5jYWdlKEdpZ2FjYWdlOjpK
U1ZhbHVlLCBiYXNlUmVnKTsKLSAgICAKKwogICAgIG1faml0LmxvYWRWYWx1ZSgKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleCgKICAgICAgICAgICAgIGJhc2VSZWcsIHByb3BlcnR5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdl
T2Zmc2V0KCkpLAogICAgICAgICByZXN1bHRSZWdzKTsKLSAgICAKKworICAgIGlmICghbm9kZS0+
YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KAorICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgICAgIGlzT3V0T2ZCb3Vu
ZHMsIHRoaXMsIG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LAorICAgICAgICAgICAgICAgIGV4
dHJhY3RSZXN1bHQocmVzdWx0UmVncyksIGJhc2VSZWcsIHByb3BlcnR5UmVnKSk7CisgICAgfQor
CiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDQwMTMzMTRkMDYzZTll
YmI1YTc5MTRiMGViMzJmNGQ4YTc1MGJhOTkuLjAxYTQ1OWVlYTExNGFjZjQzYzI2YjgwMmQzZTRm
Y2FiMGI2NzdjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKQEAgLTM3MTEsMTUgKzM3MTEsMzUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgICAgICBFeG90aWNPYmplY3RNb2RlLCBu
b1ZhbHVlKCksIG51bGxwdHIsCiAgICAgICAgICAgICAgICAgbV9vdXQubm90TnVsbChtX291dC5s
b2FkUHRyKGJhc2UsIG1faGVhcHMuRGlyZWN0QXJndW1lbnRzX21hcHBlZEFyZ3VtZW50cykpKTsK
LSAgICAgICAgICAgIHNwZWN1bGF0ZSgKLSAgICAgICAgICAgICAgICBFeG90aWNPYmplY3RNb2Rl
LCBub1ZhbHVlKCksIG51bGxwdHIsCi0gICAgICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFs
KAotICAgICAgICAgICAgICAgICAgICBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQu
bG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfbGVuZ3RoKSkp
OwogCisgICAgICAgICAgICBhdXRvIGlzT3V0T2ZCb3VuZHMgPSBtX291dC5hYm92ZU9yRXF1YWwo
aW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuRGlyZWN0QXJndW1l
bnRzX2xlbmd0aCkpOworICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJv
dW5kcygpKSB7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE91dE9mQm91bmRzLCBub1ZhbHVl
KCksIG51bGxwdHIsIGlzT3V0T2ZCb3VuZHMpOworICAgICAgICAgICAgICAgIFR5cGVkUG9pbnRl
ciBhZGRyZXNzID0gbV9vdXQuYmFzZUluZGV4KAorICAgICAgICAgICAgICAgICAgICBtX2hlYXBz
LkRpcmVjdEFyZ3VtZW50c19zdG9yYWdlLCBjYWdlZChHaWdhY2FnZTo6SlNWYWx1ZSwgYmFzZSks
IG1fb3V0Lnplcm9FeHRQdHIoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICBzZXRKU1ZhbHVlKG1f
b3V0LmxvYWQ2NChhZGRyZXNzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBMQmFzaWNCbG9jayBpbkJvdW5kcyA9IG1fb3V0Lm5ld0Jsb2Nr
KCk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygp
OworCisgICAgICAgICAgICBtX291dC5icmFuY2goaXNPdXRPZkJvdW5kcywgcmFyZWx5KHNsb3dD
YXNlKSwgdXN1YWxseShpbkJvdW5kcykpOworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluQm91bmRzLCBzbG93Q2FzZSk7CiAgICAgICAgICAgICBU
eXBlZFBvaW50ZXIgYWRkcmVzcyA9IG1fb3V0LmJhc2VJbmRleCgKICAgICAgICAgICAgICAgICBt
X2hlYXBzLkRpcmVjdEFyZ3VtZW50c19zdG9yYWdlLCBjYWdlZChHaWdhY2FnZTo6SlNWYWx1ZSwg
YmFzZSksIG1fb3V0Lnplcm9FeHRQdHIoaW5kZXgpKTsKLSAgICAgICAgICAgIHNldEpTVmFsdWUo
bV9vdXQubG9hZDY0KGFkZHJlc3MpKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RS
ZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQubG9hZDY0KGFkZHJlc3MpKTsKKyAgICAgICAgICAg
IG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8o
c2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93
UmVzdWx0ID0gbV9vdXQuYW5jaG9yKAorICAgICAgICAgICAgICAgIHZtQ2FsbChJbnQ2NCwgbV9v
dXQub3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50KSwgbV9jYWxsRnJhbWUsIGJh
c2UsIGluZGV4KSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAg
ICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAg
ICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0zOTE1
LDcgKzM5MzUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vcm1hbENhc2UsIGNvbnRpbnVhdGlvbik7
CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3BlY3VsYXRlKEV4b3RpY09iamVjdE1vZGUs
IG5vVmFsdWUoKSwgMCwgaXNPdXRPZkJvdW5kcyk7CisgICAgICAgICAgICBzcGVjdWxhdGUoT3V0
T2ZCb3VuZHMsIG5vVmFsdWUoKSwgMCwgaXNPdXRPZkJvdW5kcyk7CiAgICAgICAgIAogICAgICAg
ICBUeXBlZFBvaW50ZXIgYmFzZTsKICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326714</attachid>
            <date>2017-11-12 08:42:30 -0800</date>
            <delta_ts>2017-11-12 10:48:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179594-20171113014229.patch</filename>
            <type>text/plain</type>
            <size>9748</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NTUyYjU3ZjMxZDA1ZGY5Y2U2ZGJmZTM2YmI0NDFmZDRlOTc2NjU1Li4yODE3MmJjZjExYWQ2ZTI5
ZTAwYmEzYzVmZDg3MWE1ODlkZjJiMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0xMS0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIFN1cHBvcnQgQXJyYXk6OkRpcmVjdEFyZ3VtZW50
cyB3aXRoIE91dE9mQm91bmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk1OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGRmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6
OnJlZmluZSBjb25zdCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxP
bkRpcmVjdEFyZ3VtZW50cyk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVHZXRCeVZhbCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVHZXRNeUFyZ3VtZW50
QnlWYWwpOgorCiAyMDE3LTExLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZSBzaG91bGQgZW5zdXJlIHRoYXQgb3BlcmF0aW9uU3RyQ2F0MiBhbmQgb3BlcmF0
aW9uU3RyQ2F0MyBhcmUgbmV2ZXIgcGFzc2VkIFN5bWJvbHMgYXMgYXJndW1lbnRzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRp
b25QaGFzZS5jcHAKaW5kZXggNTBhY2EyM2JkNjhjNTEwZTA1YmI5YmU5ODc1NTMzOTBmNWM4Nzgw
My4uZDhkZTczZDgyODdkYjRhZjRmZjRhYzliYzRkMzhlNDM4NDkxZDRhZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9u
UGhhc2UuY3BwCkBAIC0yMzAsMTUgKzIzMCwyOSBAQCBjbGFzcyBBcmd1bWVudHNFbGltaW5hdGlv
blBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgCiAgICAgICAgIGF1dG8gZXNjYXBlQmFz
ZWRPbkFycmF5TW9kZSA9IFsmXSAoQXJyYXlNb2RlIG1vZGUsIEVkZ2UgZWRnZSwgTm9kZSogc291
cmNlKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKG1vZGUudHlwZSgpKSB7Ci0gICAgICAgICAgICBj
YXNlIEFycmF5OjpEaXJlY3RBcmd1bWVudHM6Ci0gICAgICAgICAgICAgICAgaWYgKGVkZ2UtPm9w
KCkgIT0gQ3JlYXRlRGlyZWN0QXJndW1lbnRzKQorICAgICAgICAgICAgY2FzZSBBcnJheTo6RGly
ZWN0QXJndW1lbnRzOiB7CisgICAgICAgICAgICAgICAgaWYgKGVkZ2UtPm9wKCkgIT0gQ3JlYXRl
RGlyZWN0QXJndW1lbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgIGVzY2FwZShlZGdlLCBzb3Vy
Y2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBvdXQtb2YtYm91bmRzIHRoZW4gd2UgcHJvY2VlZCBv
bmx5IGlmIHRoZSBwcm90b3R5cGUgY2hhaW4KKyAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIGFs
bG9jYXRpb24gaXMgc2FuZSAoaS5lLiBkb2Vzbid0IGhhdmUgaW5kZXhlZCBwcm9wZXJ0aWVzKS4K
KyAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5n
bG9iYWxPYmplY3RGb3IoZWRnZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAgICAgICAgICBT
dHJ1Y3R1cmUqIG9iamVjdFByb3RvdHlwZVN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+b2JqZWN0
UHJvdG90eXBlKCktPnN0cnVjdHVyZSgpOworICAgICAgICAgICAgICAgIGlmIChvYmplY3RQcm90
b3R5cGVTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkKKyAg
ICAgICAgICAgICAgICAgICAgJiYgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGVJc1NhbmUo
KSkgeworICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLnJlZ2lzdGVyQW5kV2F0Y2hTdHJ1Y3R1
cmVUcmFuc2l0aW9uKG9iamVjdFByb3RvdHlwZVN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlc2NhcGUoZWRn
ZSwgc291cmNlKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewogICAgICAgICAg
ICAgICAgIGlmIChlZGdlLT5vcCgpICE9IENyZWF0ZUNsb25lZEFyZ3VtZW50cyAmJiBlZGdlLT5v
cCgpICE9IENyZWF0ZVJlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgZXNjYXBlKGVkZ2UsIHNv
dXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
Ly8gRXZlcnl0aGluZyBpcyBmaW5lIGlmIHdlJ3JlIGRvaW5nIGFuIGluLWJvdW5kcyBhY2Nlc3Mu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKaW5kZXggMzE5ZjQx
OTY0ZDZkMTA0ZmM1MzhjNTI1N2I4MGNhYjg5MTk1MTUwYS4uNzI5MzA0OTdhYjVjNzUzOWNhYjQ1
OWI2NDhhZmQ4OTliMWNiNDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBcnJheU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJy
YXlNb2RlLmNwcApAQCAtMjU5LDEyICsyNTksMTQgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVm
aW5lKAogICAgICAgICAKICAgICAgICAgaWYgKGlzRGlyZWN0QXJndW1lbnRzU3BlY3VsYXRpb24o
YmFzZSkgfHwgaXNTY29wZWRBcmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSkgewogICAgICAgICAg
ICAgLy8gSGFuZGxlIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgYXMgZ2VuZXJpYyBhY2Nlc3Nlcy4K
LSAgICAgICAgICAgIGlmIChncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMs
IE91dE9mQm91bmRzKSB8fCAhaXNJbkJvdW5kcygpKQorICAgICAgICAgICAgQXJyYXk6OlR5cGUg
dHlwZSA9IGlzRGlyZWN0QXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkgPyBBcnJheTo6RGlyZWN0
QXJndW1lbnRzIDogQXJyYXk6OlNjb3BlZEFyZ3VtZW50czsKKyAgICAgICAgICAgIGlmIChncmFw
aC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIE91dE9mQm91bmRzKSB8fCAhaXNJ
bkJvdW5kcygpKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgT09CIGFjY2Vz
cyBmb3IgU2NvcGVkQXJndW1lbnRzLgorICAgICAgICAgICAgICAgIGlmICh0eXBlID09IEFycmF5
OjpEaXJlY3RBcmd1bWVudHMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcnJheU1vZGUo
dHlwZSwgQXJyYXk6Ok5vbkFycmF5LCBBcnJheTo6T3V0T2ZCb3VuZHMsIEFycmF5OjpBc0lzKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXlNb2RlKEFycmF5OjpHZW5lcmljKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaWYgKGlzRGlyZWN0QXJndW1lbnRzU3BlY3VsYXRpb24oYmFz
ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpEaXJlY3RBcmd1bWVu
dHMpOwotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpTY29wZWRBcmd1bWVudHMp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKHR5cGUpOwogICAg
ICAgICB9CiAgICAgICAgIAogICAgICAgICBBcnJheU1vZGUgcmVzdWx0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBiYTg0OGU1OWI1MGYzYjYxM2M0NTFj
MzQ3ZDI1YjZiM2MyYTg5MTAzLi4yZjc3ZDQ1MzVkNGIwZGM5NDYyYjlkM2Y5Y2NlMjk5MDNkOWFm
Y2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtNzgz
LDggKzc4MywxMyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBj
b25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czoKLSAg
ICAgICAgICAgIHJlYWQoRGlyZWN0QXJndW1lbnRzUHJvcGVydGllcyk7Ci0gICAgICAgICAgICBk
ZWYoSGVhcExvY2F0aW9uKGluZGV4ZWRQcm9wZXJ0eUxvYywgRGlyZWN0QXJndW1lbnRzUHJvcGVy
dGllcywgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6eU5vZGUobm9kZSkpOwor
ICAgICAgICAgICAgaWYgKG1vZGUuaXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICAgICAgcmVh
ZChEaXJlY3RBcmd1bWVudHNQcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgICAgICBkZWYoSGVhcExv
Y2F0aW9uKGluZGV4ZWRQcm9wZXJ0eUxvYywgRGlyZWN0QXJndW1lbnRzUHJvcGVydGllcywgbm9k
ZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlYWQoV29ybGQpOwor
ICAgICAgICAgICAgd3JpdGUoSGVhcCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBBcnJheTo6U2NvcGVkQXJndW1lbnRzOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBiOGM2ZDc5YTk1ODc3
ZjcxOGUzY2Y0MzNjZjczOGY4NjEzNTVlMTNlLi5kYzhjYTg3YTUxZjg1ODJlMTNkY2IxMWY5N2Uz
MjAxZDIwYTI4MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcApAQCAtNjQ5MCwxOSArNjQ5MCwyNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiBub2RlKQogICAgICAgICBt
X2ppdC5icmFuY2hUZXN0UHRyKAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8s
CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBEaXJlY3RBcmd1
bWVudHM6Om9mZnNldE9mTWFwcGVkQXJndW1lbnRzKCkpKSk7Ci0gICAgc3BlY3VsYXRpb25DaGVj
aygKLSAgICAgICAgRXhvdGljT2JqZWN0TW9kZSwgSlNWYWx1ZVNvdXJjZSgpLCAwLAotICAgICAg
ICBtX2ppdC5icmFuY2gzMigKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1
YWwsIHByb3BlcnR5UmVnLAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZVJlZywgRGlyZWN0QXJndW1lbnRzOjpvZmZzZXRPZkxlbmd0aCgpKSkpOwotICAgIAorCisgICAg
YXV0byBpc091dE9mQm91bmRzID0gbV9qaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpBYm92ZU9y
RXF1YWwsIHByb3BlcnR5UmVnLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZVJlZywgRGlyZWN0
QXJndW1lbnRzOjpvZmZzZXRPZkxlbmd0aCgpKSk7CisgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgp
LmlzSW5Cb3VuZHMoKSkKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNW
YWx1ZVNvdXJjZSgpLCAwLCBpc091dE9mQm91bmRzKTsKKwogICAgIG1faml0LmNhZ2UoR2lnYWNh
Z2U6OkpTVmFsdWUsIGJhc2VSZWcpOwotICAgIAorCiAgICAgbV9qaXQubG9hZFZhbHVlKAogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KAogICAgICAgICAgICAgYmFzZVJlZywgcHJv
cGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBEaXJlY3RBcmd1bWVudHM6OnN0
b3JhZ2VPZmZzZXQoKSksCiAgICAgICAgIHJlc3VsdFJlZ3MpOwotICAgIAorCisgICAgaWYgKCFu
b2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkpIHsKKyAgICAgICAgYWRkU2xvd1BhdGhHZW5l
cmF0b3IoCisgICAgICAgICAgICBzbG93UGF0aENhbGwoCisgICAgICAgICAgICAgICAgaXNPdXRP
ZkJvdW5kcywgdGhpcywgb3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQsCisgICAgICAgICAgICAg
ICAgZXh0cmFjdFJlc3VsdChyZXN1bHRSZWdzKSwgYmFzZVJlZywgcHJvcGVydHlSZWcpKTsKKyAg
ICB9CisKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNDAxMzMxNGQw
NjNlOWViYjVhNzkxNGIwZWIzMmY0ZDhhNzUwYmE5OS4uMDFhNDU5ZWVhMTE0YWNmNDNjMjZiODAy
ZDNlNGZjYWIwYjY3N2NmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcApAQCAtMzcxMSwxNSArMzcxMSwzNSBAQCBjbGFzcyBMb3dlckRGR1RvQjMg
ewogICAgICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1v
ZGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwKICAgICAgICAgICAgICAgICBtX291dC5ub3ROdWxsKG1f
b3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfbWFwcGVkQXJndW1lbnRz
KSkpOwotICAgICAgICAgICAgc3BlY3VsYXRlKAotICAgICAgICAgICAgICAgIEV4b3RpY09iamVj
dE1vZGUsIG5vVmFsdWUoKSwgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9y
RXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgICAgICAgICBt
X291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBtX2hlYXBzLkRpcmVjdEFyZ3VtZW50c19sZW5n
dGgpKSk7CiAKKyAgICAgICAgICAgIGF1dG8gaXNPdXRPZkJvdW5kcyA9IG1fb3V0LmFib3ZlT3JF
cXVhbChpbmRleCwgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5EaXJlY3RB
cmd1bWVudHNfbGVuZ3RoKSk7CisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUoKS5p
c0luQm91bmRzKCkpIHsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3V0T2ZCb3VuZHMsIG5v
VmFsdWUoKSwgbnVsbHB0ciwgaXNPdXRPZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgVHlwZWRQ
b2ludGVyIGFkZHJlc3MgPSBtX291dC5iYXNlSW5kZXgoCisgICAgICAgICAgICAgICAgICAgIG1f
aGVhcHMuRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2UsIGNhZ2VkKEdpZ2FjYWdlOjpKU1ZhbHVlLCBi
YXNlKSwgbV9vdXQuemVyb0V4dFB0cihpbmRleCkpOworICAgICAgICAgICAgICAgIHNldEpTVmFs
dWUobV9vdXQubG9hZDY0KGFkZHJlc3MpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGluQm91bmRzID0gbV9vdXQubmV3
QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gbV9vdXQubmV3Qmxv
Y2soKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Js
b2NrKCk7CisKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChpc091dE9mQm91bmRzLCByYXJlbHko
c2xvd0Nhc2UpLCB1c3VhbGx5KGluQm91bmRzKSk7CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2Nr
IGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oaW5Cb3VuZHMsIHNsb3dDYXNlKTsKICAgICAgICAg
ICAgIFR5cGVkUG9pbnRlciBhZGRyZXNzID0gbV9vdXQuYmFzZUluZGV4KAogICAgICAgICAgICAg
ICAgIG1faGVhcHMuRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2UsIGNhZ2VkKEdpZ2FjYWdlOjpKU1Zh
bHVlLCBiYXNlKSwgbV9vdXQuemVyb0V4dFB0cihpbmRleCkpOwotICAgICAgICAgICAgc2V0SlNW
YWx1ZShtX291dC5sb2FkNjQoYWRkcmVzcykpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sg
ZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5sb2FkNjQoYWRkcmVzcykpOworICAgICAg
ICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2Nr
IHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IoCisgICAgICAgICAgICAgICAgdm1DYWxsKEludDY0
LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RJbnQpLCBtX2NhbGxGcmFt
ZSwgYmFzZSwgaW5kZXgpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsK
KworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7Cisg
ICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShJbnQ2NCwgZmFzdFJlc3VsdCwgc2xvd1Jl
c3VsdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAg
LTM5MTUsNyArMzkzNSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8obm9ybWFsQ2FzZSwgY29udGludWF0
aW9uKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzcGVjdWxhdGUoRXhvdGljT2JqZWN0
TW9kZSwgbm9WYWx1ZSgpLCAwLCBpc091dE9mQm91bmRzKTsKKyAgICAgICAgICAgIHNwZWN1bGF0
ZShPdXRPZkJvdW5kcywgbm9WYWx1ZSgpLCAwLCBpc091dE9mQm91bmRzKTsKICAgICAgICAgCiAg
ICAgICAgIFR5cGVkUG9pbnRlciBiYXNlOwogICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lKSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326720</attachid>
            <date>2017-11-12 10:48:34 -0800</date>
            <delta_ts>2017-11-14 07:15:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179594-20171113034833.patch</filename>
            <type>text/plain</type>
            <size>13119</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
NTUyYjU3ZjMxZDA1ZGY5Y2U2ZGJmZTM2YmI0NDFmZDRlOTc2NjU1Li4yNzkyZmU2ZGM0ZWNlYzdk
MDE4NWE5ZTUwOTRmYWQ4YTg2NGExOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxNy0xMS0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIFN1cHBvcnQgQXJyYXk6OkRpcmVjdEFyZ3VtZW50
cyB3aXRoIE91dE9mQm91bmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk1OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDdXJyZW50bHkgd2UgaGFuZGxlIE9PQiBhY2Nlc3MgdG8gRGlyZWN0QXJndW1l
bnRzIGFzIEdldEJ5VmFsKEFycmF5OjpHZW5lcmljKS4KKyAgICAgICAgSWYgd2UgY2FuIGhhbmRs
ZSBpdCBhcyBHZXRCeVZhbChBcnJheTo6RGlyZWN0QXJndW1lbnRzK091dE9mQm91bmRzKSwgd2Ug
Y2FuICgxKSBvcHRpbWl6ZQorICAgICAgICBgYXJndW1lbnRzW2ldYCBhY2Nlc3NlcyBpZiBpIGlz
IGluIGJvdW5kLCBhbmQgKDIpIGVuY291cmFnZSBhcmd1bWVudHMgZWxpbWluYXRpb24gcGhhc2UK
KyAgICAgICAgdG8gY29udmVydCBDcmVhdGVEaXJlY3RBcmd1bWVudHMgYW5kIEdldEJ5VmFsKEFy
cmF5OjpEaXJlY3RBcmd1bWVudHMrT3V0T2ZCb3VuZHMpIHRvCisgICAgICAgIFBoYW50b21EaXJl
Y3RBcmd1bWVudHMgYW5kIEdldE15QXJndW1lbnRPdXRPZkJvdW5kcyByZXNwZWN0aXZlbHkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIEFycmF5OjpEaXJlY3RBcmd1bWVudHMrT3V0
T2ZCb3VuZHMgYXJyYXkgbW9kZS4gR2V0QnlWYWwgY2FuCisgICAgICAgIGFjY2VwdCB0aGlzIHR5
cGUsIGFuZCBlbWl0IG9wdGltaXplZCBjb2RlIGNvbXBhcmVkIHRvIEFycmF5OjpHZW5lcmljIGNh
c2UuCisKKyAgICAgICAgV2UgbWFrZSBPT0IgY2hlY2sgZmFpbHVyZXMgaW4gR2V0QnlWYWwoQXJy
YXk6OkRpcmVjdEFyZ3VtZW50cytJbkJvdW5kcykgYXMgT3V0T2ZCb3VuZHMKKyAgICAgICAgZXhp
dCBpbnN0ZWFkIG9mIEV4b3RpY09iamVjdE1vZGUuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ugc2ln
bmlmaWNhbnRseSBpbXByb3ZlcyBTaXhTcGVlZCByZXN0LmVzNSBzaW5jZSBpdCB1c2VzIE9PQiBh
Y2Nlc3MuCisgICAgICAgIE91ciBhcmd1bWVudHMgZWxpbWluYXRpb24gcGhhc2UgY2FuIGNoYW5n
ZSBDcmVhdGVEaXJlY3RBcmd1bWVudHMgdG8gUGhhbnRvbURpcmVjdEFyZ3VtZW50cy4KKworICAg
ICAgICAgICAgcmVzdC5lczUgICAgICAgICAgICAgICAgICAgICAgIDU5LjY3MTkrLTIuMjQ0MCAg
ICAgXiAgICAgIDMuMTYzNCstMC41NTA3ICAgICAgICBeIGRlZmluaXRlbHkgMTguODYzNXggZmFz
dGVyCisKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHA6Cisg
ICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QXJyYXlN
b2RlOjpyZWZpbmUgY29uc3QpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
VmFsT25EaXJlY3RBcmd1bWVudHMpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0QnlWYWwp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0TXlBcmd1
bWVudEJ5VmFsKToKKwogMjAxNy0xMS0xMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgV2Ugc2hvdWxkIGVuc3VyZSB0aGF0IG9wZXJhdGlvblN0ckNhdDIgYW5kIG9w
ZXJhdGlvblN0ckNhdDMgYXJlIG5ldmVyIHBhc3NlZCBTeW1ib2xzIGFzIGFyZ3VtZW50cy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRp
b25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1p
bmF0aW9uUGhhc2UuY3BwCmluZGV4IDUwYWNhMjNiZDY4YzUxMGUwNWJiOWJlOTg3NTUzMzkwZjVj
ODc4MDMuLmQ4ZGU3M2Q4Mjg3ZGI0YWY0ZmY0YWM5YmM0ZDM4ZTQzODQ5MWQ0YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5h
dGlvblBoYXNlLmNwcApAQCAtMjMwLDE1ICsyMzAsMjkgQEAgY2xhc3MgQXJndW1lbnRzRWxpbWlu
YXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIAogICAgICAgICBhdXRvIGVzY2Fw
ZUJhc2VkT25BcnJheU1vZGUgPSBbJl0gKEFycmF5TW9kZSBtb2RlLCBFZGdlIGVkZ2UsIE5vZGUq
IHNvdXJjZSkgewogICAgICAgICAgICAgc3dpdGNoIChtb2RlLnR5cGUoKSkgewotICAgICAgICAg
ICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgotICAgICAgICAgICAgICAgIGlmIChlZGdl
LT5vcCgpICE9IENyZWF0ZURpcmVjdEFyZ3VtZW50cykKKyAgICAgICAgICAgIGNhc2UgQXJyYXk6
OkRpcmVjdEFyZ3VtZW50czogeworICAgICAgICAgICAgICAgIGlmIChlZGdlLT5vcCgpICE9IENy
ZWF0ZURpcmVjdEFyZ3VtZW50cykgewogICAgICAgICAgICAgICAgICAgICBlc2NhcGUoZWRnZSwg
c291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgb3V0LW9mLWJvdW5kcyB0aGVuIHdlIHByb2Nl
ZWQgb25seSBpZiB0aGUgcHJvdG90eXBlIGNoYWluCisgICAgICAgICAgICAgICAgLy8gZm9yIHRo
ZSBhbGxvY2F0aW9uIGlzIHNhbmUgKGkuZS4gZG9lc24ndCBoYXZlIGluZGV4ZWQgcHJvcGVydGll
cykuCisgICAgICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3Jh
cGguZ2xvYmFsT2JqZWN0Rm9yKGVkZ2UtPm9yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgICAgICAg
ICAgU3RydWN0dXJlKiBvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPm9i
amVjdFByb3RvdHlwZSgpLT5zdHJ1Y3R1cmUoKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0
UHJvdG90eXBlU3RydWN0dXJlLT50cmFuc2l0aW9uV2F0Y2hwb2ludFNldElzU3RpbGxWYWxpZCgp
CisgICAgICAgICAgICAgICAgICAgICYmIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlSXNT
YW5lKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5yZWdpc3RlckFuZFdhdGNoU3Ry
dWN0dXJlVHJhbnNpdGlvbihvYmplY3RQcm90b3R5cGVTdHJ1Y3R1cmUpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXNjYXBl
KGVkZ2UsIHNvdXJjZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKICAgICAg
ICAgICAgICAgICBpZiAoZWRnZS0+b3AoKSAhPSBDcmVhdGVDbG9uZWRBcmd1bWVudHMgJiYgZWRn
ZS0+b3AoKSAhPSBDcmVhdGVSZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgIGVzY2FwZShlZGdl
LCBzb3VyY2UpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIC8vIEV2ZXJ5dGhpbmcgaXMgZmluZSBpZiB3ZSdyZSBkb2luZyBhbiBpbi1ib3VuZHMgYWNj
ZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCmluZGV4IDMx
OWY0MTk2NGQ2ZDEwNGZjNTM4YzUyNTdiODBjYWI4OTE5NTE1MGEuLjE5ZGEzZTRkNDQ5M2U4NTE1
NzY5ZGY3YTIzYjM2NjYzZDk1NzAyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0FycmF5TW9kZS5jcHAKQEAgLTI1OSwxMiArMjU5LDE1IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6
OnJlZmluZSgKICAgICAgICAgCiAgICAgICAgIGlmIChpc0RpcmVjdEFyZ3VtZW50c1NwZWN1bGF0
aW9uKGJhc2UpIHx8IGlzU2NvcGVkQXJndW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpIHsKICAgICAg
ICAgICAgIC8vIEhhbmRsZSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFzIGdlbmVyaWMgYWNjZXNz
ZXMuCi0gICAgICAgICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBPdXRPZkJvdW5kcykgfHwgIWlzSW5Cb3VuZHMoKSkKKyAgICAgICAgICAgIEFycmF5OjpU
eXBlIHR5cGUgPSBpc0RpcmVjdEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpID8gQXJyYXk6OkRp
cmVjdEFyZ3VtZW50cyA6IEFycmF5OjpTY29wZWRBcmd1bWVudHM7CisgICAgICAgICAgICBpZiAo
Z3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykgfHwg
IWlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IE9PQiBh
Y2Nlc3MgZm9yIFNjb3BlZEFyZ3VtZW50cy4KKyAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTk2CisgICAgICAgICAgICAgICAgaWYg
KHR5cGUgPT0gQXJyYXk6OkRpcmVjdEFyZ3VtZW50cykKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEFycmF5TW9kZSh0eXBlLCBBcnJheTo6Tm9uQXJyYXksIEFycmF5OjpPdXRPZkJvdW5kcywg
QXJyYXk6OkFzSXMpOwogICAgICAgICAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6Okdl
bmVyaWMpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoaXNEaXJlY3RBcmd1bWVudHNT
cGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6
OkRpcmVjdEFyZ3VtZW50cyk7Ci0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlNj
b3BlZEFyZ3VtZW50cyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gd2l0aFR5
cGUodHlwZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIEFycmF5TW9kZSByZXN1bHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGJhODQ4ZTU5
YjUwZjNiNjEzYzQ1MWMzNDdkMjViNmIzYzJhODkxMDMuLjJmNzdkNDUzNWQ0YjBkYzk0NjJiOWQz
ZjljY2UyOTkwM2Q5YWZjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cml6ZS5oCkBAIC03ODMsOCArNzgzLDEzIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6RGlyZWN0
QXJndW1lbnRzOgotICAgICAgICAgICAgcmVhZChEaXJlY3RBcmd1bWVudHNQcm9wZXJ0aWVzKTsK
LSAgICAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oaW5kZXhlZFByb3BlcnR5TG9jLCBEaXJlY3RB
cmd1bWVudHNQcm9wZXJ0aWVzLCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpLCBMYXp5
Tm9kZShub2RlKSk7CisgICAgICAgICAgICBpZiAobW9kZS5pc0luQm91bmRzKCkpIHsKKyAgICAg
ICAgICAgICAgICByZWFkKERpcmVjdEFyZ3VtZW50c1Byb3BlcnRpZXMpOworICAgICAgICAgICAg
ICAgIGRlZihIZWFwTG9jYXRpb24oaW5kZXhlZFByb3BlcnR5TG9jLCBEaXJlY3RBcmd1bWVudHNQ
cm9wZXJ0aWVzLCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpLCBMYXp5Tm9kZShub2Rl
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmVhZChXb3JsZCk7CisgICAgICAgICAgICB3cml0ZShIZWFwKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4
IGI4YzZkNzlhOTU4NzdmNzE4ZTNjZjQzM2NmNzM4Zjg2MTM1NWUxM2UuLmRjOGNhODdhNTFmODU4
MmUxM2RjYjExZjk3ZTMyMDFkMjBhMjgxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC02NDkwLDE5ICs2NDkwLDI1IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGlyZWN0QXJndW1lbnRzKE5vZGUqIG5v
ZGUpCiAgICAgICAgIG1faml0LmJyYW5jaFRlc3RQdHIoCiAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Tm9uWmVybywKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VS
ZWcsIERpcmVjdEFyZ3VtZW50czo6b2Zmc2V0T2ZNYXBwZWRBcmd1bWVudHMoKSkpKTsKLSAgICBz
cGVjdWxhdGlvbkNoZWNrKAotICAgICAgICBFeG90aWNPYmplY3RNb2RlLCBKU1ZhbHVlU291cmNl
KCksIDAsCi0gICAgICAgIG1faml0LmJyYW5jaDMyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhiYXNlUmVnLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTGVuZ3RoKCkpKSk7
Ci0gICAgCisKKyAgICBhdXRvIGlzT3V0T2ZCb3VuZHMgPSBtX2ppdC5icmFuY2gzMihDQ2FsbEhl
bHBlcnM6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIENDYWxsSGVscGVyczo6QWRkcmVzcyhi
YXNlUmVnLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNldE9mTGVuZ3RoKCkpKTsKKyAgICBpZiAobm9k
ZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKQorICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91
dE9mQm91bmRzLCBKU1ZhbHVlU291cmNlKCksIDAsIGlzT3V0T2ZCb3VuZHMpOworCiAgICAgbV9q
aXQuY2FnZShHaWdhY2FnZTo6SlNWYWx1ZSwgYmFzZVJlZyk7Ci0gICAgCisKICAgICBtX2ppdC5s
b2FkVmFsdWUoCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoCiAgICAgICAgICAg
ICBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIERpcmVj
dEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpKSwKICAgICAgICAgcmVzdWx0UmVncyk7Ci0gICAg
CisKKyAgICBpZiAoIW5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkgeworICAgICAgICBh
ZGRTbG93UGF0aEdlbmVyYXRvcigKKyAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKKyAgICAgICAg
ICAgICAgICBpc091dE9mQm91bmRzLCB0aGlzLCBvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCwK
KyAgICAgICAgICAgICAgICBleHRyYWN0UmVzdWx0KHJlc3VsdFJlZ3MpLCBiYXNlUmVnLCBwcm9w
ZXJ0eVJlZykpOworICAgIH0KKwogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApp
bmRleCA0MDEzMzE0ZDA2M2U5ZWJiNWE3OTE0YjBlYjMyZjRkOGE3NTBiYTk5Li4wMWE0NTllZWEx
MTRhY2Y0M2MyNmI4MDJkM2U0ZmNhYjBiNjc3Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0zNzExLDE1ICszNzExLDM1IEBAIGNsYXNz
IExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICAgICAg
RXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRyLAogICAgICAgICAgICAgICAgIG1f
b3V0Lm5vdE51bGwobV9vdXQubG9hZFB0cihiYXNlLCBtX2hlYXBzLkRpcmVjdEFyZ3VtZW50c19t
YXBwZWRBcmd1bWVudHMpKSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoCi0gICAgICAgICAgICAg
ICAgRXhvdGljT2JqZWN0TW9kZSwgbm9WYWx1ZSgpLCBudWxscHRyLAotICAgICAgICAgICAgICAg
IG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICAgICAgaW5kZXgsCi0gICAgICAg
ICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuRGlyZWN0
QXJndW1lbnRzX2xlbmd0aCkpKTsKIAorICAgICAgICAgICAgYXV0byBpc091dE9mQm91bmRzID0g
bV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShiYXNlLCBt
X2hlYXBzLkRpcmVjdEFyZ3VtZW50c19sZW5ndGgpKTsKKyAgICAgICAgICAgIGlmIChtX25vZGUt
PmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShP
dXRPZkJvdW5kcywgbm9WYWx1ZSgpLCBudWxscHRyLCBpc091dE9mQm91bmRzKTsKKyAgICAgICAg
ICAgICAgICBUeXBlZFBvaW50ZXIgYWRkcmVzcyA9IG1fb3V0LmJhc2VJbmRleCgKKyAgICAgICAg
ICAgICAgICAgICAgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgY2FnZWQoR2lnYWNh
Z2U6OkpTVmFsdWUsIGJhc2UpLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSk7CisgICAgICAgICAg
ICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkNjQoYWRkcmVzcykpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5Cb3Vu
ZHMgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xvd0Nhc2Ug
PSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9u
ID0gbV9vdXQubmV3QmxvY2soKTsKKworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzT3V0T2ZC
b3VuZHMsIHJhcmVseShzbG93Q2FzZSksIHVzdWFsbHkoaW5Cb3VuZHMpKTsKKworICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpbkJvdW5kcywgc2xvd0Nh
c2UpOwogICAgICAgICAgICAgVHlwZWRQb2ludGVyIGFkZHJlc3MgPSBtX291dC5iYXNlSW5kZXgo
CiAgICAgICAgICAgICAgICAgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfc3RvcmFnZSwgY2FnZWQo
R2lnYWNhZ2U6OkpTVmFsdWUsIGJhc2UpLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSk7Ci0gICAg
ICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWQ2NChhZGRyZXNzKSk7CisgICAgICAgICAgICBW
YWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQ2NChhZGRy
ZXNzKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dDYXNlLCBjb250aW51YXRpb24pOworICAgICAgICAgICAg
VmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgICAg
ICB2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9iamVjdElu
dCksIG1fY2FsbEZyYW1lLCBiYXNlLCBpbmRleCkpOworICAgICAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24s
IGxhc3ROZXh0KTsKKyAgICAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBmYXN0
UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgICAgIApAQCAtMzkxNSw3ICszOTM1LDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3JtYWxD
YXNlLCBjb250aW51YXRpb24pOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHNwZWN1bGF0
ZShFeG90aWNPYmplY3RNb2RlLCBub1ZhbHVlKCksIDAsIGlzT3V0T2ZCb3VuZHMpOworICAgICAg
ICAgICAgc3BlY3VsYXRlKE91dE9mQm91bmRzLCBub1ZhbHVlKCksIDAsIGlzT3V0T2ZCb3VuZHMp
OwogICAgICAgICAKICAgICAgICAgVHlwZWRQb2ludGVyIGJhc2U7CiAgICAgICAgIGlmIChpbmxp
bmVDYWxsRnJhbWUpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOThlMzFiYzVkMmY4ODI0Yzk2MjMxMTkzOTAyN2FhYTI5OGQ0ZmZiNi4u
ZGIwMjY0OTRmY2Y1MGJjZGZiOTQzOTViMDg1YmMxNWRhNzM3Mjc1NSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxNy0xMS0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAg
ICAgICBbREZHXVtGVExdIFN1cHBvcnQgQXJyYXk6OkRpcmVjdEFyZ3VtZW50cyB3aXRoIE91dE9m
Qm91bmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Nzk1OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0cmVzcy9kaXJlY3QtYXJndW1lbnRzLWluLWJvdW5kcy10by1vdXQtb2YtYm91bmRzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKGFyZ3MpOgorICAgICAgICAqIHN0
cmVzcy9kaXJlY3QtYXJndW1lbnRzLW91dC1vZi1ib3VuZHMtd2F0Y2hwb2ludC5qczogQWRkZWQu
CisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChhcmdzKToKKwogMjAxNy0xMS0xMiAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIGVuc3VyZSB0
aGF0IG9wZXJhdGlvblN0ckNhdDIgYW5kIG9wZXJhdGlvblN0ckNhdDMgYXJlIG5ldmVyIHBhc3Nl
ZCBTeW1ib2xzIGFzIGFyZ3VtZW50cy4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RpcmVj
dC1hcmd1bWVudHMtaW4tYm91bmRzLXRvLW91dC1vZi1ib3VuZHMuanMgYi9KU1Rlc3RzL3N0cmVz
cy9kaXJlY3QtYXJndW1lbnRzLWluLWJvdW5kcy10by1vdXQtb2YtYm91bmRzLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkYWM3ZDI5MWY1Mjk1ZjNhMDFkY2NmM2ZkMmJmYWQ2NDUzNmY5OGMKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kaXJlY3QtYXJndW1lbnRzLWluLWJvdW5kcy10by1vdXQt
b2YtYm91bmRzLmpzCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gYXJncygp
Cit7CisgICAgcmV0dXJuIGFyZ3VtZW50c1sxXTsKK30KK25vSW5saW5lKGFyZ3MpOworCitmb3Ig
KHZhciBpID0gMDsgaSA8IDFlNjsgKytpKQorICAgIHNob3VsZEJlKGFyZ3MoMCwgMSwgMiksIDEp
OworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKQorICAgIHNob3VsZEJlKGFyZ3MoMCks
IHVuZGVmaW5lZCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kaXJlY3QtYXJndW1lbnRz
LW91dC1vZi1ib3VuZHMtd2F0Y2hwb2ludC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RpcmVjdC1hcmd1
bWVudHMtb3V0LW9mLWJvdW5kcy13YXRjaHBvaW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNjkxNDFiOWJi
ZjAzOTllNWE4NzJhNWE3NGEzNDFjNjNhMjNlMDgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9kaXJlY3QtYXJndW1lbnRzLW91dC1vZi1ib3VuZHMtd2F0Y2hwb2ludC5qcwpAQCAt
MCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQoreworICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIGFyZ3MoKQoreworICAgIHJldHVybiBh
cmd1bWVudHNbMV07Cit9Citub0lubGluZShhcmdzKTsKKworc2hvdWxkQmUoYXJncygpLCB1bmRl
ZmluZWQpOworc2hvdWxkQmUoYXJncygwKSwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGFyZ3MoMCwg
MSksIDEpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkKKyAgICBzaG91bGRCZShhcmdz
KCksIHVuZGVmaW5lZCk7CitPYmplY3QucHJvdG90eXBlWzFdID0gNDI7CitzaG91bGRCZShhcmdz
KCksIDQyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326876</attachid>
            <date>2017-11-14 07:15:03 -0800</date>
            <delta_ts>2017-11-14 09:20:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179594-20171115001502.patch</filename>
            <type>text/plain</type>
            <size>12960</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0ODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
Y2FhZmRkZjkyODIwY2RkYTQyNTJhOGU0ZmRiNWIxZjUzNTYyZjU5Li5jYzkwZmVmYjJkMjEwMGE4
ZGJkODBmMDkwZGYzMGU1MmY1NDg5NDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAxNy0xMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIFN1cHBvcnQgQXJyYXk6OkRpcmVjdEFyZ3VtZW50
cyB3aXRoIE91dE9mQm91bmRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk1OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDdXJyZW50bHkgd2UgaGFuZGxlIE9PQiBhY2Nlc3MgdG8gRGlyZWN0QXJndW1l
bnRzIGFzIEdldEJ5VmFsKEFycmF5OjpHZW5lcmljKS4KKyAgICAgICAgSWYgd2UgY2FuIGhhbmRs
ZSBpdCBhcyBHZXRCeVZhbChBcnJheTo6RGlyZWN0QXJndW1lbnRzK091dE9mQm91bmRzKSwgd2Ug
Y2FuICgxKSBvcHRpbWl6ZQorICAgICAgICBgYXJndW1lbnRzW2ldYCBhY2Nlc3NlcyBpZiBpIGlz
IGluIGJvdW5kLCBhbmQgKDIpIGVuY291cmFnZSBhcmd1bWVudHMgZWxpbWluYXRpb24gcGhhc2UK
KyAgICAgICAgdG8gY29udmVydCBDcmVhdGVEaXJlY3RBcmd1bWVudHMgYW5kIEdldEJ5VmFsKEFy
cmF5OjpEaXJlY3RBcmd1bWVudHMrT3V0T2ZCb3VuZHMpIHRvCisgICAgICAgIFBoYW50b21EaXJl
Y3RBcmd1bWVudHMgYW5kIEdldE15QXJndW1lbnRPdXRPZkJvdW5kcyByZXNwZWN0aXZlbHkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIEFycmF5OjpEaXJlY3RBcmd1bWVudHMrT3V0
T2ZCb3VuZHMgYXJyYXkgbW9kZS4gR2V0QnlWYWwgY2FuCisgICAgICAgIGFjY2VwdCB0aGlzIHR5
cGUsIGFuZCBlbWl0IG9wdGltaXplZCBjb2RlIGNvbXBhcmVkIHRvIEFycmF5OjpHZW5lcmljIGNh
c2UuCisKKyAgICAgICAgV2UgbWFrZSBPT0IgY2hlY2sgZmFpbHVyZXMgaW4gR2V0QnlWYWwoQXJy
YXk6OkRpcmVjdEFyZ3VtZW50cytJbkJvdW5kcykgYXMgT3V0T2ZCb3VuZHMKKyAgICAgICAgZXhp
dCBpbnN0ZWFkIG9mIEV4b3RpY09iamVjdE1vZGUuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ugc2ln
bmlmaWNhbnRseSBpbXByb3ZlcyBTaXhTcGVlZCByZXN0LmVzNSBzaW5jZSBpdCB1c2VzIE9PQiBh
Y2Nlc3MuCisgICAgICAgIE91ciBhcmd1bWVudHMgZWxpbWluYXRpb24gcGhhc2UgY2FuIGNoYW5n
ZSBDcmVhdGVEaXJlY3RBcmd1bWVudHMgdG8gUGhhbnRvbURpcmVjdEFyZ3VtZW50cy4KKworICAg
ICAgICAgICAgcmVzdC5lczUgICAgICAgICAgICAgICAgICAgICAgIDU5LjY3MTkrLTIuMjQ0MCAg
ICAgXiAgICAgIDMuMTYzNCstMC41NTA3ICAgICAgICBeIGRlZmluaXRlbHkgMTguODYzNXggZmFz
dGVyCisKKyAgICAgICAgKiBkZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHA6Cisg
ICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QXJyYXlN
b2RlOjpyZWZpbmUgY29uc3QpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
VmFsT25EaXJlY3RBcmd1bWVudHMpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0QnlWYWwp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlR2V0TXlBcmd1
bWVudEJ5VmFsKToKKwogMjAxNy0xMS0xNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZSBuZWVkIHRvIHNldCB0b3BDYWxsRnJhbWUgd2hlbiBjYWxsaW5nIFdh
c206Ok1lbW9yeTo6Z3JvdyBmcm9tIHRoZSBKSVQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwCmluZGV4IDUw
YWNhMjNiZDY4YzUxMGUwNWJiOWJlOTg3NTUzMzkwZjVjODc4MDMuLmQ4ZGU3M2Q4Mjg3ZGI0YWY0
ZmY0YWM5YmM0ZDM4ZTQzODQ5MWQ0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcApAQCAtMjMwLDE1
ICsyMzAsMjkgQEAgY2xhc3MgQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFz
ZSB7CiAgICAgICAgIAogICAgICAgICBhdXRvIGVzY2FwZUJhc2VkT25BcnJheU1vZGUgPSBbJl0g
KEFycmF5TW9kZSBtb2RlLCBFZGdlIGVkZ2UsIE5vZGUqIHNvdXJjZSkgewogICAgICAgICAgICAg
c3dpdGNoIChtb2RlLnR5cGUoKSkgewotICAgICAgICAgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJn
dW1lbnRzOgotICAgICAgICAgICAgICAgIGlmIChlZGdlLT5vcCgpICE9IENyZWF0ZURpcmVjdEFy
Z3VtZW50cykKKyAgICAgICAgICAgIGNhc2UgQXJyYXk6OkRpcmVjdEFyZ3VtZW50czogeworICAg
ICAgICAgICAgICAgIGlmIChlZGdlLT5vcCgpICE9IENyZWF0ZURpcmVjdEFyZ3VtZW50cykgewog
ICAgICAgICAgICAgICAgICAgICBlc2NhcGUoZWRnZSwgc291cmNlKTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gSWYg
d2UncmUgb3V0LW9mLWJvdW5kcyB0aGVuIHdlIHByb2NlZWQgb25seSBpZiB0aGUgcHJvdG90eXBl
IGNoYWluCisgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSBhbGxvY2F0aW9uIGlzIHNhbmUgKGku
ZS4gZG9lc24ndCBoYXZlIGluZGV4ZWQgcHJvcGVydGllcykuCisgICAgICAgICAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKGVkZ2Ut
Pm9yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgICAgICAgICAgU3RydWN0dXJlKiBvYmplY3RQcm90
b3R5cGVTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpLT5zdHJ1Y3R1
cmUoKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0UHJvdG90eXBlU3RydWN0dXJlLT50cmFu
c2l0aW9uV2F0Y2hwb2ludFNldElzU3RpbGxWYWxpZCgpCisgICAgICAgICAgICAgICAgICAgICYm
IGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlSXNTYW5lKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbV9ncmFwaC5yZWdpc3RlckFuZFdhdGNoU3RydWN0dXJlVHJhbnNpdGlvbihvYmplY3RQ
cm90b3R5cGVTdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgZXNjYXBlKGVkZ2UsIHNvdXJjZSk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKICAgICAgICAgICAgICAgICBpZiAoZWRnZS0+b3Ao
KSAhPSBDcmVhdGVDbG9uZWRBcmd1bWVudHMgJiYgZWRnZS0+b3AoKSAhPSBDcmVhdGVSZXN0KSB7
CiAgICAgICAgICAgICAgICAgICAgIGVzY2FwZShlZGdlLCBzb3VyY2UpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8vIEV2ZXJ5dGhpbmcgaXMgZmlu
ZSBpZiB3ZSdyZSBkb2luZyBhbiBpbi1ib3VuZHMgYWNjZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCmluZGV4IDMxOWY0MTk2NGQ2ZDEwNGZjNTM4YzUyNTdi
ODBjYWI4OTE5NTE1MGEuLjE5ZGEzZTRkNDQ5M2U4NTE1NzY5ZGY3YTIzYjM2NjYzZDk1NzAyNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKQEAgLTI1OSwx
MiArMjU5LDE1IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKICAgICAgICAgCiAgICAg
ICAgIGlmIChpc0RpcmVjdEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpIHx8IGlzU2NvcGVkQXJn
dW1lbnRzU3BlY3VsYXRpb24oYmFzZSkpIHsKICAgICAgICAgICAgIC8vIEhhbmRsZSBvdXQtb2Yt
Ym91bmRzIGFjY2Vzc2VzIGFzIGdlbmVyaWMgYWNjZXNzZXMuCi0gICAgICAgICAgICBpZiAoZ3Jh
cGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykgfHwgIWlz
SW5Cb3VuZHMoKSkKKyAgICAgICAgICAgIEFycmF5OjpUeXBlIHR5cGUgPSBpc0RpcmVjdEFyZ3Vt
ZW50c1NwZWN1bGF0aW9uKGJhc2UpID8gQXJyYXk6OkRpcmVjdEFyZ3VtZW50cyA6IEFycmF5OjpT
Y29wZWRBcmd1bWVudHM7CisgICAgICAgICAgICBpZiAoZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+
b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykgfHwgIWlzSW5Cb3VuZHMoKSkgeworICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IE9PQiBhY2Nlc3MgZm9yIFNjb3BlZEFyZ3VtZW50
cy4KKyAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc5NTk2CisgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gQXJyYXk6OkRpcmVjdEFy
Z3VtZW50cykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5TW9kZSh0eXBlLCBBcnJh
eTo6Tm9uQXJyYXksIEFycmF5OjpPdXRPZkJvdW5kcywgQXJyYXk6OkFzSXMpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVyaWMpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBpZiAoaXNEaXJlY3RBcmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkRpcmVjdEFyZ3VtZW50cyk7Ci0gICAg
ICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlNjb3BlZEFyZ3VtZW50cyk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUodHlwZSk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIEFycmF5TW9kZSByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGJhODQ4ZTU5YjUwZjNiNjEzYzQ1MWMzNDdkMjViNmIz
YzJhODkxMDMuLjJmNzdkNDUzNWQ0YjBkYzk0NjJiOWQzZjljY2UyOTkwM2Q5YWZjZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC03ODMsOCArNzgzLDEz
IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRG
dW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAKICAgICAgICAgY2FzZSBBcnJheTo6RGlyZWN0QXJndW1lbnRzOgotICAgICAgICAgICAg
cmVhZChEaXJlY3RBcmd1bWVudHNQcm9wZXJ0aWVzKTsKLSAgICAgICAgICAgIGRlZihIZWFwTG9j
YXRpb24oaW5kZXhlZFByb3BlcnR5TG9jLCBEaXJlY3RBcmd1bWVudHNQcm9wZXJ0aWVzLCBub2Rl
LT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpLCBMYXp5Tm9kZShub2RlKSk7CisgICAgICAgICAg
ICBpZiAobW9kZS5pc0luQm91bmRzKCkpIHsKKyAgICAgICAgICAgICAgICByZWFkKERpcmVjdEFy
Z3VtZW50c1Byb3BlcnRpZXMpOworICAgICAgICAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oaW5k
ZXhlZFByb3BlcnR5TG9jLCBEaXJlY3RBcmd1bWVudHNQcm9wZXJ0aWVzLCBub2RlLT5jaGlsZDEo
KSwgbm9kZS0+Y2hpbGQyKCkpLCBMYXp5Tm9kZShub2RlKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgICAg
ICB3cml0ZShIZWFwKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIAogICAgICAg
ICBjYXNlIEFycmF5OjpTY29wZWRBcmd1bWVudHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDlmMGIyNTY0ZDk3OGM0Yjk3ZDE2MWI2
MTNmMjg4ODZmOWE0Nzc2MDMuLjYxOGJhYzFkZmVmYTBlNjgxMzU4YzUzZGZiOTQyZTE0M2Q2NDBm
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC02NDkwLDE2ICs2NDkwLDIyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbE9uRGlyZWN0QXJndW1lbnRzKE5vZGUqIG5vZGUpCiAgICAgICAgIG1faml0LmJyYW5j
aFRlc3RQdHIoCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywKICAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIERpcmVjdEFyZ3VtZW50czo6b2Zm
c2V0T2ZNYXBwZWRBcmd1bWVudHMoKSkpKTsKLSAgICBzcGVjdWxhdGlvbkNoZWNrKAotICAgICAg
ICBFeG90aWNPYmplY3RNb2RlLCBKU1ZhbHVlU291cmNlKCksIDAsCi0gICAgICAgIG1faml0LmJy
YW5jaDMyKAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVy
dHlSZWcsCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBEaXJl
Y3RBcmd1bWVudHM6Om9mZnNldE9mTGVuZ3RoKCkpKSk7CisKKyAgICBhdXRvIGlzT3V0T2ZCb3Vu
ZHMgPSBtX2ppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlS
ZWcsIENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlUmVnLCBEaXJlY3RBcmd1bWVudHM6Om9mZnNl
dE9mTGVuZ3RoKCkpKTsKKyAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKQor
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlU291cmNlKCksIDAs
IGlzT3V0T2ZCb3VuZHMpOwogICAgIAogICAgIG1faml0LmxvYWRWYWx1ZSgKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleCgKICAgICAgICAgICAgIGJhc2VSZWcsIHByb3BlcnR5UmVn
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zm
c2V0KCkpLAogICAgICAgICByZXN1bHRSZWdzKTsKKworICAgIGlmICghbm9kZS0+YXJyYXlNb2Rl
KCkuaXNJbkJvdW5kcygpKSB7CisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAorICAgICAg
ICAgICAgc2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgICAgIGlzT3V0T2ZCb3VuZHMsIHRoaXMs
IG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0SW50LAorICAgICAgICAgICAgICAgIGV4dHJhY3RSZXN1
bHQocmVzdWx0UmVncyksIGJhc2VSZWcsIHByb3BlcnR5UmVnKSk7CisgICAgfQogICAgIAogICAg
IGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggZDNjZGUyYWNmNjY0NjNkODRkZGRi
NDdjNzRiNWFkODg1NWUyNjE1OS4uZGVkZGExYzNkMDJiOTY1NmI3MmMyZmU0YzRiNTcwZDVmM2Y1
NDg5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cApAQCAtMzcxMSwxNSArMzcxMSwzNSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAg
ICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIG5vVmFsdWUo
KSwgbnVsbHB0ciwKICAgICAgICAgICAgICAgICBtX291dC5ub3ROdWxsKG1fb3V0LmxvYWRQdHIo
YmFzZSwgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfbWFwcGVkQXJndW1lbnRzKSkpOwotICAgICAg
ICAgICAgc3BlY3VsYXRlKAotICAgICAgICAgICAgICAgIEV4b3RpY09iamVjdE1vZGUsIG5vVmFs
dWUoKSwgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCi0gICAg
ICAgICAgICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJO
b25OZWdhdGl2ZShiYXNlLCBtX2hlYXBzLkRpcmVjdEFyZ3VtZW50c19sZW5ndGgpKSk7CiAKKyAg
ICAgICAgICAgIGF1dG8gaXNPdXRPZkJvdW5kcyA9IG1fb3V0LmFib3ZlT3JFcXVhbChpbmRleCwg
bV9vdXQubG9hZDMyTm9uTmVnYXRpdmUoYmFzZSwgbV9oZWFwcy5EaXJlY3RBcmd1bWVudHNfbGVu
Z3RoKSk7CisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUoKS5pc0luQm91bmRzKCkp
IHsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3V0T2ZCb3VuZHMsIG5vVmFsdWUoKSwgbnVs
bHB0ciwgaXNPdXRPZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgVHlwZWRQb2ludGVyIGFkZHJl
c3MgPSBtX291dC5iYXNlSW5kZXgoCisgICAgICAgICAgICAgICAgICAgIG1faGVhcHMuRGlyZWN0
QXJndW1lbnRzX3N0b3JhZ2UsIGJhc2UsIG1fb3V0Lnplcm9FeHRQdHIoaW5kZXgpKTsKKyAgICAg
ICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LmxvYWQ2NChhZGRyZXNzKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMQmFzaWNCbG9jayBp
bkJvdW5kcyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBzbG93
Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayBjb250aW51
YXRpb24gPSBtX291dC5uZXdCbG9jaygpOworCisgICAgICAgICAgICBtX291dC5icmFuY2goaXNP
dXRPZkJvdW5kcywgcmFyZWx5KHNsb3dDYXNlKSwgdXN1YWxseShpbkJvdW5kcykpOworCisgICAg
ICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGluQm91bmRzLCBz
bG93Q2FzZSk7CiAgICAgICAgICAgICBUeXBlZFBvaW50ZXIgYWRkcmVzcyA9IG1fb3V0LmJhc2VJ
bmRleCgKICAgICAgICAgICAgICAgICBtX2hlYXBzLkRpcmVjdEFyZ3VtZW50c19zdG9yYWdlLCBi
YXNlLCBtX291dC56ZXJvRXh0UHRyKGluZGV4KSk7Ci0gICAgICAgICAgICBzZXRKU1ZhbHVlKG1f
b3V0LmxvYWQ2NChhZGRyZXNzKSk7CisgICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVz
dWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmxvYWQ2NChhZGRyZXNzKSk7CisgICAgICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNs
b3dDYXNlLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jl
c3VsdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgICAgICB2bUNhbGwoSW50NjQsIG1fb3V0
Lm9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9iamVjdEludCksIG1fY2FsbEZyYW1lLCBiYXNl
LCBpbmRleCkpOworICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAg
ICAgIHNldEpTVmFsdWUobV9vdXQucGhpKEludDY0LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMzkxMiw3
ICszOTMyLDcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3JtYWxDYXNlLCBjb250aW51YXRpb24pOwog
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHNwZWN1bGF0ZShFeG90aWNPYmplY3RNb2RlLCBu
b1ZhbHVlKCksIDAsIGlzT3V0T2ZCb3VuZHMpOworICAgICAgICAgICAgc3BlY3VsYXRlKE91dE9m
Qm91bmRzLCBub1ZhbHVlKCksIDAsIGlzT3V0T2ZCb3VuZHMpOwogICAgICAgICAKICAgICAgICAg
VHlwZWRQb2ludGVyIGJhc2U7CiAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUpIHsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjQ2OWE0
NWUzOTRlMDcxYzQ3NTFmMjUwMWZlYTk0YjE4OWFhZWU5Yy4uNGJmMmFmYWYzNzQ3ZWNjZDUyMzYw
MmViNDU2M2ZhMmYxMDc5NWYwNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0xMS0xNCAgWXVzdWtlIFN1
enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbREZHXVtGVExdIFN1cHBv
cnQgQXJyYXk6OkRpcmVjdEFyZ3VtZW50cyB3aXRoIE91dE9mQm91bmRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1OTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9kaXJlY3QtYXJndW1l
bnRzLWluLWJvdW5kcy10by1vdXQtb2YtYm91bmRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3Vs
ZEJlKToKKyAgICAgICAgKGFyZ3MpOgorICAgICAgICAqIHN0cmVzcy9kaXJlY3QtYXJndW1lbnRz
LW91dC1vZi1ib3VuZHMtd2F0Y2hwb2ludC5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6
CisgICAgICAgIChhcmdzKToKKwogMjAxNy0xMS0xNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZSBuZWVkIHRvIHNldCB0b3BDYWxsRnJhbWUgd2hlbiBjYWxs
aW5nIFdhc206Ok1lbW9yeTo6Z3JvdyBmcm9tIHRoZSBKSVQKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2RpcmVjdC1hcmd1bWVudHMtaW4tYm91bmRzLXRvLW91dC1vZi1ib3VuZHMuanMgYi9K
U1Rlc3RzL3N0cmVzcy9kaXJlY3QtYXJndW1lbnRzLWluLWJvdW5kcy10by1vdXQtb2YtYm91bmRz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkYWM3ZDI5MWY1Mjk1ZjNhMDFkY2NmM2ZkMmJmYWQ2NDUzNmY5OGMK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9kaXJlY3QtYXJndW1lbnRzLWluLWJv
dW5kcy10by1vdXQtb2YtYm91bmRzLmpzCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gYXJncygpCit7CisgICAgcmV0dXJuIGFyZ3VtZW50c1sxXTsKK30KK25vSW5saW5lKGFy
Z3MpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKQorICAgIHNob3VsZEJlKGFyZ3Mo
MCwgMSwgMiksIDEpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNjsgKytpKQorICAgIHNob3Vs
ZEJlKGFyZ3MoMCksIHVuZGVmaW5lZCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kaXJl
Y3QtYXJndW1lbnRzLW91dC1vZi1ib3VuZHMtd2F0Y2hwb2ludC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2RpcmVjdC1hcmd1bWVudHMtb3V0LW9mLWJvdW5kcy13YXRjaHBvaW50LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcxNjkxNDFiOWJiZjAzOTllNWE4NzJhNWE3NGEzNDFjNjNhMjNlMDgKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9kaXJlY3QtYXJndW1lbnRzLW91dC1vZi1ib3VuZHMtd2F0Y2hw
b2ludC5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKQoreworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIGFyZ3MoKQorewor
ICAgIHJldHVybiBhcmd1bWVudHNbMV07Cit9Citub0lubGluZShhcmdzKTsKKworc2hvdWxkQmUo
YXJncygpLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYXJncygwKSwgdW5kZWZpbmVkKTsKK3Nob3Vs
ZEJlKGFyZ3MoMCwgMSksIDEpOworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkKKyAgICBz
aG91bGRCZShhcmdzKCksIHVuZGVmaW5lZCk7CitPYmplY3QucHJvdG90eXBlWzFdID0gNDI7Citz
aG91bGRCZShhcmdzKCksIDQyKTsK
</data>
<flag name="review"
          id="346141"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>