<?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>39564</bug_id>
          
          <creation_ts>2010-05-23 06:04:46 -0700</creation_ts>
          <short_desc>[Qt] DRT Support for setCustomPolicyDelegate</short_desc>
          <delta_ts>2010-06-26 03:52:58 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>laszlo.gombos</cc>
    
    <cc>robert</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229469</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-23 06:04:46 -0700</bug_when>
    <thetext>Unskips:

LayoutTests/fast/loader/policy-delegate-action-hit-test-zoomed.html
LayoutTests/fast/loader/onload-policy-ignore-for-frame.html
LayoutTests/fast/loader/reload-policy-delegate.html
LayoutTests/fast/loader/javascript-url-hierarchical-execution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229472</commentid>
    <comment_count>1</comment_count>
      <attachid>56821</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-05-23 06:28:00 -0700</bug_when>
    <thetext>Created attachment 56821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233998</commentid>
    <comment_count>2</comment_count>
      <attachid>56821</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-06-03 17:03:45 -0700</bug_when>
    <thetext>Comment on attachment 56821
Patch

&gt; diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; index 00359c0e2c824bcdc198e7a449c85a7d2cdee2d8..510ccef99f15ab738ef5807334a5b2be53d9e244 100644
&gt; --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
&gt; +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp

[..]

