<?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>46739</bug_id>
          
          <creation_ts>2010-09-28 11:08:48 -0700</creation_ts>
          <short_desc>Vertical scroll bar on apple.com is too short with WebKit2</short_desc>
          <delta_ts>2010-09-28 13:31:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286383</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-28 11:08:48 -0700</bug_when>
    <thetext>Vertical scroll bar on apple.com is too short with WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286384</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-28 11:09:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/8379230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286389</commentid>
    <comment_count>2</comment_count>
      <attachid>69074</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-28 11:13:58 -0700</bug_when>
    <thetext>Created attachment 69074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286395</commentid>
    <comment_count>3</comment_count>
      <attachid>69074</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-28 11:26:33 -0700</bug_when>
    <thetext>Comment on attachment 69074
Patch

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

review- because there is no reason to handle only the top two levels of FrameView.

&gt; WebKit2/UIProcess/API/mac/WKView.mm:323
&gt; +    // Temporarily enable the resize indicator to make a the _ownsWindowGrowBox
&gt; +    // calculation work.

Comment should go on one line.

&gt; WebKit2/WebProcess/WebPage/WebPage.cpp:578
&gt; +    const HashSet&lt;RefPtr&lt;Widget&gt; &gt;* viewChildren = view-&gt;children();

Why do we need to do this one level deep, and not multiple levels? Might be better to use the frame tree and walk all the frames, not just the top level subframes.

&gt; WebKit2/WebProcess/WebPage/WebPage.cpp:583
&gt; +            static_cast&lt;FrameView*&gt;(widget)-&gt;invalidateScrollbars();

The “invalidate” terminology here seems unclear to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286478</commentid>
    <comment_count>4</comment_count>
      <attachid>69091</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-28 12:59:59 -0700</bug_when>
    <thetext>Created attachment 69091
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286497</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-28 13:31:21 -0700</bug_when>
    <thetext>Landed in r68557.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69074</attachid>
            <date>2010-09-28 11:13:58 -0700</date>
            <delta_ts>2010-09-28 12:59:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>17028</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODU0MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDktMjggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWZXJ0aWNh
