<?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>66477</bug_id>
          
          <creation_ts>2011-08-18 10:13:06 -0700</creation_ts>
          <short_desc>[GTK] Html5 Notification, testing facilities</short_desc>
          <delta_ts>2014-04-08 18:48:50 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>61140</dependson>
    
    <dependson>63616</dependson>
    
    <dependson>71940</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexandre Mazari">scaroo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>jeremyhu</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>scaroo</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>453104</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-08-18 10:13:06 -0700</bug_when>
    <thetext>The attached patch provides the testing facilities to pass fast/notifications and http/test/notifications.
It also unskip the passing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453106</commentid>
    <comment_count>1</comment_count>
      <attachid>104357</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-08-18 10:18:30 -0700</bug_when>
    <thetext>Created attachment 104357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453693</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-08-19 01:08:08 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=104357) [details]
&gt; Patch

This patch add the required testing facilities to gtk DRT and LTC to pass notifications-related tests.
The passing tests are also unskipped.

The bulk of the code is located in Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk which from a conversation with mrobinson ain&apos;t really the right place.
The rationals behind this choice are:
- DRT and the javascript LTC api must both have access to the list of security requests and authorized orgins.
- the notifications testing code must be conditionally included by the preprocessor depending on the ENABLE(NOTIFICATIONS) macro value so to not break the compilation when notifications are disabled.

Sadly this macro is not working in Tools/ so I had to artificially move the code within the Source/WebKit/gtk tree.

I am not satisfied with this solution so any idea appreciated :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472196</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-09-23 06:19:43 -0700</bug_when>
    <thetext>(In reply to comment #2)

&gt; - the notifications testing code must be conditionally included by the preprocessor depending on the ENABLE(NOTIFICATIONS) macro value so to not break the compilation when notifications are disabled.
&gt; 
&gt; Sadly this macro is not working in Tools/ so I had to artificially move the code within the Source/WebKit/gtk tree.
&gt; 

That macro is defined in wtf/Platform.h which you should be able to include from Tools/DumpRenderTree, or am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491593</commentid>
    <comment_count>4</comment_count>
      <attachid>112686</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-10-27 08:19:34 -0700</bug_when>
    <thetext>Created attachment 112686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494622</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-02 07:57:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=112686) [details]
&gt; Patch

This patch doesn&apos;t seem to change a lot compared to the previous iteration?

Also, I think the ENABLE macro not working in DRT is due to not including webcore_cppflags into Programs_DumpRenderTree_CPPFLAGS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495478</commentid>
    <comment_count>6</comment_count>
      <attachid>112686</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-03 08:24:28 -0700</bug_when>
    <thetext>Comment on attachment 112686
Patch

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

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:907
&gt; +    return 0;

This can be removed :)

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:918
&gt; +static void removeDesktopNotification(WebKitWebNotification* notification)
&gt; +{
&gt; +    s_notifications = g_list_remove(s_notifications, notification);
&gt; +}

Why make a specific function for this? It&apos;s used in one place only.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:944
&gt; +    gchar* notificationStr = webkit_web_notification_to_string(notification);
&gt; +    printf(&quot;%s\n&quot;, notificationStr);
&gt; +    g_free(notificationStr);

Please use a GOwnPtr&lt;gchar&gt; like in other places. The explicit g_free call would then not be needed.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:961
&gt; +    gchar* originStr = webkitSecurityOriginToString(origin);

Ditto

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:976
&gt; +    gchar* originStr = webkitSecurityOriginToString(origin);

Ditto

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:985
&gt; +    gchar* originStr = webkitSecurityOriginToString(origin);

Ditto

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:1002
&gt; +     g_object_connect(G_OBJECT(view),
&gt; +                      &quot;signal::notification-show&quot;, showNotification, 0,
&gt; +                      &quot;signal::notification-cancel&quot;, cancelNotification, 0,
&gt; +                      &quot;signal::notification-request-permission&quot;, requestNotificationPermission, 0,
&gt; +                      &quot;signal::notification-cancel-permission-requests&quot;, cancelNotificationPermissionRequest, 0,
&gt; +                      &quot;signal::notification-check-permission&quot;,  checkNotificationPermission, 0,
&gt; +                      0);

I think this could be done directly in DumpRenderTree.cpp. The last argument of g_object_connect() should be NULL, not 0. Also, all the printf calls should be moved to DumpRenderTree.cpp, like it&apos;s done for the other features. This will involve some code refactoring but it&apos;s doable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495617</commentid>
    <comment_count>7</comment_count>
      <attachid>112686</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-03 10:36:09 -0700</bug_when>
    <thetext>Comment on attachment 112686
Patch

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

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:1028
&gt; +void DumpRenderTreeSupportGtk::simulateDesktopNotificationClick(char* title)
&gt; +{
&gt; +#if ENABLE(NOTIFICATIONS)
&gt; +    GList* match = g_list_find_custom(s_notifications, title, (GCompareFunc)matchNotificationByTitle);
&gt; +
&gt; +    if (!match)
&gt; +        return;
&gt; +
&gt; +    WebKitWebNotification* notification = WEBKIT_WEB_NOTIFICATION(match-&gt;data);
&gt; +    webkit_web_notification_clicked(notification);
&gt; +#endif
&gt; +}

I think you could make this the only method in DumpRenderTreeSupport.  It could take the WebKitWebNotification as the argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499191</commentid>
    <comment_count>8</comment_count>
      <attachid>114326</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-11-09 11:33:30 -0800</bug_when>
    <thetext>Created attachment 114326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499201</commentid>
    <comment_count>9</comment_count>
      <attachid>114329</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-11-09 11:36:11 -0800</bug_when>
    <thetext>Created attachment 114329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499760</commentid>
    <comment_count>10</comment_count>
      <attachid>114464</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-11-10 03:00:48 -0800</bug_when>
    <thetext>Created attachment 114464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499761</commentid>
    <comment_count>11</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-11-10 03:05:04 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=114464) [details]
&gt; Patch

Updated:

- Move back all testing code from DRTSupportGtk to DRT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499772</commentid>
    <comment_count>12</comment_count>
      <attachid>114466</attachid>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-11-10 03:49:53 -0800</bug_when>
    <thetext>Created attachment 114466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499773</commentid>
    <comment_count>13</comment_count>
    <who name="Alexandre Mazari">scaroo</who>
    <bug_when>2011-11-10 03:51:20 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=114466) [details]
&gt; Patch

Updated:
- use GOwnPtr for local char* variable, removing the need to explicitely free them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508187</commentid>
    <comment_count>14</comment_count>
      <attachid>114466</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-23 09:24:47 -0800</bug_when>
    <thetext>Comment on attachment 114466
Patch

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

Thanks! This looks quite good, I found some little nits to fix though :)

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1125
&gt; +    return g_strdup_printf(&quot;%s://%s&quot;,
&gt; +                           webkit_security_origin_get_protocol(origin),
&gt; +                           webkit_security_origin_get_host(origin));

This can fit in one or two lines.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1176
&gt; +      JSStringRef jsOrigin = JSStringCreateWithUTF8CString(originStr.get());

Weird indentation :)

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1197
&gt; +    bool permited = gLayoutTestController-&gt;checkDesktopNotificationPermission(jsOrigin);

s/permited/allowed ?

&gt; Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:1037
&gt; +    if (!match)

notificationTitle is leaked in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700443</commentid>
    <comment_count>15</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-08-20 21:38:33 -0700</bug_when>
    <thetext>*** Bug 94498 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999006</commentid>
    <comment_count>16</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-08 18:48:50 -0700</bug_when>
    <thetext>The GTK+ port of WebKit1 has been removed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104357</attachid>
            <date>2011-08-18 10:18:30 -0700</date>
            <delta_ts>2011-10-27 08:19:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66477-20110818191823.patch</filename>
            <type>text/plain</type>
            <size>14182</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMxNjYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2N2EwOTRjZWU5YzBiZmU1ZWFkMDBj
