<?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>195300</bug_id>
          
          <creation_ts>2019-03-04 16:36:39 -0800</creation_ts>
          <short_desc>Move RenderObject::isTransparentOrFullyClippedRespectingParentFrames() to RenderLayer</short_desc>
          <delta_ts>2019-03-06 13:24:26 -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>WebCore Misc.</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1512410</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-04 16:36:39 -0800</bug_when>
    <thetext>Code cleanup, SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513076</commentid>
    <comment_count>1</comment_count>
      <attachid>363758</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-06 10:52:42 -0800</bug_when>
    <thetext>Created attachment 363758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513079</commentid>
    <comment_count>2</comment_count>
      <attachid>363759</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-06 10:54:15 -0800</bug_when>
    <thetext>Created attachment 363759
Typo fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513081</commentid>
    <comment_count>3</comment_count>
      <attachid>363759</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-06 10:57:49 -0800</bug_when>
    <thetext>Comment on attachment 363759
Typo fix

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Move `isTransparentOrFullyClippedRespectingParentFrames()` from RenderObject to RenderLayer, since this function

Backticks :\

&gt; Source/WebCore/rendering/RenderLayer.cpp:6602
&gt; +bool RenderLayer::isTransparentOrFullyClippedRespectingParentFrames() const

It strikes me that this potentially allows an iframe to learn things about its enclosing frames which is bad from a security perspective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513098</commentid>
    <comment_count>4</comment_count>
      <attachid>363759</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-06 11:23:51 -0800</bug_when>
    <thetext>Comment on attachment 363759
Typo fix

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Move `isTransparentOrFullyClippedRespectingParentFrames()` from RenderObject to RenderLayer, since this function
&gt; 
&gt; Backticks :\

Backtick&apos;d text like this will show up as a code block in trac.webkit.org (I use it sometimes when referencing function names in ChangeLogs for this reason). But I&apos;ll remove it here anyways.

&gt;&gt; Source/WebCore/rendering/RenderLayer.cpp:6602
&gt;&gt; +bool RenderLayer::isTransparentOrFullyClippedRespectingParentFrames() const
&gt; 
&gt; It strikes me that this potentially allows an iframe to learn things about its enclosing frames which is bad from a security perspective.

An interesting point! That being said, it seems like (1) RenderLayer already knows how to walk out of its current frame in a few other places (e.g. scrollRectToVisible), and (2) the result of isTransparentOrFullyClippedRespectingParentFrames is never web-exposed (it only affects the behavior of platform-specific chrome that&apos;s opaque to the web page).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513104</commentid>
    <comment_count>5</comment_count>
      <attachid>363766</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-06 11:40:24 -0800</bug_when>
    <thetext>Created attachment 363766
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513121</commentid>
    <comment_count>6</comment_count>
      <attachid>363766</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-06 12:18:06 -0800</bug_when>
    <thetext>Comment on attachment 363766
Patch for landing

Clearing flags on attachment: 363766

Committed r242561: &lt;https://trac.webkit.org/changeset/242561&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513146</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-06 13:08:28 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #4)
&gt; Comment on attachment 363759 [details]

&gt; An interesting point! That being said, it seems like (1) RenderLayer already
&gt; knows how to walk out of its current frame in a few other places (e.g.
&gt; scrollRectToVisible)

There&apos;s a bug about that somewhere.

&gt; and (2) the result of
&gt; isTransparentOrFullyClippedRespectingParentFrames is never web-exposed (it
&gt; only affects the behavior of platform-specific chrome that&apos;s opaque to the
&gt; web page).

good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1513163</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-06 13:24:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/48649818&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363758</attachid>
            <date>2019-03-06 10:52:42 -0800</date>
            <delta_ts>2019-03-06 10:54:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195300-20190306105241.patch</filename>
            <type>text/plain</type>
            <size>11461</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkNWQxNmQwNDRhNTk5
ZWVkYzZjNjJkNmMyOGNmNTYwNTc2Y2QyMi4uYmNmY2M2Njc5MGEwZDhjM2ZiNjk4MzE3NzE3NGZm
ZGM1ZWViZGZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTAzLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUmVuZGVy
T2JqZWN0Ojppc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVz
KCkgdG8gUmVuZGVyTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTMwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgYGlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJl
bnRGcmFtZXMoKWAgZnJvbSBSZW5kZXJPYmplY3QgdG8gUmVuZGVyTGF5ZXIsIHNpbmNlIHRoaXMg
ZnVuY3Rpb24KKyAgICAgICAgaXMgbW9zdGx5IGFza3MgcXVlc3Rpb25zIGFib3V0IFJlbmRlckxh
eWVycyByYXRoZXIgdGhhbiB0aGVpciByZW5kZXJlcnMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjplbmNsb3NpbmdGcmFtZVJlbmRlckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcmVudExh
eWVyQ3Jvc3NGcmFtZSk6CisKKyAgICAgICAgU29tZSBzdGF0aWMgaGVscGVycyBjdXJyZW50bHkg
aW4gUmVuZGVyT2JqZWN0IHRoYXQgd2FsayB1cCB0aGUgbGF5ZXIgaGllcmFyY2h5IHRocm91Z2gg
c3ViZnJhbWVzIGFyZSByZWR1bmRhbnQKKyAgICAgICAgd2l0aCBzdGF0aWMgaGVscGVycyBpbiBS
ZW5kZXJMYXllci4gTm93IHRoYXQgaXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkUmVzcGVjdGlu
Z1BhcmVudEZyYW1lcyBleGlzdHMgaW4KKyAgICAgICAgUmVuZGVyTGF5ZXIsIHNpbXBseSB1c2Ug
dGhpcyBleGlzdGluZyBoZWxwZXIgaW5zdGVhZCwgYW5kIHNwbGl0IGxvZ2ljIHRvIGdyYWIgdGhl
IGVuY2xvc2luZyBsYXllciBhcm91bmQgdGhlCisgICAgICAgIG93bmVyIGVsZW1lbnQgb2YgYSBm
cmFtZSBpbnRvIGEgc2VwYXJhdGUgaGVscGVyIGFzIHdlbGwuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmVuY2xvc2luZ0ZyYW1lUmVuZGVyTGF5ZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6cGFyZW50TGF5ZXJDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzVHJhbnNwYXJlbnRPckZ1
bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMgY29uc3QpOiBEZWxldGVkLgorCisgICAg
ICAgIE1vdmVkIGZyb20gUmVuZGVyT2JqZWN0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oOgorCiAyMDE5LTAzLTA2ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgQ29uc2lkZXIgc3VwcG9ydGluZyB0aGUgYHJlZmVycmVycG9saWN5YCBhdHRyaWJ1
dGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDc4Y2U1ZjNhZjZhNGRmMzhmN2ZmODkyZmE1MjAxMjliOTQ3NDUzYzku
LjIwNWQ2YWE0OWVjZTg0NDkyN2MwNjQwZDFmOWUxNTM0MWExMzJlMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTktMDMtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgTW92ZSBSZW5kZXJPYmplY3Q6OmlzVHJhbnNwYXJlbnRPckZ1bGx5
Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKSB0byBSZW5kZXJMYXllcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MzAwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBsb2dp
YyB0byB1c2UgaXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkUmVzcGVjdGluZ1BhcmVudEZyYW1l
cyBvbiBSZW5kZXJMYXllciByYXRoZXIgdGhhbgorICAgICAgICBSZW5kZXJPYmplY3Q7IGludHJv
ZHVjZSBhIGhlbHBlciBtZXRob2QgdG8gYXNrIHdoZXRoZXIgdGhlIGVuY2xvc2luZyBsYXllciBv
ZiBhIHJlbmRlcmVyIGlzIHRyYW5zcGFyZW50IG9yCisgICAgICAgIGNsaXBwZWQuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OmVuY2xvc2luZ0xheWVySXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1FZGl0b3JTdGF0ZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RFdmFzaW9uUmVjdHNBYm92ZVNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pOgorCiAy
MDE5LTAzLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1NdIEZyZXF1ZW50IDEgc2Vjb25kIElQQyBkZWFkbG9ja3Mgd2hlbiBzaG93aW5nIGEg
cGFzdGUgY2FsbG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggYTYyNTY0ZDk1MDQ4MWQ2Y2IwNDMyMjhhM2ZlY2VmNTgzNzkxNGQ2Yy4uNGQxODExYzE3Mzc1
MzYwYTQ1MzllZjlhZmFmZGZjZTVlZGE1MDVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCkBAIC0xNjUyLDIyICsxNjUyLDI3IEBAIFJlbmRlckxheWVyKiBSZW5k
ZXJMYXllcjo6ZW5jbG9zaW5nQW5jZXN0b3JGb3JQb3NpdGlvbihQb3NpdGlvblR5cGUgcG9zaXRp
b24pIGNvCiAgICAgcmV0dXJuIGN1cnI7CiB9CiAKLXN0YXRpYyBSZW5kZXJMYXllciogcGFyZW50
TGF5ZXJDcm9zc0ZyYW1lKGNvbnN0IFJlbmRlckxheWVyJiBsYXllcikKK3N0YXRpYyBSZW5kZXJM
YXllciogZW5jbG9zaW5nRnJhbWVSZW5kZXJMYXllcihjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIp
CiB7Ci0gICAgaWYgKGxheWVyLnBhcmVudCgpKQotICAgICAgICByZXR1cm4gbGF5ZXIucGFyZW50
KCk7Ci0KLSAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGxheWVyLnJl
bmRlcmVyKCkuZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKKyAgICBhdXRvKiBvd25lckVsZW1l
bnQgPSBsYXllci5yZW5kZXJlcigpLmRvY3VtZW50KCkub3duZXJFbGVtZW50KCk7CiAgICAgaWYg
KCFvd25lckVsZW1lbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVuZGVyRWxl
bWVudCogb3duZXJSZW5kZXJlciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBhdXRv
KiBvd25lclJlbmRlcmVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpOwogICAgIGlmICghb3du
ZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gb3duZXJS
ZW5kZXJlci0+ZW5jbG9zaW5nTGF5ZXIoKTsKIH0KIAorc3RhdGljIFJlbmRlckxheWVyKiBwYXJl
bnRMYXllckNyb3NzRnJhbWUoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKQoreworICAgIGlmIChh
dXRvKiBwYXJlbnQgPSBsYXllci5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIHBhcmVudDsKKwor
ICAgIHJldHVybiBlbmNsb3NpbmdGcmFtZVJlbmRlckxheWVyKGxheWVyKTsKK30KKwogUmVuZGVy
TGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdTY3JvbGxhYmxlTGF5ZXIoKSBjb25zdAogewog
ICAgIGZvciAoUmVuZGVyTGF5ZXIqIG5leHRMYXllciA9IHBhcmVudExheWVyQ3Jvc3NGcmFtZSgq
dGhpcyk7IG5leHRMYXllcjsgbmV4dExheWVyID0gcGFyZW50TGF5ZXJDcm9zc0ZyYW1lKCpuZXh0
TGF5ZXIpKSB7CkBAIC02NTk0LDYgKzY1OTksMjUgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZmlsdGVy
TmVlZHNSZXBhaW50KCkKICAgICByZW5kZXJlcigpLnJlcGFpbnQoKTsKIH0KIAorYm9vbCBSZW5k
ZXJMYXllcjo6aXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkUmVzcGVjdGluZ1BhcmVudEZyYW1l
cygpIGNvbnN0Cit7CisgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5pbXVtVmlzaWJsZU9wYWNp
dHkgPSAwLjAxOworCisgICAgZmxvYXQgY3VycmVudE9wYWNpdHkgPSAxOworICAgIGZvciAoYXV0
byogbGF5ZXIgPSB0aGlzOyBsYXllcjsgbGF5ZXIgPSBwYXJlbnRMYXllckNyb3NzRnJhbWUoKmxh
eWVyKSkgeworICAgICAgICBjdXJyZW50T3BhY2l0eSAqPSBsYXllci0+cmVuZGVyZXIoKS5zdHls
ZSgpLm9wYWNpdHkoKTsKKyAgICAgICAgaWYgKGN1cnJlbnRPcGFjaXR5IDwgbWluaW11bVZpc2li
bGVPcGFjaXR5KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgZm9yIChh
dXRvKiBsYXllciA9IHRoaXM7IGxheWVyOyBsYXllciA9IGVuY2xvc2luZ0ZyYW1lUmVuZGVyTGF5
ZXIoKmxheWVyKSkgeworICAgICAgICBpZiAobGF5ZXItPnNlbGZDbGlwUmVjdCgpLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsK
K30KKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVy
TGF5ZXImIGxheWVyKQogewogICAgIHRzIDw8ICJSZW5kZXJMYXllciAiIDw8ICZsYXllciA8PCAi
ICIgPDwgbGF5ZXIuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApp
bmRleCA1MGEzNmYyNzM1ZGJlNTcyMmM3YzY1ODlmZmY0NTIyYzQxNWI1MDVmLi40NTgwY2U4OWJi
ODhiYjdkODg5NDIzNDk3ZGEyNjYxNGVjOWM2NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaApAQCAtODU3LDYgKzg1Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNpbXVs
YXRlRnJlcXVlbnRQYWludCgpIHsgU2luZ2xlUGFpbnRGcmVxdWVuY3lUcmFja2luZyB7IG1fcGFp
bnRGcmVxdWVuY3lUcmFja2VyIH07IH0KICAgICBib29sIHBhaW50aW5nRnJlcXVlbnRseSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFpbnRGcmVxdWVuY3lUcmFja2VyLnBhaW50aW5nRnJlcXVlbnRseSgp
OyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBl
ZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKSBjb25zdDsKKwogcHJpdmF0ZToKIAogICAgIHZvaWQg
c2V0TmV4dFNpYmxpbmcoUmVuZGVyTGF5ZXIqIG5leHQpIHsgbV9uZXh0ID0gbmV4dDsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA2ZjM1ZDA0YjA5MGQ4
ODAyYmFkNTQwZTI4NDQzZmI3MTQzNmVjMzNmLi4yZjBiOGJhOGRhOWZkODIyOGQ1ZTY3ZGZkYTY4
YWJiNTk5OThiYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cApAQCAtMTUyNyw0MyArMTUyNyw2IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkKICAg
ICBkZWxldGUgdGhpczsKIH0KIAotc3RhdGljIFJlbmRlckxheWVyKiBlbmNsb3NpbmdGcmFtZVJl
bmRlckxheWVyKFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0KQotewotICAgIGF1dG8qIG93bmVy
ID0gcmVuZGVyT2JqZWN0LmZyYW1lKCkub3duZXJFbGVtZW50KCk7Ci0gICAgaWYgKCFvd25lcikK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBhdXRvKiBmcmFtZU93bmVyUmVuZGVyZXIg
PSBvd25lci0+cmVuZGVyZXIoKTsKLSAgICByZXR1cm4gZnJhbWVPd25lclJlbmRlcmVyID8gZnJh
bWVPd25lclJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpIDogbnVsbHB0cjsKLX0KLQotc3RhdGlj
IFJlbmRlckxheWVyKiBwYXJlbnRMYXllckNyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKFJlbmRlckxh
eWVyJiBsYXllcikKLXsKLSAgICBpZiAoYXV0byogcGFyZW50TGF5ZXIgPSBsYXllci5wYXJlbnQo
KSkKLSAgICAgICAgcmV0dXJuIHBhcmVudExheWVyOwotCi0gICAgcmV0dXJuIGVuY2xvc2luZ0Zy
YW1lUmVuZGVyTGF5ZXIobGF5ZXIucmVuZGVyZXIoKSk7Ci19Ci0KLWJvb2wgUmVuZGVyT2JqZWN0
Ojppc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29u
c3QKLXsKLSAgICBzdGF0aWMgY29uc3QgZG91YmxlIG1pbmltdW1WaXNpYmxlT3BhY2l0eSA9IDAu
MDE7Ci0KLSAgICBmbG9hdCBjdXJyZW50T3BhY2l0eSA9IDE7Ci0gICAgZm9yIChhdXRvKiBsYXll
ciA9IGVuY2xvc2luZ0xheWVyKCk7IGxheWVyOyBsYXllciA9IHBhcmVudExheWVyQ3Jvc3NpbmdG
cmFtZUJvdW5kYXJpZXMoKmxheWVyKSkgewotICAgICAgICBjdXJyZW50T3BhY2l0eSAqPSBsYXll
ci0+cmVuZGVyZXIoKS5zdHlsZSgpLm9wYWNpdHkoKTsKLSAgICAgICAgaWYgKGN1cnJlbnRPcGFj
aXR5IDwgbWluaW11bVZpc2libGVPcGFjaXR5KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotCi0gICAgZm9yIChhdXRvKiBsYXllciA9IGVuY2xvc2luZ0xheWVyKCk7IGxheWVyOyBs
YXllciA9IGVuY2xvc2luZ0ZyYW1lUmVuZGVyTGF5ZXIobGF5ZXItPnJlbmRlcmVyKCkpKSB7Ci0g
ICAgICAgIGlmIChsYXllci0+c2VsZkNsaXBSZWN0KCkuaXNFbXB0eSgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBQb3NpdGlvbiBS
ZW5kZXJPYmplY3Q6OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQog
ewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0IGNyZWF0ZSBhIFBvc2l0aW9uIG9iamVj
dCBpbnN0ZWFkICh3ZWJraXQub3JnL2IvMTY4NTY2KS4gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKaW5kZXggODdlODgwMWE4YTExNmQ0YzI5YWFmNzliZDk5YTZlNmRiOTEz
ZDI5My4uOTc2MjZkZmRhOGQ4M2QyOGFjN2IzNDExNzQ2NGFlYjUxMTg2ODU5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNzk4LDggKzc5OCw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGluaXRpYWxpemVGcmFnbWVudGVkRmxvd1N0YXRlT25JbnNlcnRpb24oKTsK
ICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpOwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVz
KCkgY29uc3Q7Ci0KIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KICAgICAvLyBIZWxwZXIgZnVuY3Rpb25zLiBEYW5nZXJvdXMgdG8gdXNl
IQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCBhZjhiNjQ2OTgzNDIxOThiYjkwYmI5MmEyYTFjMjAzMzIwZTNkYjZhLi5kYWRl
MjlkNjkxYzU2YWZmNzkxYTY0MWJmZGNjNWU5YTg3NjU0MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTc5LDYgKzE3
OSwxMiBAQCBzdGF0aWMgdm9pZCBjb21wdXRlRWRpdGFibGVSb290SGFzQ29udGVudEFuZFBsYWlu
VGV4dChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZQogICAgIGRhdGEuaGFzUGxhaW5UZXh0ID0g
ZGF0YS5oYXNDb250ZW50ICYmIGhhc0FueVBsYWluVGV4dChSYW5nZTo6Y3JlYXRlKHJvb3QtPmRv
Y3VtZW50KCksIFZpc2libGVQb3NpdGlvbiB7IHN0YXJ0SW5FZGl0YWJsZVJvb3QgfSwgVmlzaWJs
ZVBvc2l0aW9uIHsgbGFzdFBvc2l0aW9uSW5Ob2RlKHJvb3QpIH0pKTsKIH0KIAorc3RhdGljIGJv
b2wgZW5jbG9zaW5nTGF5ZXJJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQoY29uc3QgUmVuZGVy
T2JqZWN0JiByZW5kZXJlcikKK3sKKyAgICBhdXRvKiBlbmNsb3NpbmdMYXllciA9IHJlbmRlcmVy
LmVuY2xvc2luZ0xheWVyKCk7CisgICAgcmV0dXJuIGVuY2xvc2luZ0xheWVyICYmIGVuY2xvc2lu
Z0xheWVyLT5pc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVz
KCk7Cit9CisKIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1FZGl0b3JTdGF0ZShGcmFtZSYgZnJhbWUs
IEVkaXRvclN0YXRlJiByZXN1bHQsIEluY2x1ZGVQb3N0TGF5b3V0RGF0YUhpbnQgc2hvdWxkSW5j
bHVkZVBvc3RMYXlvdXREYXRhKSBjb25zdAogewogICAgIGlmIChmcmFtZS5lZGl0b3IoKS5oYXND
b21wb3NpdGlvbigpKSB7CkBAIC0yNDYsOSArMjUyLDEwIEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZv
cm1FZGl0b3JTdGF0ZShGcmFtZSYgZnJhbWUsIEVkaXRvclN0YXRlJiByZXN1bHQsIEluY2x1ZGVQ
b3N0CiAgICAgcG9zdExheW91dERhdGEuaW5zaWRlRml4ZWRQb3NpdGlvbiA9IHN0YXJ0Tm9kZUlz
SW5zaWRlRml4ZWRQb3NpdGlvbiB8fCBlbmROb2RlSXNJbnNpZGVGaXhlZFBvc2l0aW9uOwogICAg
IGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CiAgICAgICAgIGlmIChtX2ZvY3VzZWRFbGVtZW50
ICYmIG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIHBvc3RMYXlv
dXREYXRhLmZvY3VzZWRFbGVtZW50UmVjdCA9IHZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhtX2Zv
Y3VzZWRFbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKTsKLSAg
ICAgICAgICAgIHBvc3RMYXlvdXREYXRhLmNhcmV0Q29sb3IgPSBtX2ZvY3VzZWRFbGVtZW50LT5y
ZW5kZXJlcigpLT5zdHlsZSgpLmNhcmV0Q29sb3IoKTsKLSAgICAgICAgICAgIHBvc3RMYXlvdXRE
YXRhLmVsZW1lbnRJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQgPSBtX2ZvY3VzZWRFbGVtZW50
LT5yZW5kZXJlcigpLT5pc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50
RnJhbWVzKCk7CisgICAgICAgICAgICBhdXRvJiByZW5kZXJlciA9ICptX2ZvY3VzZWRFbGVtZW50
LT5yZW5kZXJlcigpOworICAgICAgICAgICAgcG9zdExheW91dERhdGEuZm9jdXNlZEVsZW1lbnRS
ZWN0ID0gdmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHJlbmRlcmVyLmFic29sdXRlQm91bmRpbmdC
b3hSZWN0KCkpOworICAgICAgICAgICAgcG9zdExheW91dERhdGEuY2FyZXRDb2xvciA9IHJlbmRl
cmVyLnN0eWxlKCkuY2FyZXRDb2xvcigpOworICAgICAgICAgICAgcG9zdExheW91dERhdGEuZWxl
bWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCA9IGVuY2xvc2luZ0xheWVySXNUcmFuc3Bh
cmVudE9yRnVsbHlDbGlwcGVkKHJlbmRlcmVyKTsKICAgICAgICAgfQogICAgICAgICBjb21wdXRl
RWRpdGFibGVSb290SGFzQ29udGVudEFuZFBsYWluVGV4dChzZWxlY3Rpb24sIHBvc3RMYXlvdXRE
YXRhKTsKICAgICB9CkBAIC0xNTIzLDcgKzE1MzAsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RF
dmFzaW9uUmVjdHNBYm92ZVNlbGVjdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZl
YwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX2ZvY3VzZWRFbGVtZW50IHx8
ICFtX2ZvY3VzZWRFbGVtZW50LT5yZW5kZXJlcigpIHx8IG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRl
cmVyKCktPmlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMo
KSkgeworICAgIGlmICghbV9mb2N1c2VkRWxlbWVudCB8fCAhbV9mb2N1c2VkRWxlbWVudC0+cmVu
ZGVyZXIoKSB8fCBlbmNsb3NpbmdMYXllcklzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCgqbV9m
b2N1c2VkRWxlbWVudC0+cmVuZGVyZXIoKSkpIHsKICAgICAgICAgcmVwbHkoeyB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTI0ODksNyArMjQ5Niw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0
Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbihGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBpbmZv
cm1hdGlvCiAgICAgICAgIGF1dG8mIGVsZW1lbnRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRS
ZWN0ID0gZWxlbWVudFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKm1fZm9jdXNlZEVsZW1lbnQs
IGVsZW1lbnRGcmFtZSk7CiAgICAgICAgIGluZm9ybWF0aW9uLm5vZGVGb250U2l6ZSA9IHJlbmRl
cmVyLT5zdHlsZSgpLmZvbnREZXNjcmlwdGlvbigpLmNvbXB1dGVkU2l6ZSgpOwotICAgICAgICBp
bmZvcm1hdGlvbi5lbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkID0gcmVuZGVyZXIt
PmlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKTsKKyAg
ICAgICAgaW5mb3JtYXRpb24uZWxlbWVudElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCA9IGVu
Y2xvc2luZ0xheWVySXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKCpyZW5kZXJlcik7CiAKICAg
ICAgICAgYm9vbCBpbkZpeGVkID0gZmFsc2U7CiAgICAgICAgIHJlbmRlcmVyLT5sb2NhbFRvQ29u
dGFpbmVyUG9pbnQoRmxvYXRQb2ludCgpLCBudWxscHRyLCBVc2VUcmFuc2Zvcm1zLCAmaW5GaXhl
ZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363759</attachid>
            <date>2019-03-06 10:54:15 -0800</date>
            <delta_ts>2019-03-06 10:57:49 -0800</delta_ts>
            <desc>Typo fix</desc>
            <filename>bug-195300-20190306105414.patch</filename>
            <type>text/plain</type>
            <size>11442</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkNWQxNmQwNDRhNTk5
ZWVkYzZjNjJkNmMyOGNmNTYwNTc2Y2QyMi4uNTUzOGZkZDdiMjg2YWMzNDQxZTYzMjQyMDg2YTBm
YmQ1ODRiMzU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTAzLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUmVuZGVy
T2JqZWN0Ojppc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVz
KCkgdG8gUmVuZGVyTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTMwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgYGlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJl
bnRGcmFtZXMoKWAgZnJvbSBSZW5kZXJPYmplY3QgdG8gUmVuZGVyTGF5ZXIsIHNpbmNlIHRoaXMg
ZnVuY3Rpb24KKyAgICAgICAgYXNrcyBxdWVzdGlvbnMgYWJvdXQgUmVuZGVyTGF5ZXJzIHJhdGhl
ciB0aGFuIHRoZWlyIHJlbmRlcmVycy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY2xvc2lu
Z0ZyYW1lUmVuZGVyTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6cGFyZW50TGF5ZXJDcm9zc0Zy
YW1lKToKKworICAgICAgICBTb21lIHN0YXRpYyBoZWxwZXJzIGN1cnJlbnRseSBpbiBSZW5kZXJP
YmplY3QgdGhhdCB3YWxrIHVwIHRoZSBsYXllciBoaWVyYXJjaHkgdGhyb3VnaCBzdWJmcmFtZXMg
YXJlIHJlZHVuZGFudAorICAgICAgICB3aXRoIHN0YXRpYyBoZWxwZXJzIGluIFJlbmRlckxheWVy
LiBOb3cgdGhhdCBpc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJh
bWVzIGV4aXN0cyBpbgorICAgICAgICBSZW5kZXJMYXllciwgc2ltcGx5IHVzZSB0aGlzIGV4aXN0
aW5nIGhlbHBlciBpbnN0ZWFkIGFuZCBzcGxpdCBsb2dpYyB0byBncmFiIHRoZSBlbmNsb3Npbmcg
bGF5ZXIgYXJvdW5kIHRoZQorICAgICAgICBvd25lciBlbGVtZW50IG9mIGEgZnJhbWUgaW50byBh
IHNlcGFyYXRlIGhlbHBlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZW5jbG9zaW5nRnJhbWVSZW5kZXJMYXllcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpw
YXJlbnRMYXllckNyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkUmVzcGVjdGlu
Z1BhcmVudEZyYW1lcyBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgTW92ZWQgZnJvbSBSZW5k
ZXJPYmplY3QuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisKIDIwMTkt
MDMtMDYgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBDb25zaWRlciBz
dXBwb3J0aW5nIHRoZSBgcmVmZXJyZXJwb2xpY3lgIGF0dHJpYnV0ZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzhj
ZTVmM2FmNmE0ZGYzOGY3ZmY4OTJmYTUyMDEyOWI5NDc0NTNjOS4uMjA1ZDZhYTQ5ZWNlODQ0OTI3
YzA2NDBkMWY5ZTE1MzQxYTEzMmUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOS0w
My0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBN
b3ZlIFJlbmRlck9iamVjdDo6aXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkUmVzcGVjdGluZ1Bh
cmVudEZyYW1lcygpIHRvIFJlbmRlckxheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUzMDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBzb21lIGxvZ2ljIHRvIHVzZSBpc1RyYW5zcGFy
ZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVzIG9uIFJlbmRlckxheWVyIHJh
dGhlciB0aGFuCisgICAgICAgIFJlbmRlck9iamVjdDsgaW50cm9kdWNlIGEgaGVscGVyIG1ldGhv
ZCB0byBhc2sgd2hldGhlciB0aGUgZW5jbG9zaW5nIGxheWVyIG9mIGEgcmVuZGVyZXIgaXMgdHJh
bnNwYXJlbnQgb3IKKyAgICAgICAgY2xpcHBlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6ZW5jbG9zaW5nTGF5ZXJJ
c1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpw
bGF0Zm9ybUVkaXRvclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVx
dWVzdEV2YXNpb25SZWN0c0Fib3ZlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Z2V0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbik6CisKIDIwMTktMDMtMDYgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRnJlcXVlbnQg
MSBzZWNvbmQgSVBDIGRlYWRsb2NrcyB3aGVuIHNob3dpbmcgYSBwYXN0ZSBjYWxsb3V0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBhNjI1NjRkOTUwNDgxZDZj
YjA0MzIyOGEzZmVjZWY1ODM3OTE0ZDZjLi40ZDE4MTFjMTczNzUzNjBhNDUzOWVmOWFmYWZkZmNl
NWVkYTUwNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAg
LTE2NTIsMjIgKzE2NTIsMjcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdB
bmNlc3RvckZvclBvc2l0aW9uKFBvc2l0aW9uVHlwZSBwb3NpdGlvbikgY28KICAgICByZXR1cm4g
Y3VycjsKIH0KIAotc3RhdGljIFJlbmRlckxheWVyKiBwYXJlbnRMYXllckNyb3NzRnJhbWUoY29u
c3QgUmVuZGVyTGF5ZXImIGxheWVyKQorc3RhdGljIFJlbmRlckxheWVyKiBlbmNsb3NpbmdGcmFt
ZVJlbmRlckxheWVyKGNvbnN0IFJlbmRlckxheWVyJiBsYXllcikKIHsKLSAgICBpZiAobGF5ZXIu
cGFyZW50KCkpCi0gICAgICAgIHJldHVybiBsYXllci5wYXJlbnQoKTsKLQotICAgIEhUTUxGcmFt
ZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50ID0gbGF5ZXIucmVuZGVyZXIoKS5kb2N1bWVudCgp
Lm93bmVyRWxlbWVudCgpOworICAgIGF1dG8qIG93bmVyRWxlbWVudCA9IGxheWVyLnJlbmRlcmVy
KCkuZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKICAgICBpZiAoIW93bmVyRWxlbWVudCkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZW5kZXJFbGVtZW50KiBvd25lclJlbmRlcmVy
ID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpOworICAgIGF1dG8qIG93bmVyUmVuZGVyZXIgPSBv
d25lckVsZW1lbnQtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFvd25lclJlbmRlcmVyKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBvd25lclJlbmRlcmVyLT5lbmNsb3NpbmdM
YXllcigpOwogfQogCitzdGF0aWMgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyQ3Jvc3NGcmFtZShj
b25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCit7CisgICAgaWYgKGF1dG8qIHBhcmVudCA9IGxheWVy
LnBhcmVudCgpKQorICAgICAgICByZXR1cm4gcGFyZW50OworCisgICAgcmV0dXJuIGVuY2xvc2lu
Z0ZyYW1lUmVuZGVyTGF5ZXIobGF5ZXIpOworfQorCiBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6
OmVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigpIGNvbnN0CiB7CiAgICAgZm9yIChSZW5kZXJMYXll
ciogbmV4dExheWVyID0gcGFyZW50TGF5ZXJDcm9zc0ZyYW1lKCp0aGlzKTsgbmV4dExheWVyOyBu
ZXh0TGF5ZXIgPSBwYXJlbnRMYXllckNyb3NzRnJhbWUoKm5leHRMYXllcikpIHsKQEAgLTY1OTQs
NiArNjU5OSwyNSBAQCB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJOZWVkc1JlcGFpbnQoKQogICAg
IHJlbmRlcmVyKCkucmVwYWludCgpOwogfQogCitib29sIFJlbmRlckxheWVyOjppc1RyYW5zcGFy
ZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29uc3QKK3sKKyAgICBz
dGF0aWMgY29uc3QgZG91YmxlIG1pbmltdW1WaXNpYmxlT3BhY2l0eSA9IDAuMDE7CisKKyAgICBm
bG9hdCBjdXJyZW50T3BhY2l0eSA9IDE7CisgICAgZm9yIChhdXRvKiBsYXllciA9IHRoaXM7IGxh
eWVyOyBsYXllciA9IHBhcmVudExheWVyQ3Jvc3NGcmFtZSgqbGF5ZXIpKSB7CisgICAgICAgIGN1
cnJlbnRPcGFjaXR5ICo9IGxheWVyLT5yZW5kZXJlcigpLnN0eWxlKCkub3BhY2l0eSgpOworICAg
ICAgICBpZiAoY3VycmVudE9wYWNpdHkgPCBtaW5pbXVtVmlzaWJsZU9wYWNpdHkpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8qIGxheWVyID0gdGhpczsg
bGF5ZXI7IGxheWVyID0gZW5jbG9zaW5nRnJhbWVSZW5kZXJMYXllcigqbGF5ZXIpKSB7CisgICAg
ICAgIGlmIChsYXllci0+c2VsZkNsaXBSZWN0KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCiB7CiAg
ICAgdHMgPDwgIlJlbmRlckxheWVyICIgPDwgJmxheWVyIDw8ICIgIiA8PCBsYXllci5zaXplKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDUwYTM2ZjI3MzVkYmU1
NzIyYzdjNjU4OWZmZjQ1MjJjNDE1YjUwNWYuLjQ1ODBjZTg5YmI4OGJiN2Q4ODk0MjM0OTdkYTI2
NjE0ZWM5YzY1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC04
NTcsNiArODU3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2ltdWxhdGVGcmVxdWVudFBhaW50KCkg
eyBTaW5nbGVQYWludEZyZXF1ZW5jeVRyYWNraW5nIHsgbV9wYWludEZyZXF1ZW5jeVRyYWNrZXIg
fTsgfQogICAgIGJvb2wgcGFpbnRpbmdGcmVxdWVudGx5KCkgY29uc3QgeyByZXR1cm4gbV9wYWlu
dEZyZXF1ZW5jeVRyYWNrZXIucGFpbnRpbmdGcmVxdWVudGx5KCk7IH0KIAorICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkUmVzcGVjdGluZ1BhcmVudEZy
YW1lcygpIGNvbnN0OworCiBwcml2YXRlOgogCiAgICAgdm9pZCBzZXROZXh0U2libGluZyhSZW5k
ZXJMYXllciogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDZmMzVkMDRiMDkwZDg4MDJiYWQ1NDBlMjg0NDNmYjcx
NDM2ZWMzM2YuLjJmMGI4YmE4ZGE5ZmQ4MjI4ZDVlNjdkZmRhNjhhYmI1OTk5OGJiYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xNTI3LDQzICsxNTI3
LDYgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmRlc3Ryb3koKQogICAgIGRlbGV0ZSB0aGlzOwogfQog
Ci1zdGF0aWMgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0ZyYW1lUmVuZGVyTGF5ZXIoUmVuZGVyT2Jq
ZWN0JiByZW5kZXJPYmplY3QpCi17Ci0gICAgYXV0byogb3duZXIgPSByZW5kZXJPYmplY3QuZnJh
bWUoKS5vd25lckVsZW1lbnQoKTsKLSAgICBpZiAoIW93bmVyKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIGF1dG8qIGZyYW1lT3duZXJSZW5kZXJlciA9IG93bmVyLT5yZW5kZXJlcigp
OwotICAgIHJldHVybiBmcmFtZU93bmVyUmVuZGVyZXIgPyBmcmFtZU93bmVyUmVuZGVyZXItPmVu
Y2xvc2luZ0xheWVyKCkgOiBudWxscHRyOwotfQotCi1zdGF0aWMgUmVuZGVyTGF5ZXIqIHBhcmVu
dExheWVyQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoUmVuZGVyTGF5ZXImIGxheWVyKQotewotICAg
IGlmIChhdXRvKiBwYXJlbnRMYXllciA9IGxheWVyLnBhcmVudCgpKQotICAgICAgICByZXR1cm4g
cGFyZW50TGF5ZXI7Ci0KLSAgICByZXR1cm4gZW5jbG9zaW5nRnJhbWVSZW5kZXJMYXllcihsYXll
ci5yZW5kZXJlcigpKTsKLX0KLQotYm9vbCBSZW5kZXJPYmplY3Q6OmlzVHJhbnNwYXJlbnRPckZ1
bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKSBjb25zdAotewotICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgbWluaW11bVZpc2libGVPcGFjaXR5ID0gMC4wMTsKLQotICAgIGZsb2F0IGN1
cnJlbnRPcGFjaXR5ID0gMTsKLSAgICBmb3IgKGF1dG8qIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIo
KTsgbGF5ZXI7IGxheWVyID0gcGFyZW50TGF5ZXJDcm9zc2luZ0ZyYW1lQm91bmRhcmllcygqbGF5
ZXIpKSB7Ci0gICAgICAgIGN1cnJlbnRPcGFjaXR5ICo9IGxheWVyLT5yZW5kZXJlcigpLnN0eWxl
KCkub3BhY2l0eSgpOwotICAgICAgICBpZiAoY3VycmVudE9wYWNpdHkgPCBtaW5pbXVtVmlzaWJs
ZU9wYWNpdHkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1
dG8qIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsgbGF5ZXI7IGxheWVyID0gZW5jbG9zaW5nRnJh
bWVSZW5kZXJMYXllcihsYXllci0+cmVuZGVyZXIoKSkpIHsKLSAgICAgICAgaWYgKGxheWVyLT5z
ZWxmQ2xpcFJlY3QoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIFBvc2l0aW9uIFJlbmRlck9iamVjdDo6cG9zaXRp
b25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiB7CiAgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGp1c3QgY3JlYXRlIGEgUG9zaXRpb24gb2JqZWN0IGluc3RlYWQgKHdlYmtpdC5v
cmcvYi8xNjg1NjYpLiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRl
eCA4N2U4ODAxYThhMTE2ZDRjMjlhYWY3OWJkOTlhNmU2ZGI5MTNkMjkzLi45NzYyNmRmZGE4ZDgz
ZDI4YWM3YjM0MTE3NDY0YWViNTExODY4NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCkBAIC03OTgsOCArNzk4LDYgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdGlh
bGl6ZUZyYWdtZW50ZWRGbG93U3RhdGVPbkluc2VydGlvbigpOwogICAgIHZpcnR1YWwgdm9pZCBp
bnNlcnRlZEludG9UcmVlKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVHJhbnNwYXJl
bnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKSBjb25zdDsKLQogcHJvdGVj
dGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAg
IC8vIEhlbHBlciBmdW5jdGlvbnMuIERhbmdlcm91cyB0byB1c2UhCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGFmOGI2NDY5
ODM0MjE5OGJiOTBiYjkyYTJhMWMyMDMzMjBlM2RiNmEuLmRhZGUyOWQ2OTFjNTZhZmY3OTFhNjQx
YmZkY2M1ZTlhODc2NTQwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xNzksNiArMTc5LDEyIEBAIHN0YXRpYyB2b2lk
IGNvbXB1dGVFZGl0YWJsZVJvb3RIYXNDb250ZW50QW5kUGxhaW5UZXh0KGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24mIHNlCiAgICAgZGF0YS5oYXNQbGFpblRleHQgPSBkYXRhLmhhc0NvbnRlbnQgJiYg
aGFzQW55UGxhaW5UZXh0KFJhbmdlOjpjcmVhdGUocm9vdC0+ZG9jdW1lbnQoKSwgVmlzaWJsZVBv
c2l0aW9uIHsgc3RhcnRJbkVkaXRhYmxlUm9vdCB9LCBWaXNpYmxlUG9zaXRpb24geyBsYXN0UG9z
aXRpb25Jbk5vZGUocm9vdCkgfSkpOwogfQogCitzdGF0aWMgYm9vbCBlbmNsb3NpbmdMYXllcklz
VHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQor
eworICAgIGF1dG8qIGVuY2xvc2luZ0xheWVyID0gcmVuZGVyZXIuZW5jbG9zaW5nTGF5ZXIoKTsK
KyAgICByZXR1cm4gZW5jbG9zaW5nTGF5ZXIgJiYgZW5jbG9zaW5nTGF5ZXItPmlzVHJhbnNwYXJl
bnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKTsKK30KKwogdm9pZCBXZWJQ
YWdlOjpwbGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiBmcmFtZSwgRWRpdG9yU3RhdGUmIHJlc3Vs
dCwgSW5jbHVkZVBvc3RMYXlvdXREYXRhSGludCBzaG91bGRJbmNsdWRlUG9zdExheW91dERhdGEp
IGNvbnN0CiB7CiAgICAgaWYgKGZyYW1lLmVkaXRvcigpLmhhc0NvbXBvc2l0aW9uKCkpIHsKQEAg
LTI0Niw5ICsyNTIsMTAgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1l
JiBmcmFtZSwgRWRpdG9yU3RhdGUmIHJlc3VsdCwgSW5jbHVkZVBvc3QKICAgICBwb3N0TGF5b3V0
RGF0YS5pbnNpZGVGaXhlZFBvc2l0aW9uID0gc3RhcnROb2RlSXNJbnNpZGVGaXhlZFBvc2l0aW9u
IHx8IGVuZE5vZGVJc0luc2lkZUZpeGVkUG9zaXRpb247CiAgICAgaWYgKCFzZWxlY3Rpb24uaXNO
b25lKCkpIHsKICAgICAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgJiYgbV9mb2N1c2VkRWxlbWVu
dC0+cmVuZGVyZXIoKSkgewotICAgICAgICAgICAgcG9zdExheW91dERhdGEuZm9jdXNlZEVsZW1l
bnRSZWN0ID0gdmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRl
cmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCkpOwotICAgICAgICAgICAgcG9zdExheW91
dERhdGEuY2FyZXRDb2xvciA9IG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCku
Y2FyZXRDb2xvcigpOwotICAgICAgICAgICAgcG9zdExheW91dERhdGEuZWxlbWVudElzVHJhbnNw
YXJlbnRPckZ1bGx5Q2xpcHBlZCA9IG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCktPmlzVHJh
bnNwYXJlbnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKTsKKyAgICAgICAg
ICAgIGF1dG8mIHJlbmRlcmVyID0gKm1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAg
ICAgICAgICBwb3N0TGF5b3V0RGF0YS5mb2N1c2VkRWxlbWVudFJlY3QgPSB2aWV3LT5jb250ZW50
c1RvUm9vdFZpZXcocmVuZGVyZXIuYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSk7CisgICAgICAg
ICAgICBwb3N0TGF5b3V0RGF0YS5jYXJldENvbG9yID0gcmVuZGVyZXIuc3R5bGUoKS5jYXJldENv
bG9yKCk7CisgICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5lbGVtZW50SXNUcmFuc3BhcmVudE9y
RnVsbHlDbGlwcGVkID0gZW5jbG9zaW5nTGF5ZXJJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQo
cmVuZGVyZXIpOwogICAgICAgICB9CiAgICAgICAgIGNvbXB1dGVFZGl0YWJsZVJvb3RIYXNDb250
ZW50QW5kUGxhaW5UZXh0KHNlbGVjdGlvbiwgcG9zdExheW91dERhdGEpOwogICAgIH0KQEAgLTE1
MjMsNyArMTUzMCw3IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEV2YXNpb25SZWN0c0Fib3ZlU2Vs
ZWN0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAoIW1fZm9jdXNlZEVsZW1lbnQgfHwgIW1fZm9jdXNlZEVsZW1lbnQt
PnJlbmRlcmVyKCkgfHwgbV9mb2N1c2VkRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNUcmFuc3BhcmVu
dE9yRnVsbHlDbGlwcGVkUmVzcGVjdGluZ1BhcmVudEZyYW1lcygpKSB7CisgICAgaWYgKCFtX2Zv
Y3VzZWRFbGVtZW50IHx8ICFtX2ZvY3VzZWRFbGVtZW50LT5yZW5kZXJlcigpIHx8IGVuY2xvc2lu
Z0xheWVySXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKCptX2ZvY3VzZWRFbGVtZW50LT5yZW5k
ZXJlcigpKSkgewogICAgICAgICByZXBseSh7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjQ4OSw3ICsyNDk2LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uKEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGluZm9ybWF0aW8KICAgICAgICAgYXV0
byYgZWxlbWVudEZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsKICAgICAgICAgaW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPSBlbGVtZW50UmVjdElu
Um9vdFZpZXdDb29yZGluYXRlcygqbV9mb2N1c2VkRWxlbWVudCwgZWxlbWVudEZyYW1lKTsKICAg
ICAgICAgaW5mb3JtYXRpb24ubm9kZUZvbnRTaXplID0gcmVuZGVyZXItPnN0eWxlKCkuZm9udERl
c2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCk7Ci0gICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRJ
c1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQgPSByZW5kZXJlci0+aXNUcmFuc3BhcmVudE9yRnVs
bHlDbGlwcGVkUmVzcGVjdGluZ1BhcmVudEZyYW1lcygpOworICAgICAgICBpbmZvcm1hdGlvbi5l
bGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkID0gZW5jbG9zaW5nTGF5ZXJJc1RyYW5z
cGFyZW50T3JGdWxseUNsaXBwZWQoKnJlbmRlcmVyKTsKIAogICAgICAgICBib29sIGluRml4ZWQg
PSBmYWxzZTsKICAgICAgICAgcmVuZGVyZXItPmxvY2FsVG9Db250YWluZXJQb2ludChGbG9hdFBv
aW50KCksIG51bGxwdHIsIFVzZVRyYW5zZm9ybXMsICZpbkZpeGVkKTsK
</data>
<flag name="review"
          id="380329"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363766</attachid>
            <date>2019-03-06 11:40:24 -0800</date>
            <delta_ts>2019-03-06 12:18:06 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195300-20190306114023.patch</filename>
            <type>text/plain</type>
            <size>11436</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkNWQxNmQwNDRhNTk5
ZWVkYzZjNjJkNmMyOGNmNTYwNTc2Y2QyMi4uM2RhNmJiMjg2NGZkZDEyMTg3NjI0NjA2OThhMTJl
MjQ4Yjk1ZWJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTAzLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgUmVuZGVy
T2JqZWN0Ojppc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVz
KCkgdG8gUmVuZGVyTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTMwMAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICBNb3ZlIGlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRG
cmFtZXMoKSBmcm9tIFJlbmRlck9iamVjdCB0byBSZW5kZXJMYXllciwgc2luY2UgdGhpcyBmdW5j
dGlvbgorICAgICAgICBhc2tzIHF1ZXN0aW9ucyBhYm91dCBSZW5kZXJMYXllcnMgcmF0aGVyIHRo
YW4gdGhlaXIgcmVuZGVyZXJzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nRnJh
bWVSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRMYXllckNyb3NzRnJhbWUp
OgorCisgICAgICAgIFNvbWUgc3RhdGljIGhlbHBlcnMgY3VycmVudGx5IGluIFJlbmRlck9iamVj
dCB0aGF0IHdhbGsgdXAgdGhlIGxheWVyIGhpZXJhcmNoeSB0aHJvdWdoIHN1YmZyYW1lcyBhcmUg
cmVkdW5kYW50CisgICAgICAgIHdpdGggc3RhdGljIGhlbHBlcnMgaW4gUmVuZGVyTGF5ZXIuIE5v
dyB0aGF0IGlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMg
ZXhpc3RzIGluCisgICAgICAgIFJlbmRlckxheWVyLCBzaW1wbHkgdXNlIHRoaXMgZXhpc3Rpbmcg
aGVscGVyIGluc3RlYWQgYW5kIHNwbGl0IGxvZ2ljIHRvIGdyYWIgdGhlIGVuY2xvc2luZyBsYXll
ciBhcm91bmQgdGhlCisgICAgICAgIG93bmVyIGVsZW1lbnQgb2YgYSBmcmFtZSBpbnRvIGEgc2Vw
YXJhdGUgaGVscGVyLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmNs
b3NpbmdGcmFtZVJlbmRlckxheWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcmVu
dExheWVyQ3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0Ojppc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFy
ZW50RnJhbWVzIGNvbnN0KTogRGVsZXRlZC4KKworICAgICAgICBNb3ZlZCBmcm9tIFJlbmRlck9i
amVjdC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKwogMjAxOS0wMy0w
NiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENvbnNpZGVyIHN1cHBv
cnRpbmcgdGhlIGByZWZlcnJlcnBvbGljeWAgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3OGNlNWYz
YWY2YTRkZjM4ZjdmZjg5MmZhNTIwMTI5Yjk0NzQ1M2M5Li42N2MyYjhhY2IzODM5MWIzMzJjNjAz
NjViYzMyODQyMDA3M2NiYTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTAzLTA2
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUg
UmVuZGVyT2JqZWN0Ojppc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50
RnJhbWVzKCkgdG8gUmVuZGVyTGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NTMwMAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICBSZWZhY3RvciBzb21lIGxvZ2ljIHRvIHVzZSBpc1RyYW5zcGFyZW50T3JG
dWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVzIG9uIFJlbmRlckxheWVyIHJhdGhlciB0
aGFuCisgICAgICAgIFJlbmRlck9iamVjdDsgaW50cm9kdWNlIGEgaGVscGVyIG1ldGhvZCB0byBh
c2sgd2hldGhlciB0aGUgZW5jbG9zaW5nIGxheWVyIG9mIGEgcmVuZGVyZXIgaXMgdHJhbnNwYXJl
bnQgb3IKKyAgICAgICAgY2xpcHBlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6ZW5jbG9zaW5nTGF5ZXJJc1RyYW5z
cGFyZW50T3JGdWxseUNsaXBwZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9y
bUVkaXRvclN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEV2
YXNpb25SZWN0c0Fib3ZlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0
Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbik6CisKIDIwMTktMDMtMDYgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRnJlcXVlbnQgMSBzZWNv
bmQgSVBDIGRlYWRsb2NrcyB3aGVuIHNob3dpbmcgYSBwYXN0ZSBjYWxsb3V0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBhNjI1NjRkOTUwNDgxZDZjYjA0MzIy
OGEzZmVjZWY1ODM3OTE0ZDZjLi40ZDE4MTFjMTczNzUzNjBhNDUzOWVmOWFmYWZkZmNlNWVkYTUw
NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE2NTIs
MjIgKzE2NTIsMjcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdBbmNlc3Rv
ckZvclBvc2l0aW9uKFBvc2l0aW9uVHlwZSBwb3NpdGlvbikgY28KICAgICByZXR1cm4gY3VycjsK
IH0KIAotc3RhdGljIFJlbmRlckxheWVyKiBwYXJlbnRMYXllckNyb3NzRnJhbWUoY29uc3QgUmVu
ZGVyTGF5ZXImIGxheWVyKQorc3RhdGljIFJlbmRlckxheWVyKiBlbmNsb3NpbmdGcmFtZVJlbmRl
ckxheWVyKGNvbnN0IFJlbmRlckxheWVyJiBsYXllcikKIHsKLSAgICBpZiAobGF5ZXIucGFyZW50
KCkpCi0gICAgICAgIHJldHVybiBsYXllci5wYXJlbnQoKTsKLQotICAgIEhUTUxGcmFtZU93bmVy
RWxlbWVudCogb3duZXJFbGVtZW50ID0gbGF5ZXIucmVuZGVyZXIoKS5kb2N1bWVudCgpLm93bmVy
RWxlbWVudCgpOworICAgIGF1dG8qIG93bmVyRWxlbWVudCA9IGxheWVyLnJlbmRlcmVyKCkuZG9j
dW1lbnQoKS5vd25lckVsZW1lbnQoKTsKICAgICBpZiAoIW93bmVyRWxlbWVudCkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZW5kZXJFbGVtZW50KiBvd25lclJlbmRlcmVyID0gb3du
ZXJFbGVtZW50LT5yZW5kZXJlcigpOworICAgIGF1dG8qIG93bmVyUmVuZGVyZXIgPSBvd25lckVs
ZW1lbnQtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFvd25lclJlbmRlcmVyKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBvd25lclJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigp
OwogfQogCitzdGF0aWMgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyQ3Jvc3NGcmFtZShjb25zdCBS
ZW5kZXJMYXllciYgbGF5ZXIpCit7CisgICAgaWYgKGF1dG8qIHBhcmVudCA9IGxheWVyLnBhcmVu
dCgpKQorICAgICAgICByZXR1cm4gcGFyZW50OworCisgICAgcmV0dXJuIGVuY2xvc2luZ0ZyYW1l
UmVuZGVyTGF5ZXIobGF5ZXIpOworfQorCiBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xv
c2luZ1Njcm9sbGFibGVMYXllcigpIGNvbnN0CiB7CiAgICAgZm9yIChSZW5kZXJMYXllciogbmV4
dExheWVyID0gcGFyZW50TGF5ZXJDcm9zc0ZyYW1lKCp0aGlzKTsgbmV4dExheWVyOyBuZXh0TGF5
ZXIgPSBwYXJlbnRMYXllckNyb3NzRnJhbWUoKm5leHRMYXllcikpIHsKQEAgLTY1OTQsNiArNjU5
OSwyNSBAQCB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJOZWVkc1JlcGFpbnQoKQogICAgIHJlbmRl
cmVyKCkucmVwYWludCgpOwogfQogCitib29sIFJlbmRlckxheWVyOjppc1RyYW5zcGFyZW50T3JG
dWxseUNsaXBwZWRSZXNwZWN0aW5nUGFyZW50RnJhbWVzKCkgY29uc3QKK3sKKyAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIG1pbmltdW1WaXNpYmxlT3BhY2l0eSA9IDAuMDE7CisKKyAgICBmbG9hdCBj
dXJyZW50T3BhY2l0eSA9IDE7CisgICAgZm9yIChhdXRvKiBsYXllciA9IHRoaXM7IGxheWVyOyBs
YXllciA9IHBhcmVudExheWVyQ3Jvc3NGcmFtZSgqbGF5ZXIpKSB7CisgICAgICAgIGN1cnJlbnRP
cGFjaXR5ICo9IGxheWVyLT5yZW5kZXJlcigpLnN0eWxlKCkub3BhY2l0eSgpOworICAgICAgICBp
ZiAoY3VycmVudE9wYWNpdHkgPCBtaW5pbXVtVmlzaWJsZU9wYWNpdHkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8qIGxheWVyID0gdGhpczsgbGF5ZXI7
IGxheWVyID0gZW5jbG9zaW5nRnJhbWVSZW5kZXJMYXllcigqbGF5ZXIpKSB7CisgICAgICAgIGlm
IChsYXllci0+c2VsZkNsaXBSZWN0KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCiB7CiAgICAgdHMg
PDwgIlJlbmRlckxheWVyICIgPDwgJmxheWVyIDw8ICIgIiA8PCBsYXllci5zaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDUwYTM2ZjI3MzVkYmU1NzIyYzdj
NjU4OWZmZjQ1MjJjNDE1YjUwNWYuLjQ1ODBjZTg5YmI4OGJiN2Q4ODk0MjM0OTdkYTI2NjE0ZWM5
YzY1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC04NTcsNiAr
ODU3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2ltdWxhdGVGcmVxdWVudFBhaW50KCkgeyBTaW5n
bGVQYWludEZyZXF1ZW5jeVRyYWNraW5nIHsgbV9wYWludEZyZXF1ZW5jeVRyYWNrZXIgfTsgfQog
ICAgIGJvb2wgcGFpbnRpbmdGcmVxdWVudGx5KCkgY29uc3QgeyByZXR1cm4gbV9wYWludEZyZXF1
ZW5jeVRyYWNrZXIucGFpbnRpbmdGcmVxdWVudGx5KCk7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgaXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkUmVzcGVjdGluZ1BhcmVudEZyYW1lcygp
IGNvbnN0OworCiBwcml2YXRlOgogCiAgICAgdm9pZCBzZXROZXh0U2libGluZyhSZW5kZXJMYXll
ciogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCmluZGV4IDZmMzVkMDRiMDkwZDg4MDJiYWQ1NDBlMjg0NDNmYjcxNDM2ZWMz
M2YuLjJmMGI4YmE4ZGE5ZmQ4MjI4ZDVlNjdkZmRhNjhhYmI1OTk5OGJiYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xNTI3LDQzICsxNTI3LDYgQEAg
dm9pZCBSZW5kZXJPYmplY3Q6OmRlc3Ryb3koKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi1zdGF0
aWMgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0ZyYW1lUmVuZGVyTGF5ZXIoUmVuZGVyT2JqZWN0JiBy
ZW5kZXJPYmplY3QpCi17Ci0gICAgYXV0byogb3duZXIgPSByZW5kZXJPYmplY3QuZnJhbWUoKS5v
d25lckVsZW1lbnQoKTsKLSAgICBpZiAoIW93bmVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIGF1dG8qIGZyYW1lT3duZXJSZW5kZXJlciA9IG93bmVyLT5yZW5kZXJlcigpOwotICAg
IHJldHVybiBmcmFtZU93bmVyUmVuZGVyZXIgPyBmcmFtZU93bmVyUmVuZGVyZXItPmVuY2xvc2lu
Z0xheWVyKCkgOiBudWxscHRyOwotfQotCi1zdGF0aWMgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVy
Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoUmVuZGVyTGF5ZXImIGxheWVyKQotewotICAgIGlmIChh
dXRvKiBwYXJlbnRMYXllciA9IGxheWVyLnBhcmVudCgpKQotICAgICAgICByZXR1cm4gcGFyZW50
TGF5ZXI7Ci0KLSAgICByZXR1cm4gZW5jbG9zaW5nRnJhbWVSZW5kZXJMYXllcihsYXllci5yZW5k
ZXJlcigpKTsKLX0KLQotYm9vbCBSZW5kZXJPYmplY3Q6OmlzVHJhbnNwYXJlbnRPckZ1bGx5Q2xp
cHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKSBjb25zdAotewotICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgbWluaW11bVZpc2libGVPcGFjaXR5ID0gMC4wMTsKLQotICAgIGZsb2F0IGN1cnJlbnRP
cGFjaXR5ID0gMTsKLSAgICBmb3IgKGF1dG8qIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsgbGF5
ZXI7IGxheWVyID0gcGFyZW50TGF5ZXJDcm9zc2luZ0ZyYW1lQm91bmRhcmllcygqbGF5ZXIpKSB7
Ci0gICAgICAgIGN1cnJlbnRPcGFjaXR5ICo9IGxheWVyLT5yZW5kZXJlcigpLnN0eWxlKCkub3Bh
Y2l0eSgpOwotICAgICAgICBpZiAoY3VycmVudE9wYWNpdHkgPCBtaW5pbXVtVmlzaWJsZU9wYWNp
dHkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBmb3IgKGF1dG8qIGxh
eWVyID0gZW5jbG9zaW5nTGF5ZXIoKTsgbGF5ZXI7IGxheWVyID0gZW5jbG9zaW5nRnJhbWVSZW5k
ZXJMYXllcihsYXllci0+cmVuZGVyZXIoKSkpIHsKLSAgICAgICAgaWYgKGxheWVyLT5zZWxmQ2xp
cFJlY3QoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KIFBvc2l0aW9uIFJlbmRlck9iamVjdDo6cG9zaXRpb25Gb3JQ
b2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGp1c3QgY3JlYXRlIGEgUG9zaXRpb24gb2JqZWN0IGluc3RlYWQgKHdlYmtpdC5vcmcvYi8x
Njg1NjYpLiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA4N2U4
ODAxYThhMTE2ZDRjMjlhYWY3OWJkOTlhNmU2ZGI5MTNkMjkzLi45NzYyNmRmZGE4ZDgzZDI4YWM3
YjM0MTE3NDY0YWViNTExODY4NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCkBAIC03OTgsOCArNzk4LDYgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdGlhbGl6ZUZy
YWdtZW50ZWRGbG93U3RhdGVPbkluc2VydGlvbigpOwogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRl
ZEludG9UcmVlKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzVHJhbnNwYXJlbnRPckZ1
bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKSBjb25zdDsKLQogcHJvdGVjdGVkOgog
ICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgIC8vIEhl
bHBlciBmdW5jdGlvbnMuIERhbmdlcm91cyB0byB1c2UhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGFmOGI2NDY5ODM0MjE5
OGJiOTBiYjkyYTJhMWMyMDMzMjBlM2RiNmEuLmRhZGUyOWQ2OTFjNTZhZmY3OTFhNjQxYmZkY2M1
ZTlhODc2NTQwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xNzksNiArMTc5LDEyIEBAIHN0YXRpYyB2b2lkIGNvbXB1
dGVFZGl0YWJsZVJvb3RIYXNDb250ZW50QW5kUGxhaW5UZXh0KGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mIHNlCiAgICAgZGF0YS5oYXNQbGFpblRleHQgPSBkYXRhLmhhc0NvbnRlbnQgJiYgaGFzQW55
UGxhaW5UZXh0KFJhbmdlOjpjcmVhdGUocm9vdC0+ZG9jdW1lbnQoKSwgVmlzaWJsZVBvc2l0aW9u
IHsgc3RhcnRJbkVkaXRhYmxlUm9vdCB9LCBWaXNpYmxlUG9zaXRpb24geyBsYXN0UG9zaXRpb25J
bk5vZGUocm9vdCkgfSkpOwogfQogCitzdGF0aWMgYm9vbCBlbmNsb3NpbmdMYXllcklzVHJhbnNw
YXJlbnRPckZ1bGx5Q2xpcHBlZChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAg
IGF1dG8qIGVuY2xvc2luZ0xheWVyID0gcmVuZGVyZXIuZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICBy
ZXR1cm4gZW5jbG9zaW5nTGF5ZXIgJiYgZW5jbG9zaW5nTGF5ZXItPmlzVHJhbnNwYXJlbnRPckZ1
bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKTsKK30KKwogdm9pZCBXZWJQYWdlOjpw
bGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiBmcmFtZSwgRWRpdG9yU3RhdGUmIHJlc3VsdCwgSW5j
bHVkZVBvc3RMYXlvdXREYXRhSGludCBzaG91bGRJbmNsdWRlUG9zdExheW91dERhdGEpIGNvbnN0
CiB7CiAgICAgaWYgKGZyYW1lLmVkaXRvcigpLmhhc0NvbXBvc2l0aW9uKCkpIHsKQEAgLTI0Niw5
ICsyNTIsMTAgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiBmcmFt
ZSwgRWRpdG9yU3RhdGUmIHJlc3VsdCwgSW5jbHVkZVBvc3QKICAgICBwb3N0TGF5b3V0RGF0YS5p
bnNpZGVGaXhlZFBvc2l0aW9uID0gc3RhcnROb2RlSXNJbnNpZGVGaXhlZFBvc2l0aW9uIHx8IGVu
ZE5vZGVJc0luc2lkZUZpeGVkUG9zaXRpb247CiAgICAgaWYgKCFzZWxlY3Rpb24uaXNOb25lKCkp
IHsKICAgICAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgJiYgbV9mb2N1c2VkRWxlbWVudC0+cmVu
ZGVyZXIoKSkgewotICAgICAgICAgICAgcG9zdExheW91dERhdGEuZm9jdXNlZEVsZW1lbnRSZWN0
ID0gdmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCkt
PmFic29sdXRlQm91bmRpbmdCb3hSZWN0KCkpOwotICAgICAgICAgICAgcG9zdExheW91dERhdGEu
Y2FyZXRDb2xvciA9IG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCkuY2FyZXRD
b2xvcigpOwotICAgICAgICAgICAgcG9zdExheW91dERhdGEuZWxlbWVudElzVHJhbnNwYXJlbnRP
ckZ1bGx5Q2xpcHBlZCA9IG1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCktPmlzVHJhbnNwYXJl
bnRPckZ1bGx5Q2xpcHBlZFJlc3BlY3RpbmdQYXJlbnRGcmFtZXMoKTsKKyAgICAgICAgICAgIGF1
dG8mIHJlbmRlcmVyID0gKm1fZm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgICAgICAg
ICBwb3N0TGF5b3V0RGF0YS5mb2N1c2VkRWxlbWVudFJlY3QgPSB2aWV3LT5jb250ZW50c1RvUm9v
dFZpZXcocmVuZGVyZXIuYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSk7CisgICAgICAgICAgICBw
b3N0TGF5b3V0RGF0YS5jYXJldENvbG9yID0gcmVuZGVyZXIuc3R5bGUoKS5jYXJldENvbG9yKCk7
CisgICAgICAgICAgICBwb3N0TGF5b3V0RGF0YS5lbGVtZW50SXNUcmFuc3BhcmVudE9yRnVsbHlD
bGlwcGVkID0gZW5jbG9zaW5nTGF5ZXJJc1RyYW5zcGFyZW50T3JGdWxseUNsaXBwZWQocmVuZGVy
ZXIpOwogICAgICAgICB9CiAgICAgICAgIGNvbXB1dGVFZGl0YWJsZVJvb3RIYXNDb250ZW50QW5k
UGxhaW5UZXh0KHNlbGVjdGlvbiwgcG9zdExheW91dERhdGEpOwogICAgIH0KQEAgLTE1MjMsNyAr
MTUzMCw3IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEV2YXNpb25SZWN0c0Fib3ZlU2VsZWN0aW9u
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBpZiAoIW1fZm9jdXNlZEVsZW1lbnQgfHwgIW1fZm9jdXNlZEVsZW1lbnQtPnJlbmRl
cmVyKCkgfHwgbV9mb2N1c2VkRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNUcmFuc3BhcmVudE9yRnVs
bHlDbGlwcGVkUmVzcGVjdGluZ1BhcmVudEZyYW1lcygpKSB7CisgICAgaWYgKCFtX2ZvY3VzZWRF
bGVtZW50IHx8ICFtX2ZvY3VzZWRFbGVtZW50LT5yZW5kZXJlcigpIHx8IGVuY2xvc2luZ0xheWVy
SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKCptX2ZvY3VzZWRFbGVtZW50LT5yZW5kZXJlcigp
KSkgewogICAgICAgICByZXBseSh7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQ4
OSw3ICsyNDk2LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
KEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGluZm9ybWF0aW8KICAgICAgICAgYXV0byYgZWxl
bWVudEZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUo
KTsKICAgICAgICAgaW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPSBlbGVtZW50UmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlcygqbV9mb2N1c2VkRWxlbWVudCwgZWxlbWVudEZyYW1lKTsKICAgICAgICAg
aW5mb3JtYXRpb24ubm9kZUZvbnRTaXplID0gcmVuZGVyZXItPnN0eWxlKCkuZm9udERlc2NyaXB0
aW9uKCkuY29tcHV0ZWRTaXplKCk7Ci0gICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRJc1RyYW5z
cGFyZW50T3JGdWxseUNsaXBwZWQgPSByZW5kZXJlci0+aXNUcmFuc3BhcmVudE9yRnVsbHlDbGlw
cGVkUmVzcGVjdGluZ1BhcmVudEZyYW1lcygpOworICAgICAgICBpbmZvcm1hdGlvbi5lbGVtZW50
SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkID0gZW5jbG9zaW5nTGF5ZXJJc1RyYW5zcGFyZW50
T3JGdWxseUNsaXBwZWQoKnJlbmRlcmVyKTsKIAogICAgICAgICBib29sIGluRml4ZWQgPSBmYWxz
ZTsKICAgICAgICAgcmVuZGVyZXItPmxvY2FsVG9Db250YWluZXJQb2ludChGbG9hdFBvaW50KCks
IG51bGxwdHIsIFVzZVRyYW5zZm9ybXMsICZpbkZpeGVkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>