bCBzY3JvbGwgYmFyIG9uIGFwcGxlLmNvbSBpcyB0b28gc2hvcnQgd2l0aCBXZWJLaXQyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjczOQorCisgICAg
ICAgIEFkZHMgYSBmdW5jdGlvbiB0byByZWNhbGN1bGF0ZSB0aGUgc2Nyb2xsYmFycyB0byB0YWtl
IGFkdmFudGFnZSBvZgorICAgICAgICBhIGNoYW5nZWQgd2luZG93IHJlLXNpemVyIHJlY3QuCisK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmludmFsaWRhdGVTY3JvbGxiYXJz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisKIDIwMTAtMDktMjggIENocmlz
IEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBC
ZXRoIERha2luLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA2ODQyNikKKysrIFdlYkNvcmUvV2ViQ29y
ZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBfX1pOM1dURjEwU3Ry
aW5nSW1wbGN2UDhOU1N0cmluZ0V2CiBfX1pOM1dURjZTdHJpbmdDMUVQOE5TU3RyaW5nCiBfX1pO
M1dURjZTdHJpbmdDMUVQSzEwX19DRlN0cmluZwogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50QzFF
UktOM1dURjEyQXRvbWljU3RyaW5nRWJiTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVF
aWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIK
K19fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwaW52YWxpZGF0ZVNjcm9sbGJhcnNFdgogX19aTjdX
ZWJDb3JlMTBTY3JvbGxWaWV3MjBzZXRDYW5IYXZlU2Nyb2xsYmFyc0ViCiBfX1pON1dlYkNvcmUx
MGRlbGV0ZUZpbGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMGhhbmRDdXJzb3JFdgpJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDY4NDI2KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTI3NzcsNyArMjc3Nyw2IEBACiAJCTk3M0UzMjU2MTA4ODNCN0MwMDVC
QzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNFMzI1NDEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwICovOyB9OwogCQk5NzNFMzI1NzEwODgzQjdDMDA1QkM0OTMgLyog
UmVzb3VyY2VMb2FkTm90aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3M0UzMjU1MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3Rp
Zmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTk3NkQ2Qzc3MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzU4MTIyQjhBM0QwMDFG
RDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIuaCAqLzsgfTsKLQkJOTc2RDZDOTMxMjJCOEEzRDAwMUZE
MUY3IC8qIEFzeW5jRmlsZVdyaXRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNzQxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmls
ZVdyaXRlckNsaWVudC5oICovOyB9OwogCQk5NzZENkM3ODEyMkI4QTNEMDAxRkQxRjcgLyogQmxv
Yi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZE
NkM1OTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5jcHAgKi87IH07CiAJCTk3NkQ2Qzc5MTIyQjhB
M0QwMDFGRDFGNyAvKiBCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzZENkM1QTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5oICovOyB9OwogCQk5
NzZENkM3QjEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYkJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNUMxMjJCOEEzRDAwMUZEMUY3
IC8qIEJsb2JCdWlsZGVyLmNwcCAqLzsgfTsKQEAgLTI3OTgsNiArMjc5Nyw3IEBACiAJCTk3NkQ2
QzhGMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNzAxMjJCOEEzRDAwMUZEMUY3IC8q
IEZpbGVUaHJlYWRUYXNrLmggKi87IH07CiAJCTk3NkQ2QzkwMTIyQjhBM0QwMDFGRDFGNyAvKiBG
aWxlV3JpdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3NkQ2QzcxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlV3JpdGVyLmNwcCAqLzsgfTsKIAkJ
OTc2RDZDOTExMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzcyMTIyQjhBM0QwMDFGRDFGNyAv
KiBGaWxlV3JpdGVyLmggKi87IH07CisJCTk3NkQ2QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBBc3lu
Y0ZpbGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3NkQ2Qzc0MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXJDbGll
bnQuaCAqLzsgfTsKIAkJOTc2RDZDOTQxMjJCOEEzRDAwMUZEMUY3IC8qIFRocmVhZGFibGVCbG9i
UmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTc2RDZDNzUxMjJCOEEzRDAwMUZEMUY3IC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuY3Bw
ICovOyB9OwogCQk5NzZENkM5NTEyMkI4QTNEMDAxRkQxRjcgLyogVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2
RDZDNzYxMjJCOEEzRDAwMUZEMUY3IC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCAqLzsgfTsK
IAkJOTc3QjM3MjMxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxFbGVtZW50U3RhY2suY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc3QjM3MUYxMjI4NzIx
NzAwQjgxRkY4IC8qIEhUTUxFbGVtZW50U3RhY2suY3BwICovOyB9OwpAQCAtODY3Nyw3ICs4Njc3
LDYgQEAKIAkJOTczRTMyNTQxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZE5v
dGlmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTczRTMyNTUxMDg4M0I3
QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZE5vdGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3NkQ2QzU4MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXN5bmNGaWxlV3JpdGVyLmg7IHBhdGgg
PSBmaWxlYXBpL0FzeW5jRmlsZVdyaXRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NzZENkM3NDEyMkI4QTNEMDAxRkQxRjcgLyogQXN5bmNGaWxlV3JpdGVyQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFzeW5jRmlsZVdyaXRlckNsaWVudC5oOyBw
YXRoID0gZmlsZWFwaS9Bc3luY0ZpbGVXcml0ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc2RDZDNTkxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmxvYi5jcHA7IHBhdGggPSBmaWxlYXBpL0Js
b2IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZENkM1QTEyMkI4QTNEMDAx
RkQxRjcgLyogQmxvYi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCbG9iLmg7
IHBhdGggPSBmaWxlYXBpL0Jsb2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2
RDZDNUMxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2JCdWlsZGVyLmNwcDsgcGF0aCA9IGZpbGVhcGkvQmxv
YkJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODY5OCw2ICs4Njk3
LDcgQEAKIAkJOTc2RDZDNzAxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVUaHJlYWRUYXNrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZpbGVUaHJlYWRUYXNrLmg7IHBhdGggPSBm
aWxlYXBpL0ZpbGVUaHJlYWRUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3
NkQ2QzcxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlV3JpdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZpbGVXcml0ZXIuY3BwOyBwYXRoID0gZmlsZWFwaS9GaWxl
V3JpdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RDZDNzIxMjJCOEEz
RDAwMUZEMUY3IC8qIEZpbGVXcml0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gRmlsZVdyaXRlci5oOyBwYXRoID0gZmlsZWFwaS9GaWxlV3JpdGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk3NkQ2Qzc0MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVX
cml0ZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXN5bmNGaWxl
V3JpdGVyQ2xpZW50Lmg7IHBhdGggPSBmaWxlYXBpL0FzeW5jRmlsZVdyaXRlckNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZENkM3NTEyMkI4QTNEMDAxRkQxRjcgLyog
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcDsgcGF0aCA9IGZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2
Qzc2MTIyQjhBM0QwMDFGRDFGNyAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaDsgcGF0aCA9
IGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NzdCMzcxRjEyMjg3MjE3MDBCODFGRjggLyogSFRNTEVsZW1lbnRTdGFjay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1MRWxlbWVudFN0YWNrLmNw
cDsgcGF0aCA9IHBhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkocmV2aXNpb24gNjg0MjYpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTMs
NiArMzUzLDE0IEBAIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiAKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgU2Nyb2xsVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJh
cnMoKQoreworICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICB1cGRhdGVTY3JvbGxiYXJzKHNjcm9sbE9mZnNldCgpKTsKK30KKwogc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGNNYXhVcGRhdGVTY3JvbGxiYXJzUGFzcyA9IDI7CiAKIHZvaWQgU2Nyb2xsVmlldzo6
dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmgJKHJldmlzaW9uIDY4NDI2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksOCBAQCBwdWJsaWM6CiAgICAg
Ly8gRm9yIHBsYXRmb3JtcyB0aGF0IG5lZWQgdG8gaGl0IHRlc3Qgc2Nyb2xsYmFycyBmcm9tIHdp
dGhpbiB0aGUgZW5naW5lJ3MgZXZlbnQgaGFuZGxlcnMgKGxpa2UgV2luMzIpLgogICAgIFNjcm9s
bGJhciogc2Nyb2xsYmFyQXRQb2ludChjb25zdCBJbnRQb2ludCYgd2luZG93UG9pbnQpOwogCisg
ICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFycygpOworCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBl
eGlzdHMgZm9yIHNjcm9sbHZpZXdzIHRoYXQgbmVlZCB0byBoYW5kbGUgd2hlZWwgZXZlbnRzIG1h
bnVhbGx5LgogICAgIC8vIE9uIE1hYyB0aGUgdW5kZXJseWluZyBOU1Njcm9sbFZpZXcganVzdCBk
b2VzIHRoZSBzY3JvbGxpbmcsIGJ1dCBvbiBvdGhlciBwbGF0Zm9ybXMKICAgICAvLyAobGlrZSBX
aW5kb3dzKSwgd2UgbmVlZCB0aGlzIGZ1bmN0aW9uIGluIG9yZGVyIHRvIGRvIHRoZSBzY3JvbGwg
b3Vyc2VsdmVzLgpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4NTQzKQorKysgV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOS0yOCAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFZlcnRpY2FsIHNjcm9sbCBiYXIgb24gYXBwbGUuY29tIGlzIHRvbyBzaG9ydCB3aXRoIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2
NzM5CisKKyAgICAgICAgVGhpcyBnZXRzIHVzIG1vc3Qgb2YgdGhlIHdheSB0byBoYXZpbmcgY29y
cmVjdCBzY3JvbGwgY29ybmVyIGJlaGF2aW9yLiBXZSBzaG91bGQKKyAgICAgICAgZm9sbG93IHRo
aXMgdXAgYnkgbW92aW5nIHRvIHBhaW50aW5nIHRoZSB3aW5kb3cgcmUtc2l6ZXIgaW4gV2ViQ29y
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1b
V0tWaWV3IF9vd25zV2luZG93R3Jvd0JveF0pOgorICAgICAgICAoLVtXS1ZpZXcgX3VwZGF0ZUdy
b3dCb3hGb3JXaW5kb3dGcmFtZUNoYW5nZV0pOiBDYWxjdWxhdGUgd2hldGhlciB3ZSBzaG91bGQK
KyAgICAgICAgYmUgdGFraW5nIHRoZSBzY3JvbGwgY29ybmVyIGludG8gYWNjb3VudCB3aGVuIGxh
eWluZyBvdXQgc2Nyb2xsYmFycy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRXaW5kb3dSZXNpemVyU2l6ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0V2lu
ZG93UmVzaXplclNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aW5kb3dSZXNpemVy
UmVjdCk6IFRoaXMgbm93IHJldHVybnMgSW50UmVjdCgpIGZvcgorICAgICAgICBub24tbWFjIHBs
YXRmb3JtcyAob3IgYW55IHBsYXRmb3JtIHRoYXQgbmV2ZXIgc2VuZHMgYSBzZXRXaW5kb3dSZXNp
emVyU2l6ZQorICAgICAgICBtZXNzYWdlKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluOgorCiAyMDEwLTA5LTI4ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBUZWxsIHRoZSBVSSBjbGllbnQgd2hlbiBhIGtleSBldmVudCBpcyBub3QgaGFuZGxlZApJ
bmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA2ODQzNSkKKysrIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw2
ICszMzMsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEFjdGl2ZShib29sIGFjdGl2ZQogICAg
IHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0QWN0aXZlKGFjdGl2ZSksIG1f
cGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldFdpbmRvd1Jlc2l6ZXJTaXplKGNv
bnN0IEludFNpemUmIHdpbmRvd1Jlc2l6ZXJTaXplKQoreworICAgIGlmICghaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm47CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpT
ZXRXaW5kb3dSZXNpemVyU2l6ZSh3aW5kb3dSZXNpemVyU2l6ZSksIG1fcGFnZUlEKTsKK30KKwog
dm9pZCBXZWJQYWdlUHJveHk6OnZhbGlkYXRlTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBjb21tYW5k
TmFtZSkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCShyZXZpc2lvbiA2ODQzNSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNiArMTMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Rm9jdXNlZChib29sIGlzRm9jdXNlZCk7CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCBhY3RpdmUp
OwogICAgIHZvaWQgc2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpOworICAgIHZvaWQgc2V0
V2luZG93UmVzaXplclNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCiAgICAgdm9pZCBl
eGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSk7CiAgICAgdm9pZCB2
YWxpZGF0ZU1lbnVJdGVtKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpOwpJbmRleDogV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHJldmlzaW9uIDY4NDM1KQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDExIEBA
IHN0cnVjdCBFZGl0Q29tbWFuZFN0YXRlIHsKICAgICBpbnQgbV9zdGF0ZTsKIH07CiAKK0BpbnRl
cmZhY2UgTlNXaW5kb3cgKERldGFpbHMpCistIChOU1JlY3QpX2dyb3dCb3hSZWN0OworLSAoQk9P
TClfdXBkYXRlR3Jvd0JveEZvcldpbmRvd0ZyYW1lQ2hhbmdlOworQGVuZAorCiBAaW50ZXJmYWNl
IFdLVmlld0RhdGEgOiBOU09iamVjdCB7CiBAcHVibGljCiAgICAgT3duUHRyPFBhZ2VDbGllbnRJ
bXBsPiBfcGFnZUNsaWVudDsKQEAgLTI4Nyw2ICsyOTIsNDkgQEAgLSAodm9pZClfdXBkYXRlV2lu
ZG93VmlzaWJpbGl0eQogICAgIF9kYXRhLT5fcGFnZS0+c2V0V2luZG93SXNWaXNpYmxlKCFbW3Nl
bGYgd2luZG93XSBpc01pbmlhdHVyaXplZF0pOwogfQogCistIChCT09MKV9vd25zV2luZG93R3Jv
d0JveAoreworICAgIE5TV2luZG93KiB3aW5kb3cgPSBbc2VsZiB3aW5kb3ddOworICAgIGlmICgh
d2luZG93KQorICAgICAgICByZXR1cm4gTk87CisKKyAgICBOU1ZpZXcgKnN1cGVydmlldyA9IFtz
ZWxmIHN1cGVydmlld107CisgICAgaWYgKCFzdXBlcnZpZXcpCisgICAgICAgIHJldHVybiBOTzsK
KworICAgIE5TUmVjdCBncm93Qm94UmVjdCA9IFt3aW5kb3cgX2dyb3dCb3hSZWN0XTsKKyAgICBp
ZiAoTlNJc0VtcHR5UmVjdChncm93Qm94UmVjdCkpCisgICAgICAgIHJldHVybiBOTzsKKworICAg
IE5TUmVjdCB2aXNpYmxlUmVjdCA9IFtzZWxmIHZpc2libGVSZWN0XTsKKyAgICBpZiAoTlNJc0Vt
cHR5UmVjdCh2aXNpYmxlUmVjdCkpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIE5TUmVjdCB2
aXNpYmxlUmVjdEluV2luZG93Q29vcmRzID0gW3NlbGYgY29udmVydFJlY3Q6dmlzaWJsZVJlY3Qg
dG9WaWV3Om5pbF07CisgICAgaWYgKCFOU0ludGVyc2VjdHNSZWN0KGdyb3dCb3hSZWN0LCB2aXNp
YmxlUmVjdEluV2luZG93Q29vcmRzKSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgcmV0dXJu
IFlFUzsKK30KKworLSAoQk9PTClfdXBkYXRlR3Jvd0JveEZvcldpbmRvd0ZyYW1lQ2hhbmdlCit7
CisgICAgLy8gVGVtcG9yYXJpbHkgZW5hYmxlIHRoZSByZXNpemUgaW5kaWNhdG9yIHRvIG1ha2Ug
YSB0aGUgX293bnNXaW5kb3dHcm93Qm94CisgICAgLy8gY2FsY3VsYXRpb24gd29yay4KKyAgICBC
T09MIHdhc1Nob3dpbmdJbmRpY2F0b3IgPSBbW3NlbGYgd2luZG93XSBzaG93c1Jlc2l6ZUluZGlj
YXRvcl07CisgICAgW1tzZWxmIHdpbmRvd10gc2V0U2hvd3NSZXNpemVJbmRpY2F0b3I6WUVTXTsK
KworICAgIEJPT0wgb3duc0dyb3dCb3ggPSBbc2VsZiBfb3duc1dpbmRvd0dyb3dCb3hdOworICAg
IF9kYXRhLT5fcGFnZS0+c2V0V2luZG93UmVzaXplclNpemUob3duc0dyb3dCb3ggPyBlbmNsb3Np
bmdJbnRSZWN0KFtbc2VsZiB3aW5kb3ddIF9ncm93Qm94UmVjdF0pLnNpemUoKSA6IEludFNpemUo
KSk7CisgICAgCisgICAgLy8gT25jZSBXZWJDb3JlIGNhbiBkcmF3IHRoZSB3aW5kb3cgcmVzaXpl
ciwgdGhpcyBzaG91bGQgcmVhZDoKKyAgICAvLyBpZiAod2FzU2hvd2luZ0luZGljYXRvcikKKyAg
ICAvLyAgICAgW1tzZWxmIHdpbmRvd10gc2V0U2hvd3NSZXNpemVJbmRpY2F0b3I6IW93bnNHcm93
Qm94XTsKKyAgICBbW3NlbGYgd2luZG93XSBzZXRTaG93c1Jlc2l6ZUluZGljYXRvcjp3YXNTaG93
aW5nSW5kaWNhdG9yXTsKKworICAgIHJldHVybiBvd25zR3Jvd0JveDsKK30KKwogLSAodm9pZClh
ZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6KE5TV2luZG93ICopd2luZG93CiB7CiAgICAgaWYg
KHdpbmRvdykgewpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJl
dmlzaW9uIDY4NDI2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU1OCw2ICs1NTgsMzIgQEAgdm9pZCBXZWJQYWdlOjpzZXRGb2N1
c2VkKGJvb2wgaXNGb2N1c2VkKQogICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZv
Y3VzZWQoaXNGb2N1c2VkKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRXaW5kb3dSZXNpemVyU2l6
ZShjb25zdCBJbnRTaXplJiB3aW5kb3dSZXNpemVyU2l6ZSkKK3sKKyAgICBpZiAobV93aW5kb3dS
ZXNpemVyU2l6ZSA9PSB3aW5kb3dSZXNpemVyU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV93aW5kb3dSZXNpemVyU2l6ZSA9IHdpbmRvd1Jlc2l6ZXJTaXplOworICAgIAorICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCk7CisgICAgaWYgKCFjb3JlRnJh
bWUpCisgICAgICAgIHJldHVybjsKKworICAgIEZyYW1lVmlldyogdmlldyA9IGNvcmVGcmFtZS0+
dmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgdmlldy0+aW52
YWxpZGF0ZVNjcm9sbGJhcnMoKTsKKworICAgIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4g
Piogdmlld0NoaWxkcmVuID0gdmlldy0+Y2hpbGRyZW4oKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxX
aWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHZpZXdDaGlsZHJlbi0+ZW5kKCk7CisgICAg
Zm9yIChIYXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdmlld0No
aWxkcmVuLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgV2lkZ2V0KiB3aWRn
ZXQgPSBpdC0+Z2V0KCk7CisgICAgICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCisgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5pbnZhbGlkYXRlU2Nyb2xs
YmFycygpOworICAgIH0KK30KKwogdm9pZCBXZWJQYWdlOjpzZXRJc0luV2luZG93KGJvb2wgaXNJ
bldpbmRvdykKIHsKICAgICBpZiAoIWlzSW5XaW5kb3cpIHsKQEAgLTU5OCwxMiArNjI0LDggQEAg
U3RyaW5nIFdlYlBhZ2U6OnVzZXJBZ2VudCgpIGNvbnN0CiAKIEludFJlY3QgV2ViUGFnZTo6d2lu
ZG93UmVzaXplclJlY3QoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIHNo
b3VsZCBjb25kaXRpb25hbGx5IHJldHVybiBhIG51bGwgSW50UmVjdCBmb3IgY2lyY3Vtc3RhbmNl
cyB3aGVuCi0gICAgLy8geW91IGRvbid0IGFsd2F5cyB3YW50IHRvIHNob3cgYSByZXNpemVyIHJl
Y3QgKGkuZS4geW91IG5ldmVyIHdhbnQgdG8gc2hvdyBvbmUgb24gd2luZG93cwotICAgIC8vIGFu
ZCB5b3UgZG9uJ3Qgd2FudCB0byBzaG93IG9uZSBpbiBTYWZhcmkgd2hlbiB0aGUgc3RhdHVzIGJh
ciBpcyB2aXNpYmxlKS4KLQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBlaXRoZXIgcGxh
dGZvcm0gc3BlY2lmaWMgb3IgYmFzZWQgb2ZmIHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYmFyLiAK
LSAgICBzdGF0aWMgY29uc3QgaW50IHdpbmRvd1Jlc2l6ZXJTaXplID0gMTU7CisgICAgaWYgKG1f
d2luZG93UmVzaXplclNpemUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gSW50UmVjdCgpOwog
CiAgICAgSW50U2l6ZSBmcmFtZVZpZXdTaXplOwogICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0g
bV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpKSB7CkBAIC02MTEsOCArNjMzLDggQEAgSW50UmVjdCBX
ZWJQYWdlOjp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbgogICAgICAgICAgICAgZnJhbWVWaWV3U2l6
ZSA9IHZpZXctPnNpemUoKTsKICAgICB9CiAKLSAgICByZXR1cm4gSW50UmVjdChmcmFtZVZpZXdT
aXplLndpZHRoKCkgLSB3aW5kb3dSZXNpemVyU2l6ZSwgZnJhbWVWaWV3U2l6ZS5oZWlnaHQoKSAt
IHdpbmRvd1Jlc2l6ZXJTaXplLCAKLSAgICAgICAgICAgICAgICAgICB3aW5kb3dSZXNpemVyU2l6
ZSwgd2luZG93UmVzaXplclNpemUpOworICAgIHJldHVybiBJbnRSZWN0KGZyYW1lVmlld1NpemUu
d2lkdGgoKSAtIG1fd2luZG93UmVzaXplclNpemUud2lkdGgoKSwgZnJhbWVWaWV3U2l6ZS5oZWln
aHQoKSAtIG1fd2luZG93UmVzaXplclNpemUuaGVpZ2h0KCksIAorICAgICAgICAgICAgICAgICAg
IG1fd2luZG93UmVzaXplclNpemUud2lkdGgoKSwgbV93aW5kb3dSZXNpemVyU2l6ZS5oZWlnaHQo
KSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0
cmluZyYgc2NyaXB0LCB1aW50NjRfdCBjYWxsYmFja0lEKQpJbmRleDogV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gNjg0MjYpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw2ICsxODYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCk7CiAgICAgdm9pZCBz
ZXRBY3RpdmUoYm9vbCk7CiAgICAgdm9pZCBzZXRGb2N1c2VkKGJvb2wpOworICAgIHZvaWQgc2V0
V2luZG93UmVzaXplclNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgc2V0
SXNJbldpbmRvdyhib29sKTsKICAgICB2b2lkIG1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYpOwogICAgIHZvaWQgd2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50Jik7CkBAIC0yMzgs
NiArMjM5LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
V2ViRWRpdENvbW1hbmQ+ID4gbV9lZGl0Q29tbWFuZE1hcDsKIAorICAgIFdlYkNvcmU6OkludFNp
emUgbV93aW5kb3dSZXNpemVyU2l6ZTsKKwogICAgIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNs
aWVudCBtX2VkaXRvckNsaWVudDsKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50IG1f
Zm9ybUNsaWVudDsKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQgbV9sb2FkZXJD
bGllbnQ7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDY4NDI2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjcsMTAgKzI3LDEwIEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2UgewogCiAgICAgS2V5RXZlbnQoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50IGV2ZW50KQogICAgIE1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KQor
ICAgIFdoZWVsRXZlbnQoV2ViS2l0OjpXZWJXaGVlbEV2ZW50IGV2ZW50KQogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiAgICAgVG91Y2hFdmVudChXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQp
CiAjZW5kaWYKLSAgICBXaGVlbEV2ZW50KFdlYktpdDo6V2ViV2hlZWxFdmVudCBldmVudCkKIAog
ICAgIEdvQmFjayh1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKICAgICBHb0ZvcndhcmQodWlu
dDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCkBAIC02OCw2ICs2OCw4IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2UgewogICAgIFNldFBhZ2Vab29tRmFjdG9yKGRvdWJsZSB6b29tRmFjdG9yKQogICAgIFNl
dFRleHRab29tRmFjdG9yKGRvdWJsZSB6b29tRmFjdG9yKQogCisgICAgU2V0V2luZG93UmVzaXpl
clNpemUoV2ViQ29yZTo6SW50U2l6ZSBpbnRlcnNlY3RzVmlldykKKwogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBTZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2libGUpCiAgICAgU2V0
V2luZG93RnJhbWUoV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dGcmFtZSkK
</data>
<flag name="review"
          id="58705"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69091</attachid>
            <date>2010-09-28 12:59:59 -0700</date>
            <delta_ts>2010-09-28 13:26:09 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>updated.diff</filename>
            <type>text/plain</type>
            <size>16720</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODU0MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDktMjggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWZXJ0aWNh