YzAxZmRiOGY2Y2ZiZDdlM2EzLi5lNGI0ZGZiZmJkMmJjNjA2NDU4MjY0ZmEyZmNkZDZhMzg0MWQy
ZTM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDctMDEgIEFsZXhhbmRyZSBNYXphcmkg
IDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRpb25zIHN1cHBvcnQg
KHRlc3RpbmcgZmFjaWxpdGllcykKKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBV
bnNraXAgbm90aWZpY2F0aW9ucyB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYxMTQwCisKIDIwMTEtMDgtMTYgIFRvbnkgQ2hhbmcgIDx0b255
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGZhc3QvY3NzL2N1c3RvbS1mb250
LXhoZWlnaHQuaHRtbCBpcyBhc3NlcnRpbmcgb24gYWxsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CmluZGV4IDJiM2I2ZDc2MTlmYzU2YjgxMTkwYzY0ZDhhNWVhNmE2MTc2ZDFiODUuLjQ1MzQzMDhh
NmZhYThkZjgwOGMxYmY0MzViM2Y4MmVkMGEzOTA5OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC0zMjYsOSArMzI2LDggQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWRldmljZS1vcmllbnRhdGlvbi5odG1sCiBmYXN0L2RvbS9EZXZpY2VNb3Rpb24KIGZhc3QvZG9t
L0RldmljZU9yaWVudGF0aW9uCiAKLSMgRGVza3RvcCBub3RpZmljYXRpb25zIGFyZSBub3Qgc3Vw
cG9ydGVkCi1mYXN0L25vdGlmaWNhdGlvbnMKLWh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucworIyBO
ZWVkIHRvIGludmVzdGlnYXRlIGFjdGlvbnMgdG8gdGFrZSBpbiB0aGUgY2FzZSBvZiBhIGNyYXNo
CitmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb2N1bWVudC1jbG9zZS1jcmFzaC5o
dG1sCiAKICMgV2UgbGFjayB1c2Vyc2NyaXB0cyBzdXBwb3J0LgogdXNlcnNjcmlwdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwppbmRleCBmYWMyMDAzYjU4MmJkMWFjNTk5ZTExNjJlYzhjNGY3ZGI4ZTE4NDNjLi5m
N2JkNGQwZDIwZGVlZTRkODUwNGEwZDEzZjllMDY0YTBjMTJiZDllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMjEgQEAKIDIwMTEtMDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJp
QGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKyAgICAg
ICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRpb25zIHN1cHBvcnQgKHRlc3RpbmcgZmFj
aWxpdGllcykKKworICAgICAgICBBZGQgdGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRNTDUg
Tm90aWZpY2F0aW9uIHN1cHBvcnQgb2YgdGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgQWRk
IG1ldGhvZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgY3VycmVudCBub3RpZmljYXRpb25zIGxpc3Qs
CisgICAgICAgIHBlbmRpbmcgYXV0aCByZXF1ZXN0cyBhbmQgYXV0aG9yaXplZCBub3RpZmljYXRp
b25zIG9yaWdpbi4KKyAgICAgICAgVGhpcyB0ZXN0aW5nIGNvZGUgaXMgbG9jYXRlZCBoZXJlIHRv
IG1ha2UgaXRzIGNvbXBpbGF0aW9uCisgICAgICAgIGNvbmRpdGlvbm5hbCBkZXBlbmRpbmcgb24g
dGhlIEVOQUJMRSBtYWNyby4KKyAgICAgICAgQWxzbyBMVEMgYW5kIERSVCBzaGFyZSBkYXRhIGhl
cmUuCisKKzIwMTEtMDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+
CisKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgW0dUS10g
QWRkIEhUTUw1IFdlYiBOb3RpZmljYXRpb25zIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwCmluZGV4IDVkNWEwNzgyMjVlYjAxYmU5OWM3ZGNhOWI1MmQyMDI3Y2NiMmYwZjkuLjE2MDlj
MjM5ZjMxNWIzMWYzZWYxMDQwMzgyOGM0YTBkZjdjNzkwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcApAQCAtNjgsNiArNjgsMTEgQEAKICNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5oIgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyNpbmNsdWRlICJ3ZWJraXRzZWN1
cml0eW9yaWdpbi5oIgorI2luY2x1ZGUgIndlYmtpdHdlYm5vdGlmaWNhdGlvbi5oIgorI2VuZGlm
CisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC04MDksMyArODE0LDE2NiBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZmxvYXQg
c2NhbGVGYQogCiAgICAgY29yZUZyYW1lLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBvaW50
KHgsIHkpKTsKIH0KKworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorCitzdGF0aWMgR0xpc3Qq
IHNfbm90aWZpY2F0aW9ucyA9IDA7CitzdGF0aWMgYm9vbCBhcmVOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdHNJZ25vcmVkID0gZmFsc2U7CisKK3N0YXRpYyBnY2hhciogd2Via2l0U2VjdXJp
dHlPcmlnaW5Ub1N0cmluZyhXZWJLaXRTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIHJl
dHVybiBnX3N0cmR1cF9wcmludGYoIiVzOi8vJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfcHJvdG9jb2wob3JpZ2luKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X2hvc3Qob3JpZ2lu
KSk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBnaW50IG1hdGNoTm90aWZpY2F0aW9uQnlU
aXRsZShXZWJLaXRXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgY2hhciogdGl0bGUpCit7
CisgICAgcmV0dXJuIGdfc3RyY21wMCh3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfdGl0bGUo
bm90aWZpY2F0aW9uKSwgdGl0bGUpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVEZXNrdG9wTm90
aWZpY2F0aW9uKFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIHNf
bm90aWZpY2F0aW9ucyA9IGdfbGlzdF9yZW1vdmUoc19ub3RpZmljYXRpb25zLCBub3RpZmljYXRp
b24pOworfQorCitzdGF0aWMgZ2ludCBtYXRjaE5vdGlmaWNhdGlvbkJ5UmVwbGFjZUlkKFdlYktp
dFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJLaXRXZWJOb3RpZmljYXRpb24qIG90
aGVyKQoreworICAgIHJldHVybiAhd2Via2l0X3dlYl9ub3RpZmljYXRpb25fcmVwbGFjZXMobm90
aWZpY2F0aW9uLCBvdGhlcik7Cit9CisKK3N0YXRpYyB2b2lkIGFkZERlc2t0b3BOb3RpZmljYXRp
b24oV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7CisgICAgR0xpc3QqIG1h
dGNoID0gZ19saXN0X2ZpbmRfY3VzdG9tKHNfbm90aWZpY2F0aW9ucywgbm90aWZpY2F0aW9uLCAo
R0NvbXBhcmVGdW5jKW1hdGNoTm90aWZpY2F0aW9uQnlSZXBsYWNlSWQpOworICAgIGlmIChtYXRj
aCkgeworICAgICAgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiByZXBsYWNlZE5vdGlmaWNhdGlvbiA9
IFdFQktJVF9XRUJfTk9USUZJQ0FUSU9OKG1hdGNoLT5kYXRhKTsKKyAgICAgIHByaW50ZigiUkVQ
TEFDSU5HIE5PVElGSUNBVElPTiAlc1xuIiwKKyAgICAgICAgICAgICB3ZWJraXRfd2ViX25vdGlm
aWNhdGlvbl9pc19odG1sKHJlcGxhY2VkTm90aWZpY2F0aW9uKSA/CisgICAgICAgICAgICAgd2Vi
a2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3VyaShyZXBsYWNlZE5vdGlmaWNhdGlvbikgOgorICAg
ICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2dldF90aXRsZShyZXBsYWNlZE5vdGlm
aWNhdGlvbikpOworICAgICAgcmVtb3ZlRGVza3RvcE5vdGlmaWNhdGlvbihyZXBsYWNlZE5vdGlm
aWNhdGlvbik7CisgICAgfQorICAgIHNfbm90aWZpY2F0aW9ucyA9IGdfbGlzdF9hcHBlbmQoc19u
b3RpZmljYXRpb25zLCBub3RpZmljYXRpb24pOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gc2hvd05v
dGlmaWNhdGlvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbikKK3sKKyAgICBhZGREZXNrdG9wTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlv
bik7CisgICAgZ2NoYXIqIG5vdGlmaWNhdGlvblN0ciA9IHdlYmtpdF93ZWJfbm90aWZpY2F0aW9u
X3RvX3N0cmluZyhub3RpZmljYXRpb24pOworICAgIHByaW50ZigiJXNcbiIsIG5vdGlmaWNhdGlv
blN0cik7CisgICAgZ19mcmVlKG5vdGlmaWNhdGlvblN0cik7CisKKyAgICB3ZWJraXRfd2ViX25v
dGlmaWNhdGlvbl9kaXNwbGF5ZWQobm90aWZpY2F0aW9uKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCitzdGF0aWMgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24oV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7CisgICAgcHJpbnRmKCJE
RVNLVE9QIE5PVElGSUNBVElPTiBDTE9TRUQ6ICVzXG4iLCB3ZWJraXRfd2ViX25vdGlmaWNhdGlv
bl9nZXRfdGl0bGUobm90aWZpY2F0aW9uKSk7Cit9CisKK3N0YXRpYyBWZWN0b3I8Q1N0cmluZz4g
bm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0czsKK3N0YXRpYyBWZWN0b3I8Q1N0cmluZz4g
bm90aWZpY2F0aW9uc0FsbG93ZWRPcmlnaW5zOworCitzdGF0aWMgZ2Jvb2xlYW4gcmVxdWVzdE5v
dGlmaWNhdGlvblBlcm1pc3Npb24oV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U2VjdXJp
dHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBnY2hhciogb3JpZ2luU3RyID0gd2Via2l0U2VjdXJp
dHlPcmlnaW5Ub1N0cmluZyhvcmlnaW4pOworICAgIG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVx
dWVzdHMuYXBwZW5kKG9yaWdpblN0cik7CisgICAgcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElP
TiBQRVJNSVNTSU9OIFJFUVVFU1RFRDogJXNcbiIsIG9yaWdpblN0cik7CisKKyAgICBpZiAoYXJl
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZCkKKyAgICAgICAgcmV0dXJuIEZB
TFNFOworCisgICAgbm90aWZpY2F0aW9uc0FsbG93ZWRPcmlnaW5zLmFwcGVuZChvcmlnaW5TdHIp
OworICAgIGdfZnJlZShvcmlnaW5TdHIpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRp
YyB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgZ2NoYXIqIG9y
aWdpblN0ciA9IHdlYmtpdFNlY3VyaXR5T3JpZ2luVG9TdHJpbmcob3JpZ2luKTsKKyAgICBpZiAo
bm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0cy5jb250YWlucyhvcmlnaW5TdHIpKSB7Cisg
ICAgICAgIG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMucmVtb3ZlKG5vdGlmaWNhdGlv
bnNQZXJtaXNzaW9uUmVxdWVzdHMuZmluZChvcmlnaW5TdHIpKTsKKyAgICAgICAgcHJpbnRmKCJE
RVNLVE9QIE5PVElGSUNBVElPTiBQRVJNSVNTSU9OIFJFUVVFU1QgQ0FOQ0VMTEVEOiAlc1xuIiwg
b3JpZ2luU3RyKTsKKyAgICB9Cit9CisKK3N0YXRpYyBXZWJLaXRXZWJOb3RpZmljYXRpb25zUGVy
bWlzc2lvbiBjaGVja05vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBnY2hhciogb3JpZ2luU3Ry
ID0gd2Via2l0U2VjdXJpdHlPcmlnaW5Ub1N0cmluZyhvcmlnaW4pOworICAgIGJvb2wgcGVybWl0
ZWQgPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBl
cm1pc3Npb24ob3JpZ2luU3RyKTsKKyAgICBnX2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVy
biBwZXJtaXRlZCA/IFdFQktJVF9XRUJfTk9USUZJQ0FUSU9OU19QRVJNSVNTSU9OX0FMTE9XRUQg
OiBXRUJLSVRfV0VCX05PVElGSUNBVElPTlNfUEVSTUlTU0lPTl9ERU5JRUQ7Cit9CisjZW5kaWYg
LyogRU5BQkxFKE5PVElGSUNBVElPTlMpICovCisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpjb25uZWN0Tm90aWZpY2F0aW9uc0NhbGxiYWNrcyhXZWJLaXRXZWJWaWV3KiB2aWV3KQor
eworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgICBnX29iamVjdF9jb25uZWN0KEdfT0JK
RUNUKHZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1z
aG93Iiwgc2hvd05vdGlmaWNhdGlvbiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAic2lnbmFs
Ojpub3RpZmljYXRpb24tY2FuY2VsIiwgY2FuY2VsTm90aWZpY2F0aW9uLCAwLAorICAgICAgICAg
ICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1yZXF1ZXN0LXBlcm1pc3Npb24iLCBy
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAi
c2lnbmFsOjpub3RpZmljYXRpb24tY2FuY2VsLXBlcm1pc3Npb24tcmVxdWVzdHMiLCBjYW5jZWxO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAi
c2lnbmFsOjpub3RpZmljYXRpb24tY2hlY2stcGVybWlzc2lvbiIsICBjaGVja05vdGlmaWNhdGlv
blBlcm1pc3Npb24sIDAsCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisjZW5kaWYgLyog
RU5BQkxFKE5PVElGSUNBVElPTlMpICovCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpjbGVhckRlc2t0b3BOb3RpZmljYXRpb25zKCkKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKyAgICBnX2xpc3RfZnJlZShzX25vdGlmaWNhdGlvbnMpOworICAgIHNfbm90aWZpY2F0
aW9ucyA9IDA7CisgICAgbm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigpOwor
ICAgIG5vdGlmaWNhdGlvbnNBbGxvd2VkT3JpZ2lucy5jbGVhcigpOworICAgIGFyZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQgPSBmYWxzZTsKKyNlbmRpZiAvKiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgKi8KK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNp
bXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKGNoYXIqIHRpdGxlKQoreworI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQorICAgIEdMaXN0KiBtYXRjaCA9IGdfbGlzdF9maW5kX2N1c3RvbShz
X25vdGlmaWNhdGlvbnMsIHRpdGxlLCAoR0NvbXBhcmVGdW5jKW1hdGNoTm90aWZpY2F0aW9uQnlU
aXRsZSk7CisKKyAgICBpZiAoIW1hdGNoKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJLaXRX
ZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IFdFQktJVF9XRUJfTk9USUZJQ0FUSU9OKG1h
dGNoLT5kYXRhKTsKKyAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9jbGlja2VkKG5vdGlmaWNh
dGlvbik7CisjZW5kaWYKK30KKworYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmFyZURl
c2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uc0lnbm9yZWQoKQoreworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQorICAgIHJldHVybiBhcmVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJ
Z25vcmVkOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6Y2hlY2tEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihnY2hhciog
b3JpZ2luKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIHJldHVybiBub3RpZmlj
YXRpb25zQWxsb3dlZE9yaWdpbnMuY29udGFpbnMob3JpZ2luKTsKKyNlbmRpZgorICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmdyYW50RGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb24oZ2NoYXIqIG9yaWdpbikKK3sKKyNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKKyAgICBub3RpZmljYXRpb25zQWxsb3dlZE9yaWdpbnMuYXBwZW5kKG9yaWdp
bik7CisjZW5kaWYKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6Omlnbm9yZURl
c2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKQoreworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQorICAgICBhcmVOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVk
ID0gdHJ1ZTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCA3M2M0NDVhNmNm
MDc5YTljN2Y4MzFmYWRjNjM0OWEzYTBiZmQ1ZjBiLi5hNDdjMGQ2NmEzOTA2MTNmZGNlYzY0MGJj
MzlhYWM5ZDNhNDhhYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtMjQsNyArMjQsNyBA
QAogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgog
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkb21kZWZpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtMTIwLDEwICsxMjAsMTggQEAgcHVibGljOgogICAgIHN0YXRpYyB1bnNp
Z25lZCBpbnQgd29ya2VyVGhyZWFkQ291bnQoKTsKICAgICBzdGF0aWMgYm9vbCB3ZWJraXRXZWJG
cmFtZVNlbGVjdGlvbkhhc1NwZWxsaW5nTWFya2VyKFdlYktpdFdlYkZyYW1lKiwgZ2ludCBmcm9t
LCBnaW50IGxlbmd0aCk7CiAKLXByaXZhdGU6CisgICAgc3RhdGljIHZvaWQgY29ubmVjdE5vdGlm
aWNhdGlvbnNDYWxsYmFja3MoV2ViS2l0V2ViVmlldyopOworICAgIHN0YXRpYyB2b2lkIGNsZWFy
RGVza3RvcE5vdGlmaWNhdGlvbnMoKTsKKyAgICBzdGF0aWMgdm9pZCBzaW11bGF0ZURlc2t0b3BO
b3RpZmljYXRpb25DbGljayhjaGFyKiB0aXRsZSk7CisgICAgc3RhdGljIGJvb2wgYXJlRGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb25zSWdub3JlZCgpOworICAgIHN0YXRpYyBib29sIGNoZWNr
RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oZ2NoYXIqIG9yaWdpbik7CisgICAgc3RhdGlj
IHZvaWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihnY2hhciogb3JpZ2luKTsK
KyAgICBzdGF0aWMgdm9pZCBpZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKCk7cHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9v
bCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluOwogICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKICNlbmRpZgorCisKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZmJjNjUxMTQxODExY2E3YTRi
NzZlNGE0ZWE1NzY5MjVlNjcwYmUwLi41MDlhYTFkMzA2Yjg4ZmRiZGQyNWJkNWY2NGRhYmI5NTJi
NmEyMjlmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJp
QGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKyAgICAg
ICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRpb25zIHN1cHBvcnQgKHRlc3RpbmcgZmFj
aWxpdGllcykKKworICAgICAgICBBZGQgdGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRNTDUg
Tm90aWZpY2F0aW9uIHN1cHBvcnQgb2YgdGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAg
ICAgSW1wbGVtZW50cyBub3RpZmljYXRpb25zLXJlbGF0ZWQgc3R1YnMuIERlbGVnYXRlcyB0bwor
ICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlR3RrLmNwcDoKKyAgICAgICAgSW5pdGlhbGl6ZSBub3RpZmlj
YXRpb25zLXJlbGF0ZWQgc2lnbmFscyBoYW5kbGVycyBhbmQgZGF0YS4KKworMjAxMS0wOC0xOCAg
QWxleGFuZHJlIE1hemFyaSAgPGFtYXphcmlAaWdhbGlhLmNvbT4KKwogICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KIAogICAgICAgICBBZGQgbWlzc2luZyBtZXRob2RzIHVzZWQg
YnkgZmFzdC9ub3RpZmljYXRpb25zIHRlc3RzIHRvCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAyMzA4MWNjNTVjNDFjZWViYmZmODc4MWMxOTI0N2E2
NDQzYWZlY2E2Li5lMzE4OWE1YmVkMzI1Njk3ZGEyZGY2ODc2Y2EwMjAxODdmZmRkYWY3IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTU0LDYgKzU0
LDcgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCiAjaWYgUExBVEZPUk0oWDExKQogI2luY2x1ZGUgPGZvbnRjb25maWcvZm9udGNvbmZpZy5o
PgpAQCAtNDc2LDYgKzQ3Nyw4IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQogICAgICAgICBheENvbnRyb2xsZXItPnJlc2V0VG9Db25zaXN0ZW50U3RhdGUo
KTsKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIobWFpbkZyYW1l
KTsKKworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJEZXNrdG9wTm90aWZpY2F0
aW9ucygpOwogfQogCiBzdGF0aWMgYm9vbCB1c2VMb25nUnVubmluZ1NlcnZlck1vZGUoaW50IGFy
Z2MsIGNoYXIgKmFyZ3ZbXSkKQEAgLTExMTAsMTAgKzExMTMsMTEgQEAgc3RhdGljIFdlYktpdFdl
YlZpZXcqIGNyZWF0ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6ZHJh
Zy1mYWlsZWQiLCBkcmFnRmFpbGVkQ2FsbGJhY2ssIDAsCiAgICAgICAgICAgICAgICAgICAgICAi
c2lnbmFsOjpmcmFtZS1jcmVhdGVkIiwgZnJhbWVDcmVhdGVkQ2FsbGJhY2ssIDAsCiAgICAgICAg
ICAgICAgICAgICAgICAic2lnbmFsOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwgd2lsbFNl
bmRSZXF1ZXN0Q2FsbGJhY2ssIDAsCi0KICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogICAg
IGNvbm5lY3RFZGl0aW5nQ2FsbGJhY2tzKHZpZXcpOwogCisgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpjb25uZWN0Tm90aWZpY2F0aW9uc0NhbGxiYWNrcyh2aWV3KTsKKwogICAgIFdlYktp
dFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gd2Via2l0X3dlYl92aWV3X2dldF9pbnNwZWN0b3Io
dmlldyk7CiAgICAgZ19vYmplY3RfY29ubmVjdChHX09CSkVDVChpbnNwZWN0b3IpLAogICAgICAg
ICAgICAgICAgICAgICAgInNpZ25hbDo6aW5zcGVjdC13ZWItdmlldyIsIHdlYkluc3BlY3Rvcklu
c3BlY3RXZWJWaWV3LCAwLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlv
dXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMTA2ZGI4NDlhMjljZmJlZThiMjM5ODFjYTAz
ODc5ZWU1MDM0MzE0ZC4uODhkNzQ3YmUwMjBjMGQ1ZmZhNjk3YTJjYjIyNjcxNTVjMDE4M2Q2YyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwCkBAIC05ODUsMjIgKzk4NSwzMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjphbGxvd1JvdW5kaW5nSGFja3MoKQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzaW11
bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhKU1N0cmluZ1JlZiB0aXRsZSkKIHsKKyAgICBj
aGFyKiBub3RpZmljYXRpb25UaXRsZSA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKHRpdGxlKTsK
KyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlv
bkNsaWNrKG5vdGlmaWNhdGlvblRpdGxlKTsKKyAgICBnX2ZyZWUobm90aWZpY2F0aW9uVGl0bGUp
OwogfQogCiBib29sIExheW91dFRlc3RDb250cm9sbGVyOjphcmVEZXNrdG9wTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzSWdub3JlZCgpCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmFyZURlc2t0b3BOb3RpZmljYXRpb25QZXJt
aXNzaW9uc0lnbm9yZWQoKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Z3JhbnRE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCiB7CisgICAg
Z2NoYXIqIHd0Zk9yaWdpbiA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKG9yaWdpbik7CisgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNz
aW9uKHd0Zk9yaWdpbik7CisgICAgZ19mcmVlICh3dGZPcmlnaW4pOwogfQogCiBib29sIExheW91
dFRlc3RDb250cm9sbGVyOjpjaGVja0Rlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3Ry
aW5nUmVmIG9yaWdpbikKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgZ2NoYXIqIHd0Zk9yaWdp
biA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKG9yaWdpbik7CisgICAgYm9vbCByZXMgPSBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
d3RmT3JpZ2luKTsKKyAgICBnX2ZyZWUgKHd0Zk9yaWdpbik7CisgICAgcmV0dXJuIHJlczsKIH0K
IAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6aWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0cygpCiB7CisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjppZ25v
cmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112686</attachid>
            <date>2011-10-27 08:19:34 -0700</date>
            <delta_ts>2011-11-09 11:33:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66477-20111027171932.patch</filename>
            <type>text/plain</type>
            <size>14479</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5OTcxMzU1NDIy
