<?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>87605</bug_id>
          
          <creation_ts>2012-05-27 15:12:55 -0700</creation_ts>
          <short_desc>[BlackBerry] WebKit-side implementation of SelectionOverlay</short_desc>
          <delta_ts>2012-05-29 09:06:36 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87604</dependson>
          <blocked>87606</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>kpiascik</cc>
    
    <cc>manyoso</cc>
    
    <cc>mifenton</cc>
    
    <cc>mlattanzio</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634798</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 15:12:55 -0700</bug_when>
    <thetext>Leverage the new WebOverlay API to move SelectionOverlay to the WebKit library, so we always draw selection regardless of which embedder is integrating WebKit.

Please note that this has not been internally reviewed yet, so it needs actual review. And also, it has a dependency that needs to be landed first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634814</commentid>
    <comment_count>1</comment_count>
      <attachid>144252</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 16:37:45 -0700</bug_when>
    <thetext>Created attachment 144252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634817</commentid>
    <comment_count>2</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 16:55:08 -0700</bug_when>
    <thetext>PR #160263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635208</commentid>
    <comment_count>3</comment_count>
      <attachid>144252</attachid>
    <who name="Mike Fenton">mifenton</who>
    <bug_when>2012-05-28 07:31:29 -0700</bug_when>
    <thetext>Comment on attachment 144252
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635235</commentid>
    <comment_count>4</comment_count>
      <attachid>144252</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-28 08:16:48 -0700</bug_when>
    <thetext>Comment on attachment 144252
Patch

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

Looks good.

&gt; Source/WebKit/blackberry/WebKitSupport/SelectionOverlay.cpp:32
&gt; +#include &lt;SkCornerPathEffect.h&gt;

Is this used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635263</commentid>
    <comment_count>5</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-28 08:51:22 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 144252 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144252&amp;action=review
&gt; 
&gt; Looks good.
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebKitSupport/SelectionOverlay.cpp:32
&gt; &gt; +#include &lt;SkCornerPathEffect.h&gt;
&gt; 
&gt; Is this used?

Oops, no it&apos;s not - I will upload a new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635421</commentid>
    <comment_count>6</comment_count>
      <attachid>144400</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-28 14:51:17 -0700</bug_when>
    <thetext>Created attachment 144400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636040</commentid>
    <comment_count>7</comment_count>
      <attachid>144400</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-29 08:12:30 -0700</bug_when>
    <thetext>Comment on attachment 144400
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636086</commentid>
    <comment_count>8</comment_count>
      <attachid>144400</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 09:06:30 -0700</bug_when>
    <thetext>Comment on attachment 144400
Patch

Clearing flags on attachment: 144400

Committed r118785: &lt;http://trac.webkit.org/changeset/118785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636087</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 09:06:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144252</attachid>
            <date>2012-05-27 16:37:45 -0700</date>
            <delta_ts>2012-05-28 14:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87605-20120528013743.patch</filename>
            <type>text/plain</type>
            <size>16535</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMwMTY5MThlYjBlZTgyNjNl
