<?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>77991</bug_id>
          
          <creation_ts>2012-02-07 08:27:04 -0800</creation_ts>
          <short_desc>[BlackBerry] Upstream DumpRenderTreeSupport</short_desc>
          <delta_ts>2012-02-07 14:52:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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>
          
          <blocked>73144</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rwlbuis</reporter>
          <assigned_to name="Rob Buis">rwlbuis</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551010</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-02-07 08:27:04 -0800</bug_when>
    <thetext>This is a helper class for DRT similar to DumpRenderTreeSupportQt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551048</commentid>
    <comment_count>1</comment_count>
      <attachid>125859</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-02-07 09:10:50 -0800</bug_when>
    <thetext>Created attachment 125859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551139</commentid>
    <comment_count>2</comment_count>
      <attachid>125859</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-07 11:05:38 -0800</bug_when>
    <thetext>Comment on attachment 125859
Patch

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

r+ with nits fixed.

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp:2
&gt; + * Copyright (C) 2011 Research In Motion Limited. All rights reserved.

2012

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp:100
&gt; +#else
&gt; +    return -1;

unused_param(webpage) here.

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp:110
&gt; +void DumpRenderTreeSupport::resetGeolocationMock(WebPage* webPage)
&gt; +{
&gt; +#if ENABLE(CLIENT_BASED_GEOLOCATION)
&gt; +    GeolocationClientMock* mockClient = toGeolocationClientMock(webPage-&gt;mainFrame()-&gt;page()-&gt;geolocationController()-&gt;client());
&gt; +    mockClient-&gt;reset();
&gt; +#endif
&gt; +}

ditto

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp:128
&gt; +void DumpRenderTreeSupport::setMockGeolocationError(WebPage* webPage, int errorCode, const String message)
&gt; +{
&gt; +#if ENABLE(CLIENT_BASED_GEOLOCATION)
&gt; +    GeolocationError::ErrorCode code = GeolocationError::PositionUnavailable;
&gt; +    switch (errorCode) {
&gt; +    case PositionError::PERMISSION_DENIED:
&gt; +        code = GeolocationError::PermissionDenied;
&gt; +        break;
&gt; +    case PositionError::POSITION_UNAVAILABLE:
&gt; +        code = GeolocationError::PositionUnavailable;
&gt; +        break;
&gt; +    }
&gt; +
&gt; +    GeolocationClientMock* mockClient = static_cast&lt;GeolocationClientMock*&gt;(webPage-&gt;mainFrame()-&gt;page()-&gt;geolocationController()-&gt;client());
&gt; +    mockClient-&gt;setError(GeolocationError::create(code, message));
&gt; +#endif
&gt; +}

ditto

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp:136
&gt; +void DumpRenderTreeSupport::setMockGeolocationPermission(WebPage* webPage, bool allowed)
&gt; +{
&gt; +#if ENABLE(CLIENT_BASED_GEOLOCATION)
&gt; +    GeolocationClientMock* mockClient = toGeolocationClientMock(webPage-&gt;mainFrame()-&gt;page()-&gt;geolocationController()-&gt;client());
&gt; +    mockClient-&gt;setPermission(allowed);
&gt; +#endif
&gt; +}

ditto, and everywhere else...

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.h:2
&gt; + * Copyright (C) 2011 Research In Motion Limited. All rights reserved.

2012

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.h:52
&gt; +    static int numberOfPendingGeolocationPermissionRequests(BlackBerry::WebKit::WebPage*);

no need for blackberry::webkit (?)

&gt; Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.h:53
&gt; +    static void resetGeolocationMock(BlackBerry::WebKit::WebPage*);

ditto and everyelse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551165</commentid>
    <comment_count>3</comment_count>
      <attachid>125882</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-02-07 11:28:07 -0800</bug_when>
    <thetext>Created attachment 125882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551422</commentid>
    <comment_count>4</comment_count>
      <attachid>125882</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 14:52:41 -0800</bug_when>
    <thetext>Comment on attachment 125882
Patch

Clearing flags on attachment: 125882

Committed r106993: &lt;http://trac.webkit.org/changeset/106993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551424</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-07 14:52:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125859</attachid>
            <date>2012-02-07 09:10:50 -0800</date>
            <delta_ts>2012-02-07 11:27:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77991-20120207121317.patch</filename>
            <type>text/plain</type>
            <size>11189</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ4NjE2MjNiNWYzMjA4NDc2