NmZiNTNkM2ViNTk3NzAxMDBkN2FhYTFmNTBhOWMxLi42MjI5YWRlOGYyZTQ2ZGM0MjBjMTM0OGFk
MDAzMzEwZDQ4YTgwYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTEt
MDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2Vi
IE5vdGlmaWNhdGlvbnMgc3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NzcKKworICAgICAgICBBZGQg
dGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRNTDUgTm90aWZpY2F0aW9uIHN1cHBvcnQgb2Yg
dGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgY3VycmVudCBub3RpZmljYXRpb25zIGxpc3QsCisgICAgICAgIHBlbmRpbmcgYXV0aCBy
ZXF1ZXN0cyBhbmQgYXV0aG9yaXplZCBub3RpZmljYXRpb25zIG9yaWdpbi4KKyAgICAgICAgVGhp
cyB0ZXN0aW5nIGNvZGUgaXMgbG9jYXRlZCBoZXJlIHRvIG1ha2UgaXRzIGNvbXBpbGF0aW9uCisg
ICAgICAgIGNvbmRpdGlvbm5hbCBkZXBlbmRpbmcgb24gdGhlIEVOQUJMRSBtYWNyby4KKyAgICAg
ICAgQWxzbyBMVEMgYW5kIERSVCBzaGFyZSBkYXRhIGhlcmUuCisKKzIwMTEtMDgtMTggIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRp
b25zIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDU0MGY1M2ZlNWJjZWJj
MDUzZGIzNTEyYzA4MGIyMDgzY2I3MjI4NjkuLjZkNzNmODg0MzEwOTcxNTg4ZmRlZjk1YzFmNDBi
OTNmNTlmOTIyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtNzIsNiArNzIsMTEg
QEAKICNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKKyNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbi5oIgorI2luY2x1ZGUg
IndlYmtpdHdlYm5vdGlmaWNhdGlvbi5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC04
ODgsMyArODkzLDE2NiBAQCBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpudW1iZXJPZlBl
bmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJLaQogICAgIHJldHVybiAwOwog
I2VuZGlmCiB9CisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKworc3RhdGljIEdMaXN0KiBz
X25vdGlmaWNhdGlvbnMgPSAwOworc3RhdGljIGJvb2wgYXJlTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RzSWdub3JlZCA9IGZhbHNlOworCitzdGF0aWMgZ2NoYXIqIHdlYmtpdFNlY3VyaXR5
T3JpZ2luVG9TdHJpbmcoV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICByZXR1
cm4gZ19zdHJkdXBfcHJpbnRmKCIlczovLyVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3Byb3RvY29sKG9yaWdpbiksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9ob3N0KG9yaWdpbikp
OworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgZ2ludCBtYXRjaE5vdGlmaWNhdGlvbkJ5VGl0
bGUoV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIGNoYXIqIHRpdGxlKQorewor
ICAgIHJldHVybiBnX3N0cmNtcDAod2Via2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3RpdGxlKG5v
dGlmaWNhdGlvbiksIHRpdGxlKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlRGVza3RvcE5vdGlm
aWNhdGlvbihXZWJLaXRXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBzX25v
dGlmaWNhdGlvbnMgPSBnX2xpc3RfcmVtb3ZlKHNfbm90aWZpY2F0aW9ucywgbm90aWZpY2F0aW9u
KTsKK30KKworc3RhdGljIGdpbnQgbWF0Y2hOb3RpZmljYXRpb25CeVJlcGxhY2VJZChXZWJLaXRX
ZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBvdGhl
cikKK3sKKyAgICByZXR1cm4gIXdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX3JlcGxhY2VzKG5vdGlm
aWNhdGlvbiwgb3RoZXIpOworfQorCitzdGF0aWMgdm9pZCBhZGREZXNrdG9wTm90aWZpY2F0aW9u
KFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIEdMaXN0KiBtYXRj
aCA9IGdfbGlzdF9maW5kX2N1c3RvbShzX25vdGlmaWNhdGlvbnMsIG5vdGlmaWNhdGlvbiwgKEdD
b21wYXJlRnVuYyltYXRjaE5vdGlmaWNhdGlvbkJ5UmVwbGFjZUlkKTsKKyAgICBpZiAobWF0Y2gp
IHsKKyAgICAgIFdlYktpdFdlYk5vdGlmaWNhdGlvbiogcmVwbGFjZWROb3RpZmljYXRpb24gPSBX
RUJLSVRfV0VCX05PVElGSUNBVElPTihtYXRjaC0+ZGF0YSk7CisgICAgICBwcmludGYoIlJFUExB
Q0lORyBOT1RJRklDQVRJT04gJXNcbiIsCisgICAgICAgICAgICAgd2Via2l0X3dlYl9ub3RpZmlj
YXRpb25faXNfaHRtbChyZXBsYWNlZE5vdGlmaWNhdGlvbikgPworICAgICAgICAgICAgIHdlYmtp
dF93ZWJfbm90aWZpY2F0aW9uX2dldF91cmkocmVwbGFjZWROb3RpZmljYXRpb24pIDoKKyAgICAg
ICAgICAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfdGl0bGUocmVwbGFjZWROb3RpZmlj
YXRpb24pKTsKKyAgICAgIHJlbW92ZURlc2t0b3BOb3RpZmljYXRpb24ocmVwbGFjZWROb3RpZmlj
YXRpb24pOworICAgIH0KKyAgICBzX25vdGlmaWNhdGlvbnMgPSBnX2xpc3RfYXBwZW5kKHNfbm90
aWZpY2F0aW9ucywgbm90aWZpY2F0aW9uKTsKK30KKworc3RhdGljIGdib29sZWFuIHNob3dOb3Rp
ZmljYXRpb24oV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBu
b3RpZmljYXRpb24pCit7CisgICAgYWRkRGVza3RvcE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24p
OworICAgIGdjaGFyKiBub3RpZmljYXRpb25TdHIgPSB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl90
b19zdHJpbmcobm90aWZpY2F0aW9uKTsKKyAgICBwcmludGYoIiVzXG4iLCBub3RpZmljYXRpb25T
dHIpOworICAgIGdfZnJlZShub3RpZmljYXRpb25TdHIpOworCisgICAgd2Via2l0X3dlYl9ub3Rp
ZmljYXRpb25fZGlzcGxheWVkKG5vdGlmaWNhdGlvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kworc3RhdGljIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIHByaW50ZigiREVT
S1RPUCBOT1RJRklDQVRJT04gQ0xPU0VEOiAlc1xuIiwgd2Via2l0X3dlYl9ub3RpZmljYXRpb25f
Z2V0X3RpdGxlKG5vdGlmaWNhdGlvbikpOworfQorCitzdGF0aWMgVmVjdG9yPENTdHJpbmc+IG5v
dGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHM7CitzdGF0aWMgVmVjdG9yPENTdHJpbmc+IG5v
dGlmaWNhdGlvbnNBbGxvd2VkT3JpZ2luczsKKworc3RhdGljIGdib29sZWFuIHJlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4pCit7CisgICAgZ2NoYXIqIG9yaWdpblN0ciA9IHdlYmtpdFNlY3VyaXR5
T3JpZ2luVG9TdHJpbmcob3JpZ2luKTsKKyAgICBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVl
c3RzLmFwcGVuZChvcmlnaW5TdHIpOworICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04g
UEVSTUlTU0lPTiBSRVFVRVNURUQ6ICVzXG4iLCBvcmlnaW5TdHIpOworCisgICAgaWYgKGFyZU5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQpCisgICAgICAgIHJldHVybiBGQUxT
RTsKKworICAgIG5vdGlmaWNhdGlvbnNBbGxvd2VkT3JpZ2lucy5hcHBlbmQob3JpZ2luU3RyKTsK
KyAgICBnX2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMg
dm9pZCBjYW5jZWxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJLaXRTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGdjaGFyKiBvcmln
aW5TdHIgPSB3ZWJraXRTZWN1cml0eU9yaWdpblRvU3RyaW5nKG9yaWdpbik7CisgICAgaWYgKG5v
dGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuY29udGFpbnMob3JpZ2luU3RyKSkgeworICAg
ICAgICBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVlc3RzLnJlbW92ZShub3RpZmljYXRpb25z
UGVybWlzc2lvblJlcXVlc3RzLmZpbmQob3JpZ2luU3RyKSk7CisgICAgICAgIHByaW50ZigiREVT
S1RPUCBOT1RJRklDQVRJT04gUEVSTUlTU0lPTiBSRVFVRVNUIENBTkNFTExFRDogJXNcbiIsIG9y
aWdpblN0cik7CisgICAgfQorfQorCitzdGF0aWMgV2ViS2l0V2ViTm90aWZpY2F0aW9uc1Blcm1p
c3Npb24gY2hlY2tOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgZ2NoYXIqIG9yaWdpblN0ciA9
IHdlYmtpdFNlY3VyaXR5T3JpZ2luVG9TdHJpbmcob3JpZ2luKTsKKyAgICBib29sIHBlcm1pdGVk
ID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjaGVja0Rlc2t0b3BOb3RpZmljYXRpb25QZXJt
aXNzaW9uKG9yaWdpblN0cik7CisgICAgZ19mcmVlKG9yaWdpblN0cik7CisKKyAgICByZXR1cm4g
cGVybWl0ZWQgPyBXRUJLSVRfV0VCX05PVElGSUNBVElPTlNfUEVSTUlTU0lPTl9BTExPV0VEIDog
V0VCS0lUX1dFQl9OT1RJRklDQVRJT05TX1BFUk1JU1NJT05fREVOSUVEOworfQorI2VuZGlmIC8q
IEVOQUJMRShOT1RJRklDQVRJT05TKSAqLworCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6Y29ubmVjdE5vdGlmaWNhdGlvbnNDYWxsYmFja3MoV2ViS2l0V2ViVmlldyogdmlldykKK3sK
KyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICAgZ19vYmplY3RfY29ubmVjdChHX09CSkVD
VCh2aWV3KSwKKyAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpub3RpZmljYXRpb24tc2hv
dyIsIHNob3dOb3RpZmljYXRpb24sIDAsCisgICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6
bm90aWZpY2F0aW9uLWNhbmNlbCIsIGNhbmNlbE5vdGlmaWNhdGlvbiwgMCwKKyAgICAgICAgICAg
ICAgICAgICAgICAic2lnbmFsOjpub3RpZmljYXRpb24tcmVxdWVzdC1wZXJtaXNzaW9uIiwgcmVx
dWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24sIDAsCisgICAgICAgICAgICAgICAgICAgICAgInNp
Z25hbDo6bm90aWZpY2F0aW9uLWNhbmNlbC1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgY2FuY2VsTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIDAsCisgICAgICAgICAgICAgICAgICAgICAgInNp
Z25hbDo6bm90aWZpY2F0aW9uLWNoZWNrLXBlcm1pc3Npb24iLCAgY2hlY2tOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDApOworI2VuZGlmIC8qIEVOQUJM
RShOT1RJRklDQVRJT05TKSAqLworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
Y2xlYXJEZXNrdG9wTm90aWZpY2F0aW9ucygpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CisgICAgZ19saXN0X2ZyZWUoc19ub3RpZmljYXRpb25zKTsKKyAgICBzX25vdGlmaWNhdGlvbnMg
PSAwOworICAgIG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsKKyAgICBu
b3RpZmljYXRpb25zQWxsb3dlZE9yaWdpbnMuY2xlYXIoKTsKKyAgICBhcmVOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkID0gZmFsc2U7CisjZW5kaWYgLyogRU5BQkxFKE5PVElG
SUNBVElPTlMpICovCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzaW11bGF0
ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjaGFyKiB0aXRsZSkKK3sKKyNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKKyAgICBHTGlzdCogbWF0Y2ggPSBnX2xpc3RfZmluZF9jdXN0b20oc19ub3Rp
ZmljYXRpb25zLCB0aXRsZSwgKEdDb21wYXJlRnVuYyltYXRjaE5vdGlmaWNhdGlvbkJ5VGl0bGUp
OworCisgICAgaWYgKCFtYXRjaCkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViS2l0V2ViTm90
aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBXRUJLSVRfV0VCX05PVElGSUNBVElPTihtYXRjaC0+
ZGF0YSk7CisgICAgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fY2xpY2tlZChub3RpZmljYXRpb24p
OworI2VuZGlmCit9CisKK2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjphcmVEZXNrdG9w
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnNJZ25vcmVkKCkKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKyAgICByZXR1cm4gYXJlTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3Jl
ZDsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oZ2NoYXIqIG9yaWdp
bikKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICByZXR1cm4gbm90aWZpY2F0aW9u
c0FsbG93ZWRPcmlnaW5zLmNvbnRhaW5zKG9yaWdpbik7CisjZW5kaWYKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpncmFudERlc2t0b3BOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKGdjaGFyKiBvcmlnaW4pCit7CisjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCisgICAgbm90aWZpY2F0aW9uc0FsbG93ZWRPcmlnaW5zLmFwcGVuZChvcmlnaW4pOwor
I2VuZGlmCit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjppZ25vcmVEZXNrdG9w
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCkKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKKyAgICAgYXJlTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZCA9IHRy
dWU7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggY2M5Y2M5N2NjNmFlYTM1
MmEzNGFiMzIyM2IzNzIyZjQ3NjQzOGM4Mi4uYTQ5MDJjM2RmZjBmYzU4YzQ1YTg4MzAxNWJjMmRi
N2MwZmRlZWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTI0LDcgKzI0LDcgQEAKICNp
bmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZG9tZGVmaW5lcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKQEAgLTEyNiw2ICsxMjYsMTQgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldE1v
Y2tHZW9sb2NhdGlvbkVycm9yKFdlYktpdFdlYlZpZXcqLCBpbnQgZXJyb3JDb2RlLCBjb25zdCBn
Y2hhciogZXJyb3JNZXNzYWdlKTsKICAgICBzdGF0aWMgaW50IG51bWJlck9mUGVuZGluZ0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFdlYktpdFdlYlZpZXcqKTsKIAorICAgIHN0YXRpYyB2
b2lkIGNvbm5lY3ROb3RpZmljYXRpb25zQ2FsbGJhY2tzKFdlYktpdFdlYlZpZXcqKTsKKyAgICBz
dGF0aWMgdm9pZCBjbGVhckRlc2t0b3BOb3RpZmljYXRpb25zKCk7CisgICAgc3RhdGljIHZvaWQg
c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soY2hhciogdGl0bGUpOworICAgIHN0YXRp
YyBib29sIGFyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uc0lnbm9yZWQoKTsKKyAgICBz
dGF0aWMgYm9vbCBjaGVja0Rlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGdjaGFyKiBvcmln
aW4pOworICAgIHN0YXRpYyB2b2lkIGdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
Z2NoYXIqIG9yaWdpbik7CisgICAgc3RhdGljIHZvaWQgaWdub3JlRGVza3RvcE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cygpO3ByaXZhdGU6CisKIHByaXZhdGU6CiAgICAgc3RhdGljIGJv
b2wgc19kcnRSdW47CiAgICAgc3RhdGljIGJvb2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsK
QEAgLTEzMywzICsxNDEsNSBAQCBwcml2YXRlOgogfTsKIAogI2VuZGlmCisKKwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU5ZTNlOWY2MTQwZTk0
MDlmM2I2NzUzZDdhNzU2MzZjMWViNDhhOTUuLjhjYzIyNTIyMDBkNDQ4NTkzMDVhM2ViZmNjNDE2
MjFjNTg5YWRiZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMS0wOC0xOCAgQWxleGFuZHJlIE1hemFyaSAgPGFt
YXphcmlAaWdhbGlhLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQor
ICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2ViIE5vdGlmaWNhdGlvbnMgc3VwcG9ydCAodGVzdGlu
ZyBmYWNpbGl0aWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjY0NzcKKworICAgICAgICBBZGQgdGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRN
TDUgTm90aWZpY2F0aW9uIHN1cHBvcnQgb2YgdGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAg
ICAgICAgSW1wbGVtZW50cyBub3RpZmljYXRpb25zLXJlbGF0ZWQgc3R1YnMuIERlbGVnYXRlcyB0
bworICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlR3RrLmNwcDoKKyAgICAgICAgSW5pdGlhbGl6ZSBub3Rp
ZmljYXRpb25zLXJlbGF0ZWQgc2lnbmFscyBoYW5kbGVycyBhbmQgZGF0YS4KKworMjAxMS0wOC0x
OCAgQWxleGFuZHJlIE1hemFyaSAgPGFtYXphcmlAaWdhbGlhLmNvbT4KKwogICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAogICAgICAgICBBZGQgbWlzc2luZyBtZXRob2RzIHVz
ZWQgYnkgZmFzdC9ub3RpZmljYXRpb25zIHRlc3RzIHRvCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBkNGVjOTdkNmU5ZTI1OTEyNmQ5ZGJhZWU1NmZj
ZDUxOGJmNWMyMmE1Li4xMjY2YTU4YTQwODg3NGQyM2Q3ZDZlMzU1NDRlYWEwODEwOGQxZjhhIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTU0LDYg
KzU0LDcgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5o
PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiAjaWYgUExBVEZPUk0oWDExKQogI2luY2x1ZGUgPGZvbnRjb25maWcvZm9udGNvbmZp
Zy5oPgpAQCAtNDgwLDYgKzQ4MSw4IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNp
c3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIo
bWFpbkZyYW1lKTsKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2Nh
dGlvbkNsaWVudE1vY2sod2ViVmlldyk7CisKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OmNsZWFyRGVza3RvcE5vdGlmaWNhdGlvbnMoKTsKIH0KIAogc3RhdGljIGJvb2wgdXNlTG9uZ1J1
bm5pbmdTZXJ2ZXJNb2RlKGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC0xMTI3LDEwICsxMTMw
LDExIEBAIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKICAgICAgICAgICAg
ICAgICAgICAgICJzaWduYWw6OmRyYWctZmFpbGVkIiwgZHJhZ0ZhaWxlZENhbGxiYWNrLCAwLAog
ICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6ZnJhbWUtY3JlYXRlZCIsIGZyYW1lQ3JlYXRl
ZENhbGxiYWNrLCAwLAogICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6cmVzb3VyY2UtcmVx
dWVzdC1zdGFydGluZyIsIHdpbGxTZW5kUmVxdWVzdENhbGxiYWNrLCAwLAotCiAgICAgICAgICAg
ICAgICAgICAgICBOVUxMKTsKICAgICBjb25uZWN0RWRpdGluZ0NhbGxiYWNrcyh2aWV3KTsKIAor
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y29ubmVjdE5vdGlmaWNhdGlvbnNDYWxsYmFj
a3Modmlldyk7CisKICAgICBXZWJLaXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvciA9IHdlYmtpdF93
ZWJfdmlld19nZXRfaW5zcGVjdG9yKHZpZXcpOwogICAgIGdfb2JqZWN0X2Nvbm5lY3QoR19PQkpF
Q1QoaW5zcGVjdG9yKSwKICAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6Omluc3BlY3Qtd2Vi
LXZpZXciLCB3ZWJJbnNwZWN0b3JJbnNwZWN0V2ViVmlldywgMCwKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDVkMjNj
NjgwNWVlYmUzYjk2NDc1MTE5NTM1NjUyYjA3MmJiZjZjMGQuLjUyZDJlYjRmNDFhZjQyZWRiZmE5
NmVlOWY0MzU3MjJjODM3MjQxYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxheW91dFRlc3RDb250cm9sbGVyLmgiCiAKKyNpbmNs
dWRlIDxDU3RyaW5nLmg+CiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWUuaCIKICNpbmNsdWRlICJX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCIKICNpbmNsdWRlICJXb3Jr
UXVldWUuaCIKQEAgLTEwMjQsMjIgKzEwMjUsMzIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QmFja2luZ1NjYWxlRmFjdG9yKGRvdWJsZSkKIAogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUp
CiB7CisgICAgY2hhciogbm90aWZpY2F0aW9uVGl0bGUgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmlu
Zyh0aXRsZSk7CisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzaW11bGF0ZURlc2t0b3BO
b3RpZmljYXRpb25DbGljayhub3RpZmljYXRpb25UaXRsZSk7CisgICAgZ19mcmVlKG5vdGlmaWNh
dGlvblRpdGxlKTsKIH0KIAogYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXJlRGVza3RvcE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQoKQogewotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjphcmVEZXNrdG9wTm90aWZp
Y2F0aW9uUGVybWlzc2lvbnNJZ25vcmVkKCk7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2lu
KQogeworICAgIGdjaGFyKiB3dGZPcmlnaW4gPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhvcmln
aW4pOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Z3JhbnREZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvbih3dGZPcmlnaW4pOworICAgIGdfZnJlZSAod3RmT3JpZ2luKTsKIH0KIAog
Ym9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2hlY2tEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlz
c2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGdjaGFy
KiB3dGZPcmlnaW4gPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhvcmlnaW4pOworICAgIGJvb2wg
cmVzID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjaGVja0Rlc2t0b3BOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKHd0Zk9yaWdpbik7CisgICAgZ19mcmVlICh3dGZPcmlnaW4pOworICAgIHJldHVy
biByZXM7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omlnbm9yZURlc2t0b3BOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKQogeworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6aWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygpOwogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGFmZTFjN2VjMjgwNDgyOGNjZjAxOWM4MWIzZTMwYjdiNWMyOTAwMGYuLjlmNmYxYWM0
NDA5ZjQ3MzdlMTk0ZmQ4NDYwNWI0NDdmOTg3MDQ3NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxMS0wNy0wMSAgQWxleGFuZHJlIE1hemFyaSAgPGFtYXphcmlAaWdhbGlhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBBZGQgSFRN
TDUgV2ViIE5vdGlmaWNhdGlvbnMgc3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6IFVuc2tpcCBub3RpZmljYXRpb25zIHRlc3RzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNDAKKwog
MjAxMS0xMC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk4MzA5LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAppbmRleCAyZGM4OTY1N2RjZGE0ODdiOTQ3NzBlNmQ2ZDMzYWRkNzQ2MzEyMzkyLi42
MWVmZDViNTk5ZTg2MTYzNThlNWY4YjA5ZWI5YjRmNWRlOWE3ODljIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZApAQCAtMzMxLDkgKzMzMSw4IEBAIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1kZXZpY2Utb3JpZW50YXRpb24uaHRtbAogZmFzdC9kb20vRGV2aWNlTW90aW9uCiBm
YXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbgogCi0jIERlc2t0b3Agbm90aWZpY2F0aW9ucyBhcmUg
bm90IHN1cHBvcnRlZAotZmFzdC9ub3RpZmljYXRpb25zCi1odHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMKKyMgTmVlZCB0byBpbnZlc3RpZ2F0ZSBhY3Rpb25zIHRvIHRha2UgaW4gdGhlIGNhc2Ugb2Yg
YSBjcmFzaAorZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xvc2Ut
Y3Jhc2guaHRtbAogCiAjIFdlIGxhY2sgdXNlcnNjcmlwdHMgc3VwcG9ydC4KIHVzZXJzY3JpcHRz
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114326</attachid>
            <date>2011-11-09 11:33:30 -0800</date>
            <delta_ts>2011-11-09 11:36:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66477-20111109203328.patch</filename>
            <type>text/plain</type>
            <size>12181</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5OTcxMzU1NDIy