&gt;  
&gt;  FrameLoaderClientQt::FrameLoaderClientQt()
&gt;      : m_frame(0)
&gt; @@ -1035,6 +1087,33 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFun
&gt;      Q_ASSERT(m_webFrame);
&gt;      QNetworkRequest r(request.toNetworkRequest(m_webFrame));
&gt;      QWebPage*page = m_webFrame-&gt;page();
&gt; +    PolicyAction result;
&gt; +
&gt; +    if (policyDelegateEnabled) {

The processing below seems to be needed only for DRT. I think this section of the code should be guarded with &quot;if (dumpFrameLoaderCallbacks)&quot; or some other similar mechanism.

&gt; +
&gt; +        RefPtr&lt;Node&gt; node;
&gt; +        for (const Event* event = action.event(); event; event = event-&gt;underlyingEvent()) {
&gt; +            if (event-&gt;isMouseEvent()) {
&gt; +                const MouseEvent* mouseEvent =
&gt; +                    static_cast&lt;const MouseEvent*&gt;(event);
&gt; +                node = QWebFramePrivate::core(m_webFrame)-&gt;eventHandler()-&gt;hitTestResultAtPoint(
&gt; +                    mouseEvent-&gt;absoluteLocation(), false).innerNonSharedNode();
&gt; +                break;
&gt; +            }
&gt; +        }
&gt; +
&gt; +        printf(&quot;Policy delegate: attempt to load %s with navigation type &apos;%s&apos;%s\n&quot;,
&gt; +               qPrintable(drtDescriptionSuitableForTestResult(request.url())), navigationTypeToString(action.type()),
&gt; +               (node) ? qPrintable(&quot; originating from &quot; + drtDescriptionSuitableForTestResult(node, 0)) : &quot;&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234315</commentid>
    <comment_count>3</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-04 12:00:14 -0700</bug_when>
    <thetext>&gt; &gt; +    if (policyDelegateEnabled) {
&gt; 
&gt; The processing below seems to be needed only for DRT. I think this section of the code should be guarded with &quot;if (dumpFrameLoaderCallbacks)&quot; or some other similar mechanism.

Everything inside policyDelegateEnabled is DRT specific anyway - I don&apos;t think anything else but DRT would have a use case for policyDelegateEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239046</commentid>
    <comment_count>4</comment_count>
      <attachid>56821</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-16 13:30:32 -0700</bug_when>
    <thetext>Comment on attachment 56821
Patch

WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:165
 +  static const char* linkClickedString = &quot;link clicked&quot;;
I suggest to leave out these variables. They will be read-write pointers to read-only memory, causing unnecessary relocations.

WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:174
 +  static const char* navigationTypeToString(NavigationType type)
Instead I suggest to return the strings inline here, like return &quot;form submitted&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240316</commentid>
    <comment_count>5</comment_count>
      <attachid>59184</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-19 04:55:25 -0700</bug_when>
    <thetext>Created attachment 59184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240867</commentid>
    <comment_count>6</comment_count>
      <attachid>59184</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-21 13:55:03 -0700</bug_when>
    <thetext>Comment on attachment 59184
Patch

WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1110
 +  
hmm, should this printf always be printing out things when policyDelegateEnabled is true?

WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1100
 +                      static_cast&lt;const MouseEvent*&gt;(event);
why not just put that on one line

WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1095
 +  
why a new line here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240893</commentid>
    <comment_count>7</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-21 14:29:39 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 59184 [details])
&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1110
&gt;  +  
&gt; hmm, should this printf always be printing out things when policyDelegateEnabled is true?
&gt; 

Laszlo asked the same question and I think the answer is yes - policyDelegateEnabled is a dumpCallbacks type variable set exclusively by DRT.

&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1100
&gt;  +                      static_cast&lt;const MouseEvent*&gt;(event);
&gt; why not just put that on one line
&gt; 
&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1095
&gt;  +  
&gt; why a new line here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240894</commentid>
    <comment_count>8</comment_count>
      <attachid>59290</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-21 14:32:14 -0700</bug_when>
    <thetext>Created attachment 59290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240896</commentid>
    <comment_count>9</comment_count>
      <attachid>59292</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-21 14:34:04 -0700</bug_when>
    <thetext>Created attachment 59292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240897</commentid>
    <comment_count>10</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-21 14:35:14 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1100
&gt;  +                      static_cast&lt;const MouseEvent*&gt;(event);
&gt; why not just put that on one line
&gt; 
&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1095
&gt;  +  
&gt; why a new line here

updated patch to address these two!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243221</commentid>
    <comment_count>11</comment_count>
      <attachid>59292</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-25 15:13:43 -0700</bug_when>
    <thetext>Comment on attachment 59292
Patch

WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:1094
 +      if (policyDelegateEnabled) {
I still want a comment here explaining that this is only used by the DRT. You can commit if you fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243356</commentid>
    <comment_count>12</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-06-26 03:52:58 -0700</bug_when>
    <thetext>Committed r61953: &lt;http://trac.webkit.org/changeset/61953&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56821</attachid>
            <date>2010-05-23 06:28:00 -0700</date>
            <delta_ts>2010-06-19 04:55:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39564-20100523142755.patch</filename>
            <type>text/plain</type>
            <size>13080</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNWJiZDA5NDFkNmI3NzIyMjgwNjlhOTEyODNlMzVjNDJmMDlhOTZiLi5mYjEzMDQy
NTVjMTJiOTE1ZDAyNjAxN2Y1NzhmMTkwNmFlZTRmZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDUtMjMgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJUIFN1cHBvcnQg
Zm9yIHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoKKworICAgICAg
ICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0
LXpvb21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29ubG9hZC1wb2xp
Y3ktaWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKKyAgICAgICAg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2Uu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wNS0yMyAgSnVz
dGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDFjZDZkZTU0MTdhMzI2YjRi
NTMxMGFmOTgxNjUzYTY5YmUxZmZmOWUuLjllMTc5ZjFjMDM1ZTViMWYzMTUyMzg3ZDE4NjljYjQy
MjA0YWNjYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjc1LDkgKzI3NSw3IEBAIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctcHJlZmxp
Z2h0LWNhY2hlLXRpbWVvdXQuaHRtCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1bHQt
Y29udGVudC10eXBlLWRhc2hib2FyZC5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3N2
Zy1jcmVhdGVkLWJ5LXhoci1kaXNhbGxvd2VkLWluLWRhc2hib2FyZC5odG1sCiAKLSMgTWlzc2lu
ZyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSgpCi1mYXN0L2xv
YWRlci9vbmxvYWQtcG9saWN5LWlnbm9yZS1mb3ItZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9taXNj
L3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2UuaHRtbAorIyB0aW1lIG91dAogaHR0cC90ZXN0
cy9taXNjL3JlZGlyZWN0LXRvLWV4dGVybmFsLXVybC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2ZlZWQtdXJscy1mcm9tLXJlbW90ZS5odG1sCiAKQEAgLTQ2NzEsMTAgKzQ2NjksNyBAQCBmYXN0
L2Zvcm1zL3RleHQtY29udHJvbC1pbnRyaW5zaWMtd2lkdGhzLmh0bWwKIGZhc3QvZm9ybXMvdGV4
dGFyZWEtbWV0cmljcy5odG1sCiBmYXN0L2hpc3Rvcnkvd2luZG93LW9wZW4uaHRtbAogZmFzdC9s
b2FkZXIvY2FuY2VsLWxvYWQtZHVyaW5nLXBvcnQtYmxvY2stdGltZXIuaHRtbAotZmFzdC9sb2Fk
ZXIvamF2YXNjcmlwdC11cmwtaGllcmFyY2hpY2FsLWV4ZWN1dGlvbi5odG1sCiBmYXN0L2xvYWRl
ci9udWxsLXJlcXVlc3QtYWZ0ZXItd2lsbFNlbmRSZXF1ZXN0Lmh0bWwKLWZhc3QvbG9hZGVyL3Bv
bGljeS1kZWxlZ2F0ZS1hY3Rpb24taGl0LXRlc3Qtem9vbWVkLmh0bWwKLWZhc3QvbG9hZGVyL3Jl
bG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAogcGxhdGZvcm0vcXQvZmFzdC9ldmVudHMvZXZlbnQt
c2VuZGVyLWtleWRvd24tZnJhbWUuaHRtbAogc3ZnL2N1c3RvbS9zdmctZm9udHMtaW4tdGV4dC1j
b250cm9scy5odG1sCiBzdmcvY3VzdG9tL3RleHQtZG9tLXJlbW92YWwuc3ZnCmRpZmYgLS1naXQg
YS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBiYzFmNDVk
YzcwMWU4Zjc2MzIxOTgwODliYWM1YzkxOWYzOWIzOGZmLi5jNTFlYWNmMzYxY2JkN2I4ZGIxMWQy
MWI4M2RjNWRlZTM4MGJmODIwIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wNS0yMyAgUm9iZXJ0
IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW1F0XSBEUlQgU3VwcG9ydCBmb3Igc2V0Q3VzdG9tUG9saWN5
RGVsZWdhdGUKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzk1NjQKKworICAgICAgICBVbnNraXBzOgorCisgICAgICAgIExheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3BvbGljeS1kZWxlZ2F0ZS1hY3Rpb24taGl0LXRlc3Qtem9vbWVkLmh0bWwKKyAgICAg
ICAgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvb25sb2FkLXBvbGljeS1pZ25vcmUtZm9yLWZyYW1l
Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxl
Z2F0ZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJs
LWhpZXJhcmNoaWNhbC1leGVjdXRpb24uaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvcG9saWN5LWRlbGVnYXRlLWNhbGxlZC10d2ljZS5odG1sCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChkcnREZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpuYXZpZ2F0aW9u
VHlwZVRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgorCiAyMDEwLTA1LTIzICBOb2FtIFJvc2Vu
dGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDlkMzM1YjgyN2RmZWZlNDAz
MGNmNTJiZDdhZWZlMGUxZjM4MmNhNmIuLmQ4YzMyMzA2N2MyMmM0ZWIyOWM5YjZhMzFmNTU5MDJl
ZDgwMmIzYjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNDk2LDYgKzQ5NiwxMiBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpzZXRXaWxsU2VuZFJlcXVlc3RDbGVhckhlYWRlcnMoY29uc3QgUVN0cmlu
Z0xpc3QmCiAgICAgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2VuZFJlcXVlc3RDbGVhckhlYWRlcnMg
PSBoZWFkZXJzOwogfQogCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRDdXN0b21Q
b2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKK3sKKyAgICBGcmFt
ZUxvYWRlckNsaWVudFF0Ojpwb2xpY3lEZWxlZ2F0ZUVuYWJsZWQgPSBlbmFibGVkOworICAgIEZy
YW1lTG9hZGVyQ2xpZW50UXQ6OnBvbGljeURlbGVnYXRlUGVybWlzc2l2ZSA9IHBlcm1pc3NpdmU7
Cit9CisKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBFZGl0aW5nQ2FsbGJhY2tz
KGJvb2wgYikKIHsKICAgICBFZGl0b3JDbGllbnRRdDo6ZHVtcEVkaXRpbmdDYWxsYmFja3MgPSBi
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuaAppbmRleCA2MDQ1NDYzMDA2YTI1OTYzNDBkNjU1YWVlMmU5ZjFlYWM2NTAyODBhLi41ZjZm
NjdhMjUwZGQ3ZjVjN2RjNWY0NjM5YmQ2M2VmN2E4ZDRlNTBiIDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtOTksNiArOTks
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wTm90aWZpY2F0aW9uKGJvb2wgYik7
CiAKKyAgICBzdGF0aWMgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQs
IGJvb2wgcGVybWlzc2l2ZSk7CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAwMDM1OWMwZTJjODI0YmNkYzE5
OGU3YTQ0OWM4NWE3ZDJjZGVlMmQ4Li41MTBjY2VmOTlmMTVhYjczOGVmNTgwNzMzNGE1YjJiZTUz
ZDllMjQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCkBAIC0zOCw3ICszOCw5IEBACiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRl
ICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKQEAgLTEyNyw2ICsxMjksMjUgQEAg
c3RhdGljIFFTdHJpbmcgZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb24KICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbUxhdGluMSgi
PE5TVVJMUmVzcG9uc2UgJTEsIGh0dHAgc3RhdHVzIGNvZGUgJTI+IikuYXJnKHVybCkuYXJnKGh0
dHBTdGF0dXNDb2RlKTsKIH0KIAorc3RhdGljIFFTdHJpbmcgZHJ0RGVzY3JpcHRpb25TdWl0YWJs
ZUZvclRlc3RSZXN1bHQoY29uc3QgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG5vZGUsIGludCBleGNl
cHRpb24pCit7CisgICAgUVN0cmluZyByZXN1bHQ7CisgICAgaWYgKGV4Y2VwdGlvbikgeworICAg
ICAgICByZXN1bHQuYXBwZW5kKCJFUlJPUiIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiTlVMTCIpOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICByZXN1bHQuYXBwZW5kKG5vZGUtPm5vZGVO
YW1lKCkpOworICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBwYXJlbnQgPSBub2RlLT5wYXJlbnRO
b2RlKCk7CisgICAgaWYgKHBhcmVudCkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCIgPiAiKTsK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChkcnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3Vs
dChwYXJlbnQsIDApKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KIAogbmFtZXNwYWNl
IFdlYkNvcmUKIHsKQEAgLTEzNyw2ICsxNTgsMzcgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0
OjpzZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCA9IGZhbHNlOwogYm9vbCBGcmFtZUxv
YWRlckNsaWVudFF0OjpzZW5kUmVxdWVzdFJldHVybnNOdWxsID0gZmFsc2U7CiBRU3RyaW5nTGlz
dCBGcmFtZUxvYWRlckNsaWVudFF0OjpzZW5kUmVxdWVzdENsZWFySGVhZGVyczsKIFFTdHJpbmcg
RnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrc1BhdGg7Citib29s
IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnBvbGljeURlbGVnYXRlRW5hYmxlZCA9IGZhbHNlOworYm9v
bCBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUgPSBmYWxzZTsK
KworLy8gV2ViTmF2aWdhdGlvblR5cGUgZGVidWdnaW5nIHN0cmluZ3MgdGFrZW4gZnJvbSBQb2xp
Y3lEZWxlZ2F0ZS5tbS4KK3N0YXRpYyBjb25zdCBjaGFyKiBsaW5rQ2xpY2tlZFN0cmluZyA9ICJs
aW5rIGNsaWNrZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIGZvcm1TdWJtaXR0ZWRTdHJpbmcgPSAi
Zm9ybSBzdWJtaXR0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIGJhY2tGb3J3YXJkU3RyaW5nID0g
ImJhY2svZm9yd2FyZCI7CitzdGF0aWMgY29uc3QgY2hhciogcmVsb2FkU3RyaW5nID0gInJlbG9h
ZCI7CitzdGF0aWMgY29uc3QgY2hhciogZm9ybVJlc3VibWl0dGVkU3RyaW5nID0gImZvcm0gcmVz
dWJtaXR0ZWQiOworc3RhdGljIGNvbnN0IGNoYXIqIG90aGVyU3RyaW5nID0gIm90aGVyIjsKK3N0
YXRpYyBjb25zdCBjaGFyKiBpbGxlZ2FsU3RyaW5nID0gImlsbGVnYWwgdmFsdWUiOworCisvLyBU
YWtlbiBmcm9tIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorc3RhdGlj
IGNvbnN0IGNoYXIqIG5hdmlnYXRpb25UeXBlVG9TdHJpbmcoTmF2aWdhdGlvblR5cGUgdHlwZSkK
K3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlTGlua0NsaWNr
ZWQ6CisgICAgICAgIHJldHVybiBsaW5rQ2xpY2tlZFN0cmluZzsKKyAgICBjYXNlIE5hdmlnYXRp
b25UeXBlRm9ybVN1Ym1pdHRlZDoKKyAgICAgICAgcmV0dXJuIGZvcm1TdWJtaXR0ZWRTdHJpbmc7
CisgICAgY2FzZSBOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkOgorICAgICAgICByZXR1cm4gYmFj
a0ZvcndhcmRTdHJpbmc7CisgICAgY2FzZSBOYXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAg
cmV0dXJuIHJlbG9hZFN0cmluZzsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0
dGVkOgorICAgICAgICByZXR1cm4gZm9ybVJlc3VibWl0dGVkU3RyaW5nOworICAgIGNhc2UgTmF2
aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgcmV0dXJuIG90aGVyU3RyaW5nOworICAgIH0KKyAg
ICByZXR1cm4gaWxsZWdhbFN0cmluZzsKK30KIAogRnJhbWVMb2FkZXJDbGllbnRRdDo6RnJhbWVM
b2FkZXJDbGllbnRRdCgpCiAgICAgOiBtX2ZyYW1lKDApCkBAIC0xMDM1LDYgKzEwODcsMzMgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oRnJhbWVQb2xpY3lGdW4KICAgICBRX0FTU0VSVChtX3dlYkZyYW1lKTsKICAgICBR
TmV0d29ya1JlcXVlc3QgcihyZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOwog
ICAgIFFXZWJQYWdlKnBhZ2UgPSBtX3dlYkZyYW1lLT5wYWdlKCk7CisgICAgUG9saWN5QWN0aW9u
IHJlc3VsdDsKKworICAgIGlmIChwb2xpY3lEZWxlZ2F0ZUVuYWJsZWQpIHsKKworICAgICAgICBS
ZWZQdHI8Tm9kZT4gbm9kZTsKKyAgICAgICAgZm9yIChjb25zdCBFdmVudCogZXZlbnQgPSBhY3Rp
b24uZXZlbnQoKTsgZXZlbnQ7IGV2ZW50ID0gZXZlbnQtPnVuZGVybHlpbmdFdmVudCgpKSB7Cisg
ICAgICAgICAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgICAgICAgICAg
Y29uc3QgTW91c2VFdmVudCogbW91c2VFdmVudCA9CisgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PGNvbnN0IE1vdXNlRXZlbnQqPihldmVudCk7CisgICAgICAgICAgICAgICAgbm9kZSA9
IFFXZWJGcmFtZVByaXZhdGU6OmNvcmUobV93ZWJGcmFtZSktPmV2ZW50SGFuZGxlcigpLT5oaXRU
ZXN0UmVzdWx0QXRQb2ludCgKKyAgICAgICAgICAgICAgICAgICAgbW91c2VFdmVudC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBmYWxzZSkuaW5uZXJOb25TaGFyZWROb2RlKCk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcmludGYoIlBv
bGljeSBkZWxlZ2F0ZTogYXR0ZW1wdCB0byBsb2FkICVzIHdpdGggbmF2aWdhdGlvbiB0eXBlICcl
cyclc1xuIiwKKyAgICAgICAgICAgICAgIHFQcmludGFibGUoZHJ0RGVzY3JpcHRpb25TdWl0YWJs
ZUZvclRlc3RSZXN1bHQocmVxdWVzdC51cmwoKSkpLCBuYXZpZ2F0aW9uVHlwZVRvU3RyaW5nKGFj
dGlvbi50eXBlKCkpLAorICAgICAgICAgICAgICAgKG5vZGUpID8gcVByaW50YWJsZSgiIG9yaWdp
bmF0aW5nIGZyb20gIiArIGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KG5vZGUs
IDApKSA6ICIiKTsKKworICAgICAgICBpZiAocG9saWN5RGVsZWdhdGVQZXJtaXNzaXZlKQorICAg
ICAgICAgICAgcmVzdWx0ID0gUG9saWN5VXNlOworICAgICAgICBlbHNlCisgICAgICAgICAgICBy
ZXN1bHQgPSBQb2xpY3lJZ25vcmU7CisKKyAgICAgICAgY2FsbFBvbGljeUZ1bmN0aW9uKGZ1bmN0
aW9uLCByZXN1bHQpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKCFwYWdlLT5k
LT5hY2NlcHROYXZpZ2F0aW9uUmVxdWVzdChtX3dlYkZyYW1lLCByLCBRV2ViUGFnZTo6TmF2aWdh
dGlvblR5cGUoYWN0aW9uLnR5cGUoKSkpKSB7CiAgICAgICAgIGlmIChhY3Rpb24udHlwZSgpID09
IE5hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCB8fCBhY3Rpb24udHlwZSgpID09IE5hdmlnYXRp
b25UeXBlRm9ybVJlc3VibWl0dGVkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmgKaW5kZXggOWFhOTM0NDkzYzJlZjY3ZjQ0M2RjYjlhMWE0YTc3ZWJm
YWQ2ZmU2MS4uNzcwMWEwMmUwZmVlNDE4OGRjYjViZWJmOGNmNGJlODhlZGRhMWVlYyAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC02NSw2
ICs2NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBsb2FkUHJvZ3Jlc3Mo
aW50IGQpOwogICAgICAgICB2b2lkIGxvYWRGaW5pc2hlZChib29sKTsKICAgICAgICAgdm9pZCB0
aXRsZUNoYW5nZWQoY29uc3QgUVN0cmluZyYgdGl0bGUpOworICAgICAgICB2b2lkIHBvbGljeURl
bGVnYXRlRG9uZSgpOwogCiAgICAgcHVibGljOgogICAgICAgICBGcmFtZUxvYWRlckNsaWVudFF0
KCk7CkBAIC0yMTgsNiArMjE5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0
aWMgYm9vbCBzZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdDsKICAgICAgICAgc3RhdGlj
IGJvb2wgc2VuZFJlcXVlc3RSZXR1cm5zTnVsbDsKICAgICAgICAgc3RhdGljIFFTdHJpbmdMaXN0
IHNlbmRSZXF1ZXN0Q2xlYXJIZWFkZXJzOworICAgICAgICBzdGF0aWMgYm9vbCBwb2xpY3lEZWxl
Z2F0ZUVuYWJsZWQ7CisgICAgICAgIHN0YXRpYyBib29sIHBvbGljeURlbGVnYXRlUGVybWlzc2l2
ZTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEZyYW1lICptX2ZyYW1lOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg1ZDg2
NDJiNmE1MTFmYTg3ODI0MTY3MjE1OGFmNjZjZDZlZTU1NjguLjU3NmI1NGMzMDc4N2EwNTA5MmUy
ZDFlMmE3MWJhNDM2MTRhYzY4YTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZwor
KysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNS0yMyAg
Um9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBEUlQgU3VwcG9ydCBmb3Igc2V0Q3VzdG9t
UG9saWN5RGVsZWdhdGUKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzk1NjQKKworICAgICAgICBVbnNraXBzOgorCisgICAgICAgIExheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL3BvbGljeS1kZWxlZ2F0ZS1hY3Rpb24taGl0LXRlc3Qtem9vbWVkLmh0bWwK
KyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvb25sb2FkLXBvbGljeS1pZ25vcmUtZm9y
LWZyYW1lLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGlj
eS1kZWxlZ2F0ZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2phdmFzY3Jp
cHQtdXJsLWhpZXJhcmNoaWNhbC1leGVjdXRpb24uaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvcG9saWN5LWRlbGVnYXRlLWNhbGxlZC10d2ljZS5odG1sCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorCiAyMDEw
LTA1LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDk2MTY4MzU3Y2ZkYzlhNmYz
MGI1NTcwYmM1NmEzYzA0NzE4MzQwMmIuLjdmMWExMDg5ZjY4M2NlMTY3ZWViMzZmMTAwYmQ5YWQz
ZjZhNDVmYmMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnJlc2V0KCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0KGZhbHNlKTsKICAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwoZmFsc2UpOwog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRXaWxsU2VuZFJlcXVlc3RDbGVhckhlYWRl
cnMoUVN0cmluZ0xpc3QoKSk7CisgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEN1c3Rv
bVBvbGljeURlbGVnYXRlKGZhbHNlLCBmYWxzZSk7CiAgICAgc2V0SWNvbkRhdGFiYXNlRW5hYmxl
ZChmYWxzZSk7CiAgICAgZW1pdCBoaWRlUGFnZSgpOwogfQpAQCAtNDg3LDYgKzQ4OCwxMSBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShjb25zdCBRU3RyaW5nJiBzb3VyYwogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9CiAKK3Zv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5h
YmxlZCwgYm9vbCBwZXJtaXNzaXZlKQoreworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpz
ZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShlbmFibGVkLCBwZXJtaXNzaXZlKTsKK30KKwogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6d2FpdEZvclBvbGljeURlbGVnYXRlKCkKIHsKICAgICBtX3dh
aXRGb3JQb2xpY3kgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDVmYjQwYjY2OGI5MmYwYTQ3ZDk5
ZGUyNTJlOWRiMzAzYWY5ODE1NGIuLmI5NjA2MjRjMjVlMzNkNTFlNGI4ZTAyZWU0NDMxZDViMDBi
OWJhNTYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlv
dXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTE3MSw3ICsxNzEsOSBAQCBwdWJsaWMgc2xvdHM6CiAg
ICAgdm9pZCBjbGVhckFsbERhdGFiYXNlcygpOwogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5h
YmxlZChib29sIGVuYWJsZSk7CiAKKyAgICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJv
b2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlID0gdHJ1ZSk7CiAgICAgdm9pZCB3YWl0Rm9yUG9s
aWN5RGVsZWdhdGUoKTsKKwogICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJlbmNlKGNvbnN0IFFTdHJp
bmcmIG5hbWUsIGNvbnN0IFFWYXJpYW50JiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVT
aGVldExvY2F0aW9uKGNvbnN0IFFTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVT
aGVldEVuYWJsZWQoYm9vbCBlbmFibGVkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59184</attachid>
            <date>2010-06-19 04:55:25 -0700</date>
            <delta_ts>2010-06-21 14:32:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39564-20100619125513.patch</filename>
            <type>text/plain</type>
            <size>12808</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNGJlZGY2NGNjMWJlYTU4ZmJjZWU4OTE1ZTJmM2FhNGVkNmMzOWVlLi5lZDc4ZDlj
YWQ5NDMzMzc3ZjIyMGJjN2I5MjRhMDNlYzZhNjZhYWIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDUtMjMgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJUIFN1cHBvcnQg
Zm9yIHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoKKworICAgICAg
ICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0
LXpvb21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29ubG9hZC1wb2xp
Y3ktaWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKKyAgICAgICAg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2Uu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wNi0wMiAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGYwMWE2YmU2ZTZjN2MyOWQ0N2Y5
ZDJmZGQ1Yjk3NGRhODA5NzQzZjAuLmRiZWYyMjgwZWI3ZTA1MDMxZTA0MjIyOGUxYjY2ZjU3YjMx
NDY2YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNzc1LDEwICs3NzUsNyBAQCBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LXByZWZsaWdo
dC1jYWNoZS10aW1lb3V0Lmh0bQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9kZWZhdWx0LWNv
bnRlbnQtdHlwZS1kYXNoYm9hcmQuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zdmct
Y3JlYXRlZC1ieS14aHItZGlzYWxsb3dlZC1pbi1kYXNoYm9hcmQuaHRtbAogCi0jIE1pc3Npbmcg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoKQotIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk1NjQKLWZhc3QvbG9hZGVyL29ubG9h
ZC1wb2xpY3ktaWdub3JlLWZvci1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL21pc2MvcG9saWN5LWRl
bGVnYXRlLWNhbGxlZC10d2ljZS5odG1sCisjIHRpbWVvdXQKIGh0dHAvdGVzdHMvbWlzYy9yZWRp
cmVjdC10by1leHRlcm5hbC11cmwuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9mZWVkLXVybHMt
ZnJvbS1yZW1vdGUuaHRtbAogCkBAIC0yNjEzLDkgKzI2MTAsNiBAQCBmYXN0L2Zvcm1zL3NlYXJj
aC1hYnMtcG9zLWNhbmNlbC1idXR0b24uaHRtbAogZmFzdC9mb3Jtcy90ZXh0LWNvbnRyb2wtaW50
cmluc2ljLXdpZHRocy5odG1sCiBmYXN0L2Zvcm1zL3RleHRhcmVhLW1ldHJpY3MuaHRtbAogZmFz
dC9oaXN0b3J5L3dpbmRvdy1vcGVuLmh0bWwKLWZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJsLWhp
ZXJhcmNoaWNhbC1leGVjdXRpb24uaHRtbAotZmFzdC9sb2FkZXIvcG9saWN5LWRlbGVnYXRlLWFj
dGlvbi1oaXQtdGVzdC16b29tZWQuaHRtbAotZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxl
Z2F0ZS5odG1sCiBmYXN0L2RvbS9IVE1MRG9jdW1lbnQvaGFzRm9jdXMuaHRtbAogZmFzdC9kb20v
RG9jdW1lbnQvQ2FyZXRSYW5nZUZyb21Qb2ludC9jYXJldFJhbmdlRnJvbVBvaW50LWluLXpvb20t
YW5kLXNjcm9sbC5odG1sCiBmYXN0L2RvbS9SYW5nZS9yYW5nZS1leHBhbmQuaHRtbApkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZDlh
ZmEwN2VhMzhkOWIzYTQ1NGFkMTdlYmY4OWJhYWQzZTgwNTNhMC4uOTQ2ZGE2OWFmMjVkYmIyMzJk
NTczMWExYjk2MDE2ZDAxMWU3ZTFmMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDUtMjMgIFJv
YmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJUIFN1cHBvcnQgZm9yIHNldEN1c3RvbVBv
bGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoKKworICAgICAgICBMYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0LXpvb21lZC5odG1sCisg
ICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29ubG9hZC1wb2xpY3ktaWdub3JlLWZvci1m
cmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3kt
ZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9qYXZhc2NyaXB0
LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2UuaHRtbAorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoZHJ0RGVz
Y3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdh
dGlvblR5cGVUb1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKwogMjAxMC0wNi0wMiAgUm9iZXJ0
IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwCmluZGV4IDBhZTU1ZDc2OTUyMzEwMTYxMDI4YWE4ZGRjMTZjZThlNGNhMmFi
YzEuLjdiNDg3YzIzMzc3NmE1ZTk3MTA3MTU5MjZlZDcyNzVhZGU1MTQ4ZDYgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysr
IGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApA
QCAtNTI1LDYgKzUyNSwxMiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRXaWxs
U2VuZFJlcXVlc3RDbGVhckhlYWRlcnMoY29uc3QgUVN0cmluZ0xpc3QmCiAgICAgRnJhbWVMb2Fk
ZXJDbGllbnRRdDo6c2VuZFJlcXVlc3RDbGVhckhlYWRlcnMgPSBoZWFkZXJzOwogfQogCit2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVu
YWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKK3sKKyAgICBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb2xp
Y3lEZWxlZ2F0ZUVuYWJsZWQgPSBlbmFibGVkOworICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnBv
bGljeURlbGVnYXRlUGVybWlzc2l2ZSA9IHBlcm1pc3NpdmU7Cit9CisKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmR1bXBFZGl0aW5nQ2FsbGJhY2tzKGJvb2wgYikKIHsKICAgICBFZGl0
b3JDbGllbnRRdDo6ZHVtcEVkaXRpbmdDYWxsYmFja3MgPSBiOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCAwYjk0YTAzYzc0
NGJhNmVjZjlmYTY3NTUyODczZWQ0MDhkMjFkM2IwLi43ZWQyNDNlYmVkN2I1N2RjNzg0YjdkODI2
M2Q5MTE5YjAyZjdkYjA3IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBkdW1wU2V0QWNjZXB0c0VkaXRpbmcoYm9vbCBiKTsKIAogICAgIHN0YXRpYyB2
b2lkIGR1bXBOb3RpZmljYXRpb24oYm9vbCBiKTsKKwogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBz
aG91bGQgZXZlbnR1YWxseSB0dXJuIGludG8gcHVibGljIEFQSQogICAgIC8vIGFuZCB0aGUgInJl
Y2VpdmVyIiBjb25jZXB0IHdvdWxkIGdvIGF3YXkKICAgICBzdGF0aWMgdm9pZCBzZXROb3RpZmlj
YXRpb25zUmVjZWl2ZXIoUU9iamVjdCogcmVjZWl2ZXIpOwpAQCAtMTI3LDYgKzEyOCw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUVN0cmluZyBoaXN0b3J5SXRlbVRhcmdldChjb25zdCBRV2ViSGlz
dG9yeUl0ZW0mIGhpc3RvcnlJdGVtKTsKIAogICAgIHN0YXRpYyBib29sIHNob3VsZENsb3NlKFFX
ZWJGcmFtZSogZnJhbWUpOworCisgICAgc3RhdGljIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUpOwogfTsKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggNDJi
MGM0OTEyNGIyNzI5ODUyMjQyMmUyYmFhZDRjNDQzMTc1MjllMS4uODAzZTkyODFhYTM2MWEzMTFi
N2M4ODI3NTc2OGViYWIyMGY0OWNlNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMzgsNyArMzgsOSBAQAogI2luY2x1ZGUgIkZy
YW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZGVyLmgiCisjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVn
aXN0cnkuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0x
MjcsNiArMTI5LDI1IEBAIHN0YXRpYyBRU3RyaW5nIGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uCiAgICAgcmV0dXJuIFFTdHJp
bmc6OmZyb21MYXRpbjEoIjxOU1VSTFJlc3BvbnNlICUxLCBodHRwIHN0YXR1cyBjb2RlICUyPiIp
LmFyZyh1cmwpLmFyZyhodHRwU3RhdHVzQ29kZSk7CiB9CiAKK3N0YXRpYyBRU3RyaW5nIGRydERl
c2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGNvbnN0IFJlZlB0cjxXZWJDb3JlOjpOb2Rl
PiBub2RlLCBpbnQgZXhjZXB0aW9uKQoreworICAgIFFTdHJpbmcgcmVzdWx0OworICAgIGlmIChl
eGNlcHRpb24pIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVJST1IiKTsKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICB9CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIHJlc3VsdC5hcHBl
bmQoIk5VTEwiKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcmVzdWx0LmFw
cGVuZChub2RlLT5ub2RlTmFtZSgpKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gcGFyZW50
ID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAgIGlmIChwYXJlbnQpIHsKKyAgICAgICAgcmVzdWx0
LmFwcGVuZCgiID4gIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZHJ0RGVzY3JpcHRpb25TdWl0
YWJsZUZvclRlc3RSZXN1bHQocGFyZW50LCAwKSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7
Cit9CiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7CkBAIC0xMzcsNiArMTU4LDI4IEBAIGJvb2wgRnJh
bWVMb2FkZXJDbGllbnRRdDo6c2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QgPSBmYWxz
ZTsKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2VuZFJlcXVlc3RSZXR1cm5zTnVsbCA9IGZh
bHNlOwogUVN0cmluZ0xpc3QgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2VuZFJlcXVlc3RDbGVhckhl
YWRlcnM7CiBRU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBSZXNvdXJjZUxvYWRDYWxs
YmFja3NQYXRoOworYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb2xpY3lEZWxlZ2F0ZUVuYWJs
ZWQgPSBmYWxzZTsKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6cG9saWN5RGVsZWdhdGVQZXJt
aXNzaXZlID0gZmFsc2U7CisKKy8vIFRha2VuIGZyb20gRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwCitzdGF0aWMgY29uc3QgY2hhciogbmF2aWdhdGlvblR5cGVUb1N0cmlu
ZyhOYXZpZ2F0aW9uVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
TmF2aWdhdGlvblR5cGVMaW5rQ2xpY2tlZDoKKyAgICAgICAgcmV0dXJuICJsaW5rIGNsaWNrZWQi
OworICAgIGNhc2UgTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOgorICAgICAgICByZXR1cm4g
ImZvcm0gc3VibWl0dGVkIjsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQ6Cisg
ICAgICAgIHJldHVybiAiYmFjay9mb3J3YXJkIjsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlUmVs
b2FkOgorICAgICAgICByZXR1cm4gInJlbG9hZCI7CisgICAgY2FzZSBOYXZpZ2F0aW9uVHlwZUZv
cm1SZXN1Ym1pdHRlZDoKKyAgICAgICAgcmV0dXJuICJmb3JtIHJlc3VibWl0dGVkIjsKKyAgICBj
YXNlIE5hdmlnYXRpb25UeXBlT3RoZXI6CisgICAgICAgIHJldHVybiAib3RoZXIiOworICAgIH0K
KyAgICByZXR1cm4gImlsbGVnYWwgdmFsdWUiOworfQogCiBGcmFtZUxvYWRlckNsaWVudFF0OjpG
cmFtZUxvYWRlckNsaWVudFF0KCkKICAgICA6IG1fZnJhbWUoMCkKQEAgLTEwNDYsNiArMTA4OSwz
MyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihGcmFtZVBvbGljeUZ1bgogICAgIFFfQVNTRVJUKG1fd2ViRnJhbWUpOwog
ICAgIFFOZXR3b3JrUmVxdWVzdCByKHJlcXVlc3QudG9OZXR3b3JrUmVxdWVzdChtX3dlYkZyYW1l
KSk7CiAgICAgUVdlYlBhZ2UqcGFnZSA9IG1fd2ViRnJhbWUtPnBhZ2UoKTsKKyAgICBQb2xpY3lB
Y3Rpb24gcmVzdWx0OworCisgICAgaWYgKHBvbGljeURlbGVnYXRlRW5hYmxlZCkgeworCisgICAg
ICAgIFJlZlB0cjxOb2RlPiBub2RlOworICAgICAgICBmb3IgKGNvbnN0IEV2ZW50KiBldmVudCA9
IGFjdGlvbi5ldmVudCgpOyBldmVudDsgZXZlbnQgPSBldmVudC0+dW5kZXJseWluZ0V2ZW50KCkp
IHsKKyAgICAgICAgICAgIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKKyAgICAgICAgICAg
ICAgICBjb25zdCBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0KKyAgICAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAgICAgICAgICAgICBu
b2RlID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShtX3dlYkZyYW1lKS0+ZXZlbnRIYW5kbGVyKCkt
PmhpdFRlc3RSZXN1bHRBdFBvaW50KAorICAgICAgICAgICAgICAgICAgICBtb3VzZUV2ZW50LT5h
YnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlKS5pbm5lck5vblNoYXJlZE5vZGUoKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaW50
ZigiUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgJXMgd2l0aCBuYXZpZ2F0aW9uIHR5
cGUgJyVzJyVzXG4iLAorICAgICAgICAgICAgICAgcVByaW50YWJsZShkcnREZXNjcmlwdGlvblN1
aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0LnVybCgpKSksIG5hdmlnYXRpb25UeXBlVG9TdHJp
bmcoYWN0aW9uLnR5cGUoKSksCisgICAgICAgICAgICAgICAobm9kZSkgPyBxUHJpbnRhYmxlKCIg
b3JpZ2luYXRpbmcgZnJvbSAiICsgZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQo
bm9kZSwgMCkpIDogIiIpOworCisgICAgICAgIGlmIChwb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUp
CisgICAgICAgICAgICByZXN1bHQgPSBQb2xpY3lVc2U7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHJlc3VsdCA9IFBvbGljeUlnbm9yZTsKKworICAgICAgICBjYWxsUG9saWN5RnVuY3Rpb24o
ZnVuY3Rpb24sIHJlc3VsdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAoIXBh
Z2UtPmQtPmFjY2VwdE5hdmlnYXRpb25SZXF1ZXN0KG1fd2ViRnJhbWUsIHIsIFFXZWJQYWdlOjpO
YXZpZ2F0aW9uVHlwZShhY3Rpb24udHlwZSgpKSkpIHsKICAgICAgICAgaWYgKGFjdGlvbi50eXBl
KCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkIHx8IGFjdGlvbi50eXBlKCkgPT0gTmF2
aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCBkODU4NTg5YzQ5OWMzOTk2MzkzMjQwNjUzMmJm
Y2JiNDU4M2U5M2UwLi5jY2QxZmU3ZjBjYTRjMzc1MzAzNzhmY2IwNTJjYjdjZjQ3YzNiYjFhIDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5o
CisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAg
LTIxOCw2ICsyMTgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc2VuZFJlcXVlc3RSZXR1
cm5zTnVsbE9uUmVkaXJlY3Q7CiAgICAgc3RhdGljIGJvb2wgc2VuZFJlcXVlc3RSZXR1cm5zTnVs
bDsKICAgICBzdGF0aWMgUVN0cmluZ0xpc3Qgc2VuZFJlcXVlc3RDbGVhckhlYWRlcnM7CisgICAg
c3RhdGljIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVkOworICAgIHN0YXRpYyBib29sIHBvbGlj
eURlbGVnYXRlUGVybWlzc2l2ZTsKIAogcHJpdmF0ZToKICAgICBGcmFtZSAqbV9mcmFtZTsKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpp
bmRleCA1NWFiZGMxYzMwMmY3ZDY3Zjc2MDkyM2Q1M2I1YTM1NWQ4OTc5NWFlLi5kY2E0NWU2OTZk
Zjc2NGIzZWM0YTA2YjVhZGQ0MDhjYTlkZmRjYTM5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MTAtMDUtMjMgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJUIFN1cHBvcnQgZm9y
IHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoKKworICAgICAgICBM
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0LXpv
b21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29ubG9hZC1wb2xpY3kt
aWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jl
bG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRl
ci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKKyAgICAgICAgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2UuaHRt
bAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aDoKKwogMjAxMC0wNi0wMiAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggM2NjZWQ3
ZDQ5NmZjMmJjMTQxZWJjZmQ1YWQ2YTdkYzZhNDg5ODI1Mi4uYzdkMjg2ZThiMzE4MWZlNzEzZjFj
OGZlMmUzNTI0OTJlMjk4ZjY1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTczLDYgKzczLDcgQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QoZmFsc2UpOwog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVs
bChmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFdpbGxTZW5kUmVxdWVz
dENsZWFySGVhZGVycyhRU3RyaW5nTGlzdCgpKTsKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoZmFsc2UsIGZhbHNlKTsKICAgICBzZXRJY29uRGF0
YWJhc2VFbmFibGVkKGZhbHNlKTsKIAogICAgIGVtaXQgaGlkZVBhZ2UoKTsKQEAgLTQ5MCw2ICs0
OTEsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoY29uc3QgUVN0cmluZyYgc291cmMKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6cmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihzb3VyY2VPcmlnaW4sIGRlc3Rp
bmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lEZWxl
Z2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKK3sKKyAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoZW5hYmxlZCwgcGVybWlzc2l2ZSk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgp
CiB7CiAgICAgbV93YWl0Rm9yUG9saWN5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCA1NjE1ZDEy
YzdmMmJiNTUxYmIwYzgxYWJiOWUwYzc1MTQxYTMxM2JiLi41YzMzZmMyNWNkMTEzYTY4OTU5Yzhm
NWZiMGYzNzBhNzU2M2E0MGMxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xNzEsNyArMTcxLDkgQEAgcHVi
bGljIHNsb3RzOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIHNldElj
b25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGUpOwogCisgICAgdm9pZCBzZXRDdXN0b21Qb2xp
Y3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSA9IHRydWUpOwogICAgIHZv
aWQgd2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisKICAgICB2b2lkIG92ZXJyaWRlUHJlZmVyZW5j
ZShjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRVmFyaWFudCYgdmFsdWUpOwogICAgIHZvaWQg
c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBRU3RyaW5nJiB1cmwpOwogICAgIHZvaWQg
c2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZW5hYmxlZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59290</attachid>
            <date>2010-06-21 14:32:14 -0700</date>
            <delta_ts>2010-06-21 14:33:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39564-20100621223212.patch</filename>
            <type>text/plain</type>
            <size>12811</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiM2Y3NjFlODNjYzU4ZjU4YWExNGU4MDE2NDRlOWM0ZDdjOWRkZGE0Li42NDQ3OWZh
ZjdkZjJkZTljZDQwZWQzMzcyOGQ1ZTNkYTU5MWRmMDI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDYtMTkgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJUIFN1cHBvcnQg
Zm9yIHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoKKworICAgICAg
ICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0
LXpvb21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29ubG9hZC1wb2xp
Y3ktaWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKKyAgICAgICAg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2Uu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMC0wNi0yMSAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA0OWI4
YjNjMDcwMDNmMWY1ZjhkYTU2OGVlOTFjYzk4YWI5MjViODZiLi43NmQ5N2YxMTFhZDcyYzAyODk1
ZmM3NTUwYjliZTNhZTQxNWM5NDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTc3OSwx
MCArNzc5LDcgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNp
Yy1hbGxvdy1wcmVmbGlnaHQtY2FjaGUtdGltZW91dC5odG0KIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvZGVmYXVsdC1jb250ZW50LXR5cGUtZGFzaGJvYXJkLmh0bWwKIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvc3ZnLWNyZWF0ZWQtYnkteGhyLWRpc2FsbG93ZWQtaW4tZGFzaGJvYXJkLmh0
bWwKIAotIyBNaXNzaW5nIGxheW91dFRlc3RDb250cm9sbGVyLnNldEN1c3RvbVBvbGljeURlbGVn
YXRlKCkKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0Ci1m
YXN0L2xvYWRlci9vbmxvYWQtcG9saWN5LWlnbm9yZS1mb3ItZnJhbWUuaHRtbAotaHR0cC90ZXN0
cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2UuaHRtbAorIyB0aW1lb3V0CiBodHRw
L3Rlc3RzL21pc2MvcmVkaXJlY3QtdG8tZXh0ZXJuYWwtdXJsLmh0bWwKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvZmVlZC11cmxzLWZyb20tcmVtb3RlLmh0bWwKIApAQCAtMjYxNyw5ICsyNjE0LDYgQEAg
ZmFzdC9mb3Jtcy9zZWFyY2gtYWJzLXBvcy1jYW5jZWwtYnV0dG9uLmh0bWwKIGZhc3QvZm9ybXMv
dGV4dC1jb250cm9sLWludHJpbnNpYy13aWR0aHMuaHRtbAogZmFzdC9mb3Jtcy90ZXh0YXJlYS1t
ZXRyaWNzLmh0bWwKIGZhc3QvaGlzdG9yeS93aW5kb3ctb3Blbi5odG1sCi1mYXN0L2xvYWRlci9q
YXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKLWZhc3QvbG9hZGVyL3Bv
bGljeS1kZWxlZ2F0ZS1hY3Rpb24taGl0LXRlc3Qtem9vbWVkLmh0bWwKLWZhc3QvbG9hZGVyL3Jl
bG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAogZmFzdC9kb20vSFRNTERvY3VtZW50L2hhc0ZvY3Vz
Lmh0bWwKIGZhc3QvZG9tL0RvY3VtZW50L0NhcmV0UmFuZ2VGcm9tUG9pbnQvY2FyZXRSYW5nZUZy
b21Qb2ludC1pbi16b29tLWFuZC1zY3JvbGwuaHRtbAogZmFzdC9kb20vUmFuZ2UvcmFuZ2UtZXhw
YW5kLmh0bWwKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hh
bmdlTG9nCmluZGV4IDEzNDU3N2ZlYjcyYjJhMjFlYjM5N2FiZDNlOWU5ZjE5NmEwNDMxNTkuLjA0
Y2M0MzEwN2Q1YTRhMzU1NDRiY2Y1Y2IxOTA4NjI5NjMzMGNiNzUgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDEwLTA2LTE5ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIERSVCBTdXBwb3J0
IGZvciBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZQorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTU2NAorCisgICAgICAgIFVuc2tpcHM6CisKKyAgICAg
ICAgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcG9saWN5LWRlbGVnYXRlLWFjdGlvbi1oaXQtdGVz
dC16b29tZWQuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9vbmxvYWQtcG9s
aWN5LWlnbm9yZS1mb3ItZnJhbWUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRl
ci9yZWxvYWQtcG9saWN5LWRlbGVnYXRlLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvamF2YXNjcmlwdC11cmwtaGllcmFyY2hpY2FsLWV4ZWN1dGlvbi5odG1sCisgICAgICAg
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9wb2xpY3ktZGVsZWdhdGUtY2FsbGVkLXR3aWNl
Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRDdXN0b21Qb2xpY3lE
ZWxlZ2F0ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoK
KyAgICAgICAgKGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KToKKyAgICAgICAg
KFdlYkNvcmU6Om5hdmlnYXRpb25UeXBlVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisKIDIw
MTAtMDYtMjEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtR
dF0gQnVpbGQgZml4IGZvciBRdCBvbiBXaW5kb3dzIE1TVkMyMDA4CmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCAwYWU1
NWQ3Njk1MjMxMDE2MTAyOGFhOGRkYzE2Y2U4ZTRjYTJhYmMxLi43YjQ4N2MyMzM3NzZhNWU5NzEw
NzE1OTI2ZWQ3Mjc1YWRlNTE0OGQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTUyNSw2ICs1MjUsMTIgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0V2lsbFNlbmRSZXF1ZXN0Q2xlYXJIZWFkZXJz
KGNvbnN0IFFTdHJpbmdMaXN0JgogICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNlbmRSZXF1ZXN0
Q2xlYXJIZWFkZXJzID0gaGVhZGVyczsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUp
Cit7CisgICAgRnJhbWVMb2FkZXJDbGllbnRRdDo6cG9saWN5RGVsZWdhdGVFbmFibGVkID0gZW5h
YmxlZDsKKyAgICBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUg
PSBwZXJtaXNzaXZlOworfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRWRp
dGluZ0NhbGxiYWNrcyhib29sIGIpCiB7CiAgICAgRWRpdG9yQ2xpZW50UXQ6OmR1bXBFZGl0aW5n
Q2FsbGJhY2tzID0gYjsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggMGI5NGEwM2M3NDRiYTZlY2Y5ZmE2NzU1Mjg3M2VkNDA4
ZDIxZDNiMC4uN2VkMjQzZWJlZDdiNTdkYzc4NGI3ZDgyNjNkOTExOWIwMmY3ZGIwNyAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
KysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
QEAgLTExNSw2ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZHVtcFNldEFjY2Vw
dHNFZGl0aW5nKGJvb2wgYik7CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wTm90aWZpY2F0aW9uKGJv
b2wgYik7CisKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIGV2ZW50dWFsbHkgdHVybiBp
bnRvIHB1YmxpYyBBUEkKICAgICAvLyBhbmQgdGhlICJyZWNlaXZlciIgY29uY2VwdCB3b3VsZCBn
byBhd2F5CiAgICAgc3RhdGljIHZvaWQgc2V0Tm90aWZpY2F0aW9uc1JlY2VpdmVyKFFPYmplY3Qq
IHJlY2VpdmVyKTsKQEAgLTEyNyw2ICsxMjgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFFTdHJp
bmcgaGlzdG9yeUl0ZW1UYXJnZXQoY29uc3QgUVdlYkhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSk7
CiAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRDbG9zZShRV2ViRnJhbWUqIGZyYW1lKTsKKworICAg
IHN0YXRpYyB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBw
ZXJtaXNzaXZlKTsKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDQyYjBjNDkxMjRiMjcyOTg1MjI0MjJlMmJh
YWQ0YzQ0MzE3NTI5ZTEuLjA1ZjQxZDliYzMzN2U3ZjI4YmM4ZjJmZjgyOTliNjVjN2Q3ZGE0MTUg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAKQEAgLTM4LDcgKzM4LDkgQEAKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgpAQCAtMTI3LDYgKzEyOSwyNSBAQCBzdGF0aWMg
UVN0cmluZyBkcnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbgogICAgIHJldHVybiBRU3RyaW5nOjpmcm9tTGF0aW4xKCI8TlNVUkxS
ZXNwb25zZSAlMSwgaHR0cCBzdGF0dXMgY29kZSAlMj4iKS5hcmcodXJsKS5hcmcoaHR0cFN0YXR1
c0NvZGUpOwogfQogCitzdGF0aWMgUVN0cmluZyBkcnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVz
dFJlc3VsdChjb25zdCBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbm9kZSwgaW50IGV4Y2VwdGlvbikK
K3sKKyAgICBRU3RyaW5nIHJlc3VsdDsKKyAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgIHJl
c3VsdC5hcHBlbmQoIkVSUk9SIik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAg
IGlmICghbm9kZSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCJOVUxMIik7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIHJlc3VsdC5hcHBlbmQobm9kZS0+bm9kZU5hbWUoKSk7
CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKTsK
KyAgICBpZiAocGFyZW50KSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIiA+ICIpOworICAgICAg
ICByZXN1bHQuYXBwZW5kKGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHBhcmVu
dCwgMCkpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQogCiBuYW1lc3BhY2UgV2ViQ29y
ZQogewpAQCAtMTM3LDYgKzE1OCwyOCBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNlbmRS
ZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0ID0gZmFsc2U7CiBib29sIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OnNlbmRSZXF1ZXN0UmV0dXJuc051bGwgPSBmYWxzZTsKIFFTdHJpbmdMaXN0IEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OnNlbmRSZXF1ZXN0Q2xlYXJIZWFkZXJzOwogUVN0cmluZyBGcmFtZUxv
YWRlckNsaWVudFF0OjpkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzUGF0aDsKK2Jvb2wgRnJhbWVM
b2FkZXJDbGllbnRRdDo6cG9saWN5RGVsZWdhdGVFbmFibGVkID0gZmFsc2U7Citib29sIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OnBvbGljeURlbGVnYXRlUGVybWlzc2l2ZSA9IGZhbHNlOworCisvLyBU
YWtlbiBmcm9tIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorc3RhdGlj
IGNvbnN0IGNoYXIqIG5hdmlnYXRpb25UeXBlVG9TdHJpbmcoTmF2aWdhdGlvblR5cGUgdHlwZSkK
K3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlTGlua0NsaWNr
ZWQ6CisgICAgICAgIHJldHVybiAibGluayBjbGlja2VkIjsKKyAgICBjYXNlIE5hdmlnYXRpb25U
eXBlRm9ybVN1Ym1pdHRlZDoKKyAgICAgICAgcmV0dXJuICJmb3JtIHN1Ym1pdHRlZCI7CisgICAg
Y2FzZSBOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkOgorICAgICAgICByZXR1cm4gImJhY2svZm9y
d2FyZCI7CisgICAgY2FzZSBOYXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuICJy
ZWxvYWQiOworICAgIGNhc2UgTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ6CisgICAgICAg
IHJldHVybiAiZm9ybSByZXN1Ym1pdHRlZCI7CisgICAgY2FzZSBOYXZpZ2F0aW9uVHlwZU90aGVy
OgorICAgICAgICByZXR1cm4gIm90aGVyIjsKKyAgICB9CisgICAgcmV0dXJuICJpbGxlZ2FsIHZh
bHVlIjsKK30KIAogRnJhbWVMb2FkZXJDbGllbnRRdDo6RnJhbWVMb2FkZXJDbGllbnRRdCgpCiAg
ICAgOiBtX2ZyYW1lKDApCkBAIC0xMDQ2LDYgKzEwODksMzEgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudFF0OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJhbWVQb2xp
Y3lGdW4KICAgICBRX0FTU0VSVChtX3dlYkZyYW1lKTsKICAgICBRTmV0d29ya1JlcXVlc3Qgcihy
ZXF1ZXN0LnRvTmV0d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOwogICAgIFFXZWJQYWdlKnBhZ2Ug
PSBtX3dlYkZyYW1lLT5wYWdlKCk7CisgICAgUG9saWN5QWN0aW9uIHJlc3VsdDsKKworICAgIGlm
IChwb2xpY3lEZWxlZ2F0ZUVuYWJsZWQpIHsKKyAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGU7Cisg
ICAgICAgIGZvciAoY29uc3QgRXZlbnQqIGV2ZW50ID0gYWN0aW9uLmV2ZW50KCk7IGV2ZW50OyBl
dmVudCA9IGV2ZW50LT51bmRlcmx5aW5nRXZlbnQoKSkgeworICAgICAgICAgICAgaWYgKGV2ZW50
LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IE1vdXNlRXZlbnQqIG1v
dXNlRXZlbnQgPSAgc3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAg
ICAgICAgICAgICBub2RlID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShtX3dlYkZyYW1lKS0+ZXZl
bnRIYW5kbGVyKCktPmhpdFRlc3RSZXN1bHRBdFBvaW50KAorICAgICAgICAgICAgICAgICAgICBt
b3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlKS5pbm5lck5vblNoYXJlZE5vZGUo
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIHByaW50ZigiUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgJXMgd2l0aCBu
YXZpZ2F0aW9uIHR5cGUgJyVzJyVzXG4iLAorICAgICAgICAgICAgICAgcVByaW50YWJsZShkcnRE
ZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0LnVybCgpKSksIG5hdmlnYXRp
b25UeXBlVG9TdHJpbmcoYWN0aW9uLnR5cGUoKSksCisgICAgICAgICAgICAgICAobm9kZSkgPyBx
UHJpbnRhYmxlKCIgb3JpZ2luYXRpbmcgZnJvbSAiICsgZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHQobm9kZSwgMCkpIDogIiIpOworCisgICAgICAgIGlmIChwb2xpY3lEZWxlZ2F0
ZVBlcm1pc3NpdmUpCisgICAgICAgICAgICByZXN1bHQgPSBQb2xpY3lVc2U7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHJlc3VsdCA9IFBvbGljeUlnbm9yZTsKKworICAgICAgICBjYWxsUG9s
aWN5RnVuY3Rpb24oZnVuY3Rpb24sIHJlc3VsdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBpZiAoIXBhZ2UtPmQtPmFjY2VwdE5hdmlnYXRpb25SZXF1ZXN0KG1fd2ViRnJhbWUsIHIs
IFFXZWJQYWdlOjpOYXZpZ2F0aW9uVHlwZShhY3Rpb24udHlwZSgpKSkpIHsKICAgICAgICAgaWYg
KGFjdGlvbi50eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkIHx8IGFjdGlvbi50
eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQpCmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCBkODU4NTg5YzQ5OWMzOTk2
MzkzMjQwNjUzMmJmY2JiNDU4M2U5M2UwLi5jY2QxZmU3ZjBjYTRjMzc1MzAzNzhmY2IwNTJjYjdj
ZjQ3YzNiYjFhIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmgKQEAgLTIxOCw2ICsyMTgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc2Vu
ZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3Q7CiAgICAgc3RhdGljIGJvb2wgc2VuZFJlcXVl
c3RSZXR1cm5zTnVsbDsKICAgICBzdGF0aWMgUVN0cmluZ0xpc3Qgc2VuZFJlcXVlc3RDbGVhckhl
YWRlcnM7CisgICAgc3RhdGljIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVkOworICAgIHN0YXRp
YyBib29sIHBvbGljeURlbGVnYXRlUGVybWlzc2l2ZTsKIAogcHJpdmF0ZToKICAgICBGcmFtZSAq
bV9mcmFtZTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xz
L0NoYW5nZUxvZwppbmRleCA5YTg4OGM2ZTkwYTU1N2E0N2QwMmY1MjYyMDk1ZDhiMzc3OTgyMGE1
Li5mYjBmMGU5YWNlNzliMzY3ZWNkOGI5Y2JhMDcyNDY0NzcxMzg4YTBkIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTAtMDYtMTkgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJU
IFN1cHBvcnQgZm9yIHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoK
KworICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9u
LWhpdC10ZXN0LXpvb21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29u
bG9hZC1wb2xpY3ktaWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwK
KyAgICAgICAgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxs
ZWQtdHdpY2UuaHRtbAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Q3VzdG9t
UG9saWN5RGVsZWdhdGUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaDoKKwogMjAxMC0wNi0yMSAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggM2Nj
ZWQ3ZDQ5NmZjMmJjMTQxZWJjZmQ1YWQ2YTdkYzZhNDg5ODI1Mi4uYzdkMjg2ZThiMzE4MWZlNzEz
ZjFjOGZlMmUzNTI0OTJlMjk4ZjY1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTczLDYgKzczLDcg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QoZmFsc2Up
OwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5z
TnVsbChmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFdpbGxTZW5kUmVx
dWVzdENsZWFySGVhZGVycyhRU3RyaW5nTGlzdCgpKTsKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoZmFsc2UsIGZhbHNlKTsKICAgICBzZXRJY29u
RGF0YWJhc2VFbmFibGVkKGZhbHNlKTsKIAogICAgIGVtaXQgaGlkZVBhZ2UoKTsKQEAgLTQ5MCw2
ICs0OTEsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoY29uc3QgUVN0cmluZyYgc291cmMKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6cmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihzb3VyY2VPcmlnaW4sIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRv
bWFpbnMpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lE
ZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKK3sKKyAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoZW5hYmxlZCwgcGVybWlzc2l2
ZSk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRGb3JQb2xpY3lEZWxlZ2F0
ZSgpCiB7CiAgICAgbV93YWl0Rm9yUG9saWN5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCA1NjE1
ZDEyYzdmMmJiNTUxYmIwYzgxYWJiOWUwYzc1MTQxYTMxM2JiLi41YzMzZmMyNWNkMTEzYTY4OTU5
YzhmNWZiMGYzNzBhNzU2M2E0MGMxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xNzEsNyArMTcxLDkgQEAg
cHVibGljIHNsb3RzOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIHNl
dEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGUpOwogCisgICAgdm9pZCBzZXRDdXN0b21Q
b2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSA9IHRydWUpOwogICAg
IHZvaWQgd2FpdEZvclBvbGljeURlbGVnYXRlKCk7CisKICAgICB2b2lkIG92ZXJyaWRlUHJlZmVy
ZW5jZShjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRVmFyaWFudCYgdmFsdWUpOwogICAgIHZv
aWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBRU3RyaW5nJiB1cmwpOwogICAgIHZv
aWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZW5hYmxlZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59292</attachid>
            <date>2010-06-21 14:34:04 -0700</date>
            <delta_ts>2010-06-25 15:13:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39564-20100621223402.patch</filename>
            <type>text/plain</type>
            <size>12916</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiM2Y3NjFlODNjYzU4ZjU4YWExNGU4MDE2NDRlOWM0ZDdjOWRkZGE0Li5hZmU2ZGM4
MjkxZTYxNmVhZGE0Yzk1YmEwZjAxMTQ1YzdmNTU3NGI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAK
IDIwMTAtMDYtMjEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJUIFN1cHBvcnQg
Zm9yIHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoKKworICAgICAg
ICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0
LXpvb21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29ubG9hZC1wb2xp
Y3ktaWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKKyAgICAgICAg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2Uu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKworMjAxMC0wNi0yMSAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCiAKICAgICAgICAgW1F0XSBNaXNzaW5nIGZvcndhcmQg
ZW50cmllcyB3aGVuIGR1bXBpbmcgYmFjay9mb3J3YXJkIGxpc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCmluZGV4IDQ5YjhiM2MwNzAwM2YxZjVmOGRhNTY4ZWU5MWNjOThhYjkyNWI4NmIuLjc2ZDk3
ZjExMWFkNzJjMDI4OTVmYzc1NTBiOWJlM2FlNDE1Yzk0NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZApAQCAtNzc5LDEwICs3NzksNyBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vz
cy1jb250cm9sLWJhc2ljLWFsbG93LXByZWZsaWdodC1jYWNoZS10aW1lb3V0Lmh0bQogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9kZWZhdWx0LWNvbnRlbnQtdHlwZS1kYXNoYm9hcmQuaHRtbAog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zdmctY3JlYXRlZC1ieS14aHItZGlzYWxsb3dlZC1p
bi1kYXNoYm9hcmQuaHRtbAogCi0jIE1pc3NpbmcgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q3Vz
dG9tUG9saWN5RGVsZWdhdGUoKQotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk1NjQKLWZhc3QvbG9hZGVyL29ubG9hZC1wb2xpY3ktaWdub3JlLWZvci1mcmFtZS5o
dG1sCi1odHRwL3Rlc3RzL21pc2MvcG9saWN5LWRlbGVnYXRlLWNhbGxlZC10d2ljZS5odG1sCisj
IHRpbWVvdXQKIGh0dHAvdGVzdHMvbWlzYy9yZWRpcmVjdC10by1leHRlcm5hbC11cmwuaHRtbAog
aHR0cC90ZXN0cy9zZWN1cml0eS9mZWVkLXVybHMtZnJvbS1yZW1vdGUuaHRtbAogCkBAIC0yNjE3
LDkgKzI2MTQsNiBAQCBmYXN0L2Zvcm1zL3NlYXJjaC1hYnMtcG9zLWNhbmNlbC1idXR0b24uaHRt
bAogZmFzdC9mb3Jtcy90ZXh0LWNvbnRyb2wtaW50cmluc2ljLXdpZHRocy5odG1sCiBmYXN0L2Zv
cm1zL3RleHRhcmVhLW1ldHJpY3MuaHRtbAogZmFzdC9oaXN0b3J5L3dpbmRvdy1vcGVuLmh0bWwK
LWZhc3QvbG9hZGVyL2phdmFzY3JpcHQtdXJsLWhpZXJhcmNoaWNhbC1leGVjdXRpb24uaHRtbAot
ZmFzdC9sb2FkZXIvcG9saWN5LWRlbGVnYXRlLWFjdGlvbi1oaXQtdGVzdC16b29tZWQuaHRtbAot
ZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS5odG1sCiBmYXN0L2RvbS9IVE1MRG9j
dW1lbnQvaGFzRm9jdXMuaHRtbAogZmFzdC9kb20vRG9jdW1lbnQvQ2FyZXRSYW5nZUZyb21Qb2lu
dC9jYXJldFJhbmdlRnJvbVBvaW50LWluLXpvb20tYW5kLXNjcm9sbC5odG1sCiBmYXN0L2RvbS9S
YW5nZS9yYW5nZS1leHBhbmQuaHRtbApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBi
L1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMTM0NTc3ZmViNzJiMmEyMWViMzk3YWJkM2U5ZTlm
MTk2YTA0MzE1OS4uOTlmZTI4NzMyOWJkOTQ0NWZhZWE2ZjBjMzBhMzViNTQ4MTc4ZDgyYSAxMDA2
NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMzAgQEAKIDIwMTAtMDYtMjEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQu
b3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtR
dF0gRFJUIFN1cHBvcnQgZm9yIHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5z
a2lwczoKKworICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUt
YWN0aW9uLWhpdC10ZXN0LXpvb21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL29ubG9hZC1wb2xpY3ktaWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9u
Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0
ZS1jYWxsZWQtdHdpY2UuaHRtbAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dEN1c3RvbVBvbGljeURlbGVnYXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwOgorICAgICAgICAoZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1
bHQpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGlvblR5cGVUb1N0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuaDoKKworMjAxMC0wNi0yMSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+
CisKICAgICAgICAgW1F0XSBCdWlsZCBmaXggZm9yIFF0IG9uIFdpbmRvd3MgTVNWQzIwMDgKIAog
ICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCAwYWU1NWQ3Njk1MjMx
MDE2MTAyOGFhOGRkYzE2Y2U4ZTRjYTJhYmMxLi43YjQ4N2MyMzM3NzZhNWU5NzEwNzE1OTI2ZWQ3
Mjc1YWRlNTE0OGQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTUyNSw2ICs1MjUsMTIgQEAgdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0V2lsbFNlbmRSZXF1ZXN0Q2xlYXJIZWFkZXJzKGNvbnN0IFFT
dHJpbmdMaXN0JgogICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNlbmRSZXF1ZXN0Q2xlYXJIZWFk
ZXJzID0gaGVhZGVyczsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0Q3Vz
dG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUpCit7CisgICAg
RnJhbWVMb2FkZXJDbGllbnRRdDo6cG9saWN5RGVsZWdhdGVFbmFibGVkID0gZW5hYmxlZDsKKyAg
ICBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb2xpY3lEZWxlZ2F0ZVBlcm1pc3NpdmUgPSBwZXJtaXNz
aXZlOworfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRWRpdGluZ0NhbGxi
YWNrcyhib29sIGIpCiB7CiAgICAgRWRpdG9yQ2xpZW50UXQ6OmR1bXBFZGl0aW5nQ2FsbGJhY2tz
ID0gYjsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmgKaW5kZXggMGI5NGEwM2M3NDRiYTZlY2Y5ZmE2NzU1Mjg3M2VkNDA4ZDIxZDNiMC4u
N2VkMjQzZWJlZDdiNTdkYzc4NGI3ZDgyNjNkOTExOWIwMmY3ZGIwNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTExNSw2
ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZHVtcFNldEFjY2VwdHNFZGl0aW5n
KGJvb2wgYik7CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wTm90aWZpY2F0aW9uKGJvb2wgYik7CisK
ICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIGV2ZW50dWFsbHkgdHVybiBpbnRvIHB1Ymxp
YyBBUEkKICAgICAvLyBhbmQgdGhlICJyZWNlaXZlciIgY29uY2VwdCB3b3VsZCBnbyBhd2F5CiAg
ICAgc3RhdGljIHZvaWQgc2V0Tm90aWZpY2F0aW9uc1JlY2VpdmVyKFFPYmplY3QqIHJlY2VpdmVy
KTsKQEAgLTEyNyw2ICsxMjgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFFTdHJpbmcgaGlzdG9y
eUl0ZW1UYXJnZXQoY29uc3QgUVdlYkhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSk7CiAKICAgICBz
dGF0aWMgYm9vbCBzaG91bGRDbG9zZShRV2ViRnJhbWUqIGZyYW1lKTsKKworICAgIHN0YXRpYyB2
b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZl
KTsKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50UXQuY3BwCmluZGV4IDQyYjBjNDkxMjRiMjcyOTg1MjI0MjJlMmJhYWQ0YzQ0MzE3
NTI5ZTEuLjA1ZjQxZDliYzMzN2U3ZjI4YmM4ZjJmZjgyOTliNjVjN2Q3ZGE0MTUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTM4
LDcgKzM4LDkgQEAKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQu
aCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGx1Z2luRGF0YS5oIgpAQCAtMTI3LDYgKzEyOSwyNSBAQCBzdGF0aWMgUVN0cmluZyBk
cnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbgogICAgIHJldHVybiBRU3RyaW5nOjpmcm9tTGF0aW4xKCI8TlNVUkxSZXNwb25zZSAl
MSwgaHR0cCBzdGF0dXMgY29kZSAlMj4iKS5hcmcodXJsKS5hcmcoaHR0cFN0YXR1c0NvZGUpOwog
fQogCitzdGF0aWMgUVN0cmluZyBkcnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChj
b25zdCBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbm9kZSwgaW50IGV4Y2VwdGlvbikKK3sKKyAgICBR
U3RyaW5nIHJlc3VsdDsKKyAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgIHJlc3VsdC5hcHBl
bmQoIkVSUk9SIik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIGlmICghbm9k
ZSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCJOVUxMIik7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorICAgIHJlc3VsdC5hcHBlbmQobm9kZS0+bm9kZU5hbWUoKSk7CisgICAgUmVm
UHRyPFdlYkNvcmU6Ok5vZGU+IHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICBpZiAo
cGFyZW50KSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIiA+ICIpOworICAgICAgICByZXN1bHQu
YXBwZW5kKGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHBhcmVudCwgMCkpOwor
ICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQogCiBuYW1lc3BhY2UgV2ViQ29yZQogewpAQCAt
MTM3LDYgKzE1OCwyOCBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNlbmRSZXF1ZXN0UmV0
dXJuc051bGxPblJlZGlyZWN0ID0gZmFsc2U7CiBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNl
bmRSZXF1ZXN0UmV0dXJuc051bGwgPSBmYWxzZTsKIFFTdHJpbmdMaXN0IEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OnNlbmRSZXF1ZXN0Q2xlYXJIZWFkZXJzOwogUVN0cmluZyBGcmFtZUxvYWRlckNsaWVu
dFF0OjpkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzUGF0aDsKK2Jvb2wgRnJhbWVMb2FkZXJDbGll
bnRRdDo6cG9saWN5RGVsZWdhdGVFbmFibGVkID0gZmFsc2U7Citib29sIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OnBvbGljeURlbGVnYXRlUGVybWlzc2l2ZSA9IGZhbHNlOworCisvLyBUYWtlbiBmcm9t
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorc3RhdGljIGNvbnN0IGNo
YXIqIG5hdmlnYXRpb25UeXBlVG9TdHJpbmcoTmF2aWdhdGlvblR5cGUgdHlwZSkKK3sKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ6CisgICAg
ICAgIHJldHVybiAibGluayBjbGlja2VkIjsKKyAgICBjYXNlIE5hdmlnYXRpb25UeXBlRm9ybVN1
Ym1pdHRlZDoKKyAgICAgICAgcmV0dXJuICJmb3JtIHN1Ym1pdHRlZCI7CisgICAgY2FzZSBOYXZp
Z2F0aW9uVHlwZUJhY2tGb3J3YXJkOgorICAgICAgICByZXR1cm4gImJhY2svZm9yd2FyZCI7Cisg
ICAgY2FzZSBOYXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuICJyZWxvYWQiOwor
ICAgIGNhc2UgTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ6CisgICAgICAgIHJldHVybiAi
Zm9ybSByZXN1Ym1pdHRlZCI7CisgICAgY2FzZSBOYXZpZ2F0aW9uVHlwZU90aGVyOgorICAgICAg
ICByZXR1cm4gIm90aGVyIjsKKyAgICB9CisgICAgcmV0dXJuICJpbGxlZ2FsIHZhbHVlIjsKK30K
IAogRnJhbWVMb2FkZXJDbGllbnRRdDo6RnJhbWVMb2FkZXJDbGllbnRRdCgpCiAgICAgOiBtX2Zy
YW1lKDApCkBAIC0xMDQ2LDYgKzEwODksMzEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpk
aXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJhbWVQb2xpY3lGdW4KICAg
ICBRX0FTU0VSVChtX3dlYkZyYW1lKTsKICAgICBRTmV0d29ya1JlcXVlc3QgcihyZXF1ZXN0LnRv
TmV0d29ya1JlcXVlc3QobV93ZWJGcmFtZSkpOwogICAgIFFXZWJQYWdlKnBhZ2UgPSBtX3dlYkZy
YW1lLT5wYWdlKCk7CisgICAgUG9saWN5QWN0aW9uIHJlc3VsdDsKKworICAgIGlmIChwb2xpY3lE
ZWxlZ2F0ZUVuYWJsZWQpIHsKKyAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGU7CisgICAgICAgIGZv
ciAoY29uc3QgRXZlbnQqIGV2ZW50ID0gYWN0aW9uLmV2ZW50KCk7IGV2ZW50OyBldmVudCA9IGV2
ZW50LT51bmRlcmx5aW5nRXZlbnQoKSkgeworICAgICAgICAgICAgaWYgKGV2ZW50LT5pc01vdXNl
RXZlbnQoKSkgeworICAgICAgICAgICAgICAgIGNvbnN0IE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQg
PSAgc3RhdGljX2Nhc3Q8Y29uc3QgTW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAgICAgICAgICAg
ICBub2RlID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShtX3dlYkZyYW1lKS0+ZXZlbnRIYW5kbGVy
KCktPmhpdFRlc3RSZXN1bHRBdFBvaW50KAorICAgICAgICAgICAgICAgICAgICBtb3VzZUV2ZW50
LT5hYnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlKS5pbm5lck5vblNoYXJlZE5vZGUoKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBy
aW50ZigiUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgJXMgd2l0aCBuYXZpZ2F0aW9u
IHR5cGUgJyVzJyVzXG4iLAorICAgICAgICAgICAgICAgcVByaW50YWJsZShkcnREZXNjcmlwdGlv
blN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0LnVybCgpKSksIG5hdmlnYXRpb25UeXBlVG9T
dHJpbmcoYWN0aW9uLnR5cGUoKSksCisgICAgICAgICAgICAgICAobm9kZSkgPyBxUHJpbnRhYmxl
KCIgb3JpZ2luYXRpbmcgZnJvbSAiICsgZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1
bHQobm9kZSwgMCkpIDogIiIpOworCisgICAgICAgIGlmIChwb2xpY3lEZWxlZ2F0ZVBlcm1pc3Np
dmUpCisgICAgICAgICAgICByZXN1bHQgPSBQb2xpY3lVc2U7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJlc3VsdCA9IFBvbGljeUlnbm9yZTsKKworICAgICAgICBjYWxsUG9saWN5RnVuY3Rp
b24oZnVuY3Rpb24sIHJlc3VsdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAo
IXBhZ2UtPmQtPmFjY2VwdE5hdmlnYXRpb25SZXF1ZXN0KG1fd2ViRnJhbWUsIHIsIFFXZWJQYWdl
OjpOYXZpZ2F0aW9uVHlwZShhY3Rpb24udHlwZSgpKSkpIHsKICAgICAgICAgaWYgKGFjdGlvbi50
eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkIHx8IGFjdGlvbi50eXBlKCkgPT0g
TmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCBkODU4NTg5YzQ5OWMzOTk2MzkzMjQwNjUz
MmJmY2JiNDU4M2U5M2UwLi5jY2QxZmU3ZjBjYTRjMzc1MzAzNzhmY2IwNTJjYjdjZjQ3YzNiYjFh
IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgK
QEAgLTIxOCw2ICsyMTgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc2VuZFJlcXVlc3RS
ZXR1cm5zTnVsbE9uUmVkaXJlY3Q7CiAgICAgc3RhdGljIGJvb2wgc2VuZFJlcXVlc3RSZXR1cm5z
TnVsbDsKICAgICBzdGF0aWMgUVN0cmluZ0xpc3Qgc2VuZFJlcXVlc3RDbGVhckhlYWRlcnM7Cisg
ICAgc3RhdGljIGJvb2wgcG9saWN5RGVsZWdhdGVFbmFibGVkOworICAgIHN0YXRpYyBib29sIHBv
bGljeURlbGVnYXRlUGVybWlzc2l2ZTsKIAogcHJpdmF0ZToKICAgICBGcmFtZSAqbV9mcmFtZTsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5YTg4OGM2ZTkwYTU1N2E0N2QwMmY1MjYyMDk1ZDhiMzc3OTgyMGE1Li5jNDFiYjE2
ZDhiMzM2ZWYxMjVmM2M5NmE1NGNkMGVmMmU4MTlkYTlkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTAtMDYtMjEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gRFJUIFN1cHBvcnQg
Zm9yIHNldEN1c3RvbVBvbGljeURlbGVnYXRlCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTY0CisKKyAgICAgICAgVW5za2lwczoKKworICAgICAg
ICBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9wb2xpY3ktZGVsZWdhdGUtYWN0aW9uLWhpdC10ZXN0
LXpvb21lZC5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL29ubG9hZC1wb2xp
Y3ktaWdub3JlLWZvci1mcmFtZS5odG1sCisgICAgICAgIExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9qYXZhc2NyaXB0LXVybC1oaWVyYXJjaGljYWwtZXhlY3V0aW9uLmh0bWwKKyAgICAgICAg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3BvbGljeS1kZWxlZ2F0ZS1jYWxsZWQtdHdpY2Uu
aHRtbAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Q3VzdG9tUG9saWN5RGVs
ZWdhdGUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuaDoKKwogMjAxMC0wNi0yMSAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggM2NjZWQ3ZDQ5NmZj
MmJjMTQxZWJjZmQ1YWQ2YTdkYzZhNDg5ODI1Mi4uYzdkMjg2ZThiMzE4MWZlNzEzZjFjOGZlMmUz
NTI0OTJlMjk4ZjY1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTczLDYgKzczLDcgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QoZmFsc2UpOwogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbChmYWxz
ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFdpbGxTZW5kUmVxdWVzdENsZWFy
SGVhZGVycyhRU3RyaW5nTGlzdCgpKTsKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
Q3VzdG9tUG9saWN5RGVsZWdhdGUoZmFsc2UsIGZhbHNlKTsKICAgICBzZXRJY29uRGF0YWJhc2VF
bmFibGVkKGZhbHNlKTsKIAogICAgIGVtaXQgaGlkZVBhZ2UoKTsKQEAgLTQ5MCw2ICs0OTEsMTEg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgUVN0cmluZyYgc291cmMKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
cmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihzb3VyY2VPcmlnaW4sIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwog
fQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShi
b29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSkKK3sKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoZW5hYmxlZCwgcGVybWlzc2l2ZSk7Cit9CisK
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpCiB7CiAg
ICAgbV93YWl0Rm9yUG9saWN5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCA1NjE1ZDEyYzdmMmJi
NTUxYmIwYzgxYWJiOWUwYzc1MTQxYTMxM2JiLi41YzMzZmMyNWNkMTEzYTY4OTU5YzhmNWZiMGYz
NzBhNzU2M2E0MGMxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xNzEsNyArMTcxLDkgQEAgcHVibGljIHNs
b3RzOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIHNldEljb25EYXRh
YmFzZUVuYWJsZWQoYm9vbCBlbmFibGUpOwogCisgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxl
Z2F0ZShib29sIGVuYWJsZWQsIGJvb2wgcGVybWlzc2l2ZSA9IHRydWUpOwogICAgIHZvaWQgd2Fp
dEZvclBvbGljeURlbGVnYXRlKCk7CisKICAgICB2b2lkIG92ZXJyaWRlUHJlZmVyZW5jZShjb25z
dCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRVmFyaWFudCYgdmFsdWUpOwogICAgIHZvaWQgc2V0VXNl
clN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBRU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgc2V0VXNl
clN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZW5hYmxlZCk7Cg==
</data>
<flag name="review"
          id="46061"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="46895"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>