ZGNmMzE2N2RhYmI1NTA0N2M4OTc2OWUuLjNhZjc0NDViYjdlZDE3MzNiNWE1OWNmNzgzM2U2N2Uz
NGFjNDkyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDItMDcgIFJvYiBCdWlz
ICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gRHVtcFJl
bmRlclRyZWVTdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03Nzk5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIGZ1bmN0aW9uYWxpdGllcyBjaGFuZ2VkLCBubyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgKiBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcDog
QWRkZWQuCisgICAgICAgICh0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ6OkR1bXBSZW5kZXJUcmVlU3VwcG9ydCk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ6On5EdW1wUmVuZGVyVHJlZVN1cHBvcnQpOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0OjpqYXZhU2NyaXB0T2JqZWN0c0NvdW50KToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydDo6Z2FyYmFnZUNvbGxlY3RvckNvbGxlY3QpOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0OjpnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdE9uQWx0ZXJuYXRl
VGhyZWFkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TGlua3NJbmNsdWRl
ZEluRm9jdXNDaGFpbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmxpbmtzSW5j
bHVkZWRJbkZvY3VzQ2hhaW4pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpkdW1w
Q29uZmlndXJhdGlvbkZvclZpZXdwb3J0KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9y
dDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpyZXNldEdlb2xvY2F0aW9uTW9jayk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKToKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbik6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2NhbGVQYWdlQnkpOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0Ojpjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRl
ZEluZm8pOgorICAgICAgICAqIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXVEYpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0KToKKwogMjAx
Mi0wMi0wNiAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAg
ICAgW0JsYWNrQmVycnldIFVzZSBXZWJQYWdlUHJpdmF0ZSBpbnN0ZWFkIG9mIFdlYlBhZ2UgaW4g
R2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNiZTVlZTQ1MTg0Yzk0NDViMDdiZWM4NTUwYTBkOWIy
MWY5ZTQ0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKQEAgLTAsMCArMSwxNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydC5oIgorCisjaW5jbHVkZSAiQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvbkNsaWVudE1vY2suaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Q
b3NpdGlvbi5oIgorI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUg
IkpTRWxlbWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJWaWV3cG9ydEFyZ3Vt
ZW50cy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CisjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBCbGFja0JlcnJ5OjpXZWJL
aXQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK2Jv
b2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluID0gdHJ1
ZTsKKworI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCitHZW9sb2NhdGlvbkNs
aWVudE1vY2sqIHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKEdlb2xvY2F0aW9uQ2xpZW50KiBjbGll
bnQpCit7CisgICAgIEFTU0VSVChnZXRlbnYoImRydFJ1biIpKTsKKyAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KGNsaWVudCk7Cit9CisjZW5kaWYKKworRHVt
cFJlbmRlclRyZWVTdXBwb3J0OjpEdW1wUmVuZGVyVHJlZVN1cHBvcnQoKQoreworfQorCitEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ6On5EdW1wUmVuZGVyVHJlZVN1cHBvcnQoKQoreworfQorCitpbnQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0OjpqYXZhU2NyaXB0T2JqZWN0c0NvdW50KCkKK3sKKyAgICBy
ZXR1cm4gSlNET01XaW5kb3dCYXNlOjpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVhcC5nbG9iYWxP
YmplY3RDb3VudCgpOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6Z2FyYmFnZUNv
bGxlY3RvckNvbGxlY3QoKQoreworICAgIGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93
KCk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpnYXJiYWdlQ29sbGVjdG9yQ29s
bGVjdE9uQWx0ZXJuYXRlVGhyZWFkKGJvb2wgd2FpdFVudGlsRG9uZSkKK3sKKyAgICBnY0NvbnRy
b2xsZXIoKS5nYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVidWdnaW5nKHdhaXRV
bnRpbERvbmUpOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TGlua3NJbmNs
dWRlZEluRm9jdXNDaGFpbihib29sIGVuYWJsZWQpCit7CisgICAgc19saW5rc0luY2x1ZGVkSW5U
YWJDaGFpbiA9IGVuYWJsZWQ7Cit9CisKK2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpsaW5r
c0luY2x1ZGVkSW5Gb2N1c0NoYWluKCkKK3sKKyAgICByZXR1cm4gc19saW5rc0luY2x1ZGVkSW5U
YWJDaGFpbjsKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmR1bXBDb25maWd1cmF0
aW9uRm9yVmlld3BvcnQoRnJhbWUqIG1haW5GcmFtZSwgaW50IGRldmljZURQSSwgaW50IGRldmlj
ZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgYXZhaWxhYmxlV2lkdGgsIGludCBhdmFpbGFi
bGVIZWlnaHQpCit7CisgICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0gbWFpbkZyYW1l
LT5wYWdlKCktPnZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAgVmlld3BvcnRBdHRyaWJ1dGVzIGF0
dHJzID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIC8qIGRlZmF1bHQgbGF5
b3V0IHdpZHRoIGZvciBub24tbW9iaWxlIHBhZ2VzICovIDk4MCwgZGV2aWNlV2lkdGgsIGRldmlj
ZUhlaWdodCwgZGV2aWNlRFBJLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWln
aHQpKTsKKyAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJz
LCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsKKyAgICByZXN0cmlj
dFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRycyk7CisKKyAg
ICBmcHJpbnRmKHN0ZG91dCwgInZpZXdwb3J0IHNpemUgJWR4JWQgc2NhbGUgJWYgd2l0aCBsaW1p
dHMgWyVmLCAlZl0gYW5kIHVzZXJTY2FsYWJsZSAlZlxuIiwgYXR0cnMubGF5b3V0U2l6ZS53aWR0
aCgpLCBhdHRycy5sYXlvdXRTaXplLmhlaWdodCgpLCBhdHRycy5pbml0aWFsU2NhbGUsIGF0dHJz
Lm1pbmltdW1TY2FsZSwgYXR0cnMubWF4aW11bVNjYWxlLCBhdHRycy51c2VyU2NhbGFibGUpOwor
fQorCitpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cyhXZWJQYWdlKiB3ZWJQYWdlKQoreworI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xp
ZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2sod2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2Uo
KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKKyAgICByZXR1cm4gbW9ja0Ns
aWVudC0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKCk7CisjZWxzZQorICAgIHJl
dHVybiAtMTsKKyNlbmRpZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRH
ZW9sb2NhdGlvbk1vY2soV2ViUGFnZSogd2ViUGFnZSkKK3sKKyNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9
IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKHdlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlKCktPmdl
b2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CisgICAgbW9ja0NsaWVudC0+cmVzZXQo
KTsKKyNlbmRpZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xv
Y2F0aW9uRXJyb3IoV2ViUGFnZSogd2ViUGFnZSwgaW50IGVycm9yQ29kZSwgY29uc3QgU3RyaW5n
IG1lc3NhZ2UpCit7CisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBH
ZW9sb2NhdGlvbkVycm9yOjpFcnJvckNvZGUgY29kZSA9IEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0
aW9uVW5hdmFpbGFibGU7CisgICAgc3dpdGNoIChlcnJvckNvZGUpIHsKKyAgICBjYXNlIFBvc2l0
aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVEOgorICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25F
cnJvcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQb3NpdGlv
bkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRToKKyAgICAgICAgY29kZSA9IEdlb2xvY2F0aW9u
RXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGU7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHN0YXRpY19jYXN0PEdlb2xvY2F0
aW9uQ2xpZW50TW9jayo+KHdlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlKCktPmdlb2xvY2F0aW9u
Q29udHJvbGxlcigpLT5jbGllbnQoKSk7CisgICAgbW9ja0NsaWVudC0+c2V0RXJyb3IoR2VvbG9j
YXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIG1lc3NhZ2UpKTsKKyNlbmRpZgorfQorCit2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdl
KiB3ZWJQYWdlLCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKKyAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xv
Y2F0aW9uQ2xpZW50TW9jayh3ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZSgpLT5nZW9sb2NhdGlv
bkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOworICAgIG1vY2tDbGllbnQtPnNldFBlcm1pc3Npb24o
YWxsb3dlZCk7CisjZW5kaWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYlBhZ2UqIHdlYlBhZ2UsIGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQoreworI2lmIEVOQUJMRShDTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pCisgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50
ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2sod2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2UoKS0+
Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKKyAgICBtb2NrQ2xpZW50LT5zZXRQ
b3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpKTsKKyNlbmRpZgorfQorCit2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydDo6c2NhbGVQYWdlQnkoV2ViUGFnZSogd2ViUGFnZSwgZmxvYXQgc2NhbGVGYWN0
b3IsIGZsb2F0IHgsIGZsb2F0IHkpCit7CisgICAgd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2Uo
KS0+c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7Cit9CisK
K0pTVmFsdWVSZWYgRHVtcFJlbmRlclRyZWVTdXBwb3J0Ojpjb21wdXRlZFN0eWxlSW5jbHVkaW5n
VmlzaXRlZEluZm8oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCit7Cisg
ICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKKyAgICBFeGVjU3RhdGUqIGV4
ZWMgPSB0b0pTKGNvbnRleHQpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICBKU1ZhbHVlIGpzVmFsdWUgPSB0b0pTKGV4
ZWMsIHZhbHVlKTsKKyAgICBpZiAoIWpzVmFsdWUuaW5oZXJpdHMoJkpTRWxlbWVudDo6c19pbmZv
KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIEpT
RWxlbWVudCoganNFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SlNFbGVtZW50Kj4oYXNPYmplY3QoanNW
YWx1ZSkpOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBqc0VsZW1lbnQtPmltcGwoKTsKKyAgICBS
ZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSA9IGNvbXB1dGVkU3R5bGUo
ZWxlbWVudCwgdHJ1ZSk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywganNFbGVt
ZW50LT5nbG9iYWxPYmplY3QoKSwgc3R5bGUuZ2V0KCkpKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjM3ZjZiOGQ2NzI0Y2ZkZGI3ODVjNWQwMjNhOGY2NjFj
NWUwODAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIER1bXBSZW5kZXJUcmVl
U3VwcG9ydF9oCisjZGVmaW5lIER1bXBSZW5kZXJUcmVlU3VwcG9ydF9oCisKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7Citu
YW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2U7Cit9Cit9CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIEZyYW1lOworfQorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFN0cmluZzsK
K30KKworY2xhc3MgRHVtcFJlbmRlclRyZWVTdXBwb3J0IHsKK3B1YmxpYzoKKyAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnQoKTsKKyAgICB+RHVtcFJlbmRlclRyZWVTdXBwb3J0KCk7CisKKyAgICBz
dGF0aWMgdm9pZCBzZXRMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKGJvb2wpOworICAgIHN0YXRp
YyBib29sIGxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oKTsKKworICAgIHN0YXRpYyBpbnQgamF2
YVNjcmlwdE9iamVjdHNDb3VudCgpOworICAgIHN0YXRpYyB2b2lkIGdhcmJhZ2VDb2xsZWN0b3JD
b2xsZWN0KCk7CisgICAgc3RhdGljIHZvaWQgZ2FyYmFnZUNvbGxlY3RvckNvbGxlY3RPbkFsdGVy
bmF0ZVRocmVhZChib29sIHdhaXRVbnRpbERvbmUpOworCisgICAgc3RhdGljIHZvaWQgZHVtcENv
bmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChXZWJDb3JlOjpGcmFtZSogbWFpbkZyYW1lLCBpbnQgZGV2
aWNlRFBJLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBhdmFpbGFibGVX
aWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCk7CisKKyAgICBzdGF0aWMgaW50IG51bWJlck9mUGVu
ZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
UGFnZSopOworICAgIHN0YXRpYyB2b2lkIHJlc2V0R2VvbG9jYXRpb25Nb2NrKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZSopOworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZSosIGludCBlcnJvckNvZGUsIGNvbnN0IFdU
Rjo6U3RyaW5nIG1lc3NhZ2UpOworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBl
cm1pc3Npb24oQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlKiwgYm9vbCBhbGxvd2VkKTsKKyAg
ICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2UqLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBh
Y2N1cmFjeSk7CisgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJQYWdlKiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CisgICAgc3RhdGljIEpTVmFsdWVSZWYg
Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJl
Zik7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGJvb2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFp
bjsKK307CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125882</attachid>
            <date>2012-02-07 11:28:07 -0800</date>
            <delta_ts>2012-02-07 14:52:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77991-20120207143035.patch</filename>
            <type>text/plain</type>
            <size>11216</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ4NjE2MjNiNWYzMjA4NDc2