NmZiNTNkM2ViNTk3NzAxMDBkN2FhYTFmNTBhOWMxLi42MjI5YWRlOGYyZTQ2ZGM0MjBjMTM0OGFk
MDAzMzEwZDQ4YTgwYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTEt
MDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2Vi
IE5vdGlmaWNhdGlvbnMgc3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NzcKKworICAgICAgICBBZGQg
dGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRNTDUgTm90aWZpY2F0aW9uIHN1cHBvcnQgb2Yg
dGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgY3VycmVudCBub3RpZmljYXRpb25zIGxpc3QsCisgICAgICAgIHBlbmRpbmcgYXV0aCBy
ZXF1ZXN0cyBhbmQgYXV0aG9yaXplZCBub3RpZmljYXRpb25zIG9yaWdpbi4KKyAgICAgICAgVGhp
cyB0ZXN0aW5nIGNvZGUgaXMgbG9jYXRlZCBoZXJlIHRvIG1ha2UgaXRzIGNvbXBpbGF0aW9uCisg
ICAgICAgIGNvbmRpdGlvbm5hbCBkZXBlbmRpbmcgb24gdGhlIEVOQUJMRSBtYWNyby4KKyAgICAg
ICAgQWxzbyBMVEMgYW5kIERSVCBzaGFyZSBkYXRhIGhlcmUuCisKKzIwMTEtMDgtMTggIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRp
b25zIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAyZTQ5MDAzNTIwNjFkZTI0ODg2ZGFiMzI1NWM5Y2M2ZDFjYTdmNjU3Li5lMGY5NmJm
MzM3MjEwOTU3NzRjYjJhNTM3ODVkYTMyN2I5YmI0OTVkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMTgg
IEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkKKyAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmlj
YXRpb25zIHN1cHBvcnQgKHRlc3RpbmcgZmFjaWxpdGllcykKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDc3CisKKyAgICAgICAgQWRkIHRlc3Rpbmcg
ZmFjaWxpdGllcyBmb3IgdGhlIEhUTUw1IE5vdGlmaWNhdGlvbiBzdXBwb3J0IG9mIHRoZQorICAg
ICAgICBndGsgcG9ydC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIEltcGxlbWVudHMgbm90aWZpY2F0aW9ucy1yZWxh
dGVkIHN0dWJzLiBEZWxlZ2F0ZXMgdG8KKyAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5jcHA6Cisg
ICAgICAgIEluaXRpYWxpemUgbm90aWZpY2F0aW9ucy1yZWxhdGVkIHNpZ25hbHMgaGFuZGxlcnMg
YW5kIGRhdGEuCisKIDIwMTEtMTEtMDkgIEFsZXhhbmRyZSBNYXphcmkgIDxhbGV4YW5kcmUubWF6
YXJpQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBNYWtlIHRoZSBFTkFCTEUoRkVBVFVSRSkg
bWFjcm8gd29yayBpbiBEUlQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwCmluZGV4IGQ0ZWM5N2Q2ZTllMjU5MTI2ZDlkYmFlZTU2ZmNkNTE4YmY1YzIyYTUuLjNh
ZTQ2OTViYjc1NDI3YjQ2MWIzMWViZTUyNzNmZDM4YmU3MTlkY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1
ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBQTEFU
Rk9STShYMTEpCiAjaW5jbHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CkBAIC03MSw2ICs3
Miw3IEBAIGV4dGVybiB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdpbl9k
aXJlY3RvcnkoV2ViS2l0V2ViVmlldyogdmlldywKIGV4dGVybiBnY2hhciogd2Via2l0X3dlYl9m
cmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiB9CiAK
K3N0YXRpYyBWZWN0b3I8Q1N0cmluZz4gbm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0czsK
IHZvbGF0aWxlIGJvb2wgZG9uZTsKIHN0YXRpYyBib29sIHByaW50U2VwYXJhdG9yczsKIHN0YXRp
YyBpbnQgZHVtcFBpeGVsczsKQEAgLTkxLDYgKzkzLDggQEAgYm9vbCB3YWl0Rm9yUG9saWN5ID0g
ZmFsc2U7CiAvLyBUaGlzIGlzIGEgbGlzdCBvZiBvcGVuZWQgd2Vidmlld3MKIEdTTGlzdCogd2Vi
Vmlld0xpc3QgPSAwOwogCitHTGlzdCogc19ub3RpZmljYXRpb25zID0gMDsKKwogLy8gY3VycmVu
dCBiL2YgaXRlbSBhdCB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyB0ZXN0CiBzdGF0aWMgV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qIHByZXZUZXN0QkZJdGVtID0gTlVMTDsKIApAQCAtNDgwLDYgKzQ4NCwx
MSBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNsZWFyT3BlbmVyKG1haW5GcmFtZSk7CiAKICAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKHdlYlZp
ZXcpOworCisgICAgZ19saXN0X2ZyZWUoc19ub3RpZmljYXRpb25zKTsKKyAgICBzX25vdGlmaWNh
dGlvbnMgPSAwOworICAgIG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsK
KwogfQogCiBzdGF0aWMgYm9vbCB1c2VMb25nUnVubmluZ1NlcnZlck1vZGUoaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSkKQEAgLTEwOTYsNiArMTEwNSwxMDYgQEAgc3RhdGljIHZvaWQgd2lsbFNlbmRS
ZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBX
ZWIKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKK2NoYXIqIHdlYmtpdFdl
Yk5vdGlmaWNhdGlvblRvU3RyaW5nIChXZWJLaXRXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
bikKK3sKKyAgICByZXR1cm4gd2Via2l0X3dlYl9ub3RpZmljYXRpb25faXNfaHRtbChub3RpZmlj
YXRpb24pID8KKyAgICAgIGdfc3RyZHVwX3ByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT046IGNv
bnRlbnRzIGF0ICVzIiwgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3VyaShub3RpZmljYXRp
b24pKSA6CisgICAgICBnX3N0cmR1cF9wcmludGYoIkRFU0tUT1AgTk9USUZJQ0FUSU9OOiVzIGlj
b24gJXMsIHRpdGxlICVzLCB0ZXh0ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRf
d2ViX25vdGlmaWNhdGlvbl9nZXRfZGlyZWN0aW9uKG5vdGlmaWNhdGlvbikgPT0gR1RLX1RFWFRf
RElSX1JUTCA/ICIoUlRMKSIgOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2Vi
X25vdGlmaWNhdGlvbl9nZXRfaWNvbl91cmkobm90aWZpY2F0aW9uKSwKKyAgICAgICAgICAgICAg
ICAgICAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfdGl0bGUobm90aWZpY2F0aW9uKSwK
KyAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfYm9keShu
b3RpZmljYXRpb24pKTsKK30KKworc3RhdGljIGdjaGFyKiB3ZWJraXRTZWN1cml0eU9yaWdpblRv
U3RyaW5nKFdlYktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgcmV0dXJuIGdfc3Ry
ZHVwX3ByaW50ZigiJXM6Ly8lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRf
c2VjdXJpdHlfb3JpZ2luX2dldF9wcm90b2NvbChvcmlnaW4pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfaG9zdChvcmlnaW4pKTsKK30KKwor
c3RhdGljIHZvaWQgcmVtb3ZlRGVza3RvcE5vdGlmaWNhdGlvbihXZWJLaXRXZWJOb3RpZmljYXRp
b24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBzX25vdGlmaWNhdGlvbnMgPSBnX2xpc3RfcmVtb3Zl
KHNfbm90aWZpY2F0aW9ucywgbm90aWZpY2F0aW9uKTsKK30KKworc3RhdGljIGdpbnQgbWF0Y2hO
b3RpZmljYXRpb25CeVJlcGxhY2VJZChXZWJLaXRXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
biwgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBvdGhlcikKK3sKKyAgICByZXR1cm4gIXdlYmtpdF93
ZWJfbm90aWZpY2F0aW9uX2lzX3JlcGxhY2VtZW50X2Zvcihub3RpZmljYXRpb24sIG90aGVyKTsK
K30KKworc3RhdGljIHZvaWQgYWRkRGVza3RvcE5vdGlmaWNhdGlvbihXZWJLaXRXZWJOb3RpZmlj
YXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBHTGlzdCogbWF0Y2ggPSBnX2xpc3RfZmluZF9j
dXN0b20oc19ub3RpZmljYXRpb25zLCBub3RpZmljYXRpb24sIChHQ29tcGFyZUZ1bmMpbWF0Y2hO
b3RpZmljYXRpb25CeVJlcGxhY2VJZCk7CisgICAgaWYgKG1hdGNoKSB7CisgICAgICBXZWJLaXRX
ZWJOb3RpZmljYXRpb24qIHJlcGxhY2VkTm90aWZpY2F0aW9uID0gV0VCS0lUX1dFQl9OT1RJRklD
QVRJT04obWF0Y2gtPmRhdGEpOworICAgICAgcHJpbnRmKCJSRVBMQUNJTkcgTk9USUZJQ0FUSU9O
ICVzXG4iLAorICAgICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2lzX2h0bWwocmVw
bGFjZWROb3RpZmljYXRpb24pID8KKyAgICAgICAgICAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlv
bl9nZXRfdXJpKHJlcGxhY2VkTm90aWZpY2F0aW9uKSA6CisgICAgICAgICAgICAgd2Via2l0X3dl
Yl9ub3RpZmljYXRpb25fZ2V0X3RpdGxlKHJlcGxhY2VkTm90aWZpY2F0aW9uKSk7CisgICAgICBy
ZW1vdmVEZXNrdG9wTm90aWZpY2F0aW9uKHJlcGxhY2VkTm90aWZpY2F0aW9uKTsKKyAgICB9Cisg
ICAgc19ub3RpZmljYXRpb25zID0gZ19saXN0X2FwcGVuZChzX25vdGlmaWNhdGlvbnMsIG5vdGlm
aWNhdGlvbik7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiBzaG93Tm90aWZpY2F0aW9uKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQorewor
ICAgIGFkZERlc2t0b3BOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTsKKyAgICBnY2hhciogbm90
aWZpY2F0aW9uU3RyID0gd2Via2l0V2ViTm90aWZpY2F0aW9uVG9TdHJpbmcobm90aWZpY2F0aW9u
KTsKKyAgICBwcmludGYoIiVzXG4iLCBub3RpZmljYXRpb25TdHIpOworICAgIGdfZnJlZShub3Rp
ZmljYXRpb25TdHIpOworCisgICAgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fZGlzcGxheWVkKG5v
dGlmaWNhdGlvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgY2FuY2Vs
Tm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYk5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uKQoreworICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04gQ0xP
U0VEOiAlc1xuIiwgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3RpdGxlKG5vdGlmaWNhdGlv
bikpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
V2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sK
KyAgICBnY2hhciogb3JpZ2luU3RyID0gd2Via2l0U2VjdXJpdHlPcmlnaW5Ub1N0cmluZyhvcmln
aW4pOworICAgIG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuYXBwZW5kKG9yaWdpblN0
cik7CisgICAgcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElPTiBQRVJNSVNTSU9OIFJFUVVFU1RF
RDogJXNcbiIsIG9yaWdpblN0cik7CisKKyAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5h
cmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZCgpKQorICAgICAg
ICByZXR1cm4gRkFMU0U7CisgICAgZWxzZSB7CisgICAgICAgIEpTU3RyaW5nUmVmIGpzT3JpZ2lu
ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcob3JpZ2luU3RyKTsKKyAgICAgICAgZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGpz
T3JpZ2luKTsKKyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsKKyAgICB9CisKKyAg
ICBnX2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMgdm9p
ZCBjYW5jZWxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGdjaGFyKiBvcmlnaW5T
dHIgPSB3ZWJraXRTZWN1cml0eU9yaWdpblRvU3RyaW5nKG9yaWdpbik7CisgICAgaWYgKG5vdGlm
aWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuY29udGFpbnMob3JpZ2luU3RyKSkgeworICAgICAg
ICBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVlc3RzLnJlbW92ZShub3RpZmljYXRpb25zUGVy
bWlzc2lvblJlcXVlc3RzLmZpbmQob3JpZ2luU3RyKSk7CisgICAgICAgIHByaW50ZigiREVTS1RP
UCBOT1RJRklDQVRJT04gUEVSTUlTU0lPTiBSRVFVRVNUIENBTkNFTExFRDogJXNcbiIsIG9yaWdp
blN0cik7CisgICAgfQorfQorCitzdGF0aWMgV2ViS2l0V2ViTm90aWZpY2F0aW9uc1Blcm1pc3Np
b24gY2hlY2tOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdl
YktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgZ2NoYXIqIG9yaWdpblN0ciA9IHdl
YmtpdFNlY3VyaXR5T3JpZ2luVG9TdHJpbmcob3JpZ2luKTsKKyAgICBKU1N0cmluZ1JlZiBqc09y
aWdpbiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG9yaWdpblN0cik7CisgICAgYm9v
bCBwZXJtaXRlZCA9IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Y2hlY2tEZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvbihqc09yaWdpbik7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsK
KyAgICBnX2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVybiBwZXJtaXRlZCA/IFdFQktJVF9X
RUJfTk9USUZJQ0FUSU9OU19QRVJNSVNTSU9OX0FMTE9XRUQgOiBXRUJLSVRfV0VCX05PVElGSUNB
VElPTlNfUEVSTUlTU0lPTl9ERU5JRUQ7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElP
TlMpCisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICAvLyBJ
dCBpcyBpbXBvcnRhbnQgdG8gZGVjbGFyZSBEUlQgaXMgcnVubmluZyBlYXJseSBzbyB3aGVuIGNy
ZWF0aW5nCkBAIC0xMTMxLDYgKzEyNDAsMTYgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0
ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgY29ubmVjdEVkaXRp
bmdDYWxsYmFja3Modmlldyk7CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBnX29i
amVjdF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25h
bDo6bm90aWZpY2F0aW9uLXNob3ciLCBzaG93Tm90aWZpY2F0aW9uLCAwLAorICAgICAgICAgICAg
ICAgICAgICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNhbmNlbCIsIGNhbmNlbE5vdGlmaWNhdGlv
biwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24iLCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbiwgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1jYW5jZWwtcGVybWlzc2lvbi1yZXF1
ZXN0cyIsIGNhbmNlbE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCAwLAorICAgICAgICAg
ICAgICAgICAgICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNoZWNrLXBlcm1pc3Npb24iLCBjaGVj
a05vdGlmaWNhdGlvblBlcm1pc3Npb24sIDAsCisJCSAgICAgTlVMTCk7CisjZW5kaWYKKwogICAg
IFdlYktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gd2Via2l0X3dlYl92aWV3X2dldF9pbnNw
ZWN0b3Iodmlldyk7CiAgICAgZ19vYmplY3RfY29ubmVjdChHX09CSkVDVChpbnNwZWN0b3IpLAog
ICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6aW5zcGVjdC13ZWItdmlldyIsIHdlYkluc3Bl
Y3Rvckluc3BlY3RXZWJWaWV3LCAwLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0R1bXBSZW5kZXJUcmVlR3RrLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJl
bmRlclRyZWVHdGsuaAppbmRleCA3YTVhNGNmNmJkMTYxZTFiYjRiNDA0M2NlM2FlMWFlMGU0NGVm
N2Y5Li4wNjA2NzdhNzU0YTQ1NmNiYzFiNjhmMjc1Y2U4ZWMyMTQ1YjQzYjRiIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaApAQCAtMzksNiArMzksNyBA
QCBleHRlcm4gV2ViS2l0V2ViRnJhbWUqIHRvcExvYWRpbmdGcmFtZTsKIGV4dGVybiBndWludCB3
YWl0VG9EdW1wV2F0Y2hkb2c7CiBleHRlcm4gYm9vbCB3YWl0Rm9yUG9saWN5OwogZXh0ZXJuIEdT
TGlzdCogd2ViVmlld0xpc3Q7CitleHRlcm4gR0xpc3QqIHNfbm90aWZpY2F0aW9uczsKIAogZ2No
YXIqIEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKEpTU3RyaW5nUmVmIGpzU3RyaW5nKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAKaW5kZXggOWRjY2ZhMGEyNGRlZWE0ZTlmOGEyMjQ0Yzc3MmYwNTc1OTYyZjUwMS4uYTEyNjlk
MmU2NGM0YWNiYjhmOTJkNmQwYjFhNDNiYmNiNjQyZDc4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaCIKIAorI2luY2x1ZGUgPENTdHJpbmcuaD4KICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5o
IgogI2luY2x1ZGUgIldlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgog
I2luY2x1ZGUgIldvcmtRdWV1ZS5oIgpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgPGdsaWIu
aD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+
CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYm5vdGlmaWNhdGlvbi5oPgogI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dPd25QdHIuaD4KIAogZXh0ZXJuICJDIiB7CkBAIC0xMDIyLDYgKzEwMjQsMjAg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QmFja2luZ1NjYWxlRmFjdG9yKGRvdWJs
ZSkKIHsKIH0KIAorc3RhdGljIGdpbnQgbWF0Y2hOb3RpZmljYXRpb25CeVRpdGxlKFdlYktpdFdl
Yk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBjaGFyKiB0aXRsZSkKK3sKKyAgICByZXR1cm4g
Z19zdHJjbXAwKHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2dldF90aXRsZShub3RpZmljYXRpb24p
LCB0aXRsZSk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3Rv
cE5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQogeworICAgIGNoYXIqIG5vdGlm
aWNhdGlvblRpdGxlID0gSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcodGl0bGUpOworICAgIEdMaXN0
KiBtYXRjaCA9IGdfbGlzdF9maW5kX2N1c3RvbShzX25vdGlmaWNhdGlvbnMsIG5vdGlmaWNhdGlv
blRpdGxlLCAoR0NvbXBhcmVGdW5jKW1hdGNoTm90aWZpY2F0aW9uQnlUaXRsZSk7CisKKyAgICBp
ZiAoIW1hdGNoKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJLaXRXZWJOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbiA9IFdFQktJVF9XRUJfTk9USUZJQ0FUSU9OKG1hdGNoLT5kYXRhKTsKKyAg
ICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9jbGlja2VkKG5vdGlmaWNhdGlvbik7CisgICAgZ19m
cmVlKG5vdGlmaWNhdGlvblRpdGxlKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZmUxYzdlYzI4MDQ4MjhjY2YwMTlj
ODFiM2UzMGI3YjVjMjkwMDBmLi45ZjZmMWFjNDQwOWY0NzM3ZTE5NGZkODQ2MDViNDQ3Zjk4NzA0
NzYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDctMDEgIEFsZXhhbmRyZSBNYXphcmkg
IDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRpb25zIHN1cHBvcnQg
KHRlc3RpbmcgZmFjaWxpdGllcykKKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBV
bnNraXAgbm90aWZpY2F0aW9ucyB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYxMTQwCisKIDIwMTEtMTAtMjUgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI5ODMwOS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMmRjODk2NTdkY2RhNDg3
Yjk0NzcwZTZkNmQzM2FkZDc0NjMxMjM5Mi4uZjUyYzRkY2I4YjE0MzQ0NGQxZThjZmE0NTBlYWZh
ZGRhM2IzNTlkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTMzMSw5ICszMzEsMTAg
QEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmljZS1vcmllbnRhdGlvbi5o
dG1sCiBmYXN0L2RvbS9EZXZpY2VNb3Rpb24KIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uCiAK
LSMgRGVza3RvcCBub3RpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkCi1mYXN0L25vdGlmaWNh
dGlvbnMKLWh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucworIyBOZWVkIHRvIGludmVzdGlnYXRlIGFj
dGlvbnMgdG8gdGFrZSBpbiB0aGUgY2FzZSBvZiBhIGNyYXNoCitmYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1kb2N1bWVudC1jbG9zZS1jcmFzaC5odG1sCisjIFVuY2xlYXIgdGVzdCBz
ZW1hbnRpYywgbmVlZCB0byBjaGVja291dCB3aXRoIHRoZSBhdXRob3IKK2Zhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbAogCiAjIFdl
IGxhY2sgdXNlcnNjcmlwdHMgc3VwcG9ydC4KIHVzZXJzY3JpcHRzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114329</attachid>
            <date>2011-11-09 11:36:11 -0800</date>
            <delta_ts>2011-11-10 03:00:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66477-20111109203610.patch</filename>
            <type>text/plain</type>
            <size>12181</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5OTcxMzU1NDIy