NTVmMWQ5MzA1MDc4NTZjM2ZkMDIzYjAuLjdlYTFiYTc2MWZiZTdkMmMwNjBmOTUwOGQxZjg3ZWMx
N2Y2ODgxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTItMDUtMjcgIEFydmlkIE5p
bHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCisgICAgICAgIFtCbGFja0JlcnJ5XSBXZWJLaXQt
c2lkZSBpbXBsZW1lbnRhdGlvbiBvZiBTZWxlY3Rpb25PdmVybGF5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzYwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTZWxlY3Rpb25PdmVybGF5IHRvIHRo
ZSBidWlsZCBzeXN0ZW0uCisKKyAgICAgICAgUFIgIzE2MDI2MworCisgICAgICAgICogUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlOgorCisyMDEyLTA1LTI3ICBBcnZpZCBOaWxzc29uICA8YW5pbHNz
b25AcmltLmNvbT4KKwogICAgICAgICBbQmxhY2tCZXJyeV0gV2ViT3ZlcmxheSBBUEkKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjAzCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDExZGZkZmEzZDk1NWM0NzAxNDgyMGZjMzVhZDdj
NmNhMzgwNDRjZDQuLjVhYmZjNDA3YjE4YWE3MWIzMjFiNzZkZTg1MDY4ZTQ1ZTg2NDFhZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDEyLTA1LTI3
ICBBcnZpZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAorICAgICAgICBbQmxhY2tCZXJy
eV0gV2ViS2l0LXNpZGUgaW1wbGVtZW50YXRpb24gb2YgU2VsZWN0aW9uT3ZlcmxheQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc2MDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXZlcmFnZSB0aGUgbmV3
IFdlYk92ZXJsYXkgQVBJIHRvIG1vdmUgU2VsZWN0aW9uT3ZlcmxheSB0byB0aGUgV2ViS2l0Cisg
ICAgICAgIGxpYnJhcnksIHNvIHdlIGFsd2F5cyBkcmF3IHNlbGVjdGlvbiByZWdhcmRsZXNzIG9m
IHdoaWNoIGVtYmVkZGVyIGlzCisgICAgICAgIGludGVncmF0aW5nIFdlYktpdC4KKworICAgICAg
ICBQUiAjMTYwMjYzCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjppbml0KToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViUGFnZTo6c2VsZWN0aW9uT3ZlcmxheSk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAqIEFwaS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBB
cGkvV2ViU2VsZWN0aW9uT3ZlcmxheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0aW9uUG9zaXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlv
bk92ZXJsYXk6OlNlbGVjdGlvbk92ZXJsYXkpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpTZWxlY3Rpb25PdmVybGF5Ojp+U2VsZWN0aW9uT3ZlcmxheSk6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6OmRyYXcpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5OjpoaWRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6U2VsZWN0aW9uT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uT3ZlcmxheTo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFNlbGVjdGlvbk92ZXJsYXkpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5OjpjcmVhdGUpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uT3ZlcmxheTo6c2hvd0RlYnVn
Qm9yZGVycyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6
OnNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVj
dGlvbk92ZXJsYXk6OmNvbnRlbnRzVmlzaWJsZSk6CisKKzIwMTItMDUtMjcgIEFydmlkIE5pbHNz
b24gIDxhbmlsc3NvbkByaW0uY29tPgorCiAgICAgICAgIFtCbGFja0JlcnJ5XSBNYWtlIERlZmF1
bHRUYXBIaWdobGlnaHQgdXNlIHRoZSBuZXcgV2ViT3ZlcmxheSBBUEkKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjA0CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggMmZkM2VkY2ZlZWY5NzI4ZTg0N2RhYjgxNjI0OWQ1
MTA0NWY5NDNiMC4uMjBmNTYxOTQzNmY4N2VhNzQyMDU3YTA2MDA5NWIxZmM0MGE0NmVhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTkwLDYgKzkwLDcgQEAgTElT
VChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9SZW5kZXJRdWV1ZS5j
cHAKICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKyAg
ICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAKICAgICBibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L1RvdWNoRXZlbnRIYW5kbGVyLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9GYXRGaW5nZXJzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKaW5kZXggNzQ2ODFkZWFiYjM5MzNhZmMxZmQyMjk2NWZjZGFkYTA4NWVlN2Q3OS4uN2U1ODdh
YjdlOTcyM2U1NGE2NDJiOWI2NTJjNTgwN2I5NjlkMGFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiRGF0YWJh
c2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZVN5bmMuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNr
ZXIuaCIKKyNpbmNsdWRlICJEZWZhdWx0VGFwSGlnaGxpZ2h0LmgiCiAjaW5jbHVkZSAiRGV2aWNl
TW90aW9uQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRCbGFja0JlcnJ5LmgiCkBAIC0x
MDAsNiArMTAxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNjcm9s
bFR5cGVzLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1ZGUgIlNlbGVj
dGlvbk92ZXJsYXkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0b3JhZ2Uu
aCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCkBAIC0xMzQsNyArMTM2LDYgQEAKICNl
bmRpZgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIkRlZmF1
bHRUYXBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJGcmFtZUxheWVycy5oIgogI2luY2x1ZGUgIldl
YlBhZ2VDb21wb3NpdG9yX3AuaCIKICNlbmRpZgpAQCAtNTA5LDYgKzUxMCw3IEBAIHZvaWQgV2Vi
UGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1lKQogCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1fdGFwSGlnaGxpZ2h0ID0gRGVmYXVs
dFRhcEhpZ2hsaWdodDo6Y3JlYXRlKHRoaXMpOworICAgIG1fc2VsZWN0aW9uT3ZlcmxheSA9IFNl
bGVjdGlvbk92ZXJsYXk6OmNyZWF0ZSh0aGlzKTsKICNlbmRpZgogCiAgICAgLy8gRklYTUU6IFdl
IGV4cGxpY2l0bHkgY2FsbCBzZXREZWxlZ2F0ZSgpIGluc3RlYWQgb2YgcGFzc2luZyBvdXJzZWxm
IGluIGNyZWF0ZUZyb21TdGFuZGFyZFNldHRpbmdzKCkKQEAgLTYyMDIsNiArNjIwNCwxMSBAQCB2
b2lkIFdlYlBhZ2U6OnNldFRhcEhpZ2hsaWdodChXZWJUYXBIaWdobGlnaHQqIHRhcEhpZ2hsaWdo
dCkKICAgICBkLT5tX3RhcEhpZ2hsaWdodCA9IGFkb3B0UHRyKHRhcEhpZ2hsaWdodCk7CiB9CiAK
K1dlYlNlbGVjdGlvbk92ZXJsYXkqIFdlYlBhZ2U6OnNlbGVjdGlvbk92ZXJsYXkoKSBjb25zdAor
eworICAgIHJldHVybiBkLT5tX3NlbGVjdGlvbk92ZXJsYXkuZ2V0KCk7Cit9CisKIHZvaWQgV2Vi
UGFnZTo6YWRkT3ZlcmxheShXZWJPdmVybGF5KiBvdmVybGF5KQogewogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKaW5k
ZXggN2YxMzU5NGJmY2U2MDg0ZWY3OWZmNjI0Yjk4OTM4MWQxZmI0OTFlZS4uYjI1NWNjNDkxMmFk
MWFkNmFmNDFlNzJlNGQzZDAwYjQyMmYwN2E2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmgKQEAgLTY3LDYgKzY3LDcgQEAgY2xhc3MgV2ViUGFnZUNsaWVudDsKIGNsYXNz
IFdlYlBhZ2VDb21wb3NpdG9yOwogY2xhc3MgV2ViUGFnZUdyb3VwTG9hZERlZmVycmVyOwogY2xh
c3MgV2ViUGFnZVByaXZhdGU7CitjbGFzcyBXZWJTZWxlY3Rpb25PdmVybGF5OwogY2xhc3MgV2Vi
U2V0dGluZ3M7CiBjbGFzcyBXZWJUYXBIaWdobGlnaHQ7CiBjbGFzcyBXZWJWaWV3cG9ydEFyZ3Vt
ZW50czsKQEAgLTMzOSw2ICszNDAsOCBAQCBwdWJsaWM6CiAgICAgV2ViVGFwSGlnaGxpZ2h0KiB0
YXBIaWdobGlnaHQoKSBjb25zdDsKICAgICB2b2lkIHNldFRhcEhpZ2hsaWdodChXZWJUYXBIaWdo
bGlnaHQqKTsKIAorICAgIFdlYlNlbGVjdGlvbk92ZXJsYXkqIHNlbGVjdGlvbk92ZXJsYXkoKSBj
b25zdDsKKwogICAgIC8vIEFkZHMgYW4gb3ZlcmxheSB0aGF0IGNhbiBiZSBtb2RpZmllZCBvbiB0
aGUgV2ViS2l0IHRocmVhZCwgYW5kCiAgICAgLy8gd2hvc2UgYXR0cmlidXRlcyBjYW4gYmUgb3Zl
cnJpZGRlbiBvbiB0aGUgY29tcG9zaXRpbmcgdGhyZWFkCiAgICAgdm9pZCBhZGRPdmVybGF5KFdl
Yk92ZXJsYXkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4
IDlmZmYyMDFjMzFlZDRjZjU1OTc4MmNlNjY3MWNmZjAzODI0ZTAxMzcuLjY0MzgwZDY3ZTVjNzli
OTZlY2E4MjlmMGVhYjc3YTBlMDU1MGQzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlX3AuaApAQCAtNDMyLDYgKzQzMiw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2Vi
Q29yZTo6Tm9kZT4gbV9jdXJyZW50Q29udGV4dE5vZGU7CiAgICAgV2ViU2V0dGluZ3MqIG1fd2Vi
U2V0dGluZ3M7CiAgICAgT3duUHRyPFdlYlRhcEhpZ2hsaWdodD4gbV90YXBIaWdobGlnaHQ7Cisg
ICAgT3duUHRyPFdlYlNlbGVjdGlvbk92ZXJsYXk+IG1fc2VsZWN0aW9uT3ZlcmxheTsKIAogI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIE93blB0cjxXZWJDb3JlOjpKYXZhU2Ny
aXB0RGVidWdnZXJCbGFja0JlcnJ5PiBtX3NjcmlwdERlYnVnZ2VyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZWxlY3Rpb25PdmVybGF5LmggYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlNlbGVjdGlvbk92ZXJsYXkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ODU4ZWRmNzExMWRlYmU5MGY1N2RiMWRiNTJmYWMxNWQwYTUzYWUxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZWxlY3Rpb25PdmVybGF5LmgKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aWZuZGVmIFdlYlNlbGVjdGlvbk92ZXJsYXlfaAorI2RlZmluZSBXZWJTZWxlY3Rpb25PdmVybGF5
X2gKKworI2luY2x1ZGUgIkJsYWNrQmVycnlHbG9iYWwuaCIKKworI2luY2x1ZGUgPEJsYWNrQmVy
cnlQbGF0Zm9ybUludFJlY3RSZWdpb24uaD4KKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEJMQUNLQkVSUllfRVhQT1JUIFdlYlNlbGVjdGlvbk92
ZXJsYXkgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYlNlbGVjdGlvbk92ZXJsYXkoKSB7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBkcmF3KGNvbnN0IFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Cit9IC8vIG5hbWVzcGFjZSBCbGFja0JlcnJ5CisKKyNlbmRpZiAvLyBXZWJTZWxlY3Rp
b25PdmVybGF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggZGE0M2YyY2E0YWQ3MGMyODEw
N2FiYTIzZjg0YjE1Mzk5YjA4MDI1MC4uNTFjOWI3MmMzNjlkMjFkYjFjOGU2NzQwZjNlNzllM2Ew
ZGJiZGFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJUb3VjaEV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJQYWdlX3AuaCIKKyNpbmNsdWRlICJXZWJTZWxlY3Rpb25PdmVybGF5LmgiCiAK
ICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgInZpc2libGVfdW5pdHMuaCIKQEAg
LTkyNCw2ICs5MjUsOCBAQCB2b2lkIFNlbGVjdGlvbkhhbmRsZXI6OnNlbGVjdGlvblBvc2l0aW9u
Q2hhbmdlZChib29sIHZpc3VhbENoYW5nZU9ubHkpCiAgICAgREVCVUdfU0VMRUNUSU9OKEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpMb2dMZXZlbEluZm8sICJTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3Rp
b25Qb3NpdGlvbkNoYW5nZWQgU3RhcnQgUmVjdD0oJWQsICVkKSAoJWQgeCAlZCkgRW5kIFJlY3Q9
KCVkLCAlZCkgKCVkIHggJWQpIiwKICAgICAgICAgICAgICAgICAgICAgc3RhcnRDYXJldC54KCks
IHN0YXJ0Q2FyZXQueSgpLCBzdGFydENhcmV0LndpZHRoKCksIHN0YXJ0Q2FyZXQuaGVpZ2h0KCks
IGVuZENhcmV0LngoKSwgZW5kQ2FyZXQueSgpLCBlbmRDYXJldC53aWR0aCgpLCBlbmRDYXJldC5o
ZWlnaHQoKSk7CiAKKyAgICBpZiAobV93ZWJQYWdlLT5tX3NlbGVjdGlvbk92ZXJsYXkpCisgICAg
ICAgIG1fd2ViUGFnZS0+bV9zZWxlY3Rpb25PdmVybGF5LT5kcmF3KHZpc2libGVTZWxlY3Rpb25S
ZWdpb24pOwogCiAgICAgbV93ZWJQYWdlLT5tX2NsaWVudC0+bm90aWZ5U2VsZWN0aW9uRGV0YWls
c0NoYW5nZWQoc3RhcnRDYXJldCwgZW5kQ2FyZXQsIHZpc2libGVTZWxlY3Rpb25SZWdpb24sIGlu
cHV0Tm9kZU92ZXJyaWRlc1RvdWNoKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41Njk3ZWY2YWI3YTE4YWIwMjAwNzgyYmU3NGY2NTJhMzk0OGM5MDI3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9u
T3ZlcmxheS5jcHAKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorCisjaW5jbHVkZSAiU2VsZWN0aW9uT3ZlcmxheS5oIgorCisjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiUGF0aC5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtQ29udGV4dFNraWEuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIldl
YlBhZ2VfcC5oIgorCisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtTWVzc2FnZUNsaWVudC5o
PgorI2luY2x1ZGUgPFNrQ29ybmVyUGF0aEVmZmVjdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Nl
bGVjdGlvbk92ZXJsYXk6OlNlbGVjdGlvbk92ZXJsYXkoV2ViUGFnZVByaXZhdGUqIHBhZ2UpCisg
ICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworU2VsZWN0aW9uT3ZlcmxheTo6flNlbGVjdGlvbk92
ZXJsYXkoKQoreworfQorCit2b2lkIFNlbGVjdGlvbk92ZXJsYXk6OmRyYXcoY29uc3QgUGxhdGZv
cm06OkludFJlY3RSZWdpb24mIHJlZ2lvbikKK3sKKyAgICBBU1NFUlQoQmxhY2tCZXJyeTo6UGxh
dGZvcm06OndlYktpdFRocmVhZE1lc3NhZ2VDbGllbnQoKS0+aXNDdXJyZW50VGhyZWFkKCkpOwor
CisgICAgbV9yZWdpb24gPSByZWdpb247CisgICAgRmxvYXRSZWN0IHJlY3QgPSBJbnRSZWN0KG1f
cmVnaW9uLmV4dGVudHMoKSk7CisgICAgaWYgKHJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgIGhp
ZGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9vdmVybGF5KQorICAg
ICAgICBtX292ZXJsYXkgPSBhZG9wdFB0cihuZXcgV2ViT3ZlcmxheSh0aGlzKSk7CisKKyAgICBt
X3BhZ2UtPm1fd2ViUGFnZS0+YWRkT3ZlcmxheShtX292ZXJsYXkuZ2V0KCkpOworICAgIG1fb3Zl
cmxheS0+cmVzZXRPdmVycmlkZXMoKTsKKyAgICBtX292ZXJsYXktPnNldFBvc2l0aW9uKHJlY3Qu
bG9jYXRpb24oKSk7CisgICAgbV9vdmVybGF5LT5zZXRTaXplKHJlY3Quc2l6ZSgpKTsKKyAgICBt
X292ZXJsYXktPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICBtX292ZXJsYXktPnNldE9wYWNp
dHkoMS4wKTsKKyAgICBtX292ZXJsYXktPmludmFsaWRhdGUoKTsKK30KKwordm9pZCBTZWxlY3Rp
b25PdmVybGF5OjpoaWRlKCkKK3sKKyAgICBpZiAoIW1fb3ZlcmxheSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gTm9ybWFsbHksIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0aGUgV2ViS2l0
IHRocmVhZCwgYnV0IGl0IGNhbiBhbHNvIGJlCisgICAgLy8gY2FsbGVkIGZyb20gdGhlIGNvbXBv
c2l0aW5nIHRocmVhZC4KKyAgICBpZiAoQmxhY2tCZXJyeTo6UGxhdGZvcm06OndlYktpdFRocmVh
ZE1lc3NhZ2VDbGllbnQoKS0+aXNDdXJyZW50VGhyZWFkKCkpCisgICAgICAgIG1fcGFnZS0+bV93
ZWJQYWdlLT5yZW1vdmVPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSk7CisgICAgZWxzZSBpZiAoQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OnVzZXJJbnRlcmZhY2VUaHJlYWRNZXNzYWdlQ2xpZW50KCktPmlz
Q3VycmVudFRocmVhZCgpKQorICAgICAgICBtX292ZXJsYXktPm92ZXJyaWRlKCktPnNldE9wYWNp
dHkoMCk7Cit9CisKK3ZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKQoreworICAgIG1fcGFnZS0+c2NoZWR1bGVSb290TGF5ZXJDb21t
aXQoKTsKK30KKwordm9pZCBTZWxlY3Rpb25PdmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGMsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApCit7CisgICAgc3RkOjp2ZWN0b3I8UGxhdGZvcm06
OkludFJlY3Q+IHJlY3RzID0gbV9yZWdpb24ucmVjdHMoKTsKKyAgICBQbGF0Zm9ybTo6SW50UmVj
dCByZWN0ID0gbV9yZWdpb24uZXh0ZW50cygpOworICAgIFNrUmVnaW9uIHdpbmRvd1JlZ2lvbjsK
KworICAgIHVuc2lnbmVkIHJlY3RDb3VudCA9IG1fcmVnaW9uLm51bVJlY3RzKCk7CisgICAgaWYg
KCFyZWN0Q291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIEludFJlY3QgY2xpcChpbkNsaXAp
OworICAgIGNsaXAubW92ZShyZWN0LngoKSwgcmVjdC55KCkpOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCByZWN0Q291bnQ7ICsraSkgeworICAgICAgICBJbnRSZWN0IHJlY3RUb1BhaW50
ID0gcmVjdHNbaV07CisgICAgICAgIHJlY3RUb1BhaW50LmludGVyc2VjdChjbGlwKTsKKyAgICAg
ICAgU2tJUmVjdCByID0gU2tJUmVjdDo6TWFrZVhZV0gocmVjdFRvUGFpbnQueCgpLCByZWN0VG9Q
YWludC55KCksIHJlY3RUb1BhaW50LndpZHRoKCksIHJlY3RUb1BhaW50LmhlaWdodCgpKTsKKyAg
ICAgICAgd2luZG93UmVnaW9uLm9wKHIsIFNrUmVnaW9uOjprVW5pb25fT3ApOworICAgIH0KKwor
ICAgIFNrUGF0aCBwYXRoVG9QYWludDsKKyAgICB3aW5kb3dSZWdpb24uZ2V0Qm91bmRhcnlQYXRo
KCZwYXRoVG9QYWludCk7CisKKyAgICBQYXRoIHBhdGgocGF0aFRvUGFpbnQpOworICAgIGMuc2F2
ZSgpOworICAgIGMudHJhbnNsYXRlKC1yZWN0LngoKSwgLXJlY3QueSgpKTsKKworICAgIC8vIERy
YXcgc2VsZWN0aW9uIG92ZXJsYXkKKyAgICBDb2xvciBjb2xvciA9IFJlbmRlclRoZW1lOjpkZWZh
dWx0VGhlbWUoKS0+YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CisgICAgYy5zZXRG
aWxsQ29sb3IoY29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIGMuZmlsbFBhdGgocGF0
aCk7CisKKyAgICBjLnJlc3RvcmUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8v
IG5hbWVzcGFjZSBCbGFja0JlcnJ5CisKKyNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9TZWxlY3Rpb25PdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFkMTU5ZjEwZDJkYjBlZGQzOGJi
NTEyOTY1NWUwNDcyMTJjNzRjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaApAQCAtMCwwICsxLDc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgU2VsZWN0
aW9uT3ZlcmxheV9oCisjZGVmaW5lIFNlbGVjdGlvbk92ZXJsYXlfaAorCisjaW5jbHVkZSAiQmxh
Y2tCZXJyeUdsb2JhbC5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisj
aW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2xpZW50LmgiCisjaW5j
bHVkZSAiV2ViT3ZlcmxheS5oIgorI2luY2x1ZGUgIldlYlNlbGVjdGlvbk92ZXJsYXkuaCIKKwor
I2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUludFJlY3RSZWdpb24uaD4KKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIEJs
YWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcml2YXRlOwor
CitjbGFzcyBTZWxlY3Rpb25PdmVybGF5IDogcHVibGljIFdlYlNlbGVjdGlvbk92ZXJsYXksIHB1
YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc093blB0cjxTZWxlY3Rpb25PdmVybGF5PiBjcmVhdGUoV2ViUGFnZVByaXZhdGUqIHBhZ2Up
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNlbGVjdGlvbk92ZXJsYXkocGFn
ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwgflNlbGVjdGlvbk92ZXJsYXkoKTsKKworICAgIHZp
cnR1YWwgdm9pZCBkcmF3KGNvbnN0IFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uJik7CisgICAgdmly
dHVhbCB2b2lkIGhpZGUoKTsKKworICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiwgZG91YmxlIHRpbWUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWly
ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgaW5DbGlwKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVy
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjb250
ZW50c1Zpc2libGUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKworcHJpdmF0
ZToKKyAgICBTZWxlY3Rpb25PdmVybGF5KFdlYlBhZ2VQcml2YXRlKik7CisKKyAgICBXZWJQYWdl
UHJpdmF0ZSogbV9wYWdlOworICAgIE93blB0cjxXZWJPdmVybGF5PiBtX292ZXJsYXk7CisgICAg
QmxhY2tCZXJyeTo6UGxhdGZvcm06OkludFJlY3RSZWdpb24gbV9yZWdpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKK30gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKKworI2VuZGlmIC8v
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2VuZGlmIC8vIFNlbGVjdGlvbk92ZXJs
YXlfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144400</attachid>
            <date>2012-05-28 14:51:17 -0700</date>
            <delta_ts>2012-05-29 09:06:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87605-20120528235116.patch</filename>
            <type>text/plain</type>
            <size>16503</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMwMTY5MThlYjBlZTgyNjNl