ZGNmMzE2N2RhYmI1NTA0N2M4OTc2OWUuLjg0ZjQyZDYxNDc2MzcxZWY5NTczY2Q3ZjNhNWEyNTg0
NTJkMTFkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDItMDcgIFJvYiBCdWlz
ICA8cmJ1aXNAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gRHVtcFJl
bmRlclRyZWVTdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03Nzk5MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCisKKyAg
ICAgICAgTm8gZnVuY3Rpb25hbGl0aWVzIGNoYW5nZWQsIG5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICAqIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydDo6RHVtcFJlbmRlclRyZWVTdXBwb3J0KToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydDo6fkR1bXBSZW5kZXJUcmVlU3VwcG9ydCk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ6OmphdmFTY3JpcHRPYmplY3RzQ291bnQpOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0OjpnYXJiYWdlQ29sbGVjdG9yQ29sbGVjdCk6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0T25BbHRlcm5hdGVU
aHJlYWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRMaW5rc0luY2x1ZGVk
SW5Gb2N1c0NoYWluKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bGlua3NJbmNs
dWRlZEluRm9jdXNDaGFpbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmR1bXBD
b25maWd1cmF0aW9uRm9yVmlld3BvcnQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKToKKyAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKToK
KyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRp
b24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzY2FsZVBhZ2VCeSk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVk
SW5mbyk6CisgICAgICAgICogYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdURik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQpOgorCiAyMDEy
LTAyLTA2ICBMZW8gWWFuZyAgPGxlby55YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAg
ICBbQmxhY2tCZXJyeV0gVXNlIFdlYlBhZ2VQcml2YXRlIGluc3RlYWQgb2YgV2ViUGFnZSBpbiBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3Bw
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTMwMDUwMTA1NzMwYzFkYTUzMjk5Y2MxOWRlZjRhMTk2
MjEwYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0LmgiCisKKyNpbmNsdWRlICJDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ2xpZW50TW9jay5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5o
IgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBv
c2l0aW9uLmgiCisjaW5jbHVkZSAiSlNDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAi
SlNFbGVtZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1l
bnRzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgImJpbmRpbmdzL2pzL0dDQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KKyNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIEJsYWNrQmVycnk6OldlYktp
dDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworYm9v
bCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4gPSB0cnVl
OworCisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKK0dlb2xvY2F0aW9uQ2xp
ZW50TW9jayogdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soR2VvbG9jYXRpb25DbGllbnQqIGNsaWVu
dCkKK3sKKyAgICAgQVNTRVJUKGdldGVudigiZHJ0UnVuIikpOworICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY2xpZW50KTsKK30KKyNlbmRpZgorCitEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ6OkR1bXBSZW5kZXJUcmVlU3VwcG9ydCgpCit7Cit9CisKK0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydDo6fkR1bXBSZW5kZXJUcmVlU3VwcG9ydCgpCit7Cit9CisKK2ludCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmphdmFTY3JpcHRPYmplY3RzQ291bnQoKQoreworICAgIHJl
dHVybiBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLmdsb2JhbE9i
amVjdENvdW50KCk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpnYXJiYWdlQ29s
bGVjdG9yQ29sbGVjdCgpCit7CisgICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3co
KTsKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OmdhcmJhZ2VDb2xsZWN0b3JDb2xs
ZWN0T25BbHRlcm5hdGVUaHJlYWQoYm9vbCB3YWl0VW50aWxEb25lKQoreworICAgIGdjQ29udHJv
bGxlcigpLmdhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcod2FpdFVu
dGlsRG9uZSk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRMaW5rc0luY2x1
ZGVkSW5Gb2N1c0NoYWluKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBzX2xpbmtzSW5jbHVkZWRJblRh
YkNoYWluID0gZW5hYmxlZDsKK30KKworYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6Omxpbmtz
SW5jbHVkZWRJbkZvY3VzQ2hhaW4oKQoreworICAgIHJldHVybiBzX2xpbmtzSW5jbHVkZWRJblRh
YkNoYWluOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6ZHVtcENvbmZpZ3VyYXRp
b25Gb3JWaWV3cG9ydChGcmFtZSogbWFpbkZyYW1lLCBpbnQgZGV2aWNlRFBJLCBpbnQgZGV2aWNl
V2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBhdmFpbGFibGVXaWR0aCwgaW50IGF2YWlsYWJs
ZUhlaWdodCkKK3sKKyAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMgPSBtYWluRnJhbWUt
PnBhZ2UoKS0+dmlld3BvcnRBcmd1bWVudHMoKTsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0
cnMgPSBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKGFyZ3VtZW50cywgLyogZGVmYXVsdCBsYXlv
dXQgd2lkdGggZm9yIG5vbi1tb2JpbGUgcGFnZXMgKi8gOTgwLCBkZXZpY2VXaWR0aCwgZGV2aWNl
SGVpZ2h0LCBkZXZpY2VEUEksIEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdo
dCkpOworICAgIHJlc3RyaWN0TWluaW11bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0cnMs
IEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCkpOworICAgIHJlc3RyaWN0
U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKGF0dHJzKTsKKworICAg
IGZwcmludGYoc3Rkb3V0LCAidmlld3BvcnQgc2l6ZSAlZHglZCBzY2FsZSAlZiB3aXRoIGxpbWl0
cyBbJWYsICVmXSBhbmQgdXNlclNjYWxhYmxlICVmXG4iLCBhdHRycy5sYXlvdXRTaXplLndpZHRo
KCksIGF0dHJzLmxheW91dFNpemUuaGVpZ2h0KCksIGF0dHJzLmluaXRpYWxTY2FsZSwgYXR0cnMu
bWluaW11bVNjYWxlLCBhdHRycy5tYXhpbXVtU2NhbGUsIGF0dHJzLnVzZXJTY2FsYWJsZSk7Cit9
CisKK2ludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzKFdlYlBhZ2UqIHdlYlBhZ2UpCit7CisjaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGll
bnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayh3ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZSgp
LT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOworICAgIHJldHVybiBtb2NrQ2xp
ZW50LT5udW1iZXJPZlBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHdlYlBhZ2UpOworICAgIHJldHVybiAtMTsKKyNlbmRpZgorfQorCit2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRHZW9sb2NhdGlvbk1vY2soV2ViUGFnZSogd2ViUGFn
ZSkKK3sKKyNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgIEdlb2xvY2F0
aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKHdlYlBh
Z2UtPm1haW5GcmFtZSgpLT5wYWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQo
KSk7CisgICAgbW9ja0NsaWVudC0+cmVzZXQoKTsKKyNlbmRpZgorfQorCit2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoV2ViUGFnZSogd2ViUGFnZSwg
aW50IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nIG1lc3NhZ2UpCit7CisjaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBHZW9sb2NhdGlvbkVycm9yOjpFcnJvckNvZGUgY29k
ZSA9IEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGU7CisgICAgc3dpdGNoIChl
cnJvckNvZGUpIHsKKyAgICBjYXNlIFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVEOgor
ICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25FcnJvcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRToK
KyAgICAgICAgY29kZSA9IEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGU7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0Ns
aWVudCA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KHdlYlBhZ2UtPm1haW5G
cmFtZSgpLT5wYWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CisgICAg
bW9ja0NsaWVudC0+c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIG1lc3Nh
Z2UpKTsKKyNlbmRpZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dl
b2xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlKiB3ZWJQYWdlLCBib29sIGFsbG93ZWQpCit7Cisj
aWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBHZW9sb2NhdGlvbkNsaWVu
dE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayh3ZWJQYWdlLT5tYWlu
RnJhbWUoKS0+cGFnZSgpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOworICAg
IG1vY2tDbGllbnQtPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7CisjZW5kaWYKK30KKwordm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYlBhZ2Uq
IHdlYlBhZ2UsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3Vy
YWN5KQoreworI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgR2VvbG9j
YXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2sod2Vi
UGFnZS0+bWFpbkZyYW1lKCktPnBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVu
dCgpKTsKKyAgICBtb2NrQ2xpZW50LT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uOjpj
cmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpKTsKKyNl
bmRpZgorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2NhbGVQYWdlQnkoV2ViUGFn
ZSogd2ViUGFnZSwgZmxvYXQgc2NhbGVGYWN0b3IsIGZsb2F0IHgsIGZsb2F0IHkpCit7CisgICAg
d2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2UoKS0+c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFj
dG9yLCBJbnRQb2ludCh4LCB5KSk7Cit9CisKK0pTVmFsdWVSZWYgRHVtcFJlbmRlclRyZWVTdXBw
b3J0Ojpjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTVmFsdWVSZWYgdmFsdWUpCit7CisgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlv
bnNPbmx5KTsKKyAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQpOworICAgIGlmICgh
dmFsdWUpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAg
ICBKU1ZhbHVlIGpzVmFsdWUgPSB0b0pTKGV4ZWMsIHZhbHVlKTsKKyAgICBpZiAoIWpzVmFsdWUu
aW5oZXJpdHMoJkpTRWxlbWVudDo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOworICAgIEpTRWxlbWVudCoganNFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8SlNFbGVtZW50Kj4oYXNPYmplY3QoanNWYWx1ZSkpOworICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSBqc0VsZW1lbnQtPmltcGwoKTsKKyAgICBSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uPiBzdHlsZSA9IGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgdHJ1ZSk7CisgICAgcmV0dXJuIHRv
UmVmKGV4ZWMsIHRvSlMoZXhlYywganNFbGVtZW50LT5nbG9iYWxPYmplY3QoKSwgc3R5bGUuZ2V0
KCkpKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjE0MDMw
NGIyMzAwNzA4YTdmMTA5YjJlZThlNDk1NWM1OTRlNDMyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaWZuZGVmIER1bXBSZW5kZXJUcmVlU3VwcG9ydF9oCisjZGVmaW5lIER1bXBSZW5kZXJU
cmVlU3VwcG9ydF9oCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgor
CituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBh
Z2U7Cit9Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZyYW1lOworfQorCituYW1l
c3BhY2UgV1RGIHsKK2NsYXNzIFN0cmluZzsKK30KKworY2xhc3MgRHVtcFJlbmRlclRyZWVTdXBw
b3J0IHsKK3B1YmxpYzoKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnQoKTsKKyAgICB+RHVtcFJl
bmRlclRyZWVTdXBwb3J0KCk7CisKKyAgICBzdGF0aWMgdm9pZCBzZXRMaW5rc0luY2x1ZGVkSW5G
b2N1c0NoYWluKGJvb2wpOworICAgIHN0YXRpYyBib29sIGxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hh
aW4oKTsKKworICAgIHN0YXRpYyBpbnQgamF2YVNjcmlwdE9iamVjdHNDb3VudCgpOworICAgIHN0
YXRpYyB2b2lkIGdhcmJhZ2VDb2xsZWN0b3JDb2xsZWN0KCk7CisgICAgc3RhdGljIHZvaWQgZ2Fy
YmFnZUNvbGxlY3RvckNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZChib29sIHdhaXRVbnRpbERvbmUp
OworCisgICAgc3RhdGljIHZvaWQgZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChXZWJDb3Jl
OjpGcmFtZSogbWFpbkZyYW1lLCBpbnQgZGV2aWNlRFBJLCBpbnQgZGV2aWNlV2lkdGgsIGludCBk
ZXZpY2VIZWlnaHQsIGludCBhdmFpbGFibGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCk7CisK
KyAgICBzdGF0aWMgaW50IG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZSopOworICAgIHN0YXRpYyB2b2lkIHJlc2V0
R2VvbG9jYXRpb25Nb2NrKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZSopOworICAgIHN0YXRp
YyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZSosIGludCBlcnJvckNvZGUsIGNvbnN0IFdURjo6U3RyaW5nIG1lc3NhZ2UpOworICAgIHN0YXRp
YyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24oQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJQYWdlKiwgYm9vbCBhbGxvd2VkKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2UqLCBkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CisgICAgc3RhdGljIHZvaWQgc2Nh
bGVQYWdlQnkoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlKiwgZmxvYXQsIGZsb2F0LCBmbG9h
dCk7CisgICAgc3RhdGljIEpTVmFsdWVSZWYgY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJ
bmZvKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGJv
b2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsKK307CisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>