NmZiNTNkM2ViNTk3NzAxMDBkN2FhYTFmNTBhOWMxLi42MjI5YWRlOGYyZTQ2ZGM0MjBjMTM0OGFk
MDAzMzEwZDQ4YTgwYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTEt
MDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2Vi
IE5vdGlmaWNhdGlvbnMgc3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NzcKKworICAgICAgICBBZGQg
dGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRNTDUgTm90aWZpY2F0aW9uIHN1cHBvcnQgb2Yg
dGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgY3VycmVudCBub3RpZmljYXRpb25zIGxpc3QsCisgICAgICAgIHBlbmRpbmcgYXV0aCBy
ZXF1ZXN0cyBhbmQgYXV0aG9yaXplZCBub3RpZmljYXRpb25zIG9yaWdpbi4KKyAgICAgICAgVGhp
cyB0ZXN0aW5nIGNvZGUgaXMgbG9jYXRlZCBoZXJlIHRvIG1ha2UgaXRzIGNvbXBpbGF0aW9uCisg
ICAgICAgIGNvbmRpdGlvbm5hbCBkZXBlbmRpbmcgb24gdGhlIEVOQUJMRSBtYWNyby4KKyAgICAg
ICAgQWxzbyBMVEMgYW5kIERSVCBzaGFyZSBkYXRhIGhlcmUuCisKKzIwMTEtMDgtMTggIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRp
b25zIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAyZTQ5MDAzNTIwNjFkZTI0ODg2ZGFiMzI1NWM5Y2M2ZDFjYTdmNjU3Li5lMGY5NmJm
MzM3MjEwOTU3NzRjYjJhNTM3ODVkYTMyN2I5YmI0OTVkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMTgg
IEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkKKyAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmlj
YXRpb25zIHN1cHBvcnQgKHRlc3RpbmcgZmFjaWxpdGllcykKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDc3CisKKyAgICAgICAgQWRkIHRlc3Rpbmcg
ZmFjaWxpdGllcyBmb3IgdGhlIEhUTUw1IE5vdGlmaWNhdGlvbiBzdXBwb3J0IG9mIHRoZQorICAg
ICAgICBndGsgcG9ydC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIEltcGxlbWVudHMgbm90aWZpY2F0aW9ucy1yZWxh
dGVkIHN0dWJzLiBEZWxlZ2F0ZXMgdG8KKyAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5jcHA6Cisg
ICAgICAgIEluaXRpYWxpemUgbm90aWZpY2F0aW9ucy1yZWxhdGVkIHNpZ25hbHMgaGFuZGxlcnMg
YW5kIGRhdGEuCisKIDIwMTEtMTEtMDkgIEFsZXhhbmRyZSBNYXphcmkgIDxhbGV4YW5kcmUubWF6
YXJpQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBNYWtlIHRoZSBFTkFCTEUoRkVBVFVSRSkg
bWFjcm8gd29yayBpbiBEUlQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwCmluZGV4IGQ0ZWM5N2Q2ZTllMjU5MTI2ZDlkYmFlZTU2ZmNkNTE4YmY1YzIyYTUuLjNh
ZTQ2OTViYjc1NDI3YjQ2MWIzMWViZTUyNzNmZDM4YmU3MTlkY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1
ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBQTEFU
Rk9STShYMTEpCiAjaW5jbHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CkBAIC03MSw2ICs3
Miw3IEBAIGV4dGVybiB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdpbl9k
aXJlY3RvcnkoV2ViS2l0V2ViVmlldyogdmlldywKIGV4dGVybiBnY2hhciogd2Via2l0X3dlYl9m
cmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiB9CiAK
K3N0YXRpYyBWZWN0b3I8Q1N0cmluZz4gbm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0czsK
IHZvbGF0aWxlIGJvb2wgZG9uZTsKIHN0YXRpYyBib29sIHByaW50U2VwYXJhdG9yczsKIHN0YXRp
YyBpbnQgZHVtcFBpeGVsczsKQEAgLTkxLDYgKzkzLDggQEAgYm9vbCB3YWl0Rm9yUG9saWN5ID0g
ZmFsc2U7CiAvLyBUaGlzIGlzIGEgbGlzdCBvZiBvcGVuZWQgd2Vidmlld3MKIEdTTGlzdCogd2Vi
Vmlld0xpc3QgPSAwOwogCitHTGlzdCogc19ub3RpZmljYXRpb25zID0gMDsKKwogLy8gY3VycmVu
dCBiL2YgaXRlbSBhdCB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyB0ZXN0CiBzdGF0aWMgV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qIHByZXZUZXN0QkZJdGVtID0gTlVMTDsKIApAQCAtNDgwLDYgKzQ4NCwx
MSBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNsZWFyT3BlbmVyKG1haW5GcmFtZSk7CiAKICAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKHdlYlZp
ZXcpOworCisgICAgZ19saXN0X2ZyZWUoc19ub3RpZmljYXRpb25zKTsKKyAgICBzX25vdGlmaWNh
dGlvbnMgPSAwOworICAgIG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuY2xlYXIoKTsK
KwogfQogCiBzdGF0aWMgYm9vbCB1c2VMb25nUnVubmluZ1NlcnZlck1vZGUoaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSkKQEAgLTEwOTYsNiArMTEwNSwxMDYgQEAgc3RhdGljIHZvaWQgd2lsbFNlbmRS
ZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqLCBX
ZWIKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKK2NoYXIqIHdlYmtpdFdl
Yk5vdGlmaWNhdGlvblRvU3RyaW5nIChXZWJLaXRXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
bikKK3sKKyAgICByZXR1cm4gd2Via2l0X3dlYl9ub3RpZmljYXRpb25faXNfaHRtbChub3RpZmlj
YXRpb24pID8KKyAgICAgIGdfc3RyZHVwX3ByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT046IGNv
bnRlbnRzIGF0ICVzIiwgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3VyaShub3RpZmljYXRp
b24pKSA6CisgICAgICBnX3N0cmR1cF9wcmludGYoIkRFU0tUT1AgTk9USUZJQ0FUSU9OOiVzIGlj
b24gJXMsIHRpdGxlICVzLCB0ZXh0ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRf
d2ViX25vdGlmaWNhdGlvbl9nZXRfZGlyZWN0aW9uKG5vdGlmaWNhdGlvbikgPT0gR1RLX1RFWFRf
RElSX1JUTCA/ICIoUlRMKSIgOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2Vi
X25vdGlmaWNhdGlvbl9nZXRfaWNvbl91cmkobm90aWZpY2F0aW9uKSwKKyAgICAgICAgICAgICAg
ICAgICAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfdGl0bGUobm90aWZpY2F0aW9uKSwK
KyAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfYm9keShu
b3RpZmljYXRpb24pKTsKK30KKworc3RhdGljIGdjaGFyKiB3ZWJraXRTZWN1cml0eU9yaWdpblRv
U3RyaW5nKFdlYktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgcmV0dXJuIGdfc3Ry
ZHVwX3ByaW50ZigiJXM6Ly8lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRf
c2VjdXJpdHlfb3JpZ2luX2dldF9wcm90b2NvbChvcmlnaW4pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfaG9zdChvcmlnaW4pKTsKK30KKwor
c3RhdGljIHZvaWQgcmVtb3ZlRGVza3RvcE5vdGlmaWNhdGlvbihXZWJLaXRXZWJOb3RpZmljYXRp
b24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBzX25vdGlmaWNhdGlvbnMgPSBnX2xpc3RfcmVtb3Zl
KHNfbm90aWZpY2F0aW9ucywgbm90aWZpY2F0aW9uKTsKK30KKworc3RhdGljIGdpbnQgbWF0Y2hO
b3RpZmljYXRpb25CeVJlcGxhY2VJZChXZWJLaXRXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
biwgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBvdGhlcikKK3sKKyAgICByZXR1cm4gIXdlYmtpdF93
ZWJfbm90aWZpY2F0aW9uX2lzX3JlcGxhY2VtZW50X2Zvcihub3RpZmljYXRpb24sIG90aGVyKTsK
K30KKworc3RhdGljIHZvaWQgYWRkRGVza3RvcE5vdGlmaWNhdGlvbihXZWJLaXRXZWJOb3RpZmlj
YXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBHTGlzdCogbWF0Y2ggPSBnX2xpc3RfZmluZF9j
dXN0b20oc19ub3RpZmljYXRpb25zLCBub3RpZmljYXRpb24sIChHQ29tcGFyZUZ1bmMpbWF0Y2hO
b3RpZmljYXRpb25CeVJlcGxhY2VJZCk7CisgICAgaWYgKG1hdGNoKSB7CisgICAgICBXZWJLaXRX
ZWJOb3RpZmljYXRpb24qIHJlcGxhY2VkTm90aWZpY2F0aW9uID0gV0VCS0lUX1dFQl9OT1RJRklD
QVRJT04obWF0Y2gtPmRhdGEpOworICAgICAgcHJpbnRmKCJSRVBMQUNJTkcgTk9USUZJQ0FUSU9O
ICVzXG4iLAorICAgICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2lzX2h0bWwocmVw
bGFjZWROb3RpZmljYXRpb24pID8KKyAgICAgICAgICAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlv
bl9nZXRfdXJpKHJlcGxhY2VkTm90aWZpY2F0aW9uKSA6CisgICAgICAgICAgICAgd2Via2l0X3dl
Yl9ub3RpZmljYXRpb25fZ2V0X3RpdGxlKHJlcGxhY2VkTm90aWZpY2F0aW9uKSk7CisgICAgICBy
ZW1vdmVEZXNrdG9wTm90aWZpY2F0aW9uKHJlcGxhY2VkTm90aWZpY2F0aW9uKTsKKyAgICB9Cisg
ICAgc19ub3RpZmljYXRpb25zID0gZ19saXN0X2FwcGVuZChzX25vdGlmaWNhdGlvbnMsIG5vdGlm
aWNhdGlvbik7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiBzaG93Tm90aWZpY2F0aW9uKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQorewor
ICAgIGFkZERlc2t0b3BOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTsKKyAgICBnY2hhciogbm90
aWZpY2F0aW9uU3RyID0gd2Via2l0V2ViTm90aWZpY2F0aW9uVG9TdHJpbmcobm90aWZpY2F0aW9u
KTsKKyAgICBwcmludGYoIiVzXG4iLCBub3RpZmljYXRpb25TdHIpOworICAgIGdfZnJlZShub3Rp
ZmljYXRpb25TdHIpOworCisgICAgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fZGlzcGxheWVkKG5v
dGlmaWNhdGlvbik7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgY2FuY2Vs
Tm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYk5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uKQoreworICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04gQ0xP
U0VEOiAlc1xuIiwgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3RpdGxlKG5vdGlmaWNhdGlv
bikpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
V2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sK
KyAgICBnY2hhciogb3JpZ2luU3RyID0gd2Via2l0U2VjdXJpdHlPcmlnaW5Ub1N0cmluZyhvcmln
aW4pOworICAgIG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuYXBwZW5kKG9yaWdpblN0
cik7CisgICAgcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElPTiBQRVJNSVNTSU9OIFJFUVVFU1RF
RDogJXNcbiIsIG9yaWdpblN0cik7CisKKyAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5h
cmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZCgpKQorICAgICAg
ICByZXR1cm4gRkFMU0U7CisgICAgZWxzZSB7CisgICAgICAgIEpTU3RyaW5nUmVmIGpzT3JpZ2lu
ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcob3JpZ2luU3RyKTsKKyAgICAgICAgZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGpz
T3JpZ2luKTsKKyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsKKyAgICB9CisKKyAg
ICBnX2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMgdm9p
ZCBjYW5jZWxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGdjaGFyKiBvcmlnaW5T
dHIgPSB3ZWJraXRTZWN1cml0eU9yaWdpblRvU3RyaW5nKG9yaWdpbik7CisgICAgaWYgKG5vdGlm
aWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuY29udGFpbnMob3JpZ2luU3RyKSkgeworICAgICAg
ICBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVlc3RzLnJlbW92ZShub3RpZmljYXRpb25zUGVy
bWlzc2lvblJlcXVlc3RzLmZpbmQob3JpZ2luU3RyKSk7CisgICAgICAgIHByaW50ZigiREVTS1RP
UCBOT1RJRklDQVRJT04gUEVSTUlTU0lPTiBSRVFVRVNUIENBTkNFTExFRDogJXNcbiIsIG9yaWdp
blN0cik7CisgICAgfQorfQorCitzdGF0aWMgV2ViS2l0V2ViTm90aWZpY2F0aW9uc1Blcm1pc3Np
b24gY2hlY2tOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdl
YktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgZ2NoYXIqIG9yaWdpblN0ciA9IHdl
YmtpdFNlY3VyaXR5T3JpZ2luVG9TdHJpbmcob3JpZ2luKTsKKyAgICBKU1N0cmluZ1JlZiBqc09y
aWdpbiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG9yaWdpblN0cik7CisgICAgYm9v
bCBwZXJtaXRlZCA9IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Y2hlY2tEZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvbihqc09yaWdpbik7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsK
KyAgICBnX2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVybiBwZXJtaXRlZCA/IFdFQktJVF9X
RUJfTk9USUZJQ0FUSU9OU19QRVJNSVNTSU9OX0FMTE9XRUQgOiBXRUJLSVRfV0VCX05PVElGSUNB
VElPTlNfUEVSTUlTU0lPTl9ERU5JRUQ7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElP
TlMpCisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICAvLyBJ
dCBpcyBpbXBvcnRhbnQgdG8gZGVjbGFyZSBEUlQgaXMgcnVubmluZyBlYXJseSBzbyB3aGVuIGNy
ZWF0aW5nCkBAIC0xMTMxLDYgKzEyNDAsMTYgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0
ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgY29ubmVjdEVkaXRp
bmdDYWxsYmFja3Modmlldyk7CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBnX29i
amVjdF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25h
bDo6bm90aWZpY2F0aW9uLXNob3ciLCBzaG93Tm90aWZpY2F0aW9uLCAwLAorICAgICAgICAgICAg
ICAgICAgICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNhbmNlbCIsIGNhbmNlbE5vdGlmaWNhdGlv
biwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24iLCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbiwgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1jYW5jZWwtcGVybWlzc2lvbi1yZXF1
ZXN0cyIsIGNhbmNlbE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCAwLAorICAgICAgICAg
ICAgICAgICAgICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNoZWNrLXBlcm1pc3Npb24iLCBjaGVj
a05vdGlmaWNhdGlvblBlcm1pc3Npb24sIDAsCisJCSAgICAgTlVMTCk7CisjZW5kaWYKKwogICAg
IFdlYktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gd2Via2l0X3dlYl92aWV3X2dldF9pbnNw
ZWN0b3Iodmlldyk7CiAgICAgZ19vYmplY3RfY29ubmVjdChHX09CSkVDVChpbnNwZWN0b3IpLAog
ICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6aW5zcGVjdC13ZWItdmlldyIsIHdlYkluc3Bl
Y3Rvckluc3BlY3RXZWJWaWV3LCAwLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0R1bXBSZW5kZXJUcmVlR3RrLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJl
bmRlclRyZWVHdGsuaAppbmRleCA3YTVhNGNmNmJkMTYxZTFiYjRiNDA0M2NlM2FlMWFlMGU0NGVm
N2Y5Li4wNjA2NzdhNzU0YTQ1NmNiYzFiNjhmMjc1Y2U4ZWMyMTQ1YjQzYjRiIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaApAQCAtMzksNiArMzksNyBA
QCBleHRlcm4gV2ViS2l0V2ViRnJhbWUqIHRvcExvYWRpbmdGcmFtZTsKIGV4dGVybiBndWludCB3
YWl0VG9EdW1wV2F0Y2hkb2c7CiBleHRlcm4gYm9vbCB3YWl0Rm9yUG9saWN5OwogZXh0ZXJuIEdT
TGlzdCogd2ViVmlld0xpc3Q7CitleHRlcm4gR0xpc3QqIHNfbm90aWZpY2F0aW9uczsKIAogZ2No
YXIqIEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKEpTU3RyaW5nUmVmIGpzU3RyaW5nKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAKaW5kZXggOWRjY2ZhMGEyNGRlZWE0ZTlmOGEyMjQ0Yzc3MmYwNTc1OTYyZjUwMS4uYTEyNjlk
MmU2NGM0YWNiYjhmOTJkNmQwYjFhNDNiYmNiNjQyZDc4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaCIKIAorI2luY2x1ZGUgPENTdHJpbmcuaD4KICNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5o
IgogI2luY2x1ZGUgIldlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgog
I2luY2x1ZGUgIldvcmtRdWV1ZS5oIgpAQCAtNDcsNiArNDgsNyBAQAogI2luY2x1ZGUgPGdsaWIu
aD4KICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+
CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYm5vdGlmaWNhdGlvbi5oPgogI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dPd25QdHIuaD4KIAogZXh0ZXJuICJDIiB7CkBAIC0xMDIyLDYgKzEwMjQsMjAg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QmFja2luZ1NjYWxlRmFjdG9yKGRvdWJs
ZSkKIHsKIH0KIAorc3RhdGljIGdpbnQgbWF0Y2hOb3RpZmljYXRpb25CeVRpdGxlKFdlYktpdFdl
Yk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBjaGFyKiB0aXRsZSkKK3sKKyAgICByZXR1cm4g
Z19zdHJjbXAwKHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2dldF90aXRsZShub3RpZmljYXRpb24p
LCB0aXRsZSk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3Rv
cE5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQogeworICAgIGNoYXIqIG5vdGlm
aWNhdGlvblRpdGxlID0gSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcodGl0bGUpOworICAgIEdMaXN0
KiBtYXRjaCA9IGdfbGlzdF9maW5kX2N1c3RvbShzX25vdGlmaWNhdGlvbnMsIG5vdGlmaWNhdGlv
blRpdGxlLCAoR0NvbXBhcmVGdW5jKW1hdGNoTm90aWZpY2F0aW9uQnlUaXRsZSk7CisKKyAgICBp
ZiAoIW1hdGNoKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJLaXRXZWJOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbiA9IFdFQktJVF9XRUJfTk9USUZJQ0FUSU9OKG1hdGNoLT5kYXRhKTsKKyAg
ICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9jbGlja2VkKG5vdGlmaWNhdGlvbik7CisgICAgZ19m
cmVlKG5vdGlmaWNhdGlvblRpdGxlKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZmUxYzdlYzI4MDQ4MjhjY2YwMTlj
ODFiM2UzMGI3YjVjMjkwMDBmLi45ZjZmMWFjNDQwOWY0NzM3ZTE5NGZkODQ2MDViNDQ3Zjk4NzA0
NzYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDctMDEgIEFsZXhhbmRyZSBNYXphcmkg
IDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRpb25zIHN1cHBvcnQg
KHRlc3RpbmcgZmFjaWxpdGllcykKKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBV
bnNraXAgbm90aWZpY2F0aW9ucyB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYxMTQwCisKIDIwMTEtMTAtMjUgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI5ODMwOS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMmRjODk2NTdkY2RhNDg3
Yjk0NzcwZTZkNmQzM2FkZDc0NjMxMjM5Mi4uZjUyYzRkY2I4YjE0MzQ0NGQxZThjZmE0NTBlYWZh
ZGRhM2IzNTlkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTMzMSw5ICszMzEsMTAg
QEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmljZS1vcmllbnRhdGlvbi5o
dG1sCiBmYXN0L2RvbS9EZXZpY2VNb3Rpb24KIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uCiAK
LSMgRGVza3RvcCBub3RpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkCi1mYXN0L25vdGlmaWNh
dGlvbnMKLWh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucworIyBOZWVkIHRvIGludmVzdGlnYXRlIGFj
dGlvbnMgdG8gdGFrZSBpbiB0aGUgY2FzZSBvZiBhIGNyYXNoCitmYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1kb2N1bWVudC1jbG9zZS1jcmFzaC5odG1sCisjIFVuY2xlYXIgdGVzdCBz
ZW1hbnRpYywgbmVlZCB0byBjaGVja291dCB3aXRoIHRoZSBhdXRob3IKK2Zhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbAogCiAjIFdl
IGxhY2sgdXNlcnNjcmlwdHMgc3VwcG9ydC4KIHVzZXJzY3JpcHRzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114464</attachid>
            <date>2011-11-10 03:00:48 -0800</date>
            <delta_ts>2011-11-10 03:49:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66477-20111110120046.patch</filename>
            <type>text/plain</type>
            <size>12352</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5NTgxYjIwODIz