bCBzY3JvbGwgYmFyIG9uIGFwcGxlLmNvbSBpcyB0b28gc2hvcnQgd2l0aCBXZWJLaXQyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84Mzc5MjMwPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3MzkKKworICAgICAgICBBZGRzIGEgZnVuY3Rpb24gdG8g
cmVjYWxjdWxhdGUgdGhlIHNjcm9sbGJhcnMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YKKyAgICAgICAg
YSBjaGFuZ2VkIHdpbmRvdyByZS1zaXplciByZWN0LgorCisgICAgICAgICogV2ViQ29yZS5leHAu
aW46CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxWaWV3Ojp3aW5kb3dSZXNpemVyUmVjdENoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbFZpZXcuaDoKKwogMjAxMC0wOS0yOCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXph
Y2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFraW4uCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHJldmlzaW9uIDY4NDI2KQorKysgV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBj
b3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBAIF9fWk4zV1RGNlN0cmluZ0MxRVA4TlNTdHJpbmcKIF9f
Wk4zV1RGNlN0cmluZ0MxRVBLMTBfX0NGU3RyaW5nCiBfX1pON1dlYkNvcmUxME1vdXNlRXZlbnRD
MUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJOUzFfMTBQYXNzUmVmUHRySU5TXzlET01XaW5kb3dF
RUVpaWlpaWJiYmJ0TlM1X0lOU18xMUV2ZW50VGFyZ2V0RUVFTlM1X0lOU185Q2xpcGJvYXJkRUVF
YgogX19aTjdXZWJDb3JlMTBTY3JvbGxWaWV3MjBzZXRDYW5IYXZlU2Nyb2xsYmFyc0ViCitfX1pO
N1dlYkNvcmUxMFNjcm9sbFZpZXcyNHdpbmRvd1Jlc2l6ZXJSZWN0Q2hhbmdlZEV2CiBfX1pON1dl
YkNvcmUxMGRlbGV0ZUZpbGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMGhhbmRDdXJz
b3JFdgogX19aTjdXZWJDb3JlMTBzZXRDb29raWVzRVBOU184RG9jdW1lbnRFUktOU180S1VSTEVS
S04zV1RGNlN0cmluZ0UKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA2ODQyNikKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNzc3LDcgKzI3NzcsNiBAQAogCQk5NzNF
MzI1NjEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTczRTMyNTQxMDg4M0I3QzAw
NUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmNwcCAqLzsgfTsKIAkJOTczRTMyNTcxMDg4
M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyog
UmVzb3VyY2VMb2FkTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5NzZENkM3NzEyMkI4QTNEMDAxRkQxRjcgLyogQXN5bmNGaWxlV3Jp
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZE
NkM1ODEyMkI4QTNEMDAxRkQxRjcgLyogQXN5bmNGaWxlV3JpdGVyLmggKi87IH07Ci0JCTk3NkQ2
QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2Qzc0MTIyQjhBM0QwMDFG
RDFGNyAvKiBBc3luY0ZpbGVXcml0ZXJDbGllbnQuaCAqLzsgfTsKIAkJOTc2RDZDNzgxMjJCOEEz
RDAwMUZEMUY3IC8qIEJsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc2RDZDNTkxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2IuY3BwICovOyB9Owog
CQk5NzZENkM3OTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNUExMjJCOEEzRDAwMUZEMUY3IC8qIEJs
b2IuaCAqLzsgfTsKIAkJOTc2RDZDN0IxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JCdWlsZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzVD
MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iQnVpbGRlci5jcHAgKi87IH07CkBAIC0yNzk4LDYgKzI3
OTcsNyBAQAogCQk5NzZENkM4RjEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVRocmVhZFRhc2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzcwMTIy
QjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkVGFzay5oICovOyB9OwogCQk5NzZENkM5MDEyMkI4
QTNEMDAxRkQxRjcgLyogRmlsZVdyaXRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM3MTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVdyaXRl
ci5jcHAgKi87IH07CiAJCTk3NkQ2QzkxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlV3JpdGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM3MjEy
MkI4QTNEMDAxRkQxRjcgLyogRmlsZVdyaXRlci5oICovOyB9OworCQk5NzZENkM5MzEyMkI4QTNE
MDAxRkQxRjcgLyogQXN5bmNGaWxlV3JpdGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM3NDEyMkI4QTNEMDAxRkQxRjcgLyogQXN5
bmNGaWxlV3JpdGVyQ2xpZW50LmggKi87IH07CiAJCTk3NkQ2Qzk0MTIyQjhBM0QwMDFGRDFGNyAv
KiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2Qzc1MTIyQjhBM0QwMDFGRDFGNyAvKiBUaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJOTc2RDZDOTUxMjJCOEEzRDAwMUZEMUY3IC8qIFRo
cmVhZGFibGVCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3NkQ2Qzc2MTIyQjhBM0QwMDFGRDFGNyAvKiBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5LmggKi87IH07CiAJCTk3N0IzNzIzMTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MRWxlbWVu
dFN0YWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3N0IzNzFGMTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MRWxlbWVudFN0YWNrLmNwcCAqLzsgfTsK
QEAgLTg2NzcsNyArODY3Nyw2IEBACiAJCTk3M0UzMjU0MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNv
dXJjZUxvYWROb3RpZmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZXNvdXJjZUxvYWROb3RpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk3M0UzMjU1MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWROb3RpZmllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZENkM1ODEyMkI4QTNEMDAxRkQxRjcgLyogQXN5
bmNGaWxlV3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFzeW5jRmls
ZVdyaXRlci5oOyBwYXRoID0gZmlsZWFwaS9Bc3luY0ZpbGVXcml0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTc2RDZDNzQxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdy
aXRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBc3luY0ZpbGVX
cml0ZXJDbGllbnQuaDsgcGF0aCA9IGZpbGVhcGkvQXN5bmNGaWxlV3JpdGVyQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2QzU5MTIyQjhBM0QwMDFGRDFGNyAvKiBC
bG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2IuY3BwOyBw
YXRoID0gZmlsZWFwaS9CbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2
RDZDNUExMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQmxvYi5oOyBwYXRoID0gZmlsZWFwaS9CbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3NkQ2QzVDMTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iQnVpbGRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iQnVpbGRlci5jcHA7IHBh
dGggPSBmaWxlYXBpL0Jsb2JCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTg2OTgsNiArODY5Nyw3IEBACiAJCTk3NkQ2QzcwMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxl
VGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlVGhyZWFk
VGFzay5oOyBwYXRoID0gZmlsZWFwaS9GaWxlVGhyZWFkVGFzay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NzZENkM3MTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVdyaXRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGaWxlV3JpdGVyLmNwcDsgcGF0
aCA9IGZpbGVhcGkvRmlsZVdyaXRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk3NkQ2QzcyMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlV3JpdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEZpbGVXcml0ZXIuaDsgcGF0aCA9IGZpbGVhcGkvRmlsZVdyaXRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzZENkM3NDEyMkI4QTNEMDAxRkQx
RjcgLyogQXN5bmNGaWxlV3JpdGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEFzeW5jRmlsZVdyaXRlckNsaWVudC5oOyBwYXRoID0gZmlsZWFwaS9Bc3luY0ZpbGVX
cml0ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RDZDNzUxMjJC
OEEzRDAwMUZEMUY3IC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHA7IHBhdGgg
PSBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzZENkM3NjEyMkI4QTNEMDAxRkQxRjcgLyogVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5Lmg7IHBhdGggPSBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc3QjM3MUYxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxF
bGVtZW50U3RhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSFRN
TEVsZW1lbnRTdGFjay5jcHA7IHBhdGggPSBwYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHJl
dmlzaW9uIDY4NDI2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUzLDYgKzM1MywxNCBAQCBib29sIFNjcm9sbFZpZXc6OnNjcm9sbChTY3Jv
bGxEaXJlY3Rpb24gCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFNjcm9sbFZpZXc6Ondp
bmRvd1Jlc2l6ZXJSZWN0Q2hhbmdlZCgpCit7CisgICAgaWYgKHBsYXRmb3JtV2lkZ2V0KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHVwZGF0ZVNjcm9sbGJhcnMoc2Nyb2xsT2Zmc2V0KCkpOwor
fQorCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgY01heFVwZGF0ZVNjcm9sbGJhcnNQYXNzID0gMjsK
IAogdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IEludFNpemUmIGRlc2ly
ZWRPZmZzZXQpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkocmV2aXNpb24gNjg0MjYpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4
OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBj
b25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KICAgICBib29sIGNvbnRhaW5zU2Nyb2xsYmFyc0F2
b2lkaW5nUmVzaXplcigpIGNvbnN0OwogICAgIHZvaWQgYWRqdXN0U2Nyb2xsYmFyc0F2b2lkaW5n
UmVzaXplckNvdW50KGludCBvdmVybGFwRGVsdGEpOworICAgIHZvaWQgd2luZG93UmVzaXplclJl
Y3RDaGFuZ2VkKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFyZW50KFNjcm9sbFZpZXcqKTsg
Ly8gT3ZlcnJpZGRlbiB0byB1cGRhdGUgdGhlIG92ZXJsYXBwaW5nIHNjcm9sbGJhciBjb3VudC4K
IAogICAgIC8vIENhbGxlZCB3aGVuIG91ciBmcmFtZSByZWN0IGNoYW5nZXMgKG9yIHRoZSByZWN0
L3Njcm9sbCBwb3NpdGlvbiBvZiBhbiBhbmNlc3RvciBjaGFuZ2VzKS4KSW5kZXg6IFdlYktpdDIv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA2ODU0
MykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDktMjggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBWZXJ0aWNhbCBzY3JvbGwgYmFyIG9u
IGFwcGxlLmNvbSBpcyB0b28gc2hvcnQgd2l0aCBXZWJLaXQyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS84Mzc5MjMwPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDY3MzkKKworICAgICAgICBUaGlzIGdldHMgdXMgbW9zdCBvZiB0aGUgd2F5IHRvIGhh
dmluZyBjb3JyZWN0IHNjcm9sbCBjb3JuZXIgYmVoYXZpb3IuIFdlIHNob3VsZAorICAgICAgICBm
b2xsb3cgdGhpcyB1cCBieSBtb3ZpbmcgdG8gcGFpbnRpbmcgdGhlIHdpbmRvdyByZS1zaXplciBp
biBXZWJDb3JlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1ZpZXcgX293bnNXaW5kb3dHcm93Qm94XSk6CisgICAgICAgICgtW1dLVmlldyBf
dXBkYXRlR3Jvd0JveEZvcldpbmRvd0ZyYW1lQ2hhbmdlXSk6IENhbGN1bGF0ZSB3aGV0aGVyIHdl
IHNob3VsZAorICAgICAgICBiZSB0YWtpbmcgdGhlIHNjcm9sbCBjb3JuZXIgaW50byBhY2NvdW50
IHdoZW4gbGF5aW5nIG91dCBzY3JvbGxiYXJzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFdpbmRvd1Jlc2l6
ZXJTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpzZXRXaW5kb3dSZXNpemVyU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OndpbmRv
d1Jlc2l6ZXJSZWN0KTogVGhpcyBub3cgcmV0dXJucyBJbnRSZWN0KCkgZm9yCisgICAgICAgIG5v
bi1tYWMgcGxhdGZvcm1zIChvciBhbnkgcGxhdGZvcm0gdGhhdCBuZXZlciBzZW5kcyBhIHNldFdp
bmRvd1Jlc2l6ZXJTaXplCisgICAgICAgIG1lc3NhZ2UpLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW46CisKIDIwMTAtMDktMjggIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFRlbGwgdGhlIFVJIGNsaWVudCB3aGVuIGEga2V5IGV2ZW50IGlzIG5vdCBo
YW5kbGVkCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDY4NDM1
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzMzLDYgKzMzMywxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWN0aXZlKGJvb2wgYWN0
aXZlCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRBY3RpdmUoYWN0
aXZlKSwgbV9wYWdlSUQpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0V2luZG93UmVzaXpl
clNpemUoY29uc3QgSW50U2l6ZSYgd2luZG93UmVzaXplclNpemUpCit7CisgICAgaWYgKCFpc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldFdpbmRvd1Jlc2l6ZXJTaXplKHdpbmRvd1Jlc2l6ZXJTaXplKSwgbV9wYWdlSUQp
OworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6dmFsaWRhdGVNZW51SXRlbShjb25zdCBTdHJpbmcm
IGNvbW1hbmROYW1lKQogewogICAgIGlmICghaXNWYWxpZCgpKQpJbmRleDogV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHJldmlzaW9uIDY4NDM1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMiw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRGb2N1c2VkKGJvb2wgaXNGb2N1c2VkKTsKICAgICB2b2lkIHNldEFjdGl2ZShib29s
IGFjdGl2ZSk7CiAgICAgdm9pZCBzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdyk7CisgICAg
dm9pZCBzZXRXaW5kb3dSZXNpemVyU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAKICAg
ICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKTsKICAg
ICB2b2lkIHZhbGlkYXRlTWVudUl0ZW0oY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSk7CkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gNjg0MzUpCisrKyBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTUsNiAr
NTUsMTEgQEAgc3RydWN0IEVkaXRDb21tYW5kU3RhdGUgewogICAgIGludCBtX3N0YXRlOwogfTsK
IAorQGludGVyZmFjZSBOU1dpbmRvdyAoRGV0YWlscykKKy0gKE5TUmVjdClfZ3Jvd0JveFJlY3Q7
CistIChCT09MKV91cGRhdGVHcm93Qm94Rm9yV2luZG93RnJhbWVDaGFuZ2U7CitAZW5kCisKIEBp
bnRlcmZhY2UgV0tWaWV3RGF0YSA6IE5TT2JqZWN0IHsKIEBwdWJsaWMKICAgICBPd25QdHI8UGFn
ZUNsaWVudEltcGw+IF9wYWdlQ2xpZW50OwpAQCAtMjg3LDYgKzI5Miw0OCBAQCAtICh2b2lkKV91
cGRhdGVXaW5kb3dWaXNpYmlsaXR5CiAgICAgX2RhdGEtPl9wYWdlLT5zZXRXaW5kb3dJc1Zpc2li
bGUoIVtbc2VsZiB3aW5kb3ddIGlzTWluaWF0dXJpemVkXSk7CiB9CiAKKy0gKEJPT0wpX293bnNX
aW5kb3dHcm93Qm94Cit7CisgICAgTlNXaW5kb3cqIHdpbmRvdyA9IFtzZWxmIHdpbmRvd107Cisg
ICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIE5TVmlldyAqc3VwZXJ2
aWV3ID0gW3NlbGYgc3VwZXJ2aWV3XTsKKyAgICBpZiAoIXN1cGVydmlldykKKyAgICAgICAgcmV0
dXJuIE5POworCisgICAgTlNSZWN0IGdyb3dCb3hSZWN0ID0gW3dpbmRvdyBfZ3Jvd0JveFJlY3Rd
OworICAgIGlmIChOU0lzRW1wdHlSZWN0KGdyb3dCb3hSZWN0KSkKKyAgICAgICAgcmV0dXJuIE5P
OworCisgICAgTlNSZWN0IHZpc2libGVSZWN0ID0gW3NlbGYgdmlzaWJsZVJlY3RdOworICAgIGlm
IChOU0lzRW1wdHlSZWN0KHZpc2libGVSZWN0KSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAg
TlNSZWN0IHZpc2libGVSZWN0SW5XaW5kb3dDb29yZHMgPSBbc2VsZiBjb252ZXJ0UmVjdDp2aXNp
YmxlUmVjdCB0b1ZpZXc6bmlsXTsKKyAgICBpZiAoIU5TSW50ZXJzZWN0c1JlY3QoZ3Jvd0JveFJl
Y3QsIHZpc2libGVSZWN0SW5XaW5kb3dDb29yZHMpKQorICAgICAgICByZXR1cm4gTk87CisKKyAg
ICByZXR1cm4gWUVTOworfQorCistIChCT09MKV91cGRhdGVHcm93Qm94Rm9yV2luZG93RnJhbWVD
aGFuZ2UKK3sKKyAgICAvLyBUZW1wb3JhcmlseSBlbmFibGUgdGhlIHJlc2l6ZSBpbmRpY2F0b3Ig
dG8gbWFrZSBhIHRoZSBfb3duc1dpbmRvd0dyb3dCb3ggY2FsY3VsYXRpb24gd29yay4KKyAgICBC
T09MIHdhc1Nob3dpbmdJbmRpY2F0b3IgPSBbW3NlbGYgd2luZG93XSBzaG93c1Jlc2l6ZUluZGlj
YXRvcl07CisgICAgW1tzZWxmIHdpbmRvd10gc2V0U2hvd3NSZXNpemVJbmRpY2F0b3I6WUVTXTsK
KworICAgIEJPT0wgb3duc0dyb3dCb3ggPSBbc2VsZiBfb3duc1dpbmRvd0dyb3dCb3hdOworICAg
IF9kYXRhLT5fcGFnZS0+c2V0V2luZG93UmVzaXplclNpemUob3duc0dyb3dCb3ggPyBlbmNsb3Np
bmdJbnRSZWN0KFtbc2VsZiB3aW5kb3ddIF9ncm93Qm94UmVjdF0pLnNpemUoKSA6IEludFNpemUo
KSk7CisgICAgCisgICAgLy8gT25jZSBXZWJDb3JlIGNhbiBkcmF3IHRoZSB3aW5kb3cgcmVzaXpl
ciwgdGhpcyBzaG91bGQgcmVhZDoKKyAgICAvLyBpZiAod2FzU2hvd2luZ0luZGljYXRvcikKKyAg
ICAvLyAgICAgW1tzZWxmIHdpbmRvd10gc2V0U2hvd3NSZXNpemVJbmRpY2F0b3I6IW93bnNHcm93
Qm94XTsKKyAgICBbW3NlbGYgd2luZG93XSBzZXRTaG93c1Jlc2l6ZUluZGljYXRvcjp3YXNTaG93
aW5nSW5kaWNhdG9yXTsKKworICAgIHJldHVybiBvd25zR3Jvd0JveDsKK30KKwogLSAodm9pZClh
ZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6KE5TV2luZG93ICopd2luZG93CiB7CiAgICAgaWYg
KHdpbmRvdykgewpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJl
dmlzaW9uIDY4NDI2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU1OCw2ICs1NTgsMjAgQEAgdm9pZCBXZWJQYWdlOjpzZXRGb2N1
c2VkKGJvb2wgaXNGb2N1c2VkKQogICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZv
Y3VzZWQoaXNGb2N1c2VkKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRXaW5kb3dSZXNpemVyU2l6
ZShjb25zdCBJbnRTaXplJiB3aW5kb3dSZXNpemVyU2l6ZSkKK3sKKyAgICBpZiAobV93aW5kb3dS
ZXNpemVyU2l6ZSA9PSB3aW5kb3dSZXNpemVyU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV93aW5kb3dSZXNpemVyU2l6ZSA9IHdpbmRvd1Jlc2l6ZXJTaXplOworCisgICAgZm9yIChGcmFt
ZSogY29yZUZyYW1lID0gbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpOyBjb3JlRnJhbWU7IGNvcmVG
cmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBGcmFt
ZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKKyAgICAgICAgaWYgKHZpZXcpCisgICAg
ICAgICAgICB2aWV3LT53aW5kb3dSZXNpemVyUmVjdENoYW5nZWQoKTsKKyAgICB9Cit9CisKIHZv
aWQgV2ViUGFnZTo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7CiAgICAgaWYgKCFp
c0luV2luZG93KSB7CkBAIC01OTgsMTIgKzYxMiw4IEBAIFN0cmluZyBXZWJQYWdlOjp1c2VyQWdl
bnQoKSBjb25zdAogCiBJbnRSZWN0IFdlYlBhZ2U6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QK
IHsKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgY29uZGl0aW9uYWxseSByZXR1
cm4gYSBudWxsIEludFJlY3QgZm9yIGNpcmN1bXN0YW5jZXMgd2hlbgotICAgIC8vIHlvdSBkb24n
dCBhbHdheXMgd2FudCB0byBzaG93IGEgcmVzaXplciByZWN0IChpLmUuIHlvdSBuZXZlciB3YW50
IHRvIHNob3cgb25lIG9uIHdpbmRvd3MKLSAgICAvLyBhbmQgeW91IGRvbid0IHdhbnQgdG8gc2hv
dyBvbmUgaW4gU2FmYXJpIHdoZW4gdGhlIHN0YXR1cyBiYXIgaXMgdmlzaWJsZSkuCi0KLSAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZWl0aGVyIHBsYXRmb3JtIHNwZWNpZmljIG9yIGJhc2Vk
IG9mZiB0aGUgd2lkdGggb2YgdGhlIHNjcm9sbGJhci4gCi0gICAgc3RhdGljIGNvbnN0IGludCB3
aW5kb3dSZXNpemVyU2l6ZSA9IDE1OworICAgIGlmIChtX3dpbmRvd1Jlc2l6ZXJTaXplLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAogICAgIEludFNpemUgZnJhbWVWaWV3
U2l6ZTsKICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUo
KSkgewpAQCAtNjExLDggKzYyMSw4IEBAIEludFJlY3QgV2ViUGFnZTo6d2luZG93UmVzaXplclJl
Y3QoKSBjb24KICAgICAgICAgICAgIGZyYW1lVmlld1NpemUgPSB2aWV3LT5zaXplKCk7CiAgICAg
fQogCi0gICAgcmV0dXJuIEludFJlY3QoZnJhbWVWaWV3U2l6ZS53aWR0aCgpIC0gd2luZG93UmVz
aXplclNpemUsIGZyYW1lVmlld1NpemUuaGVpZ2h0KCkgLSB3aW5kb3dSZXNpemVyU2l6ZSwgCi0g
ICAgICAgICAgICAgICAgICAgd2luZG93UmVzaXplclNpemUsIHdpbmRvd1Jlc2l6ZXJTaXplKTsK
KyAgICByZXR1cm4gSW50UmVjdChmcmFtZVZpZXdTaXplLndpZHRoKCkgLSBtX3dpbmRvd1Jlc2l6
ZXJTaXplLndpZHRoKCksIGZyYW1lVmlld1NpemUuaGVpZ2h0KCkgLSBtX3dpbmRvd1Jlc2l6ZXJT
aXplLmhlaWdodCgpLCAKKyAgICAgICAgICAgICAgICAgICBtX3dpbmRvd1Jlc2l6ZXJTaXplLndp
ZHRoKCksIG1fd2luZG93UmVzaXplclNpemUuaGVpZ2h0KCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6
OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIHNjcmlwdCwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlz
aW9uIDY4NDI2KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODYsNiArMTg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdvVG9CYWNr
Rm9yd2FyZEl0ZW0odWludDY0X3QpOwogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpOwogICAgIHZv
aWQgc2V0Rm9jdXNlZChib29sKTsKKyAgICB2b2lkIHNldFdpbmRvd1Jlc2l6ZXJTaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2b2lkIHNldElzSW5XaW5kb3coYm9vbCk7CiAgICAg
dm9pZCBtb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKICAgICB2b2lkIHdoZWVsRXZl
bnQoY29uc3QgV2ViV2hlZWxFdmVudCYpOwpAQCAtMjM4LDYgKzIzOSw4IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkVkaXRDb21tYW5kPiA+IG1fZWRp
dENvbW1hbmRNYXA7CiAKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fd2luZG93UmVzaXplclNpemU7
CisKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQgbV9lZGl0b3JDbGllbnQ7CiAg
ICAgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudCBtX2Zvcm1DbGllbnQ7CiAgICAgSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IG1fbG9hZGVyQ2xpZW50OwpJbmRleDogV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiA2ODQy
NikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTI3LDEwICsyNywxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKIAog
ICAgIEtleUV2ZW50KFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBldmVudCkKICAgICBNb3VzZUV2
ZW50KFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCkKKyAgICBXaGVlbEV2ZW50KFdlYktpdDo6
V2ViV2hlZWxFdmVudCBldmVudCkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIFRvdWNo
RXZlbnQoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KQogI2VuZGlmCi0gICAgV2hlZWxFdmVu
dChXZWJLaXQ6OldlYldoZWVsRXZlbnQgZXZlbnQpCiAKICAgICBHb0JhY2sodWludDY0X3QgYmFj
a0ZvcndhcmRJdGVtSUQpCiAgICAgR29Gb3J3YXJkKHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlE
KQpAQCAtNjgsNiArNjgsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICBTZXRQYWdlWm9v
bUZhY3Rvcihkb3VibGUgem9vbUZhY3RvcikKICAgICBTZXRUZXh0Wm9vbUZhY3Rvcihkb3VibGUg
em9vbUZhY3RvcikKIAorICAgIFNldFdpbmRvd1Jlc2l6ZXJTaXplKFdlYkNvcmU6OkludFNpemUg
aW50ZXJzZWN0c1ZpZXcpCisKICNpZiBQTEFURk9STShNQUMpCiAgICAgU2V0V2luZG93SXNWaXNp
YmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKQogICAgIFNldFdpbmRvd0ZyYW1lKFdlYkNvcmU6Oklu
dFJlY3Qgd2luZG93RnJhbWUpCg==
</data>
<flag name="review"
          id="58723"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>