NTVmMWQ5MzA1MDc4NTZjM2ZkMDIzYjAuLjdlYTFiYTc2MWZiZTdkMmMwNjBmOTUwOGQxZjg3ZWMx
N2Y2ODgxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTItMDUtMjcgIEFydmlkIE5p
bHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCisgICAgICAgIFtCbGFja0JlcnJ5XSBXZWJLaXQt
c2lkZSBpbXBsZW1lbnRhdGlvbiBvZiBTZWxlY3Rpb25PdmVybGF5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzYwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTZWxlY3Rpb25PdmVybGF5IHRvIHRo
ZSBidWlsZCBzeXN0ZW0uCisKKyAgICAgICAgUFIgIzE2MDI2MworCisgICAgICAgICogUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlOgorCisyMDEyLTA1LTI3ICBBcnZpZCBOaWxzc29uICA8YW5pbHNz
b25AcmltLmNvbT4KKwogICAgICAgICBbQmxhY2tCZXJyeV0gV2ViT3ZlcmxheSBBUEkKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjAzCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDExZGZkZmEzZDk1NWM0NzAxNDgyMGZjMzVhZDdj
NmNhMzgwNDRjZDQuLjVhYmZjNDA3YjE4YWE3MWIzMjFiNzZkZTg1MDY4ZTQ1ZTg2NDFhZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDEyLTA1LTI3
ICBBcnZpZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAorICAgICAgICBbQmxhY2tCZXJy
eV0gV2ViS2l0LXNpZGUgaW1wbGVtZW50YXRpb24gb2YgU2VsZWN0aW9uT3ZlcmxheQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc2MDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXZlcmFnZSB0aGUgbmV3
IFdlYk92ZXJsYXkgQVBJIHRvIG1vdmUgU2VsZWN0aW9uT3ZlcmxheSB0byB0aGUgV2ViS2l0Cisg
ICAgICAgIGxpYnJhcnksIHNvIHdlIGFsd2F5cyBkcmF3IHNlbGVjdGlvbiByZWdhcmRsZXNzIG9m
IHdoaWNoIGVtYmVkZGVyIGlzCisgICAgICAgIGludGVncmF0aW5nIFdlYktpdC4KKworICAgICAg
ICBQUiAjMTYwMjYzCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjppbml0KToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViUGFnZTo6c2VsZWN0aW9uT3ZlcmxheSk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAqIEFwaS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IEFwaS9XZWJQYWdlX3AuaDoKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBB
cGkvV2ViU2VsZWN0aW9uT3ZlcmxheS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6U2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0aW9uUG9zaXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlv
bk92ZXJsYXk6OlNlbGVjdGlvbk92ZXJsYXkpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpTZWxlY3Rpb25PdmVybGF5Ojp+U2VsZWN0aW9uT3ZlcmxheSk6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6OmRyYXcpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5OjpoaWRlKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6U2VsZWN0aW9uT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uT3ZlcmxheTo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFNlbGVjdGlvbk92ZXJsYXkpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5OjpjcmVhdGUpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uT3ZlcmxheTo6c2hvd0RlYnVn
Qm9yZGVycyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJsYXk6
OnNob3dSZXBhaW50Q291bnRlcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVj
dGlvbk92ZXJsYXk6OmNvbnRlbnRzVmlzaWJsZSk6CisKKzIwMTItMDUtMjcgIEFydmlkIE5pbHNz
b24gIDxhbmlsc3NvbkByaW0uY29tPgorCiAgICAgICAgIFtCbGFja0JlcnJ5XSBNYWtlIERlZmF1
bHRUYXBIaWdobGlnaHQgdXNlIHRoZSBuZXcgV2ViT3ZlcmxheSBBUEkKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjA0CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggMmZkM2VkY2ZlZWY5NzI4ZTg0N2RhYjgxNjI0OWQ1
MTA0NWY5NDNiMC4uMjBmNTYxOTQzNmY4N2VhNzQyMDU3YTA2MDA5NWIxZmM0MGE0NmVhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTkwLDYgKzkwLDcgQEAgTElT
VChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9SZW5kZXJRdWV1ZS5j
cHAKICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uSGFuZGxlci5jcHAKKyAg
ICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAKICAgICBibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L1RvdWNoRXZlbnRIYW5kbGVyLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9GYXRGaW5nZXJzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKaW5kZXggNzQ2ODFkZWFiYjM5MzNhZmMxZmQyMjk2NWZjZGFkYTA4NWVlN2Q3OS4uN2U1ODdh
YjdlOTcyM2U1NGE2NDJiOWI2NTJjNTgwN2I5NjlkMGFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiRGF0YWJh
c2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZVN5bmMuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNr
ZXIuaCIKKyNpbmNsdWRlICJEZWZhdWx0VGFwSGlnaGxpZ2h0LmgiCiAjaW5jbHVkZSAiRGV2aWNl
TW90aW9uQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnRCbGFja0JlcnJ5LmgiCkBAIC0x
MDAsNiArMTAxLDcgQEAKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNjcm9s
bFR5cGVzLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1ZGUgIlNlbGVj
dGlvbk92ZXJsYXkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0b3JhZ2Uu
aCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCkBAIC0xMzQsNyArMTM2LDYgQEAKICNl
bmRpZgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIkRlZmF1
bHRUYXBIaWdobGlnaHQuaCIKICNpbmNsdWRlICJGcmFtZUxheWVycy5oIgogI2luY2x1ZGUgIldl
YlBhZ2VDb21wb3NpdG9yX3AuaCIKICNlbmRpZgpAQCAtNTA5LDYgKzUxMCw3IEBAIHZvaWQgV2Vi
UGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1lKQogCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1fdGFwSGlnaGxpZ2h0ID0gRGVmYXVs
dFRhcEhpZ2hsaWdodDo6Y3JlYXRlKHRoaXMpOworICAgIG1fc2VsZWN0aW9uT3ZlcmxheSA9IFNl
bGVjdGlvbk92ZXJsYXk6OmNyZWF0ZSh0aGlzKTsKICNlbmRpZgogCiAgICAgLy8gRklYTUU6IFdl
IGV4cGxpY2l0bHkgY2FsbCBzZXREZWxlZ2F0ZSgpIGluc3RlYWQgb2YgcGFzc2luZyBvdXJzZWxm
IGluIGNyZWF0ZUZyb21TdGFuZGFyZFNldHRpbmdzKCkKQEAgLTYyMDIsNiArNjIwNCwxMSBAQCB2
b2lkIFdlYlBhZ2U6OnNldFRhcEhpZ2hsaWdodChXZWJUYXBIaWdobGlnaHQqIHRhcEhpZ2hsaWdo
dCkKICAgICBkLT5tX3RhcEhpZ2hsaWdodCA9IGFkb3B0UHRyKHRhcEhpZ2hsaWdodCk7CiB9CiAK
K1dlYlNlbGVjdGlvbk92ZXJsYXkqIFdlYlBhZ2U6OnNlbGVjdGlvbk92ZXJsYXkoKSBjb25zdAor
eworICAgIHJldHVybiBkLT5tX3NlbGVjdGlvbk92ZXJsYXkuZ2V0KCk7Cit9CisKIHZvaWQgV2Vi
UGFnZTo6YWRkT3ZlcmxheShXZWJPdmVybGF5KiBvdmVybGF5KQogewogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKaW5k
ZXggYTMyNzM1NzY2YjAxNjM2ZjI4ZWYzMjM3NmYzZTVlYjhjNTFkNGExMi4uYmNmMzg3ZjQzOThk
ZTRhMTRiZTkyM2E3ZTIxNWE1Y2JlZGM3Mzg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmgKQEAgLTY3LDYgKzY3LDcgQEAgY2xhc3MgV2ViUGFnZUNsaWVudDsKIGNsYXNz
IFdlYlBhZ2VDb21wb3NpdG9yOwogY2xhc3MgV2ViUGFnZUdyb3VwTG9hZERlZmVycmVyOwogY2xh
c3MgV2ViUGFnZVByaXZhdGU7CitjbGFzcyBXZWJTZWxlY3Rpb25PdmVybGF5OwogY2xhc3MgV2Vi
U2V0dGluZ3M7CiBjbGFzcyBXZWJUYXBIaWdobGlnaHQ7CiBjbGFzcyBXZWJWaWV3cG9ydEFyZ3Vt
ZW50czsKQEAgLTMzOSw2ICszNDAsOCBAQCBwdWJsaWM6CiAgICAgV2ViVGFwSGlnaGxpZ2h0KiB0
YXBIaWdobGlnaHQoKSBjb25zdDsKICAgICB2b2lkIHNldFRhcEhpZ2hsaWdodChXZWJUYXBIaWdo
bGlnaHQqKTsKIAorICAgIFdlYlNlbGVjdGlvbk92ZXJsYXkqIHNlbGVjdGlvbk92ZXJsYXkoKSBj
b25zdDsKKwogICAgIC8vIEFkZHMgYW4gb3ZlcmxheSB0aGF0IGNhbiBiZSBtb2RpZmllZCBvbiB0
aGUgV2ViS2l0IHRocmVhZCwgYW5kCiAgICAgLy8gd2hvc2UgYXR0cmlidXRlcyBjYW4gYmUgb3Zl
cnJpZGRlbiBvbiB0aGUgY29tcG9zaXRpbmcgdGhyZWFkLgogICAgIHZvaWQgYWRkT3ZlcmxheShX
ZWJPdmVybGF5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2VfcC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRl
eCA5ZmZmMjAxYzMxZWQ0Y2Y1NTk3ODJjZTY2NzFjZmYwMzgyNGUwMTM3Li42NDM4MGQ2N2U1Yzc5
Yjk2ZWNhODI5ZjBlYWI3N2EwZTA1NTBkM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZV9wLmgKQEAgLTQzMiw2ICs0MzIsNyBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdl
YkNvcmU6Ok5vZGU+IG1fY3VycmVudENvbnRleHROb2RlOwogICAgIFdlYlNldHRpbmdzKiBtX3dl
YlNldHRpbmdzOwogICAgIE93blB0cjxXZWJUYXBIaWdobGlnaHQ+IG1fdGFwSGlnaGxpZ2h0Owor
ICAgIE93blB0cjxXZWJTZWxlY3Rpb25PdmVybGF5PiBtX3NlbGVjdGlvbk92ZXJsYXk7CiAKICNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBPd25QdHI8V2ViQ29yZTo6SmF2YVNj
cmlwdERlYnVnZ2VyQmxhY2tCZXJyeT4gbV9zY3JpcHREZWJ1Z2dlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2VsZWN0aW9uT3ZlcmxheS5oIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJTZWxlY3Rpb25PdmVybGF5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTg1OGVkZjcxMTFkZWJlOTBmNTdkYjFkYjUyZmFjMTVkMGE1M2FlMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViU2VsZWN0aW9uT3ZlcmxheS5oCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
I2lmbmRlZiBXZWJTZWxlY3Rpb25PdmVybGF5X2gKKyNkZWZpbmUgV2ViU2VsZWN0aW9uT3Zlcmxh
eV9oCisKKyNpbmNsdWRlICJCbGFja0JlcnJ5R2xvYmFsLmgiCisKKyNpbmNsdWRlIDxCbGFja0Jl
cnJ5UGxhdGZvcm1JbnRSZWN0UmVnaW9uLmg+CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBCTEFDS0JFUlJZX0VYUE9SVCBXZWJTZWxlY3Rpb25P
dmVybGF5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJTZWxlY3Rpb25PdmVybGF5KCkgeyB9
CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhjb25zdCBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQorCisjZW5kaWYgLy8gV2ViU2VsZWN0
aW9uT3ZlcmxheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TZWxlY3Rpb25IYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IGRhNDNmMmNhNGFkNzBjMjgx
MDdhYmEyM2Y4NGIxNTM5OWIwODAyNTAuLjUxYzliNzJjMzY5ZDIxZGIxYzhlNjc0MGYzZTc5ZTNh
MGRiYmRhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L1NlbGVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiVG91Y2hFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViUGFnZV9wLmgiCisjaW5jbHVkZSAiV2ViU2VsZWN0aW9uT3ZlcmxheS5oIgog
CiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgiCkBA
IC05MjQsNiArOTI1LDggQEAgdm9pZCBTZWxlY3Rpb25IYW5kbGVyOjpzZWxlY3Rpb25Qb3NpdGlv
bkNoYW5nZWQoYm9vbCB2aXN1YWxDaGFuZ2VPbmx5KQogICAgIERFQlVHX1NFTEVDVElPTihCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6TG9nTGV2ZWxJbmZvLCAiU2VsZWN0aW9uSGFuZGxlcjo6c2VsZWN0
aW9uUG9zaXRpb25DaGFuZ2VkIFN0YXJ0IFJlY3Q9KCVkLCAlZCkgKCVkIHggJWQpIEVuZCBSZWN0
PSglZCwgJWQpICglZCB4ICVkKSIsCiAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q2FyZXQueCgp
LCBzdGFydENhcmV0LnkoKSwgc3RhcnRDYXJldC53aWR0aCgpLCBzdGFydENhcmV0LmhlaWdodCgp
LCBlbmRDYXJldC54KCksIGVuZENhcmV0LnkoKSwgZW5kQ2FyZXQud2lkdGgoKSwgZW5kQ2FyZXQu
aGVpZ2h0KCkpOwogCisgICAgaWYgKG1fd2ViUGFnZS0+bV9zZWxlY3Rpb25PdmVybGF5KQorICAg
ICAgICBtX3dlYlBhZ2UtPm1fc2VsZWN0aW9uT3ZlcmxheS0+ZHJhdyh2aXNpYmxlU2VsZWN0aW9u
UmVnaW9uKTsKIAogICAgIG1fd2ViUGFnZS0+bV9jbGllbnQtPm5vdGlmeVNlbGVjdGlvbkRldGFp
bHNDaGFuZ2VkKHN0YXJ0Q2FyZXQsIGVuZENhcmV0LCB2aXNpYmxlU2VsZWN0aW9uUmVnaW9uLCBp
bnB1dE5vZGVPdmVycmlkZXNUb3VjaCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuY3BwIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTQ4MGU4NDE1YzJiYmE3YzA4NzIwMTdhM2QyNmExMDE5NDcwNWExNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlv
bk92ZXJsYXkuY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKKworI2luY2x1ZGUgIlNlbGVjdGlvbk92ZXJsYXkuaCIKKworI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBhdGguaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUNvbnRleHRTa2lhLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlX3AuaCIKKworI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybU1lc3NhZ2VDbGllbnQu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsK
K25hbWVzcGFjZSBXZWJLaXQgeworCitTZWxlY3Rpb25PdmVybGF5OjpTZWxlY3Rpb25PdmVybGF5
KFdlYlBhZ2VQcml2YXRlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK1NlbGVj
dGlvbk92ZXJsYXk6On5TZWxlY3Rpb25PdmVybGF5KCkKK3sKK30KKwordm9pZCBTZWxlY3Rpb25P
dmVybGF5OjpkcmF3KGNvbnN0IFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uJiByZWdpb24pCit7Cisg
ICAgQVNTRVJUKEJsYWNrQmVycnk6OlBsYXRmb3JtOjp3ZWJLaXRUaHJlYWRNZXNzYWdlQ2xpZW50
KCktPmlzQ3VycmVudFRocmVhZCgpKTsKKworICAgIG1fcmVnaW9uID0gcmVnaW9uOworICAgIEZs
b2F0UmVjdCByZWN0ID0gSW50UmVjdChtX3JlZ2lvbi5leHRlbnRzKCkpOworICAgIGlmIChyZWN0
LmlzRW1wdHkoKSkgeworICAgICAgICBoaWRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoIW1fb3ZlcmxheSkKKyAgICAgICAgbV9vdmVybGF5ID0gYWRvcHRQdHIobmV3IFdl
Yk92ZXJsYXkodGhpcykpOworCisgICAgbV9wYWdlLT5tX3dlYlBhZ2UtPmFkZE92ZXJsYXkobV9v
dmVybGF5LmdldCgpKTsKKyAgICBtX292ZXJsYXktPnJlc2V0T3ZlcnJpZGVzKCk7CisgICAgbV9v
dmVybGF5LT5zZXRQb3NpdGlvbihyZWN0LmxvY2F0aW9uKCkpOworICAgIG1fb3ZlcmxheS0+c2V0
U2l6ZShyZWN0LnNpemUoKSk7CisgICAgbV9vdmVybGF5LT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7
CisgICAgbV9vdmVybGF5LT5zZXRPcGFjaXR5KDEuMCk7CisgICAgbV9vdmVybGF5LT5pbnZhbGlk
YXRlKCk7Cit9CisKK3ZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6aGlkZSgpCit7CisgICAgaWYgKCFt
X292ZXJsYXkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE5vcm1hbGx5LCB0aGlzIG1ldGhv
ZCBpcyBjYWxsZWQgb24gdGhlIFdlYktpdCB0aHJlYWQsIGJ1dCBpdCBjYW4gYWxzbyBiZQorICAg
IC8vIGNhbGxlZCBmcm9tIHRoZSBjb21wb3NpdGluZyB0aHJlYWQuCisgICAgaWYgKEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjp3ZWJLaXRUaHJlYWRNZXNzYWdlQ2xpZW50KCktPmlzQ3VycmVudFRocmVh
ZCgpKQorICAgICAgICBtX3BhZ2UtPm1fd2ViUGFnZS0+cmVtb3ZlT3ZlcmxheShtX292ZXJsYXku
Z2V0KCkpOworICAgIGVsc2UgaWYgKEJsYWNrQmVycnk6OlBsYXRmb3JtOjp1c2VySW50ZXJmYWNl
VGhyZWFkTWVzc2FnZUNsaWVudCgpLT5pc0N1cnJlbnRUaHJlYWQoKSkKKyAgICAgICAgbV9vdmVy
bGF5LT5vdmVycmlkZSgpLT5zZXRPcGFjaXR5KDApOworfQorCit2b2lkIFNlbGVjdGlvbk92ZXJs
YXk6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKK3sKKyAgICBtX3Bh
Z2UtPnNjaGVkdWxlUm9vdExheWVyQ29tbWl0KCk7Cit9CisKK3ZvaWQgU2VsZWN0aW9uT3Zlcmxh
eTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBj
LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgaW5DbGlwKQorewor
ICAgIHN0ZDo6dmVjdG9yPFBsYXRmb3JtOjpJbnRSZWN0PiByZWN0cyA9IG1fcmVnaW9uLnJlY3Rz
KCk7CisgICAgUGxhdGZvcm06OkludFJlY3QgcmVjdCA9IG1fcmVnaW9uLmV4dGVudHMoKTsKKyAg
ICBTa1JlZ2lvbiB3aW5kb3dSZWdpb247CisKKyAgICB1bnNpZ25lZCByZWN0Q291bnQgPSBtX3Jl
Z2lvbi5udW1SZWN0cygpOworICAgIGlmICghcmVjdENvdW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBJbnRSZWN0IGNsaXAoaW5DbGlwKTsKKyAgICBjbGlwLm1vdmUocmVjdC54KCksIHJlY3Qu
eSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjdENvdW50OyArK2kpIHsKKyAg
ICAgICAgSW50UmVjdCByZWN0VG9QYWludCA9IHJlY3RzW2ldOworICAgICAgICByZWN0VG9QYWlu
dC5pbnRlcnNlY3QoY2xpcCk7CisgICAgICAgIFNrSVJlY3QgciA9IFNrSVJlY3Q6Ok1ha2VYWVdI
KHJlY3RUb1BhaW50LngoKSwgcmVjdFRvUGFpbnQueSgpLCByZWN0VG9QYWludC53aWR0aCgpLCBy
ZWN0VG9QYWludC5oZWlnaHQoKSk7CisgICAgICAgIHdpbmRvd1JlZ2lvbi5vcChyLCBTa1JlZ2lv
bjo6a1VuaW9uX09wKTsKKyAgICB9CisKKyAgICBTa1BhdGggcGF0aFRvUGFpbnQ7CisgICAgd2lu
ZG93UmVnaW9uLmdldEJvdW5kYXJ5UGF0aCgmcGF0aFRvUGFpbnQpOworCisgICAgUGF0aCBwYXRo
KHBhdGhUb1BhaW50KTsKKyAgICBjLnNhdmUoKTsKKyAgICBjLnRyYW5zbGF0ZSgtcmVjdC54KCks
IC1yZWN0LnkoKSk7CisKKyAgICAvLyBEcmF3IHNlbGVjdGlvbiBvdmVybGF5CisgICAgQ29sb3Ig
Y29sb3IgPSBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPmFjdGl2ZVNlbGVjdGlvbkJhY2tn
cm91bmRDb2xvcigpOworICAgIGMuc2V0RmlsbENvbG9yKGNvbG9yLCBDb2xvclNwYWNlRGV2aWNl
UkdCKTsKKyAgICBjLmZpbGxQYXRoKHBhdGgpOworCisgICAgYy5yZXN0b3JlKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQorCisjZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFhZDE1OWYxMGQyZGIwZWRkMzhiYjUxMjk2NTVlMDQ3MjEyYzc0Y2MKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25P
dmVybGF5LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBV
U0EKKyAqLworCisjaWZuZGVmIFNlbGVjdGlvbk92ZXJsYXlfaAorI2RlZmluZSBTZWxlY3Rpb25P
dmVybGF5X2gKKworI2luY2x1ZGUgIkJsYWNrQmVycnlHbG9iYWwuaCIKKworI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKworI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllckNsaWVudC5oIgorI2luY2x1ZGUgIldlYk92ZXJsYXkuaCIKKyNpbmNsdWRlICJX
ZWJTZWxlY3Rpb25PdmVybGF5LmgiCisKKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1JbnRS
ZWN0UmVnaW9uLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlUHJpdmF0ZTsKKworY2xhc3MgU2VsZWN0aW9uT3ZlcmxheSA6IHB1Ymxp
YyBXZWJTZWxlY3Rpb25PdmVybGF5LCBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVu
dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8U2VsZWN0aW9uT3ZlcmxheT4gY3Jl
YXRlKFdlYlBhZ2VQcml2YXRlKiBwYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBTZWxlY3Rpb25PdmVybGF5KHBhZ2UpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5TZWxl
Y3Rpb25PdmVybGF5KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhjb25zdCBQbGF0Zm9ybTo6
SW50UmVjdFJlZ2lvbiYpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlKCk7CisKKyAgICAvLyBHcmFw
aGljc0xheWVyQ2xpZW50CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CisgICAgdmly
dHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291
bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgY29udGVudHNWaXNpYmxlKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb250ZW50UmVjdCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorCisKK3ByaXZhdGU6CisgICAgU2VsZWN0aW9uT3ZlcmxheShXZWJQYWdl
UHJpdmF0ZSopOworCisgICAgV2ViUGFnZVByaXZhdGUqIG1fcGFnZTsKKyAgICBPd25QdHI8V2Vi
T3ZlcmxheT4gbV9vdmVybGF5OworICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnRSZWN0UmVn
aW9uIG1fcmVnaW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8vIG5hbWVzcGFj
ZSBCbGFja0JlcnJ5CisKKyNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisK
KyNlbmRpZiAvLyBTZWxlY3Rpb25PdmVybGF5X2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>