YmE0YzZkZTk5OTlhNDM4ZmUzNDFlMjFjYmM2NzBhLi5mNDljZjUxOTgxNDVkMzMzN2IzZWQ3MDZk
MWIwNTkyY2Q2MzY2NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTEt
MDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2Vi
IE5vdGlmaWNhdGlvbnMgc3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NzcKKworICAgICAgICBBZGQg
dGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRNTDUgTm90aWZpY2F0aW9uIHN1cHBvcnQgb2Yg
dGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgY3VycmVudCBub3RpZmljYXRpb25zIGxpc3QsCisgICAgICAgIHBlbmRpbmcgYXV0aCBy
ZXF1ZXN0cyBhbmQgYXV0aG9yaXplZCBub3RpZmljYXRpb25zIG9yaWdpbi4KKyAgICAgICAgVGhp
cyB0ZXN0aW5nIGNvZGUgaXMgbG9jYXRlZCBoZXJlIHRvIG1ha2UgaXRzIGNvbXBpbGF0aW9uCisg
ICAgICAgIGNvbmRpdGlvbm5hbCBkZXBlbmRpbmcgb24gdGhlIEVOQUJMRSBtYWNyby4KKyAgICAg
ICAgQWxzbyBMVEMgYW5kIERSVCBzaGFyZSBkYXRhIGhlcmUuCisKKzIwMTEtMDgtMTggIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRp
b25zIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBmMzZmODhiNzc0YWQxYTJhNTA2YjhiMGExZjRiMWU1NzNhYjA4NDNhLi4wOTEzNjc1
YjYxNzBjYWQwMzI3NjRmOTZjZGIxZDZmNmNlYThiNzdhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMTgg
IEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkKKyAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmlj
YXRpb25zIHN1cHBvcnQgKHRlc3RpbmcgZmFjaWxpdGllcykKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDc3CisKKyAgICAgICAgQWRkIHRlc3Rpbmcg
ZmFjaWxpdGllcyBmb3IgdGhlIEhUTUw1IE5vdGlmaWNhdGlvbiBzdXBwb3J0IG9mIHRoZQorICAg
ICAgICBndGsgcG9ydC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIEltcGxlbWVudHMgbm90aWZpY2F0aW9ucy1yZWxh
dGVkIHN0dWJzLiBEZWxlZ2F0ZXMgdG8KKyAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5jcHA6Cisg
ICAgICAgIEluaXRpYWxpemUgbm90aWZpY2F0aW9ucy1yZWxhdGVkIHNpZ25hbHMgaGFuZGxlcnMg
YW5kIGRhdGEuCisKIDIwMTEtMTEtMDkgIEFsZXhhbmRyZSBNYXphcmkgIDxhbGV4YW5kcmUubWF6
YXJpQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBNYWtlIHRoZSBFTkFCTEUoRkVBVFVSRSkg
bWFjcm8gd29yayBpbiBEUlQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwCmluZGV4IDVhZjE0MGRiODc2NDNmZmE3NWJiYmI0ZWNlYjU3NzU0ZmVmNjVhM2YuLjc5
NTQxN2I3NGM0MGMxZDE3OWQ3OGI5ZGRkZDAzYTIwMWU3YTViMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTQsMTEgKzU0LDE1IEBACiAjaW5j
bHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFBM
QVRGT1JNKFgxMSkKICNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRjb25maWcuaD4KICNlbmRpZgog
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYm5v
dGlmaWNhdGlvbi5oPgorI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTcxLDYg
Kzc1LDcgQEAgZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFfcGx1Z2lu
X2RpcmVjdG9yeShXZWJLaXRXZWJWaWV3KiB2aWV3LAogZXh0ZXJuIGdjaGFyKiB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKIH0K
IAorc3RhdGljIFZlY3RvcjxDU3RyaW5nPiBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVlc3Rz
Owogdm9sYXRpbGUgYm9vbCBkb25lOwogc3RhdGljIGJvb2wgcHJpbnRTZXBhcmF0b3JzOwogc3Rh
dGljIGludCBkdW1wUGl4ZWxzOwpAQCAtOTEsNiArOTYsOCBAQCBib29sIHdhaXRGb3JQb2xpY3kg
PSBmYWxzZTsKIC8vIFRoaXMgaXMgYSBsaXN0IG9mIG9wZW5lZCB3ZWJ2aWV3cwogR1NMaXN0KiB3
ZWJWaWV3TGlzdCA9IDA7CiAKK0dMaXN0KiBzX25vdGlmaWNhdGlvbnMgPSAwOworCiAvLyBjdXJy
ZW50IGIvZiBpdGVtIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIHRlc3QKIHN0YXRpYyBXZWJL
aXRXZWJIaXN0b3J5SXRlbSogcHJldlRlc3RCRkl0ZW0gPSBOVUxMOwogCkBAIC00NzYsNiArNDgz
LDExIEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIobWFpbkZyYW1lKTsKIAogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2sod2Vi
Vmlldyk7CisKKyAgICBnX2xpc3RfZnJlZShzX25vdGlmaWNhdGlvbnMpOworICAgIHNfbm90aWZp
Y2F0aW9ucyA9IDA7CisgICAgbm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigp
OworCiB9CiAKIHN0YXRpYyBib29sIHVzZUxvbmdSdW5uaW5nU2VydmVyTW9kZShpbnQgYXJnYywg
Y2hhciAqYXJndltdKQpAQCAtMTA5NCw2ICsxMTA2LDEwNSBAQCBzdGF0aWMgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSos
IFdlYgogICAgIH0KIH0KIAorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorY2hhciogd2Via2l0
V2ViTm90aWZpY2F0aW9uVG9TdHJpbmcgKFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uKQoreworICAgIHJldHVybiB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9pc19odG1sKG5vdGlm
aWNhdGlvbikgPworICAgICAgZ19zdHJkdXBfcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElPTjog
Y29udGVudHMgYXQgJXMiLCB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfdXJpKG5vdGlmaWNh
dGlvbikpIDoKKyAgICAgIGdfc3RyZHVwX3ByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT046JXMg
aWNvbiAlcywgdGl0bGUgJXMsIHRleHQgJXMiLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtp
dF93ZWJfbm90aWZpY2F0aW9uX2dldF9kaXJlY3Rpb24obm90aWZpY2F0aW9uKSA9PSBHVEtfVEVY
VF9ESVJfUlRMID8gIihSVEwpIiA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93
ZWJfbm90aWZpY2F0aW9uX2dldF9pY29uX3VyaShub3RpZmljYXRpb24pLAorICAgICAgICAgICAg
ICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2dldF90aXRsZShub3RpZmljYXRpb24p
LAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2dldF9ib2R5
KG5vdGlmaWNhdGlvbikpOworfQorCitzdGF0aWMgZ2NoYXIqIHdlYmtpdFNlY3VyaXR5T3JpZ2lu
VG9TdHJpbmcoV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICByZXR1cm4gZ19z
dHJkdXBfcHJpbnRmKCIlczovLyVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtp
dF9zZWN1cml0eV9vcmlnaW5fZ2V0X3Byb3RvY29sKG9yaWdpbiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9ob3N0KG9yaWdpbikpOworfQor
CitzdGF0aWMgdm9pZCByZW1vdmVEZXNrdG9wTm90aWZpY2F0aW9uKFdlYktpdFdlYk5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIHNfbm90aWZpY2F0aW9ucyA9IGdfbGlzdF9yZW1v
dmUoc19ub3RpZmljYXRpb25zLCBub3RpZmljYXRpb24pOworfQorCitzdGF0aWMgZ2ludCBtYXRj
aE5vdGlmaWNhdGlvbkJ5UmVwbGFjZUlkKFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uLCBXZWJLaXRXZWJOb3RpZmljYXRpb24qIG90aGVyKQoreworICAgIHJldHVybiAhd2Via2l0
X3dlYl9ub3RpZmljYXRpb25faXNfcmVwbGFjZW1lbnRfZm9yKG5vdGlmaWNhdGlvbiwgb3RoZXIp
OworfQorCitzdGF0aWMgdm9pZCBhZGREZXNrdG9wTm90aWZpY2F0aW9uKFdlYktpdFdlYk5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIEdMaXN0KiBtYXRjaCA9IGdfbGlzdF9maW5k
X2N1c3RvbShzX25vdGlmaWNhdGlvbnMsIG5vdGlmaWNhdGlvbiwgKEdDb21wYXJlRnVuYyltYXRj
aE5vdGlmaWNhdGlvbkJ5UmVwbGFjZUlkKTsKKyAgICBpZiAobWF0Y2gpIHsKKyAgICAgIFdlYktp
dFdlYk5vdGlmaWNhdGlvbiogcmVwbGFjZWROb3RpZmljYXRpb24gPSBXRUJLSVRfV0VCX05PVElG
SUNBVElPTihtYXRjaC0+ZGF0YSk7CisgICAgICBwcmludGYoIlJFUExBQ0lORyBOT1RJRklDQVRJ
T04gJXNcbiIsCisgICAgICAgICAgICAgd2Via2l0X3dlYl9ub3RpZmljYXRpb25faXNfaHRtbChy
ZXBsYWNlZE5vdGlmaWNhdGlvbikgPworICAgICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0
aW9uX2dldF91cmkocmVwbGFjZWROb3RpZmljYXRpb24pIDoKKyAgICAgICAgICAgICB3ZWJraXRf
d2ViX25vdGlmaWNhdGlvbl9nZXRfdGl0bGUocmVwbGFjZWROb3RpZmljYXRpb24pKTsKKyAgICAg
IHJlbW92ZURlc2t0b3BOb3RpZmljYXRpb24ocmVwbGFjZWROb3RpZmljYXRpb24pOworICAgIH0K
KyAgICBzX25vdGlmaWNhdGlvbnMgPSBnX2xpc3RfYXBwZW5kKHNfbm90aWZpY2F0aW9ucywgbm90
aWZpY2F0aW9uKTsKK30KKworc3RhdGljIGdib29sZWFuIHNob3dOb3RpZmljYXRpb24oV2ViS2l0
V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7
CisgICAgYWRkRGVza3RvcE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pOworICAgIGdjaGFyKiBu
b3RpZmljYXRpb25TdHIgPSB3ZWJraXRXZWJOb3RpZmljYXRpb25Ub1N0cmluZyhub3RpZmljYXRp
b24pOworICAgIHByaW50ZigiJXNcbiIsIG5vdGlmaWNhdGlvblN0cik7CisgICAgZ19mcmVlKG5v
dGlmaWNhdGlvblN0cik7CisKKyAgICB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9kaXNwbGF5ZWQo
bm90aWZpY2F0aW9uKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgdm9pZCBjYW5j
ZWxOb3RpZmljYXRpb24oV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViTm90aWZpY2F0
aW9uKiBub3RpZmljYXRpb24pCit7CisgICAgcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElPTiBD
TE9TRUQ6ICVzXG4iLCB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfdGl0bGUobm90aWZpY2F0
aW9uKSk7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lv
bihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRTZWN1cml0eU9yaWdpbiogb3JpZ2luKQor
eworICAgIGdjaGFyKiBvcmlnaW5TdHIgPSB3ZWJraXRTZWN1cml0eU9yaWdpblRvU3RyaW5nKG9y
aWdpbik7CisgICAgbm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0cy5hcHBlbmQob3JpZ2lu
U3RyKTsKKyAgICBwcmludGYoIkRFU0tUT1AgTk9USUZJQ0FUSU9OIFBFUk1JU1NJT04gUkVRVUVT
VEVEOiAlc1xuIiwgb3JpZ2luU3RyKTsKKworICAgIGJvb2wgaWdub3JlID0gZ0xheW91dFRlc3RD
b250cm9sbGVyLT5hcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3Jl
ZCgpOworICAgIGlmICghaWdub3JlKSB7CisgICAgICAgIEpTU3RyaW5nUmVmIGpzT3JpZ2luID0g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcob3JpZ2luU3RyKTsKKyAgICAgICAgZ0xheW91
dFRlc3RDb250cm9sbGVyLT5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGpzT3Jp
Z2luKTsKKyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsKKyAgICB9CisKKyAgICBn
X2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVybiAhaWdub3JlOworfQorCitzdGF0aWMgdm9p
ZCBjYW5jZWxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGdjaGFyKiBvcmlnaW5T
dHIgPSB3ZWJraXRTZWN1cml0eU9yaWdpblRvU3RyaW5nKG9yaWdpbik7CisgICAgaWYgKG5vdGlm
aWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMuY29udGFpbnMob3JpZ2luU3RyKSkgeworICAgICAg
ICBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVlc3RzLnJlbW92ZShub3RpZmljYXRpb25zUGVy
bWlzc2lvblJlcXVlc3RzLmZpbmQob3JpZ2luU3RyKSk7CisgICAgICAgIHByaW50ZigiREVTS1RP
UCBOT1RJRklDQVRJT04gUEVSTUlTU0lPTiBSRVFVRVNUIENBTkNFTExFRDogJXNcbiIsIG9yaWdp
blN0cik7CisgICAgfQorfQorCitzdGF0aWMgV2ViS2l0V2ViTm90aWZpY2F0aW9uc1Blcm1pc3Np
b24gY2hlY2tOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdl
YktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgZ2NoYXIqIG9yaWdpblN0ciA9IHdl
YmtpdFNlY3VyaXR5T3JpZ2luVG9TdHJpbmcob3JpZ2luKTsKKyAgICBKU1N0cmluZ1JlZiBqc09y
aWdpbiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG9yaWdpblN0cik7CisgICAgYm9v
bCBwZXJtaXRlZCA9IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Y2hlY2tEZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvbihqc09yaWdpbik7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsK
KyAgICBnX2ZyZWUob3JpZ2luU3RyKTsKKworICAgIHJldHVybiBwZXJtaXRlZCA/IFdFQktJVF9X
RUJfTk9USUZJQ0FUSU9OU19QRVJNSVNTSU9OX0FMTE9XRUQgOiBXRUJLSVRfV0VCX05PVElGSUNB
VElPTlNfUEVSTUlTU0lPTl9ERU5JRUQ7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElP
TlMpCisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICAvLyBJ
dCBpcyBpbXBvcnRhbnQgdG8gZGVjbGFyZSBEUlQgaXMgcnVubmluZyBlYXJseSBzbyB3aGVuIGNy
ZWF0aW5nCkBAIC0xMTI5LDYgKzEyNDAsMTYgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0
ZVdlYlZpZXcoKQogICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgY29ubmVjdEVkaXRp
bmdDYWxsYmFja3Modmlldyk7CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBnX29i
amVjdF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25h
bDo6bm90aWZpY2F0aW9uLXNob3ciLCBzaG93Tm90aWZpY2F0aW9uLCAwLAorICAgICAgICAgICAg
ICAgICAgICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNhbmNlbCIsIGNhbmNlbE5vdGlmaWNhdGlv
biwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1yZXF1ZXN0
LXBlcm1pc3Npb24iLCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbiwgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1jYW5jZWwtcGVybWlzc2lvbi1yZXF1
ZXN0cyIsIGNhbmNlbE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCAwLAorICAgICAgICAg
ICAgICAgICAgICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNoZWNrLXBlcm1pc3Npb24iLCBjaGVj
a05vdGlmaWNhdGlvblBlcm1pc3Npb24sIDAsCisgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK
KyNlbmRpZgorCiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2luc3BlY3Rvcih2aWV3KTsKICAgICBnX29iamVjdF9jb25uZWN0KEdfT0JKRUNU
KGluc3BlY3RvciksCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjppbnNwZWN0LXdlYi12
aWV3Iiwgd2ViSW5zcGVjdG9ySW5zcGVjdFdlYlZpZXcsIDAsCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCmluZGV4IDdhNWE0Y2Y2YmQxNjFlMWJiNGI0MDQz
Y2UzYWUxYWUwZTQ0ZWY3ZjkuLjA2MDY3N2E3NTRhNDU2Y2JjMWI2OGYyNzVjZThlYzIxNDViNDNi
NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0
ay5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCkBA
IC0zOSw2ICszOSw3IEBAIGV4dGVybiBXZWJLaXRXZWJGcmFtZSogdG9wTG9hZGluZ0ZyYW1lOwog
ZXh0ZXJuIGd1aW50IHdhaXRUb0R1bXBXYXRjaGRvZzsKIGV4dGVybiBib29sIHdhaXRGb3JQb2xp
Y3k7CiBleHRlcm4gR1NMaXN0KiB3ZWJWaWV3TGlzdDsKK2V4dGVybiBHTGlzdCogc19ub3RpZmlj
YXRpb25zOwogCiBnY2hhciogSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcoSlNTdHJpbmdSZWYganNT
dHJpbmcpOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVz
dENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcAppbmRleCA5ZGNjZmEwYTI0ZGVlYTRlOWY4YTIyNDRjNzcyZjA1NzU5
NjJmNTAxLi5hMTI2OWQyZTY0YzRhY2JiOGY5MmQ2ZDBiMWE0M2JiY2I2NDJkNzhmIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMYXlv
dXRUZXN0Q29udHJvbGxlci5oIgogCisjaW5jbHVkZSA8Q1N0cmluZy5oPgogI2luY2x1ZGUgIkR1
bXBSZW5kZXJUcmVlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCkBAIC00Nyw2ICs0OCw3IEBACiAj
aW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vibm90aWZpY2F0aW9uLmg+
CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTEw
MjIsNiArMTAyNCwyMCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRCYWNraW5nU2Nh
bGVGYWN0b3IoZG91YmxlKQogewogfQogCitzdGF0aWMgZ2ludCBtYXRjaE5vdGlmaWNhdGlvbkJ5
VGl0bGUoV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIGNoYXIqIHRpdGxlKQor
eworICAgIHJldHVybiBnX3N0cmNtcDAod2Via2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3RpdGxl
KG5vdGlmaWNhdGlvbiksIHRpdGxlKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCiB7Cisg
ICAgY2hhciogbm90aWZpY2F0aW9uVGl0bGUgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyh0aXRs
ZSk7CisgICAgR0xpc3QqIG1hdGNoID0gZ19saXN0X2ZpbmRfY3VzdG9tKHNfbm90aWZpY2F0aW9u
cywgbm90aWZpY2F0aW9uVGl0bGUsIChHQ29tcGFyZUZ1bmMpbWF0Y2hOb3RpZmljYXRpb25CeVRp
dGxlKTsKKworICAgIGlmICghbWF0Y2gpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdFdl
Yk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gV0VCS0lUX1dFQl9OT1RJRklDQVRJT04obWF0
Y2gtPmRhdGEpOworICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2NsaWNrZWQobm90aWZpY2F0
aW9uKTsKKyAgICBnX2ZyZWUobm90aWZpY2F0aW9uVGl0bGUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2MDM5Yzk3
MjRhOTA2NGI4MmIwMjhhZWMxMTZkMDM3NjMwMjA2ZmMuLjFkNTkxYjNmMThjMDY3OGQ0NTdmZTQw
OTllZGJlNGFkYTBjOWFkOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wNy0wMSAgQWxl
eGFuZHJlIE1hemFyaSAgPGFtYXphcmlAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2ViIE5vdGlmaWNh
dGlvbnMgc3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NraXBwZWQ6IFVuc2tpcCBub3RpZmljYXRpb25zIHRlc3RzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNDAKKwogMjAxMS0xMS0xMCAgWXV0
YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVu
cmV2aWV3ZWQsIHJlYmFzZWxpbmUgU1ZHIHRlc3QgcmVzdWx0cyBjaGFuZ2VkIGFmdGVyIHI5OTUz
OS4gKHBhcnQgMikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggNzIwNWUyYTZmNjYzYTQw
ZWVlZTIwZDY2ZGQ0MzJjYzY1NTA5ZTE4YS4uMGUwNGVjYjBhZTgxMzI1OTExYWYzOGE0ZjYwODA0
NTI2ZWQyYjkxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTIyNSw5ICsyMjUsMTAg
QEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmljZS1vcmllbnRhdGlvbi5o
dG1sCiBmYXN0L2RvbS9EZXZpY2VNb3Rpb24KIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uCiAK
LSMgRGVza3RvcCBub3RpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkCi1mYXN0L25vdGlmaWNh
dGlvbnMKLWh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucworIyBOZWVkIHRvIGludmVzdGlnYXRlIGFj
dGlvbnMgdG8gdGFrZSBpbiB0aGUgY2FzZSBvZiBhIGNyYXNoCitmYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1kb2N1bWVudC1jbG9zZS1jcmFzaC5odG1sCisjIFVuY2xlYXIgdGVzdCBz
ZW1hbnRpYywgbmVlZCB0byBjaGVja291dCB3aXRoIHRoZSBhdXRob3IKK2Zhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbAogCiAjIFdl
IGxhY2sgdXNlcnNjcmlwdHMgc3VwcG9ydC4KIHVzZXJzY3JpcHRzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114466</attachid>
            <date>2011-11-10 03:49:53 -0800</date>
            <delta_ts>2011-11-23 09:24:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66477-20111110124952.patch</filename>
            <type>text/plain</type>
            <size>12346</size>
            <attacher name="Alexandre Mazari">scaroo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5NTgxYjIwODIz
YmE0YzZkZTk5OTlhNDM4ZmUzNDFlMjFjYmM2NzBhLi5mNDljZjUxOTgxNDVkMzMzN2IzZWQ3MDZk
MWIwNTkyY2Q2MzY2NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTEt
MDgtMTggIEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2Vi
IE5vdGlmaWNhdGlvbnMgc3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0NzcKKworICAgICAgICBBZGQg
dGVzdGluZyBmYWNpbGl0aWVzIGZvciB0aGUgSFRNTDUgTm90aWZpY2F0aW9uIHN1cHBvcnQgb2Yg
dGhlCisgICAgICAgIGd0ayBwb3J0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gaW50ZXJhY3Qgd2l0
aCB0aGUgY3VycmVudCBub3RpZmljYXRpb25zIGxpc3QsCisgICAgICAgIHBlbmRpbmcgYXV0aCBy
ZXF1ZXN0cyBhbmQgYXV0aG9yaXplZCBub3RpZmljYXRpb25zIG9yaWdpbi4KKyAgICAgICAgVGhp
cyB0ZXN0aW5nIGNvZGUgaXMgbG9jYXRlZCBoZXJlIHRvIG1ha2UgaXRzIGNvbXBpbGF0aW9uCisg
ICAgICAgIGNvbmRpdGlvbm5hbCBkZXBlbmRpbmcgb24gdGhlIEVOQUJMRSBtYWNyby4KKyAgICAg
ICAgQWxzbyBMVEMgYW5kIERSVCBzaGFyZSBkYXRhIGhlcmUuCisKKzIwMTEtMDgtMTggIEFsZXhh
bmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmljYXRp
b25zIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBmMzZmODhiNzc0YWQxYTJhNTA2YjhiMGExZjRiMWU1NzNhYjA4NDNhLi4wOTEzNjc1
YjYxNzBjYWQwMzI3NjRmOTZjZGIxZDZmNmNlYThiNzdhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMTgg
IEFsZXhhbmRyZSBNYXphcmkgIDxhbWF6YXJpQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkKKyAgICAgICAgW0dUS10gQWRkIEhUTUw1IFdlYiBOb3RpZmlj
YXRpb25zIHN1cHBvcnQgKHRlc3RpbmcgZmFjaWxpdGllcykKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDc3CisKKyAgICAgICAgQWRkIHRlc3Rpbmcg
ZmFjaWxpdGllcyBmb3IgdGhlIEhUTUw1IE5vdGlmaWNhdGlvbiBzdXBwb3J0IG9mIHRoZQorICAg
ICAgICBndGsgcG9ydC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIEltcGxlbWVudHMgbm90aWZpY2F0aW9ucy1yZWxh
dGVkIHN0dWJzLiBEZWxlZ2F0ZXMgdG8KKyAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5jcHA6Cisg
ICAgICAgIEluaXRpYWxpemUgbm90aWZpY2F0aW9ucy1yZWxhdGVkIHNpZ25hbHMgaGFuZGxlcnMg
YW5kIGRhdGEuCisKIDIwMTEtMTEtMDkgIEFsZXhhbmRyZSBNYXphcmkgIDxhbGV4YW5kcmUubWF6
YXJpQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBNYWtlIHRoZSBFTkFCTEUoRkVBVFVSRSkg
bWFjcm8gd29yayBpbiBEUlQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwCmluZGV4IDVhZjE0MGRiODc2NDNmZmE3NWJiYmI0ZWNlYjU3NzU0ZmVmNjVhM2YuLmQw
NWQwMzdjNDgxYmUzNmM1Y2M0ZGFkMjhiODMyZGYxZjA1Nzg4NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTQsMTEgKzU0LDE1IEBACiAjaW5j
bHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2lmIFBM
QVRGT1JNKFgxMSkKICNpbmNsdWRlIDxmb250Y29uZmlnL2ZvbnRjb25maWcuaD4KICNlbmRpZgog
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYm5v
dGlmaWNhdGlvbi5oPgorI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTcxLDYg
Kzc1LDcgQEAgZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFfcGx1Z2lu
X2RpcmVjdG9yeShXZWJLaXRXZWJWaWV3KiB2aWV3LAogZXh0ZXJuIGdjaGFyKiB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKIH0K
IAorc3RhdGljIFZlY3RvcjxDU3RyaW5nPiBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVlc3Rz
Owogdm9sYXRpbGUgYm9vbCBkb25lOwogc3RhdGljIGJvb2wgcHJpbnRTZXBhcmF0b3JzOwogc3Rh
dGljIGludCBkdW1wUGl4ZWxzOwpAQCAtOTEsNiArOTYsOCBAQCBib29sIHdhaXRGb3JQb2xpY3kg
PSBmYWxzZTsKIC8vIFRoaXMgaXMgYSBsaXN0IG9mIG9wZW5lZCB3ZWJ2aWV3cwogR1NMaXN0KiB3
ZWJWaWV3TGlzdCA9IDA7CiAKK0dMaXN0KiBzX25vdGlmaWNhdGlvbnMgPSAwOworCiAvLyBjdXJy
ZW50IGIvZiBpdGVtIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIHRlc3QKIHN0YXRpYyBXZWJL
aXRXZWJIaXN0b3J5SXRlbSogcHJldlRlc3RCRkl0ZW0gPSBOVUxMOwogCkBAIC00NzYsNiArNDgz
LDExIEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIobWFpbkZyYW1lKTsKIAogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2sod2Vi
Vmlldyk7CisKKyAgICBnX2xpc3RfZnJlZShzX25vdGlmaWNhdGlvbnMpOworICAgIHNfbm90aWZp
Y2F0aW9ucyA9IDA7CisgICAgbm90aWZpY2F0aW9uc1Blcm1pc3Npb25SZXF1ZXN0cy5jbGVhcigp
OworCiB9CiAKIHN0YXRpYyBib29sIHVzZUxvbmdSdW5uaW5nU2VydmVyTW9kZShpbnQgYXJnYywg
Y2hhciAqYXJndltdKQpAQCAtMTA5NCw2ICsxMTA2LDEwMSBAQCBzdGF0aWMgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSos
IFdlYgogICAgIH0KIH0KIAorI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorY2hhciogd2Via2l0
V2ViTm90aWZpY2F0aW9uVG9TdHJpbmcgKFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uKQoreworICAgIHJldHVybiB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9pc19odG1sKG5vdGlm
aWNhdGlvbikgPworICAgICAgZ19zdHJkdXBfcHJpbnRmKCJERVNLVE9QIE5PVElGSUNBVElPTjog
Y29udGVudHMgYXQgJXMiLCB3ZWJraXRfd2ViX25vdGlmaWNhdGlvbl9nZXRfdXJpKG5vdGlmaWNh
dGlvbikpIDoKKyAgICAgIGdfc3RyZHVwX3ByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT046JXMg
aWNvbiAlcywgdGl0bGUgJXMsIHRleHQgJXMiLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtp
dF93ZWJfbm90aWZpY2F0aW9uX2dldF9kaXJlY3Rpb24obm90aWZpY2F0aW9uKSA9PSBHVEtfVEVY
VF9ESVJfUlRMID8gIihSVEwpIiA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93
ZWJfbm90aWZpY2F0aW9uX2dldF9pY29uX3VyaShub3RpZmljYXRpb24pLAorICAgICAgICAgICAg
ICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2dldF90aXRsZShub3RpZmljYXRpb24p
LAorICAgICAgICAgICAgICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2dldF9ib2R5
KG5vdGlmaWNhdGlvbikpOworfQorCitzdGF0aWMgZ2NoYXIqIHdlYmtpdFNlY3VyaXR5T3JpZ2lu
VG9TdHJpbmcoV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICByZXR1cm4gZ19z
dHJkdXBfcHJpbnRmKCIlczovLyVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmtp
dF9zZWN1cml0eV9vcmlnaW5fZ2V0X3Byb3RvY29sKG9yaWdpbiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9ob3N0KG9yaWdpbikpOworfQor
CitzdGF0aWMgdm9pZCByZW1vdmVEZXNrdG9wTm90aWZpY2F0aW9uKFdlYktpdFdlYk5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIHNfbm90aWZpY2F0aW9ucyA9IGdfbGlzdF9yZW1v
dmUoc19ub3RpZmljYXRpb25zLCBub3RpZmljYXRpb24pOworfQorCitzdGF0aWMgZ2ludCBtYXRj
aE5vdGlmaWNhdGlvbkJ5UmVwbGFjZUlkKFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0
aW9uLCBXZWJLaXRXZWJOb3RpZmljYXRpb24qIG90aGVyKQoreworICAgIHJldHVybiAhd2Via2l0
X3dlYl9ub3RpZmljYXRpb25faXNfcmVwbGFjZW1lbnRfZm9yKG5vdGlmaWNhdGlvbiwgb3RoZXIp
OworfQorCitzdGF0aWMgdm9pZCBhZGREZXNrdG9wTm90aWZpY2F0aW9uKFdlYktpdFdlYk5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIEdMaXN0KiBtYXRjaCA9IGdfbGlzdF9maW5k
X2N1c3RvbShzX25vdGlmaWNhdGlvbnMsIG5vdGlmaWNhdGlvbiwgKEdDb21wYXJlRnVuYyltYXRj
aE5vdGlmaWNhdGlvbkJ5UmVwbGFjZUlkKTsKKyAgICBpZiAobWF0Y2gpIHsKKyAgICAgIFdlYktp
dFdlYk5vdGlmaWNhdGlvbiogcmVwbGFjZWROb3RpZmljYXRpb24gPSBXRUJLSVRfV0VCX05PVElG
SUNBVElPTihtYXRjaC0+ZGF0YSk7CisgICAgICBwcmludGYoIlJFUExBQ0lORyBOT1RJRklDQVRJ
T04gJXNcbiIsCisgICAgICAgICAgICAgd2Via2l0X3dlYl9ub3RpZmljYXRpb25faXNfaHRtbChy
ZXBsYWNlZE5vdGlmaWNhdGlvbikgPworICAgICAgICAgICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0
aW9uX2dldF91cmkocmVwbGFjZWROb3RpZmljYXRpb24pIDoKKyAgICAgICAgICAgICB3ZWJraXRf
d2ViX25vdGlmaWNhdGlvbl9nZXRfdGl0bGUocmVwbGFjZWROb3RpZmljYXRpb24pKTsKKyAgICAg
IHJlbW92ZURlc2t0b3BOb3RpZmljYXRpb24ocmVwbGFjZWROb3RpZmljYXRpb24pOworICAgIH0K
KyAgICBzX25vdGlmaWNhdGlvbnMgPSBnX2xpc3RfYXBwZW5kKHNfbm90aWZpY2F0aW9ucywgbm90
aWZpY2F0aW9uKTsKK30KKworc3RhdGljIGdib29sZWFuIHNob3dOb3RpZmljYXRpb24oV2ViS2l0
V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCit7
CisgICAgYWRkRGVza3RvcE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pOworICAgIEdPd25QdHI8
Z2NoYXI+IG5vdGlmaWNhdGlvblN0cih3ZWJraXRXZWJOb3RpZmljYXRpb25Ub1N0cmluZyhub3Rp
ZmljYXRpb24pKTsKKyAgICBwcmludGYoIiVzXG4iLCBub3RpZmljYXRpb25TdHIuZ2V0KCkpOwor
CisgICAgd2Via2l0X3dlYl9ub3RpZmljYXRpb25fZGlzcGxheWVkKG5vdGlmaWNhdGlvbik7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
KQoreworICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04gQ0xPU0VEOiAlc1xuIiwgd2Vi
a2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3RpdGxlKG5vdGlmaWNhdGlvbikpOworfQorCitzdGF0
aWMgZ2Jvb2xlYW4gcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBHT3duUHRyPGdj
aGFyPiBvcmlnaW5TdHIod2Via2l0U2VjdXJpdHlPcmlnaW5Ub1N0cmluZyhvcmlnaW4pKTsKKyAg
ICBub3RpZmljYXRpb25zUGVybWlzc2lvblJlcXVlc3RzLmFwcGVuZChvcmlnaW5TdHIuZ2V0KCkp
OworICAgIHByaW50ZigiREVTS1RPUCBOT1RJRklDQVRJT04gUEVSTUlTU0lPTiBSRVFVRVNURUQ6
ICVzXG4iLCBvcmlnaW5TdHIuZ2V0KCkpOworCisgICAgYm9vbCBpZ25vcmUgPSBnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmFyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25v
cmVkKCk7CisgICAgaWYgKCFpZ25vcmUpIHsKKyAgICAgIEpTU3RyaW5nUmVmIGpzT3JpZ2luID0g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcob3JpZ2luU3RyLmdldCgpKTsKKyAgICAgICAg
Z0xheW91dFRlc3RDb250cm9sbGVyLT5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9u
KGpzT3JpZ2luKTsKKyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzT3JpZ2luKTsKKyAgICB9CisK
KyAgICByZXR1cm4gIWlnbm9yZTsKK30KKworc3RhdGljIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U2VjdXJpdHlP
cmlnaW4qIG9yaWdpbikKK3sKKyAgICBHT3duUHRyPGdjaGFyPiBvcmlnaW5TdHIod2Via2l0U2Vj
dXJpdHlPcmlnaW5Ub1N0cmluZyhvcmlnaW4pKTsKKyAgICBpZiAobm90aWZpY2F0aW9uc1Blcm1p
c3Npb25SZXF1ZXN0cy5jb250YWlucyhvcmlnaW5TdHIuZ2V0KCkpKSB7CisgICAgICAgIG5vdGlm
aWNhdGlvbnNQZXJtaXNzaW9uUmVxdWVzdHMucmVtb3ZlKG5vdGlmaWNhdGlvbnNQZXJtaXNzaW9u
UmVxdWVzdHMuZmluZChvcmlnaW5TdHIuZ2V0KCkpKTsKKyAgICAgICAgcHJpbnRmKCJERVNLVE9Q
IE5PVElGSUNBVElPTiBQRVJNSVNTSU9OIFJFUVVFU1QgQ0FOQ0VMTEVEOiAlc1xuIiwgb3JpZ2lu
U3RyLmdldCgpKTsKKyAgICB9Cit9CisKK3N0YXRpYyBXZWJLaXRXZWJOb3RpZmljYXRpb25zUGVy
bWlzc2lvbiBjaGVja05vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBHT3duUHRyPGdjaGFyPiBv
cmlnaW5TdHIod2Via2l0U2VjdXJpdHlPcmlnaW5Ub1N0cmluZyhvcmlnaW4pKTsKKyAgICBKU1N0
cmluZ1JlZiBqc09yaWdpbiA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG9yaWdpblN0
ci5nZXQoKSk7CisgICAgYm9vbCBwZXJtaXRlZCA9IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Y2hl
Y2tEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihqc09yaWdpbik7CisgICAgSlNTdHJpbmdS
ZWxlYXNlKGpzT3JpZ2luKTsKKworICAgIHJldHVybiBwZXJtaXRlZCA/IFdFQktJVF9XRUJfTk9U
SUZJQ0FUSU9OU19QRVJNSVNTSU9OX0FMTE9XRUQgOiBXRUJLSVRfV0VCX05PVElGSUNBVElPTlNf
UEVSTUlTU0lPTl9ERU5JRUQ7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpCisK
IHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICAvLyBJdCBpcyBp
bXBvcnRhbnQgdG8gZGVjbGFyZSBEUlQgaXMgcnVubmluZyBlYXJseSBzbyB3aGVuIGNyZWF0aW5n
CkBAIC0xMTI5LDYgKzEyMzYsMTYgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZp
ZXcoKQogICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgY29ubmVjdEVkaXRpbmdDYWxs
YmFja3Modmlldyk7CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyAgICBnX29iamVjdF9j
b25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6bm90
aWZpY2F0aW9uLXNob3ciLCBzaG93Tm90aWZpY2F0aW9uLCAwLAorICAgICAgICAgICAgICAgICAg
ICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNhbmNlbCIsIGNhbmNlbE5vdGlmaWNhdGlvbiwgMCwK
KyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1yZXF1ZXN0LXBlcm1p
c3Npb24iLCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbiwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICJzaWduYWw6Om5vdGlmaWNhdGlvbi1jYW5jZWwtcGVybWlzc2lvbi1yZXF1ZXN0cyIs
IGNhbmNlbE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCAwLAorICAgICAgICAgICAgICAg
ICAgICAgInNpZ25hbDo6bm90aWZpY2F0aW9uLWNoZWNrLXBlcm1pc3Npb24iLCBjaGVja05vdGlm
aWNhdGlvblBlcm1pc3Npb24sIDAsCisgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyNlbmRp
ZgorCiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2luc3BlY3Rvcih2aWV3KTsKICAgICBnX29iamVjdF9jb25uZWN0KEdfT0JKRUNUKGluc3Bl
Y3RvciksCiAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjppbnNwZWN0LXdlYi12aWV3Iiwg
d2ViSW5zcGVjdG9ySW5zcGVjdFdlYlZpZXcsIDAsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9EdW1wUmVuZGVyVHJlZUd0ay5oCmluZGV4IDdhNWE0Y2Y2YmQxNjFlMWJiNGI0MDQzY2UzYWUx
YWUwZTQ0ZWY3ZjkuLjA2MDY3N2E3NTRhNDU2Y2JjMWI2OGYyNzVjZThlYzIxNDViNDNiNGIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCkBAIC0zOSw2
ICszOSw3IEBAIGV4dGVybiBXZWJLaXRXZWJGcmFtZSogdG9wTG9hZGluZ0ZyYW1lOwogZXh0ZXJu
IGd1aW50IHdhaXRUb0R1bXBXYXRjaGRvZzsKIGV4dGVybiBib29sIHdhaXRGb3JQb2xpY3k7CiBl
eHRlcm4gR1NMaXN0KiB3ZWJWaWV3TGlzdDsKK2V4dGVybiBHTGlzdCogc19ub3RpZmljYXRpb25z
OwogCiBnY2hhciogSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcoSlNTdHJpbmdSZWYganNTdHJpbmcp
OwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9s
bGVyR3RrLmNwcAppbmRleCA5ZGNjZmEwYTI0ZGVlYTRlOWY4YTIyNDRjNzcyZjA1NzU5NjJmNTAx
Li5hMTI2OWQyZTY0YzRhY2JiOGY5MmQ2ZDBiMWE0M2JiY2I2NDJkNzhmIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMYXlvdXRUZXN0
Q29udHJvbGxlci5oIgogCisjaW5jbHVkZSA8Q1N0cmluZy5oPgogI2luY2x1ZGUgIkR1bXBSZW5k
ZXJUcmVlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCkBAIC00Nyw2ICs0OCw3IEBACiAjaW5jbHVk
ZSA8Z2xpYi5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vibm90aWZpY2F0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogCiBleHRlcm4gIkMiIHsKQEAgLTEwMjIsNiAr
MTAyNCwyMCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRCYWNraW5nU2NhbGVGYWN0
b3IoZG91YmxlKQogewogfQogCitzdGF0aWMgZ2ludCBtYXRjaE5vdGlmaWNhdGlvbkJ5VGl0bGUo
V2ViS2l0V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIGNoYXIqIHRpdGxlKQoreworICAg
IHJldHVybiBnX3N0cmNtcDAod2Via2l0X3dlYl9ub3RpZmljYXRpb25fZ2V0X3RpdGxlKG5vdGlm
aWNhdGlvbiksIHRpdGxlKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2ltdWxh
dGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCiB7CisgICAgY2hh
ciogbm90aWZpY2F0aW9uVGl0bGUgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyh0aXRsZSk7Cisg
ICAgR0xpc3QqIG1hdGNoID0gZ19saXN0X2ZpbmRfY3VzdG9tKHNfbm90aWZpY2F0aW9ucywgbm90
aWZpY2F0aW9uVGl0bGUsIChHQ29tcGFyZUZ1bmMpbWF0Y2hOb3RpZmljYXRpb25CeVRpdGxlKTsK
KworICAgIGlmICghbWF0Y2gpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdFdlYk5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uID0gV0VCS0lUX1dFQl9OT1RJRklDQVRJT04obWF0Y2gtPmRh
dGEpOworICAgIHdlYmtpdF93ZWJfbm90aWZpY2F0aW9uX2NsaWNrZWQobm90aWZpY2F0aW9uKTsK
KyAgICBnX2ZyZWUobm90aWZpY2F0aW9uVGl0bGUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2MDM5Yzk3MjRhOTA2
NGI4MmIwMjhhZWMxMTZkMDM3NjMwMjA2ZmMuLjFkNTkxYjNmMThjMDY3OGQ0NTdmZTQwOTllZGJl
NGFkYTBjOWFkOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wNy0wMSAgQWxleGFuZHJl
IE1hemFyaSAgPGFtYXphcmlAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBBZGQgSFRNTDUgV2ViIE5vdGlmaWNhdGlvbnMg
c3VwcG9ydCAodGVzdGluZyBmYWNpbGl0aWVzKQorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6IFVuc2tpcCBub3RpZmljYXRpb25zIHRlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNDAKKwogMjAxMS0xMS0xMCAgWXV0YSBLaXRh
bXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3
ZWQsIHJlYmFzZWxpbmUgU1ZHIHRlc3QgcmVzdWx0cyBjaGFuZ2VkIGFmdGVyIHI5OTUzOS4gKHBh
cnQgMikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggNzIwNWUyYTZmNjYzYTQwZWVlZTIw
ZDY2ZGQ0MzJjYzY1NTA5ZTE4YS4uMGUwNGVjYjBhZTgxMzI1OTExYWYzOGE0ZjYwODA0NTI2ZWQy
YjkxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTIyNSw5ICsyMjUsMTAgQEAgZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmljZS1vcmllbnRhdGlvbi5odG1sCiBm
YXN0L2RvbS9EZXZpY2VNb3Rpb24KIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uCiAKLSMgRGVz
a3RvcCBub3RpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkCi1mYXN0L25vdGlmaWNhdGlvbnMK
LWh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucworIyBOZWVkIHRvIGludmVzdGlnYXRlIGFjdGlvbnMg
dG8gdGFrZSBpbiB0aGUgY2FzZSBvZiBhIGNyYXNoCitmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZp
Y2F0aW9ucy1kb2N1bWVudC1jbG9zZS1jcmFzaC5odG1sCisjIFVuY2xlYXIgdGVzdCBzZW1hbnRp
YywgbmVlZCB0byBjaGVja291dCB3aXRoIHRoZSBhdXRob3IKK2Zhc3Qvbm90aWZpY2F0aW9ucy9u
b3RpZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbAogCiAjIFdlIGxhY2sg
dXNlcnNjcmlwdHMgc3VwcG9ydC4KIHVzZXJzY3JpcHRzCg==
</data>
<flag name="review"
          id="113117"
          type_id="1"
          status="-"
          setter="pnormand"
    />
          </attachment>
      

    </bug>

</bugzilla>