<?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>97147</bug_id>
          
          <creation_ts>2012-09-19 16:37:30 -0700</creation_ts>
          <short_desc>[chromium] Add setters to WebFilterOperation for IPC pickling</short_desc>
          <delta_ts>2012-09-24 08:46:38 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>97441</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>723958</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-19 16:37:30 -0700</bug_when>
    <thetext>[chromium] Add flatten() and unflatten() to WebFilterOperation for IPC pickling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723970</commentid>
    <comment_count>1</comment_count>
      <attachid>164802</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-19 16:51:36 -0700</bug_when>
    <thetext>Created attachment 164802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723973</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 16:53:57 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724003</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-19 17:43:26 -0700</bug_when>
    <thetext>I think Stephen wanted to change the filter list into a complete graph (hopefully a DAG) of skia types - is that right?  If so we should serialize that and not WebKit API types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724005</commentid>
    <comment_count>4</comment_count>
      <attachid>164802</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-19 17:44:43 -0700</bug_when>
    <thetext>Comment on attachment 164802
Patch

I&apos;d rather not put pickling or seralization logic directly in WebKit API.  If this type is going to be transported as a WebFoo then expose enough getters/setters to serialize/deserialize the types from chromium land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724010</commentid>
    <comment_count>5</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-09-19 17:48:54 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 164802 [details])
&gt; I&apos;d rather not put pickling or seralization logic directly in WebKit API.  If this type is going to be transported as a WebFoo then expose enough getters/setters to serialize/deserialize the types from chromium land.

I tried to do that earlier and the results were painful.  You need quite a lot of custom logic to cover all the variants and you can&apos;t use the &quot;create&quot; methods (since you&apos;re passed in a created but uninitialized logic).  And it would mean having to write a patch in both trees to do any change to WebFilterOperations (in practice the Chromium side might just be forgotten about).  I think the better options are either this &quot;flatten&quot; method approach or just turning this into a struct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724028</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-19 18:07:19 -0700</bug_when>
    <thetext>I think the real issue here is that we&apos;re overloading the WebKit API types for two things - transit types between WebCore stuff and the compositor and internal CC data types.  Sharing these concerns was expedient for GTFO, but I think we really need to migrate the internal CC needs to use different types and have CC-internal concerns handled on the chromium side.  Serialization falls into this category - it&apos;s not something you need for communicating between WebCore and the compositor implementation, it&apos;s something that CC needs internally.

We don&apos;t want to have to make a WebKit patch every time we want to change the serialization format for filters - that&apos;d be ridiculous.

Of course in this particular case if we move to expressing filter changes are graphs of Skia types this is moot for this particular instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724102</commentid>
    <comment_count>7</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-09-19 19:53:18 -0700</bug_when>
    <thetext>This is actually the only WebKit type that needs special treatment.  So we can avoid the philosophical debate if it&apos;s going away to get replaced by entirely Chromium/Skia types.

Is the new format coming soon?  The remaining question is whether we should land some kind of stopgap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724104</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-19 19:58:26 -0700</bug_when>
    <thetext>That&apos;s a question for Stephen - there&apos;s a design doc from August and I know it&apos;s in the plans, but I don&apos;t know the timeline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724133</commentid>
    <comment_count>9</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-09-19 21:46:33 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; That&apos;s a question for Stephen - there&apos;s a design doc from August and I know it&apos;s in the plans, but I don&apos;t know the timeline.

I have it as a stretch goal for this quarter, but it&apos;s looking unlikely.  I think it&apos;ll more likely be next quarter.  I&apos;m visiting the NC team right now hashing out some of the details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724527</commentid>
    <comment_count>10</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-20 08:06:27 -0700</bug_when>
    <thetext>Serializing these is one of the blockers for ubercomp, so what&apos;s the right approach to take for now?

1) We can turn this into a struct and drop the ASSERT() guards
2) We can build a bunch of logic into the pickler to know which fields to read for which types, and add setters for everything to the API.
3) We can flatten()/unflatten()
4) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724543</commentid>
    <comment_count>11</comment_count>
      <attachid>164802</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-09-20 08:24:34 -0700</bug_when>
    <thetext>Comment on attachment 164802
Patch

BTW I&apos;m fine with this patch as-is as a stopgap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724770</commentid>
    <comment_count>12</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-20 12:56:57 -0700</bug_when>
    <thetext>@jamesr thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724789</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-20 13:20:56 -0700</bug_when>
    <thetext>I think 1 or 2 make the most sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724992</commentid>
    <comment_count>14</comment_count>
      <attachid>165016</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-20 17:07:26 -0700</bug_when>
    <thetext>Created attachment 165016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725004</commentid>
    <comment_count>15</comment_count>
      <attachid>165019</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-20 17:25:23 -0700</bug_when>
    <thetext>Created attachment 165019
Patch

fix asserts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725094</commentid>
    <comment_count>16</comment_count>
      <attachid>165019</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-09-20 19:50:02 -0700</bug_when>
    <thetext>Comment on attachment 165019
Patch

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

I&apos;m ok with this, but will leave for James.

&gt; Source/Platform/chromium/public/WebFilterOperation.h:109
&gt; +    static WebFilterOperation createEmptyFilter() { return WebFilterOperation(FilterTypeGrayscale, 0.0); }

We could create a FilterTypeUnknown or something for this purpose, which might allow for some sanity-checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725106</commentid>
    <comment_count>17</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-20 20:10:31 -0700</bug_when>
    <thetext>Heh I actually made a FilterTypeUnknown at first but then switches in chromium caused errors and I figured this wasn&apos;t worth a 3 way patch..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725653</commentid>
    <comment_count>18</comment_count>
      <attachid>165019</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-21 11:21:22 -0700</bug_when>
    <thetext>Comment on attachment 165019
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725669</commentid>
    <comment_count>19</comment_count>
      <attachid>165019</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 11:46:56 -0700</bug_when>
    <thetext>Comment on attachment 165019
Patch

Clearing flags on attachment: 165019

Committed r129243: &lt;http://trac.webkit.org/changeset/129243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725670</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 11:47:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726494</commentid>
    <comment_count>21</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-24 02:39:23 -0700</bug_when>
    <thetext>Reopening since the change was rolled out in http://trac.webkit.org/changeset/129337</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726673</commentid>
    <comment_count>22</comment_count>
      <attachid>165384</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-24 08:12:06 -0700</bug_when>
    <thetext>Created attachment 165384
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726675</commentid>
    <comment_count>23</comment_count>
      <attachid>165385</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-09-24 08:12:53 -0700</bug_when>
    <thetext>Created attachment 165385
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726711</commentid>
    <comment_count>24</comment_count>
      <attachid>165385</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-24 08:46:33 -0700</bug_when>
    <thetext>Comment on attachment 165385
Patch for landing

Clearing flags on attachment: 165385

Committed r129373: &lt;http://trac.webkit.org/changeset/129373&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726712</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-24 08:46:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164802</attachid>
            <date>2012-09-19 16:51:36 -0700</date>
            <delta_ts>2012-09-20 17:07:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97147-20120919195102.patch</filename>
            <type>text/plain</type>
            <size>9515</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxYTRlMTAxZTAzMDZm
Y2Y3Y2U2MWQyNDI1MTY5ZGNkMTdhYTFiZjc2Li5hZDUwOGE1OWM1MjllNDFjMDZiOTliM2FmYzEw
MTM4NWI4MmUyYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wOS0xOSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBmbGF0dGVuKCkgYW5kIHVuZmxhdHRlbigpIHRvIFdlYkZpbHRlck9wZXJhdGlvbiBmb3Ig
SVBDIHBpY2tsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NzE0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZXNlIG1ldGhvZHMgYWxsb3cgdXMgdG8gY3JlYXRlIGEgYmxvYiBvZiBvcGFxdWUgZGF0
YSBmcm9tIGVhY2gKKyAgICAgICAgRmlsdGVyT3BlcmF0aW9uLCB3aXRob3V0IG1ha2luZyB0aGUg
Y2xhc3MgaW50byBhIHN0cnVjdCwgYW5kIGRvaW5nCisgICAgICAgIGF3YXkgd2l0aCB0aGUgQVNT
RVJUIGd1YXJkcyB3ZSBoYXZlIGluIHBsYWNlIGZvciBhY2Nlc3NpbmcgdGhlIGRhdGEKKyAgICAg
ICAgd2l0aGluLgorCisgICAgICAgIFRlc3Q6IFdlYkZpbHRlck9wZXJhdGlvbnNUZXN0LmZsYXR0
ZW5BbmRVbmZsYXR0ZW4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJGaWx0ZXJPcGVy
YXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9uOjphbW91bnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246Om1hdHJpeCk6CisgICAgICAgIChX
ZWJGaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAqIGNocm9taXVtL3NyYy9XZWJGaWx0ZXJPcGVy
YXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmZsYXR0ZW4p
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9u
Ojp1bmZsYXR0ZW4pOgorCiAyMDEyLTA5LTE4ICBTYWlsZXNoIEFncmF3YWwgIDxzYWlsQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1bTogU2Nyb2xsYmFyIHdpdGggdGlja21hcmtzIGRv
ZXNuJ3QgcmVzcG9uZCB0byBjbGlja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYjgz
OWQ5OWY5NTJjNzdiOWEyMzk4ODJhZjJiYzA3OWZlMjE2NTg5OS4uMjZlNWVlODgyYjZkY2NmNDUz
Mzk4OTFhNGJmMzFjNmIxMGNlOGU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0wOS0xOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBmbGF0dGVuKCkgYW5kIHVuZmxhdHRlbigpIHRv
IFdlYkZpbHRlck9wZXJhdGlvbiBmb3IgSVBDIHBpY2tsaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvRmlsdGVyT3BlcmF0aW9uc1Rlc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6VEVTVCk6CisKIDIwMTIt
MDktMTkgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9uLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oCmluZGV4IDlmMTU1MTlhMTA5MGJjYWIx
NDI4ODgyY2Y4Y2EwMDllMWNmNGU0ZmIuLmQzMTZmOGMyYjA5NmEzN2UzNWQ3ZjYwZjNmMWUyY2Uz
MzljM2U4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
RmlsdGVyT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJGaWx0ZXJPcGVyYXRpb24uaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIlNrU2NhbGFy
LmgiCiAjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3IuaCIKKyNpbmNs
dWRlICJXZWJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUG9pbnQuaCIKICNpbmNsdWRlICJXZWJSZWN0
LmgiCiAKQEAgLTU1LDYgKzU2LDE2IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IGFtb3VudCgpIGNv
bnN0CiAgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlR3Jh
eXNjYWxlCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVTZXBpYQor
ICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlU2F0dXJhdGUKKyAgICAg
ICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUh1ZVJvdGF0ZQorICAgICAgICAg
ICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlSW52ZXJ0CisgICAgICAgICAgICAgICAg
ICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVCcmlnaHRuZXNzCisgICAgICAgICAgICAgICAgICAg
fHwgbV90eXBlID09IEZpbHRlclR5cGVDb250cmFzdAorICAgICAgICAgICAgICAgICAgIHx8IG1f
dHlwZSA9PSBGaWx0ZXJUeXBlT3BhY2l0eQorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9
PSBGaWx0ZXJUeXBlQmx1cgorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJU
eXBlRHJvcFNoYWRvdyk7CiAgICAgICAgIHJldHVybiBtX2Ftb3VudDsKICAgICB9CiAgICAgV2Vi
UG9pbnQgZHJvcFNoYWRvd09mZnNldCgpIGNvbnN0CkBAIC02OSw2ICs4MCw3IEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgY29uc3QgU2tTY2FsYXIqIG1hdHJpeCgpIGNvbnN0CiAgICAgeworICAgICAg
ICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlQ29sb3JNYXRyaXgpOwogICAgICAg
ICByZXR1cm4gbV9tYXRyaXg7CiAgICAgfQogCkBAIC05NCw2ICsxMDYsOSBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGVxdWFscyhjb25zdCBXZWJGaWx0ZXJPcGVyYXRpb24mIG90aGVyKSBjb25zdDsK
IAorICAgIFdlYkRhdGEgZmxhdHRlbigpIGNvbnN0OworICAgIGJvb2wgdW5mbGF0dGVuKGNvbnN0
IFdlYkRhdGEmKTsKKwogcHJpdmF0ZToKICAgICBGaWx0ZXJUeXBlIG1fdHlwZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3NyYy9XZWJGaWx0ZXJPcGVyYXRpb24uY3Bw
IGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3NyYy9XZWJGaWx0ZXJPcGVyYXRpb24uY3BwCmlu
ZGV4IGRiYWYxMzc3Y2E2NTUzNDBkNzc3ZDZiYmU0MDIzNmZiNDQ0Mjg3YTMuLjY2NDE3YmRiMGJk
MmUyNWQzZDg0MmY2Yzc3OGRhNTBhM2YyMGUxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9zcmMvV2ViRmlsdGVyT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vc3JjL1dlYkZpbHRlck9wZXJhdGlvbi5jcHAKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGaWx0ZXJPcGVyYXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaW5jbHVkZSA8c3RyaW5nLmg+
CiAKQEAgLTQ0LDYgKzQ1LDkyIEBAIGJvb2wgV2ViRmlsdGVyT3BlcmF0aW9uOjplcXVhbHMoY29u
c3QgV2ViRmlsdGVyT3BlcmF0aW9uJiBvdGhlcikgY29uc3QKICAgICAgICAgcmV0dXJuIG1fYW1v
dW50ID09IG90aGVyLm1fYW1vdW50OwogfQogCitXZWJEYXRhIFdlYkZpbHRlck9wZXJhdGlvbjo6
ZmxhdHRlbigpIGNvbnN0Cit7CisgICAgc2l6ZV90IGJ5dGVzID0gc2l6ZW9mKG1fdHlwZSkgKyBz
aXplb2YobV9hbW91bnQpICsgc2l6ZW9mKG1fZHJvcFNoYWRvd09mZnNldCkgKyBzaXplb2YobV9k
cm9wU2hhZG93Q29sb3IpICsgc2l6ZW9mKG1fbWF0cml4KSArIHNpemVvZihtX3pvb21SZWN0KTsK
KworICAgIE93blB0cjxjaGFyPiBkYXRhKGFkb3B0UHRyKG5ldyBjaGFyW2J5dGVzXSkpOworCisg
ICAgc2l6ZV90IGF0ID0gMDsKKyAgICBzaXplX3Qgc2l6ZTsKKworICAgIHNpemUgPSBzaXplb2Yo
bV90eXBlKTsKKyAgICBBU1NFUlQoYXQgKyBzaXplIDw9IGJ5dGVzKTsKKyAgICBtZW1jcHkoJmRh
dGEuZ2V0KClbYXRdLCAmbV90eXBlLCBzaXplKTsKKyAgICBhdCArPSBzaXplOworCisgICAgc2l6
ZSA9IHNpemVvZihtX2Ftb3VudCk7CisgICAgQVNTRVJUKGF0ICsgc2l6ZSA8PSBieXRlcyk7Cisg
ICAgbWVtY3B5KCZkYXRhLmdldCgpW2F0XSwgJm1fYW1vdW50LCBzaXplKTsKKyAgICBhdCArPSBz
aXplOworCisgICAgc2l6ZSA9IHNpemVvZihtX2Ryb3BTaGFkb3dPZmZzZXQpOworICAgIEFTU0VS
VChhdCArIHNpemUgPD0gYnl0ZXMpOworICAgIG1lbWNweSgmZGF0YS5nZXQoKVthdF0sICZtX2Ry
b3BTaGFkb3dPZmZzZXQsIHNpemUpOworICAgIGF0ICs9IHNpemU7CisKKyAgICBzaXplID0gc2l6
ZW9mKG1fZHJvcFNoYWRvd0NvbG9yKTsKKyAgICBBU1NFUlQoYXQgKyBzaXplIDw9IGJ5dGVzKTsK
KyAgICBtZW1jcHkoJmRhdGEuZ2V0KClbYXRdLCAmbV9kcm9wU2hhZG93Q29sb3IsIHNpemUpOwor
ICAgIGF0ICs9IHNpemU7CisKKyAgICBzaXplID0gc2l6ZW9mKG1fbWF0cml4KTsKKyAgICBBU1NF
UlQoYXQgKyBzaXplIDw9IGJ5dGVzKTsKKyAgICBtZW1jcHkoJmRhdGEuZ2V0KClbYXRdLCAmbV9t
YXRyaXgsIHNpemUpOworICAgIGF0ICs9IHNpemU7CisKKyAgICBzaXplID0gc2l6ZW9mKG1fem9v
bVJlY3QpOworICAgIEFTU0VSVChhdCArIHNpemUgPD0gYnl0ZXMpOworICAgIG1lbWNweSgmZGF0
YS5nZXQoKVthdF0sICZtX3pvb21SZWN0LCBzaXplKTsKKyAgICBhdCArPSBzaXplOworCisgICAg
QVNTRVJUKGF0ID09IGJ5dGVzKTsKKyAgICByZXR1cm4gV2ViRGF0YShkYXRhLmdldCgpLCBieXRl
cyk7Cit9CisKK2Jvb2wgV2ViRmlsdGVyT3BlcmF0aW9uOjp1bmZsYXR0ZW4oY29uc3QgV2ViRGF0
YSYgd2ViRGF0YSkKK3sKKyAgICBzaXplX3QgYnl0ZXMgPSBzaXplb2YobV90eXBlKSArIHNpemVv
ZihtX2Ftb3VudCkgKyBzaXplb2YobV9kcm9wU2hhZG93T2Zmc2V0KSArIHNpemVvZihtX2Ryb3BT
aGFkb3dDb2xvcikgKyBzaXplb2YobV9tYXRyaXgpICsgc2l6ZW9mKG1fem9vbVJlY3QpOworICAg
IGlmICh3ZWJEYXRhLnNpemUoKSAhPSBieXRlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgc2l6ZV90IGF0ID0gMDsKKyAgICBzaXplX3Qgc2l6ZTsKKworICAgIHNpemUgPSBzaXplb2Yo
bV90eXBlKTsKKyAgICBBU1NFUlQoYXQgKyBzaXplIDw9IGJ5dGVzKTsKKyAgICBtZW1jcHkoJm1f
dHlwZSwgJndlYkRhdGEuZGF0YSgpW2F0XSwgc2l6ZSk7CisgICAgYXQgKz0gc2l6ZTsKKworICAg
IHNpemUgPSBzaXplb2YobV9hbW91bnQpOworICAgIEFTU0VSVChhdCArIHNpemUgPD0gYnl0ZXMp
OworICAgIG1lbWNweSgmbV9hbW91bnQsICZ3ZWJEYXRhLmRhdGEoKVthdF0sIHNpemUpOworICAg
IGF0ICs9IHNpemU7CisKKyAgICBzaXplID0gc2l6ZW9mKG1fZHJvcFNoYWRvd09mZnNldCk7Cisg
ICAgQVNTRVJUKGF0ICsgc2l6ZSA8PSBieXRlcyk7CisgICAgbWVtY3B5KCZtX2Ryb3BTaGFkb3dP
ZmZzZXQsICZ3ZWJEYXRhLmRhdGEoKVthdF0sIHNpemUpOworICAgIGF0ICs9IHNpemU7CisKKyAg
ICBzaXplID0gc2l6ZW9mKG1fZHJvcFNoYWRvd0NvbG9yKTsKKyAgICBBU1NFUlQoYXQgKyBzaXpl
IDw9IGJ5dGVzKTsKKyAgICBtZW1jcHkoJm1fZHJvcFNoYWRvd0NvbG9yLCAmd2ViRGF0YS5kYXRh
KClbYXRdLCBzaXplKTsKKyAgICBhdCArPSBzaXplOworCisgICAgc2l6ZSA9IHNpemVvZihtX21h
dHJpeCk7CisgICAgQVNTRVJUKGF0ICsgc2l6ZSA8PSBieXRlcyk7CisgICAgbWVtY3B5KCZtX21h
dHJpeCwgJndlYkRhdGEuZGF0YSgpW2F0XSwgc2l6ZSk7CisgICAgYXQgKz0gc2l6ZTsKKworICAg
IHNpemUgPSBzaXplb2YobV96b29tUmVjdCk7CisgICAgQVNTRVJUKGF0ICsgc2l6ZSA8PSBieXRl
cyk7CisgICAgbWVtY3B5KCZtX3pvb21SZWN0LCAmd2ViRGF0YS5kYXRhKClbYXRdLCBzaXplKTsK
KyAgICBhdCArPSBzaXplOworCisgICAgQVNTRVJUKGF0ID09IGJ5dGVzKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogV2ViRmlsdGVyT3BlcmF0aW9uOjpXZWJGaWx0ZXJPcGVyYXRpb24oRmlsdGVy
VHlwZSB0eXBlLCBTa1NjYWxhciBtYXRyaXhbMjBdKQogewogICAgIFdFQktJVF9BU1NFUlQodHlw
ZSA9PSBGaWx0ZXJUeXBlQ29sb3JNYXRyaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0ZpbHRlck9wZXJhdGlvbnNUZXN0LmNwcAppbmRleCA4YTNjNWQ4YTE2MDBh
YTlkYjk4OTE5YTc2MTU1MzNmODM3OGI1OTY4Li4xYTY1ZGU3NzM0ZDY2MTkzOTFhNTMyNzQwYjYx
YjkzNTY0YjYxOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zp
bHRlck9wZXJhdGlvbnNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0ZpbHRlck9wZXJhdGlvbnNUZXN0LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPGd0
ZXN0L2d0ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oPgogI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJGaWx0ZXJPcGVyYXRpb25zLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAg
LTg5LDUgKzkwLDU4IEBAIFRFU1QoV2ViRmlsdGVyT3BlcmF0aW9uc1Rlc3QsIGdldE91dHNldHNE
cm9wU2hhZG93KQogICAgIEVYUEVDVF9FUSg1NCwgbGVmdCk7CiB9CiAKKyNkZWZpbmUgRkxBVFRF
Tl9DT01QQVJFXzEoVHlwZSwgYTEsIGEyKSBcCisgICAgeyBcCisgICAgICAgIEVYUEVDVF9ORShh
MSwgYTIpOyBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcCA9IFdlYkZpbHRlck9wZXJh
dGlvbjo6VHlwZShhMSk7IFwKKyAgICAgICAgV2ViRGF0YSBkYXRhID0gb3AuZmxhdHRlbigpOyBc
CisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBXZWJGaWx0ZXJPcGVyYXRpb246OlR5
cGUoYTIpOyBcCisgICAgICAgIG9wMi51bmZsYXR0ZW4oZGF0YSk7IFwKKyAgICAgICAgRVhQRUNU
X0VRKDAsIG1lbWNtcCgmb3AsICZvcDIsIHNpemVvZihXZWJGaWx0ZXJPcGVyYXRpb24pKSk7IFwK
KyAgICB9CisKKyNkZWZpbmUgRkxBVFRFTl9DT01QQVJFXzIoVHlwZSwgYTEsIGEyLCBiMSwgYjIp
IFwKKyAgICB7IFwKKyAgICAgICAgRVhQRUNUX05FKGExLCBhMik7IFwKKyAgICAgICAgRVhQRUNU
X05FKGIxLCBiMik7IFwKKyAgICAgICAgV2ViRmlsdGVyT3BlcmF0aW9uIG9wID0gV2ViRmlsdGVy
T3BlcmF0aW9uOjpUeXBlKGExLCBiMSk7IFwKKyAgICAgICAgV2ViRGF0YSBkYXRhID0gb3AuZmxh
dHRlbigpOyBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBXZWJGaWx0ZXJPcGVy
YXRpb246OlR5cGUoYTIsIGIyKTsgXAorICAgICAgICBvcDIudW5mbGF0dGVuKGRhdGEpOyBcCisg
ICAgICAgIEVYUEVDVF9FUSgwLCBtZW1jbXAoJm9wLCAmb3AyLCBzaXplb2YoV2ViRmlsdGVyT3Bl
cmF0aW9uKSkpOyBcCisgICAgfQorCisjZGVmaW5lIEZMQVRURU5fQ09NUEFSRV8zKFR5cGUsIGEx
LCBhMiwgYjEsIGIyLCBjMSwgYzIpIFwKKyAgICB7IFwKKyAgICAgICAgRVhQRUNUX05FKGExLCBh
Mik7IFwKKyAgICAgICAgRVhQRUNUX05FKGIxLCBiMik7IFwKKyAgICAgICAgRVhQRUNUX05FKGMx
LCBjMik7IFwKKyAgICAgICAgV2ViRmlsdGVyT3BlcmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0
aW9uOjpUeXBlKGExLCBiMSwgYzEpOyBcCisgICAgICAgIFdlYkRhdGEgZGF0YSA9IG9wLmZsYXR0
ZW4oKTsgXAorICAgICAgICBXZWJGaWx0ZXJPcGVyYXRpb24gb3AyID0gV2ViRmlsdGVyT3BlcmF0
aW9uOjpUeXBlKGEyLCBiMiwgYzIpOyBcCisgICAgICAgIG9wMi51bmZsYXR0ZW4oZGF0YSk7IFwK
KyAgICAgICAgRVhQRUNUX0VRKDAsIG1lbWNtcCgmb3AsICZvcDIsIHNpemVvZihXZWJGaWx0ZXJP
cGVyYXRpb24pKSk7IFwKKyAgICB9CisKK1RFU1QoV2ViRmlsdGVyT3BlcmF0aW9uc1Rlc3QsIGZs
YXR0ZW5BbmRVbmZsYXR0ZW4pCit7CisgICAgRkxBVFRFTl9DT01QQVJFXzEoY3JlYXRlR3JheXNj
YWxlRmlsdGVyLCAwLjYsIDAuMik7CisgICAgRkxBVFRFTl9DT01QQVJFXzEoY3JlYXRlU2VwaWFG
aWx0ZXIsIDAuNiwgMC4yKTsKKyAgICBGTEFUVEVOX0NPTVBBUkVfMShjcmVhdGVTYXR1cmF0ZUZp
bHRlciwgMC42LCAwLjIpOworICAgIEZMQVRURU5fQ09NUEFSRV8xKGNyZWF0ZUh1ZVJvdGF0ZUZp
bHRlciwgMC42LCAwLjIpOworICAgIEZMQVRURU5fQ09NUEFSRV8xKGNyZWF0ZUludmVydEZpbHRl
ciwgMC42LCAwLjIpOworICAgIEZMQVRURU5fQ09NUEFSRV8xKGNyZWF0ZUJyaWdodG5lc3NGaWx0
ZXIsIDAuNiwgMC4yKTsKKyAgICBGTEFUVEVOX0NPTVBBUkVfMShjcmVhdGVDb250cmFzdEZpbHRl
ciwgMC42LCAwLjIpOworICAgIEZMQVRURU5fQ09NUEFSRV8xKGNyZWF0ZU9wYWNpdHlGaWx0ZXIs
IDAuNiwgMC4yKTsKKyAgICBGTEFUVEVOX0NPTVBBUkVfMShjcmVhdGVCbHVyRmlsdGVyLCAwLjYs
IDAuMik7CisgICAgRkxBVFRFTl9DT01QQVJFXzMoY3JlYXRlRHJvcFNoYWRvd0ZpbHRlciwgV2Vi
UG9pbnQoMywgNCksIFdlYlBvaW50KDUsIDYpLCAwLjQsIDAuMSwgMHhmZmZmZmYwMCwgMHhlMGUw
ZTBlMCk7CisKKyAgICBTa1NjYWxhciBtYXRyaXgxWzIwXSA9IHsgMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTkgfTsKKyAgICBT
a1NjYWxhciBtYXRyaXgyWzIwXSA9IHsgLTEsIC0yLCAtMywgLTQsIC01LCAtNiwgLTcsIC04LCAt
OSwgOTksIDk4LCA5NywgOTYsIDk2LCA5NSwgOTQsIDkzLCA5MiwgOTEsIDkwIH07CisgICAgRkxB
VFRFTl9DT01QQVJFXzEoY3JlYXRlQ29sb3JNYXRyaXhGaWx0ZXIsIG1hdHJpeDEsIG1hdHJpeDIp
OworCisgICAgRkxBVFRFTl9DT01QQVJFXzIoY3JlYXRlWm9vbUZpbHRlciwgV2ViUmVjdCgxLCAy
LCAzLCA0KSwgV2ViUmVjdCgyMCwgMTksIDE4LCAxNyksIDU1LCAzMik7Cit9CisKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165016</attachid>
            <date>2012-09-20 17:07:26 -0700</date>
            <delta_ts>2012-09-20 17:25:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97147-20120920200651.patch</filename>
            <type>text/plain</type>
            <size>10094</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxYTRlMTAxZTAzMDZm
Y2Y3Y2U2MWQyNDI1MTY5ZGNkMTdhYTFiZjc2Li40MjBjMjFkYTUwYWM0NDBiYzZkNWZkNGM5M2Y2
NTMwYWMwZTIxMmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wOS0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIHRvIFdlYkZpbHRlck9wZXJhdGlvbiBmb3IgSVBDIHBpY2tsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIG1ldGhvZHMg
YWxsb3cgdXMgdG8gcmVzdG9yZSBhIFdlYkZpbHRlck9wZXJhdGlvbiBmcm9tIGEgYmxvYgorICAg
ICAgICBvZiBvcGFxdWUgZGF0YS4gVGhlIHBpY2tsaW5nIGNvZGUgbmVlZHMgdG8gYmUgYWJsZSB0
byBjcmVhdGUgYW4KKyAgICAgICAgZW1wdHkgb2JqZWN0IGFuZCB0aGVuIGZpbGwgaW4gdGhlIHBp
ZWNlcywgc28gdGhlc2Ugc2V0dGVycyBhbGxvdyBpdAorICAgICAgICB0byBkbyBzby4KKworICAg
ICAgICBUZXN0OiBXZWJGaWx0ZXJPcGVyYXRpb25zVGVzdC5zYXZlQW5kUmVzdG9yZQorCisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmFtb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6ZHJvcFNoYWRvd09mZnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6bWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0
aW9uOjp6b29tUmVjdCk6CisgICAgICAgIChXZWJGaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVtcHR5RmlsdGVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRBbW91bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWx0
ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dPZmZzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWx0ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dDb2xvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbHRlck9wZXJhdGlvbjo6c2V0TWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVy
T3BlcmF0aW9uOjpzZXRab29tUmVjdCk6CisgICAgICAgICogY2hyb21pdW0vc3JjL1dlYkZpbHRl
ck9wZXJhdGlvbi5jcHA6CisKIDIwMTItMDktMTggIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENocm9taXVtOiBTY3JvbGxiYXIgd2l0aCB0aWNrbWFya3Mg
ZG9lc24ndCByZXNwb25kIHRvIGNsaWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBi
ODM5ZDk5Zjk1MmM3N2I5YTIzOTg4MmFmMmJjMDc5ZmUyMTY1ODk5Li40NWRlYzQ2Zjk1NGI4YmI3
NWJiN2ZkNzg1Y2FhMzA4MWI3NjY4Yzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTA5LTIwICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHNldHRlcnMgdG8gV2ViRmlsdGVyT3BlcmF0
aW9uIGZvciBJUEMgcGlja2xpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB0ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHA6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpURVNUKToKKwogMjAxMi0wOS0xOSAgQWxwaGEgTGFt
ICA8aGNsYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZC4g
QnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJGaWx0ZXJPcGVyYXRpb24uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
RmlsdGVyT3BlcmF0aW9uLmgKaW5kZXggOWYxNTUxOWExMDkwYmNhYjE0Mjg4ODJjZjhjYTAwOWUx
Y2Y0ZTRmYi4uMzA2NTQ3MTU0OTIxNjM5ODY1NThmOGUyOWFiYjU0MTg3N2I0NTc4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJGaWx0ZXJPcGVyYXRpb24u
aAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlv
bi5oCkBAIC01NSwxMiArNTUsMjIgQEAgcHVibGljOgogCiAgICAgZmxvYXQgYW1vdW50KCkgY29u
c3QKICAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlQobV90eXBlID09IEZpbHRlclR5cGVHcmF5
c2NhbGUKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZVNlcGlhCisg
ICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVTYXR1cmF0ZQorICAgICAg
ICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlSHVlUm90YXRlCisgICAgICAgICAg
ICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVJbnZlcnQKKyAgICAgICAgICAgICAgICAg
ICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUJyaWdodG5lc3MKKyAgICAgICAgICAgICAgICAgICB8
fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUNvbnRyYXN0CisgICAgICAgICAgICAgICAgICAgfHwgbV90
eXBlID09IEZpbHRlclR5cGVPcGFjaXR5CisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09
IEZpbHRlclR5cGVCbHVyCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5
cGVEcm9wU2hhZG93KTsKICAgICAgICAgcmV0dXJuIG1fYW1vdW50OwogICAgIH0KICAgICBXZWJQ
b2ludCBkcm9wU2hhZG93T2Zmc2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NF
UlQobV90eXBlID09IEZpbHRlclR5cGVEcm9wU2hhZG93KTsKLSAgICAgICAgcmV0dXJuIFdlYlBv
aW50KG1fZHJvcFNoYWRvd09mZnNldCk7CisgICAgICAgIHJldHVybiBtX2Ryb3BTaGFkb3dPZmZz
ZXQ7CiAgICAgfQogICAgIFdlYkNvbG9yIGRyb3BTaGFkb3dDb2xvcigpIGNvbnN0CiAgICAgewpA
QCAtNjksMTYgKzc5LDE2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgY29uc3QgU2tTY2FsYXIqIG1h
dHJpeCgpIGNvbnN0CiAgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0
ZXJUeXBlQ29sb3JNYXRyaXgpOwogICAgICAgICByZXR1cm4gbV9tYXRyaXg7CiAgICAgfQogCiAg
ICAgV2ViUmVjdCB6b29tUmVjdCgpIGNvbnN0CiAgICAgewogICAgICAgICBXRUJLSVRfQVNTRVJU
KG1fdHlwZSA9PSBGaWx0ZXJUeXBlWm9vbSk7Ci0gICAgICAgIHJldHVybiBXZWJSZWN0KG1fem9v
bVJlY3QpOworICAgICAgICByZXR1cm4gbV96b29tUmVjdDsKICAgICB9CiAKLSNkZWZpbmUgV0VC
S0lUX0hBU19ORVdfV0VCRklMVEVST1BFUkFUSU9OX0FQSSAxCiAgICAgc3RhdGljIFdlYkZpbHRl
ck9wZXJhdGlvbiBjcmVhdGVHcmF5c2NhbGVGaWx0ZXIoZmxvYXQgYW1vdW50KSB7IHJldHVybiBX
ZWJGaWx0ZXJPcGVyYXRpb24oRmlsdGVyVHlwZUdyYXlzY2FsZSwgYW1vdW50KTsgfQogICAgIHN0
YXRpYyBXZWJGaWx0ZXJPcGVyYXRpb24gY3JlYXRlU2VwaWFGaWx0ZXIoZmxvYXQgYW1vdW50KSB7
IHJldHVybiBXZWJGaWx0ZXJPcGVyYXRpb24oRmlsdGVyVHlwZVNlcGlhLCBhbW91bnQpOyB9CiAg
ICAgc3RhdGljIFdlYkZpbHRlck9wZXJhdGlvbiBjcmVhdGVTYXR1cmF0ZUZpbHRlcihmbG9hdCBh
bW91bnQpIHsgcmV0dXJuIFdlYkZpbHRlck9wZXJhdGlvbihGaWx0ZXJUeXBlU2F0dXJhdGUsIGFt
b3VudCk7IH0KQEAgLTk0LDYgKzEwNCw0NSBAQCBwdWJsaWM6CiAKICAgICBib29sIGVxdWFscyhj
b25zdCBXZWJGaWx0ZXJPcGVyYXRpb24mIG90aGVyKSBjb25zdDsKIAorICAgIC8vIE1ldGhvZHMg
Zm9yIHJlc3RvcmluZyBhIFdlYkZpbHRlck9wZXJhdGlvbi4KKyAgICBzdGF0aWMgV2ViRmlsdGVy
T3BlcmF0aW9uIGNyZWF0ZUVtcHR5RmlsdGVyKCkgeyByZXR1cm4gV2ViRmlsdGVyT3BlcmF0aW9u
KEZpbHRlclR5cGVHcmF5c2NhbGUsIDAuMCk7IH0KKyAgICB2b2lkIHNldFR5cGUoRmlsdGVyVHlw
ZSB0eXBlKSB7IG1fdHlwZSA9IHR5cGU7IH0KKyAgICB2b2lkIHNldEFtb3VudChmbG9hdCBhbW91
bnQpCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlR3Jh
eXNjYWxlCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVTZXBpYQor
ICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlU2F0dXJhdGUKKyAgICAg
ICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUh1ZVJvdGF0ZQorICAgICAgICAg
ICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlSW52ZXJ0CisgICAgICAgICAgICAgICAg
ICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVCcmlnaHRuZXNzCisgICAgICAgICAgICAgICAgICAg
fHwgbV90eXBlID09IEZpbHRlclR5cGVDb250cmFzdAorICAgICAgICAgICAgICAgICAgIHx8IG1f
dHlwZSA9PSBGaWx0ZXJUeXBlT3BhY2l0eQorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9
PSBGaWx0ZXJUeXBlQmx1cgorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJU
eXBlRHJvcFNoYWRvdyk7CisgICAgICAgIG1fYW1vdW50ID0gYW1vdW50OworICAgIH0KKyAgICB2
b2lkIHNldERyb3BTaGFkb3dPZmZzZXQoV2ViUG9pbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAg
V0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZURyb3BTaGFkb3cpOworICAgICAgICBt
X2Ryb3BTaGFkb3dPZmZzZXQgPSBvZmZzZXQ7CisgICAgfQorICAgIHZvaWQgc2V0RHJvcFNoYWRv
d0NvbG9yKFdlYkNvbG9yIGNvbG9yKQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVChtX3R5
cGUgPT0gRmlsdGVyVHlwZURyb3BTaGFkb3cpOworICAgICAgICBtX2Ryb3BTaGFkb3dDb2xvciA9
IGNvbG9yOworICAgIH0KKyAgICB2b2lkIHNldE1hdHJpeChjb25zdCBTa1NjYWxhciBtYXRyaXhb
MjBdKQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZUNv
bG9yTWF0cml4KTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDIwOyArK2kpCisg
ICAgICAgICAgICBtX21hdHJpeFtpXSA9IG1hdHJpeFtpXTsKKyAgICB9CisgICAgdm9pZCBzZXRa
b29tUmVjdChXZWJSZWN0IHJlY3QpCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlw
ZSA9PSBGaWx0ZXJUeXBlWm9vbSk7CisgICAgICAgIG1fem9vbVJlY3QgPSByZWN0OworICAgIH0K
KwogcHJpdmF0ZToKICAgICBGaWx0ZXJUeXBlIG1fdHlwZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ZpbHRlck9wZXJhdGlvbnNUZXN0LmNwcAppbmRleCA4YTNj
NWQ4YTE2MDBhYTlkYjk4OTE5YTc2MTU1MzNmODM3OGI1OTY4Li44MzRkYmU3YjAzMjAxNjVhNjA1
OWI0ZjZiNzgzNThlODZmYjAyMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0ZpbHRlck9wZXJhdGlvbnNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0ZpbHRlck9wZXJhdGlvbnNUZXN0LmNwcApAQCAtODksNSArODksMTA0IEBAIFRF
U1QoV2ViRmlsdGVyT3BlcmF0aW9uc1Rlc3QsIGdldE91dHNldHNEcm9wU2hhZG93KQogICAgIEVY
UEVDVF9FUSg1NCwgbGVmdCk7CiB9CiAKKyNkZWZpbmUgU0FWRV9SRVNUT1JFX0FNT1VOVChUeXBl
LCBhKSBcCisgICAgeyBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcCA9IFdlYkZpbHRl
ck9wZXJhdGlvbjo6Y3JlYXRlIyNUeXBlIyNGaWx0ZXIoYSk7IFwKKyAgICAgICAgRVhQRUNUX0VR
KFdlYkZpbHRlck9wZXJhdGlvbjo6RmlsdGVyVHlwZSMjVHlwZSwgb3AudHlwZSgpKTsgXAorICAg
ICAgICBFWFBFQ1RfRVEoYSwgb3AuYW1vdW50KCkpOyBcCisgICAgICAgIFwKKyAgICAgICAgV2Vi
RmlsdGVyT3BlcmF0aW9uIG9wMiA9IFdlYkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlRW1wdHlGaWx0
ZXIoKTsgXAorICAgICAgICBFWFBFQ1RfTkUoYSwgb3AyLmFtb3VudCgpKTsgXAorICAgICAgICBc
CisgICAgICAgIG9wMi5zZXRUeXBlKFdlYkZpbHRlck9wZXJhdGlvbjo6RmlsdGVyVHlwZSMjVHlw
ZSk7IFwKKyAgICAgICAgb3AyLnNldEFtb3VudChhKTsgXAorICAgICAgICBcCisgICAgICAgIEVY
UEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUsIG9wMi50eXBlKCkp
OyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBvcDIuYW1vdW50KCkpOyBcCisgICAgfQorCisjZGVm
aW5lIFNBVkVfUkVTVE9SRV9PRkZTRVRfQU1PVU5UX0NPTE9SKFR5cGUsIGEsIGIsIGMpIFwKKyAg
ICB7IFwKKyAgICAgICAgV2ViRmlsdGVyT3BlcmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0aW9u
OjpjcmVhdGUjI1R5cGUjI0ZpbHRlcihhLCBiLCBjKTsgXAorICAgICAgICBFWFBFQ1RfRVEoV2Vi
RmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlLCBvcC50eXBlKCkpOyBcCisgICAgICAg
IEVYUEVDVF9FUShhLCBvcC5kcm9wU2hhZG93T2Zmc2V0KCkpOyBcCisgICAgICAgIEVYUEVDVF9F
UShiLCBvcC5hbW91bnQoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGMsIG9wLmRyb3BTaGFkb3dD
b2xvcigpKTsgXAorICAgICAgICBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBX
ZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVtcHR5RmlsdGVyKCk7IFwKKyAgICAgICAgRVhQRUNU
X05FKGEsIG9wMi5kcm9wU2hhZG93T2Zmc2V0KCkpOyBcCisgICAgICAgIEVYUEVDVF9ORShiLCBv
cDIuYW1vdW50KCkpOyBcCisgICAgICAgIEVYUEVDVF9ORShjLCBvcDIuZHJvcFNoYWRvd0NvbG9y
KCkpOyBcCisgICAgICAgIFwKKyAgICAgICAgb3AyLnNldFR5cGUoV2ViRmlsdGVyT3BlcmF0aW9u
OjpGaWx0ZXJUeXBlIyNUeXBlKTsgXAorICAgICAgICBvcDIuc2V0RHJvcFNoYWRvd09mZnNldChh
KTsgXAorICAgICAgICBvcDIuc2V0QW1vdW50KGIpOyBcCisgICAgICAgIG9wMi5zZXREcm9wU2hh
ZG93Q29sb3IoYyk7IFwKKyAgICAgICAgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmlsdGVyT3Bl
cmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlLCBvcDIudHlwZSgpKTsgXAorICAgICAgICBFWFBFQ1Rf
RVEoYSwgb3AyLmRyb3BTaGFkb3dPZmZzZXQoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGIsIG9w
Mi5hbW91bnQoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGMsIG9wMi5kcm9wU2hhZG93Q29sb3Io
KSk7IFwKKyAgICB9CisKKyNkZWZpbmUgU0FWRV9SRVNUT1JFX01BVFJJWChUeXBlLCBhKSBcCisg
ICAgeyBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcCA9IFdlYkZpbHRlck9wZXJhdGlv
bjo6Y3JlYXRlIyNUeXBlIyNGaWx0ZXIoYSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKFdlYkZpbHRl
ck9wZXJhdGlvbjo6RmlsdGVyVHlwZSMjVHlwZSwgb3AudHlwZSgpKTsgICAgIFwKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDIwOyArK2kpIFwKKyAgICAgICAgICAgIEVYUEVDVF9F
UShhW2ldLCBvcC5tYXRyaXgoKVtpXSk7IFwKKyAgICAgICAgXAorICAgICAgICBXZWJGaWx0ZXJP
cGVyYXRpb24gb3AyID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGVFbXB0eUZpbHRlcigpOyBc
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyMDsgKytpKSBcCisgICAgICAgICAg
ICBFWFBFQ1RfTkUoYVtpXSwgb3AyLm1hdHJpeCgpW2ldKTsgXAorICAgICAgICBcCisgICAgICAg
IG9wMi5zZXRUeXBlKFdlYkZpbHRlck9wZXJhdGlvbjo6RmlsdGVyVHlwZSMjVHlwZSk7IFwKKyAg
ICAgICAgb3AyLnNldE1hdHJpeChhKTsgXAorICAgICAgICBcCisgICAgICAgIEVYUEVDVF9FUShX
ZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUsIG9wMi50eXBlKCkpOyBcCisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyMDsgKytpKSBcCisgICAgICAgICAgICBFWFBF
Q1RfRVEoYVtpXSwgb3AubWF0cml4KClbaV0pOyBcCisgICAgfQorCisjZGVmaW5lIFNBVkVfUkVT
VE9SRV9aT09NUkVDVF9BTU9VTlQoVHlwZSwgYSwgYikgXAorICAgIHsgXAorICAgICAgICBXZWJG
aWx0ZXJPcGVyYXRpb24gb3AgPSBXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSMjVHlwZSMjRmls
dGVyKGEsIGIpOyBcCisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRl
clR5cGUjI1R5cGUsIG9wLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGEsIG9wLnpvb21S
ZWN0KCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShiLCBvcC5hbW91bnQoKSk7IFwKKyAgICAgICAg
XAorICAgICAgICBXZWJGaWx0ZXJPcGVyYXRpb24gb3AyID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpj
cmVhdGVFbXB0eUZpbHRlcigpOyBcCisgICAgICAgIEVYUEVDVF9ORShhLCBvcDIuem9vbVJlY3Qo
KSk7IFwKKyAgICAgICAgRVhQRUNUX05FKGIsIG9wMi5hbW91bnQoKSk7IFwKKyAgICAgICAgXAor
ICAgICAgICBvcDIuc2V0VHlwZShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUp
OyBcCisgICAgICAgIG9wMi5zZXRab29tUmVjdChhKTsgXAorICAgICAgICBvcDIuc2V0QW1vdW50
KGIpOyBcCisgICAgICAgIFwKKyAgICAgICAgRVhQRUNUX0VRKFdlYkZpbHRlck9wZXJhdGlvbjo6
RmlsdGVyVHlwZSMjVHlwZSwgb3AyLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGEsIG9w
Mi56b29tUmVjdCgpKTsgXAorICAgICAgICBFWFBFQ1RfRVEoYiwgb3AyLmFtb3VudCgpKTsgXAor
ICAgIH0KKworCitURVNUKFdlYkZpbHRlck9wZXJhdGlvbnNUZXN0LCBzYXZlQW5kUmVzdG9yZSkK
K3sKKyAgICBTQVZFX1JFU1RPUkVfQU1PVU5UKEdyYXlzY2FsZSwgMC42Zik7CisgICAgU0FWRV9S
RVNUT1JFX0FNT1VOVChTZXBpYSwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FNT1VOVChTYXR1
cmF0ZSwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FNT1VOVChIdWVSb3RhdGUsIDAuNmYpOwor
ICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoSW52ZXJ0LCAwLjZmKTsKKyAgICBTQVZFX1JFU1RPUkVf
QU1PVU5UKEJyaWdodG5lc3MsIDAuNmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoQ29udHJh
c3QsIDAuNmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoT3BhY2l0eSwgMC42Zik7CisgICAg
U0FWRV9SRVNUT1JFX0FNT1VOVChCbHVyLCAwLjZmKTsKKyAgICBTQVZFX1JFU1RPUkVfT0ZGU0VU
X0FNT1VOVF9DT0xPUihEcm9wU2hhZG93LCBXZWJQb2ludCgzLCA0KSwgMC40ZiwgMHhmZmZmZmYw
MCk7CisKKyAgICBTa1NjYWxhciBtYXRyaXhbMjBdID0geyAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSB9OworICAgIFNBVkVf
UkVTVE9SRV9NQVRSSVgoQ29sb3JNYXRyaXgsIG1hdHJpeCk7CisKKyAgICBTQVZFX1JFU1RPUkVf
Wk9PTVJFQ1RfQU1PVU5UKFpvb20sIFdlYlJlY3QoMjAsIDE5LCAxOCwgMTcpLCAzMik7Cit9CisK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165019</attachid>
            <date>2012-09-20 17:25:23 -0700</date>
            <delta_ts>2012-09-24 08:12:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97147-20120920202444.patch</filename>
            <type>text/plain</type>
            <size>10234</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAxYTRlMTAxZTAzMDZm
Y2Y3Y2U2MWQyNDI1MTY5ZGNkMTdhYTFiZjc2Li40MjBjMjFkYTUwYWM0NDBiYzZkNWZkNGM5M2Y2
NTMwYWMwZTIxMmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wOS0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIHRvIFdlYkZpbHRlck9wZXJhdGlvbiBmb3IgSVBDIHBpY2tsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIG1ldGhvZHMg
YWxsb3cgdXMgdG8gcmVzdG9yZSBhIFdlYkZpbHRlck9wZXJhdGlvbiBmcm9tIGEgYmxvYgorICAg
ICAgICBvZiBvcGFxdWUgZGF0YS4gVGhlIHBpY2tsaW5nIGNvZGUgbmVlZHMgdG8gYmUgYWJsZSB0
byBjcmVhdGUgYW4KKyAgICAgICAgZW1wdHkgb2JqZWN0IGFuZCB0aGVuIGZpbGwgaW4gdGhlIHBp
ZWNlcywgc28gdGhlc2Ugc2V0dGVycyBhbGxvdyBpdAorICAgICAgICB0byBkbyBzby4KKworICAg
ICAgICBUZXN0OiBXZWJGaWx0ZXJPcGVyYXRpb25zVGVzdC5zYXZlQW5kUmVzdG9yZQorCisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmFtb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6ZHJvcFNoYWRvd09mZnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6bWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0
aW9uOjp6b29tUmVjdCk6CisgICAgICAgIChXZWJGaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVtcHR5RmlsdGVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRBbW91bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWx0
ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dPZmZzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWx0ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dDb2xvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbHRlck9wZXJhdGlvbjo6c2V0TWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVy
T3BlcmF0aW9uOjpzZXRab29tUmVjdCk6CisgICAgICAgICogY2hyb21pdW0vc3JjL1dlYkZpbHRl
ck9wZXJhdGlvbi5jcHA6CisKIDIwMTItMDktMTggIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENocm9taXVtOiBTY3JvbGxiYXIgd2l0aCB0aWNrbWFya3Mg
ZG9lc24ndCByZXNwb25kIHRvIGNsaWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBi
ODM5ZDk5Zjk1MmM3N2I5YTIzOTg4MmFmMmJjMDc5ZmUyMTY1ODk5Li40NWRlYzQ2Zjk1NGI4YmI3
NWJiN2ZkNzg1Y2FhMzA4MWI3NjY4Yzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTA5LTIwICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHNldHRlcnMgdG8gV2ViRmlsdGVyT3BlcmF0
aW9uIGZvciBJUEMgcGlja2xpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB0ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHA6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpURVNUKToKKwogMjAxMi0wOS0xOSAgQWxwaGEgTGFt
ICA8aGNsYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdlZC4g
QnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJGaWx0ZXJPcGVyYXRpb24uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
RmlsdGVyT3BlcmF0aW9uLmgKaW5kZXggOWYxNTUxOWExMDkwYmNhYjE0Mjg4ODJjZjhjYTAwOWUx
Y2Y0ZTRmYi4uMzYyOGY0ODdiNjhmYjNhMjNkYTNmNTU0NmI0ZTY2NTE5NDFlMTk5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJGaWx0ZXJPcGVyYXRpb24u
aAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlv
bi5oCkBAIC01NSwxMiArNTUsMjMgQEAgcHVibGljOgogCiAgICAgZmxvYXQgYW1vdW50KCkgY29u
c3QKICAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlQobV90eXBlID09IEZpbHRlclR5cGVHcmF5
c2NhbGUKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZVNlcGlhCisg
ICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVTYXR1cmF0ZQorICAgICAg
ICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlSHVlUm90YXRlCisgICAgICAgICAg
ICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVJbnZlcnQKKyAgICAgICAgICAgICAgICAg
ICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUJyaWdodG5lc3MKKyAgICAgICAgICAgICAgICAgICB8
fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUNvbnRyYXN0CisgICAgICAgICAgICAgICAgICAgfHwgbV90
eXBlID09IEZpbHRlclR5cGVPcGFjaXR5CisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09
IEZpbHRlclR5cGVCbHVyCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5
cGVEcm9wU2hhZG93CisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVa
b29tKTsKICAgICAgICAgcmV0dXJuIG1fYW1vdW50OwogICAgIH0KICAgICBXZWJQb2ludCBkcm9w
U2hhZG93T2Zmc2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlQobV90eXBl
ID09IEZpbHRlclR5cGVEcm9wU2hhZG93KTsKLSAgICAgICAgcmV0dXJuIFdlYlBvaW50KG1fZHJv
cFNoYWRvd09mZnNldCk7CisgICAgICAgIHJldHVybiBtX2Ryb3BTaGFkb3dPZmZzZXQ7CiAgICAg
fQogICAgIFdlYkNvbG9yIGRyb3BTaGFkb3dDb2xvcigpIGNvbnN0CiAgICAgewpAQCAtNjksMTYg
KzgwLDE2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgY29uc3QgU2tTY2FsYXIqIG1hdHJpeCgpIGNv
bnN0CiAgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlQ29s
b3JNYXRyaXgpOwogICAgICAgICByZXR1cm4gbV9tYXRyaXg7CiAgICAgfQogCiAgICAgV2ViUmVj
dCB6b29tUmVjdCgpIGNvbnN0CiAgICAgewogICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9
PSBGaWx0ZXJUeXBlWm9vbSk7Ci0gICAgICAgIHJldHVybiBXZWJSZWN0KG1fem9vbVJlY3QpOwor
ICAgICAgICByZXR1cm4gbV96b29tUmVjdDsKICAgICB9CiAKLSNkZWZpbmUgV0VCS0lUX0hBU19O
RVdfV0VCRklMVEVST1BFUkFUSU9OX0FQSSAxCiAgICAgc3RhdGljIFdlYkZpbHRlck9wZXJhdGlv
biBjcmVhdGVHcmF5c2NhbGVGaWx0ZXIoZmxvYXQgYW1vdW50KSB7IHJldHVybiBXZWJGaWx0ZXJP
cGVyYXRpb24oRmlsdGVyVHlwZUdyYXlzY2FsZSwgYW1vdW50KTsgfQogICAgIHN0YXRpYyBXZWJG
aWx0ZXJPcGVyYXRpb24gY3JlYXRlU2VwaWFGaWx0ZXIoZmxvYXQgYW1vdW50KSB7IHJldHVybiBX
ZWJGaWx0ZXJPcGVyYXRpb24oRmlsdGVyVHlwZVNlcGlhLCBhbW91bnQpOyB9CiAgICAgc3RhdGlj
IFdlYkZpbHRlck9wZXJhdGlvbiBjcmVhdGVTYXR1cmF0ZUZpbHRlcihmbG9hdCBhbW91bnQpIHsg
cmV0dXJuIFdlYkZpbHRlck9wZXJhdGlvbihGaWx0ZXJUeXBlU2F0dXJhdGUsIGFtb3VudCk7IH0K
QEAgLTk0LDYgKzEwNSw0NiBAQCBwdWJsaWM6CiAKICAgICBib29sIGVxdWFscyhjb25zdCBXZWJG
aWx0ZXJPcGVyYXRpb24mIG90aGVyKSBjb25zdDsKIAorICAgIC8vIE1ldGhvZHMgZm9yIHJlc3Rv
cmluZyBhIFdlYkZpbHRlck9wZXJhdGlvbi4KKyAgICBzdGF0aWMgV2ViRmlsdGVyT3BlcmF0aW9u
IGNyZWF0ZUVtcHR5RmlsdGVyKCkgeyByZXR1cm4gV2ViRmlsdGVyT3BlcmF0aW9uKEZpbHRlclR5
cGVHcmF5c2NhbGUsIDAuMCk7IH0KKyAgICB2b2lkIHNldFR5cGUoRmlsdGVyVHlwZSB0eXBlKSB7
IG1fdHlwZSA9IHR5cGU7IH0KKyAgICB2b2lkIHNldEFtb3VudChmbG9hdCBhbW91bnQpCisgICAg
eworICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlR3JheXNjYWxlCisg
ICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVTZXBpYQorICAgICAgICAg
ICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlU2F0dXJhdGUKKyAgICAgICAgICAgICAg
ICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUh1ZVJvdGF0ZQorICAgICAgICAgICAgICAgICAg
IHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlSW52ZXJ0CisgICAgICAgICAgICAgICAgICAgfHwgbV90
eXBlID09IEZpbHRlclR5cGVCcmlnaHRuZXNzCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBl
ID09IEZpbHRlclR5cGVDb250cmFzdAorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBG
aWx0ZXJUeXBlT3BhY2l0eQorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJU
eXBlQmx1cgorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlRHJvcFNo
YWRvdworICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlWm9vbSk7Cisg
ICAgICAgIG1fYW1vdW50ID0gYW1vdW50OworICAgIH0KKyAgICB2b2lkIHNldERyb3BTaGFkb3dP
ZmZzZXQoV2ViUG9pbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVChtX3R5
cGUgPT0gRmlsdGVyVHlwZURyb3BTaGFkb3cpOworICAgICAgICBtX2Ryb3BTaGFkb3dPZmZzZXQg
PSBvZmZzZXQ7CisgICAgfQorICAgIHZvaWQgc2V0RHJvcFNoYWRvd0NvbG9yKFdlYkNvbG9yIGNv
bG9yKQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZURy
b3BTaGFkb3cpOworICAgICAgICBtX2Ryb3BTaGFkb3dDb2xvciA9IGNvbG9yOworICAgIH0KKyAg
ICB2b2lkIHNldE1hdHJpeChjb25zdCBTa1NjYWxhciBtYXRyaXhbMjBdKQorICAgIHsKKyAgICAg
ICAgV0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZUNvbG9yTWF0cml4KTsKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDIwOyArK2kpCisgICAgICAgICAgICBtX21hdHJp
eFtpXSA9IG1hdHJpeFtpXTsKKyAgICB9CisgICAgdm9pZCBzZXRab29tUmVjdChXZWJSZWN0IHJl
Y3QpCisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlWm9v
bSk7CisgICAgICAgIG1fem9vbVJlY3QgPSByZWN0OworICAgIH0KKwogcHJpdmF0ZToKICAgICBG
aWx0ZXJUeXBlIG1fdHlwZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0ZpbHRlck9wZXJhdGlvbnNUZXN0LmNwcAppbmRleCA4YTNjNWQ4YTE2MDBhYTlkYjk4OTE5
YTc2MTU1MzNmODM3OGI1OTY4Li45ZjlhNjQ3MGMxYzc1NjRiZjQ3N2I2ZjEwZGE1ODFmMzFkN2U2
MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ZpbHRlck9wZXJh
dGlvbnNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ZpbHRlck9w
ZXJhdGlvbnNUZXN0LmNwcApAQCAtODksNSArODksMTA4IEBAIFRFU1QoV2ViRmlsdGVyT3BlcmF0
aW9uc1Rlc3QsIGdldE91dHNldHNEcm9wU2hhZG93KQogICAgIEVYUEVDVF9FUSg1NCwgbGVmdCk7
CiB9CiAKKyNkZWZpbmUgU0FWRV9SRVNUT1JFX0FNT1VOVChUeXBlLCBhKSBcCisgICAgeyBcCisg
ICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcCA9IFdlYkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRl
IyNUeXBlIyNGaWx0ZXIoYSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKFdlYkZpbHRlck9wZXJhdGlv
bjo6RmlsdGVyVHlwZSMjVHlwZSwgb3AudHlwZSgpKTsgXAorICAgICAgICBFWFBFQ1RfRVEoYSwg
b3AuYW1vdW50KCkpOyBcCisgICAgICAgIFwKKyAgICAgICAgV2ViRmlsdGVyT3BlcmF0aW9uIG9w
MiA9IFdlYkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlRW1wdHlGaWx0ZXIoKTsgXAorICAgICAgICBv
cDIuc2V0VHlwZShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUpOyBcCisgICAg
ICAgIFwKKyAgICAgICAgRVhQRUNUX05FKGEsIG9wMi5hbW91bnQoKSk7IFwKKyAgICAgICAgXAor
ICAgICAgICBvcDIuc2V0QW1vdW50KGEpOyBcCisgICAgICAgIFwKKyAgICAgICAgRVhQRUNUX0VR
KFdlYkZpbHRlck9wZXJhdGlvbjo6RmlsdGVyVHlwZSMjVHlwZSwgb3AyLnR5cGUoKSk7IFwKKyAg
ICAgICAgRVhQRUNUX0VRKGEsIG9wMi5hbW91bnQoKSk7IFwKKyAgICB9CisKKyNkZWZpbmUgU0FW
RV9SRVNUT1JFX09GRlNFVF9BTU9VTlRfQ09MT1IoVHlwZSwgYSwgYiwgYykgXAorICAgIHsgXAor
ICAgICAgICBXZWJGaWx0ZXJPcGVyYXRpb24gb3AgPSBXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0
ZSMjVHlwZSMjRmlsdGVyKGEsIGIsIGMpOyBcCisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJP
cGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUsIG9wLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNU
X0VRKGEsIG9wLmRyb3BTaGFkb3dPZmZzZXQoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGIsIG9w
LmFtb3VudCgpKTsgXAorICAgICAgICBFWFBFQ1RfRVEoYywgb3AuZHJvcFNoYWRvd0NvbG9yKCkp
OyBcCisgICAgICAgIFwKKyAgICAgICAgV2ViRmlsdGVyT3BlcmF0aW9uIG9wMiA9IFdlYkZpbHRl
ck9wZXJhdGlvbjo6Y3JlYXRlRW1wdHlGaWx0ZXIoKTsgXAorICAgICAgICBvcDIuc2V0VHlwZShX
ZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUpOyBcCisgICAgICAgIFwKKyAgICAg
ICAgRVhQRUNUX05FKGEsIG9wMi5kcm9wU2hhZG93T2Zmc2V0KCkpOyBcCisgICAgICAgIEVYUEVD
VF9ORShiLCBvcDIuYW1vdW50KCkpOyBcCisgICAgICAgIEVYUEVDVF9ORShjLCBvcDIuZHJvcFNo
YWRvd0NvbG9yKCkpOyBcCisgICAgICAgIFwKKyAgICAgICAgb3AyLnNldERyb3BTaGFkb3dPZmZz
ZXQoYSk7IFwKKyAgICAgICAgb3AyLnNldEFtb3VudChiKTsgXAorICAgICAgICBvcDIuc2V0RHJv
cFNoYWRvd0NvbG9yKGMpOyBcCisgICAgICAgIFwKKyAgICAgICAgRVhQRUNUX0VRKFdlYkZpbHRl
ck9wZXJhdGlvbjo6RmlsdGVyVHlwZSMjVHlwZSwgb3AyLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQ
RUNUX0VRKGEsIG9wMi5kcm9wU2hhZG93T2Zmc2V0KCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShi
LCBvcDIuYW1vdW50KCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShjLCBvcDIuZHJvcFNoYWRvd0Nv
bG9yKCkpOyBcCisgICAgfQorCisjZGVmaW5lIFNBVkVfUkVTVE9SRV9NQVRSSVgoVHlwZSwgYSkg
XAorICAgIHsgXAorICAgICAgICBXZWJGaWx0ZXJPcGVyYXRpb24gb3AgPSBXZWJGaWx0ZXJPcGVy
YXRpb246OmNyZWF0ZSMjVHlwZSMjRmlsdGVyKGEpOyBcCisgICAgICAgIEVYUEVDVF9FUShXZWJG
aWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUsIG9wLnR5cGUoKSk7ICAgICBcCisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyMDsgKytpKSBcCisgICAgICAgICAgICBFWFBF
Q1RfRVEoYVtpXSwgb3AubWF0cml4KClbaV0pOyBcCisgICAgICAgIFwKKyAgICAgICAgV2ViRmls
dGVyT3BlcmF0aW9uIG9wMiA9IFdlYkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlRW1wdHlGaWx0ZXIo
KTsgXAorICAgICAgICBvcDIuc2V0VHlwZShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUj
I1R5cGUpOyBcCisgICAgICAgIFwKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDIw
OyArK2kpIFwKKyAgICAgICAgICAgIEVYUEVDVF9ORShhW2ldLCBvcDIubWF0cml4KClbaV0pOyBc
CisgICAgICAgIFwKKyAgICAgICAgb3AyLnNldE1hdHJpeChhKTsgXAorICAgICAgICBcCisgICAg
ICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUsIG9wMi50
eXBlKCkpOyBcCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyMDsgKytpKSBcCisg
ICAgICAgICAgICBFWFBFQ1RfRVEoYVtpXSwgb3AubWF0cml4KClbaV0pOyBcCisgICAgfQorCisj
ZGVmaW5lIFNBVkVfUkVTVE9SRV9aT09NUkVDVF9BTU9VTlQoVHlwZSwgYSwgYikgXAorICAgIHsg
XAorICAgICAgICBXZWJGaWx0ZXJPcGVyYXRpb24gb3AgPSBXZWJGaWx0ZXJPcGVyYXRpb246OmNy
ZWF0ZSMjVHlwZSMjRmlsdGVyKGEsIGIpOyBcCisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJP
cGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUsIG9wLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNU
X0VRKGEsIG9wLnpvb21SZWN0KCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShiLCBvcC5hbW91bnQo
KSk7IFwKKyAgICAgICAgXAorICAgICAgICBXZWJGaWx0ZXJPcGVyYXRpb24gb3AyID0gV2ViRmls
dGVyT3BlcmF0aW9uOjpjcmVhdGVFbXB0eUZpbHRlcigpOyBcCisgICAgICAgIG9wMi5zZXRUeXBl
KFdlYkZpbHRlck9wZXJhdGlvbjo6RmlsdGVyVHlwZSMjVHlwZSk7IFwKKyAgICAgICAgXAorICAg
ICAgICBFWFBFQ1RfTkUoYSwgb3AyLnpvb21SZWN0KCkpOyBcCisgICAgICAgIEVYUEVDVF9ORShi
LCBvcDIuYW1vdW50KCkpOyBcCisgICAgICAgIFwKKyAgICAgICAgb3AyLnNldFpvb21SZWN0KGEp
OyBcCisgICAgICAgIG9wMi5zZXRBbW91bnQoYik7IFwKKyAgICAgICAgXAorICAgICAgICBFWFBF
Q1RfRVEoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlLCBvcDIudHlwZSgpKTsg
XAorICAgICAgICBFWFBFQ1RfRVEoYSwgb3AyLnpvb21SZWN0KCkpOyBcCisgICAgICAgIEVYUEVD
VF9FUShiLCBvcDIuYW1vdW50KCkpOyBcCisgICAgfQorCisKK1RFU1QoV2ViRmlsdGVyT3BlcmF0
aW9uc1Rlc3QsIHNhdmVBbmRSZXN0b3JlKQoreworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoR3Jh
eXNjYWxlLCAwLjZmKTsKKyAgICBTQVZFX1JFU1RPUkVfQU1PVU5UKFNlcGlhLCAwLjZmKTsKKyAg
ICBTQVZFX1JFU1RPUkVfQU1PVU5UKFNhdHVyYXRlLCAwLjZmKTsKKyAgICBTQVZFX1JFU1RPUkVf
QU1PVU5UKEh1ZVJvdGF0ZSwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FNT1VOVChJbnZlcnQs
IDAuNmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoQnJpZ2h0bmVzcywgMC42Zik7CisgICAg
U0FWRV9SRVNUT1JFX0FNT1VOVChDb250cmFzdCwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FN
T1VOVChPcGFjaXR5LCAwLjZmKTsKKyAgICBTQVZFX1JFU1RPUkVfQU1PVU5UKEJsdXIsIDAuNmYp
OworICAgIFNBVkVfUkVTVE9SRV9PRkZTRVRfQU1PVU5UX0NPTE9SKERyb3BTaGFkb3csIFdlYlBv
aW50KDMsIDQpLCAwLjRmLCAweGZmZmZmZjAwKTsKKworICAgIFNrU2NhbGFyIG1hdHJpeFsyMF0g
PSB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2
LCAxNywgMTgsIDE5IH07CisgICAgU0FWRV9SRVNUT1JFX01BVFJJWChDb2xvck1hdHJpeCwgbWF0
cml4KTsKKworICAgIFNBVkVfUkVTVE9SRV9aT09NUkVDVF9BTU9VTlQoWm9vbSwgV2ViUmVjdCgy
MCwgMTksIDE4LCAxNyksIDMyKTsKK30KKwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165384</attachid>
            <date>2012-09-24 08:12:06 -0700</date>
            <delta_ts>2012-09-24 08:12:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97147-20120924111127.patch</filename>
            <type>text/plain</type>
            <size>10218</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NTAyZjFjNGQzNDVi
NzViMjczMDVhNTA4ZTAyY2JiNzgwNjViMjU1Li45NTU1M2JjNWNmNWRkYTcyNzE5ZmMzNDU1YWEx
ZGZkM2NiMzc2YzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wOS0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIHRvIFdlYkZpbHRlck9wZXJhdGlvbiBmb3IgSVBDIHBpY2tsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIG1ldGhvZHMg
YWxsb3cgdXMgdG8gcmVzdG9yZSBhIFdlYkZpbHRlck9wZXJhdGlvbiBmcm9tIGEgYmxvYgorICAg
ICAgICBvZiBvcGFxdWUgZGF0YS4gVGhlIHBpY2tsaW5nIGNvZGUgbmVlZHMgdG8gYmUgYWJsZSB0
byBjcmVhdGUgYW4KKyAgICAgICAgZW1wdHkgb2JqZWN0IGFuZCB0aGVuIGZpbGwgaW4gdGhlIHBp
ZWNlcywgc28gdGhlc2Ugc2V0dGVycyBhbGxvdyBpdAorICAgICAgICB0byBkbyBzby4KKworICAg
ICAgICBUZXN0OiBXZWJGaWx0ZXJPcGVyYXRpb25zVGVzdC5zYXZlQW5kUmVzdG9yZQorCisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmFtb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6ZHJvcFNoYWRvd09mZnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6bWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0
aW9uOjp6b29tUmVjdCk6CisgICAgICAgIChXZWJGaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVtcHR5RmlsdGVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRBbW91bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWx0
ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dPZmZzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWx0ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dDb2xvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbHRlck9wZXJhdGlvbjo6c2V0TWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVy
T3BlcmF0aW9uOjpzZXRab29tUmVjdCk6CisgICAgICAgICogY2hyb21pdW0vc3JjL1dlYkZpbHRl
ck9wZXJhdGlvbi5jcHA6CisKIDIwMTItMDktMjQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMjI0My4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMzQwZWVkNmFmNzkwNDBmYmM1OWU4ZDY4NWRm
OGU1Mzg5YmQzMzRjYi4uODJiNmRiNDcyZjVlOWFlN2IzY2JmYjk0ODkwOTkwOGU0N2FjZWM0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOS0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIHRvIFdlYkZpbHRlck9wZXJhdGlvbiBmb3IgSVBDIHBpY2tsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvRmlsdGVy
T3BlcmF0aW9uc1Rlc3QuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
VEVTVCk6CisKIDIwMTItMDktMjQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMjI0My4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9uLmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oCmlu
ZGV4IDlmMTU1MTlhMTA5MGJjYWIxNDI4ODgyY2Y4Y2EwMDllMWNmNGU0ZmIuLjM2MjhmNDg3YjY4
ZmIzYTIzZGEzZjU1NDZiNGU2NjUxOTQxZTE5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJGaWx0ZXJPcGVyYXRpb24uaApAQCAtNTUsMTIgKzU1LDIz
IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IGFtb3VudCgpIGNvbnN0CiAgICAgeworICAgICAgICBX
RUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlR3JheXNjYWxlCisgICAgICAgICAgICAg
ICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVTZXBpYQorICAgICAgICAgICAgICAgICAgIHx8
IG1fdHlwZSA9PSBGaWx0ZXJUeXBlU2F0dXJhdGUKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5
cGUgPT0gRmlsdGVyVHlwZUh1ZVJvdGF0ZQorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9
PSBGaWx0ZXJUeXBlSW52ZXJ0CisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRl
clR5cGVCcmlnaHRuZXNzCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5
cGVDb250cmFzdAorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlT3Bh
Y2l0eQorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlQmx1cgorICAg
ICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlRHJvcFNoYWRvdworICAgICAg
ICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlWm9vbSk7CiAgICAgICAgIHJldHVy
biBtX2Ftb3VudDsKICAgICB9CiAgICAgV2ViUG9pbnQgZHJvcFNoYWRvd09mZnNldCgpIGNvbnN0
CiAgICAgewogICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlRHJvcFNo
YWRvdyk7Ci0gICAgICAgIHJldHVybiBXZWJQb2ludChtX2Ryb3BTaGFkb3dPZmZzZXQpOworICAg
ICAgICByZXR1cm4gbV9kcm9wU2hhZG93T2Zmc2V0OwogICAgIH0KICAgICBXZWJDb2xvciBkcm9w
U2hhZG93Q29sb3IoKSBjb25zdAogICAgIHsKQEAgLTY5LDE2ICs4MCwxNiBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIGNvbnN0IFNrU2NhbGFyKiBtYXRyaXgoKSBjb25zdAogICAgIHsKKyAgICAgICAg
V0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZUNvbG9yTWF0cml4KTsKICAgICAgICAg
cmV0dXJuIG1fbWF0cml4OwogICAgIH0KIAogICAgIFdlYlJlY3Qgem9vbVJlY3QoKSBjb25zdAog
ICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZVpvb20pOwot
ICAgICAgICByZXR1cm4gV2ViUmVjdChtX3pvb21SZWN0KTsKKyAgICAgICAgcmV0dXJuIG1fem9v
bVJlY3Q7CiAgICAgfQogCi0jZGVmaW5lIFdFQktJVF9IQVNfTkVXX1dFQkZJTFRFUk9QRVJBVElP
Tl9BUEkgMQogICAgIHN0YXRpYyBXZWJGaWx0ZXJPcGVyYXRpb24gY3JlYXRlR3JheXNjYWxlRmls
dGVyKGZsb2F0IGFtb3VudCkgeyByZXR1cm4gV2ViRmlsdGVyT3BlcmF0aW9uKEZpbHRlclR5cGVH
cmF5c2NhbGUsIGFtb3VudCk7IH0KICAgICBzdGF0aWMgV2ViRmlsdGVyT3BlcmF0aW9uIGNyZWF0
ZVNlcGlhRmlsdGVyKGZsb2F0IGFtb3VudCkgeyByZXR1cm4gV2ViRmlsdGVyT3BlcmF0aW9uKEZp
bHRlclR5cGVTZXBpYSwgYW1vdW50KTsgfQogICAgIHN0YXRpYyBXZWJGaWx0ZXJPcGVyYXRpb24g
Y3JlYXRlU2F0dXJhdGVGaWx0ZXIoZmxvYXQgYW1vdW50KSB7IHJldHVybiBXZWJGaWx0ZXJPcGVy
YXRpb24oRmlsdGVyVHlwZVNhdHVyYXRlLCBhbW91bnQpOyB9CkBAIC05NCw2ICsxMDUsNDYgQEAg
cHVibGljOgogCiAgICAgYm9vbCBlcXVhbHMoY29uc3QgV2ViRmlsdGVyT3BlcmF0aW9uJiBvdGhl
cikgY29uc3Q7CiAKKyAgICAvLyBNZXRob2RzIGZvciByZXN0b3JpbmcgYSBXZWJGaWx0ZXJPcGVy
YXRpb24uCisgICAgc3RhdGljIFdlYkZpbHRlck9wZXJhdGlvbiBjcmVhdGVFbXB0eUZpbHRlcigp
IHsgcmV0dXJuIFdlYkZpbHRlck9wZXJhdGlvbihGaWx0ZXJUeXBlR3JheXNjYWxlLCAwLjApOyB9
CisgICAgdm9pZCBzZXRUeXBlKEZpbHRlclR5cGUgdHlwZSkgeyBtX3R5cGUgPSB0eXBlOyB9Cisg
ICAgdm9pZCBzZXRBbW91bnQoZmxvYXQgYW1vdW50KQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FT
U0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZUdyYXlzY2FsZQorICAgICAgICAgICAgICAgICAgIHx8
IG1fdHlwZSA9PSBGaWx0ZXJUeXBlU2VwaWEKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUg
PT0gRmlsdGVyVHlwZVNhdHVyYXRlCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZp
bHRlclR5cGVIdWVSb3RhdGUKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVy
VHlwZUludmVydAorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlQnJp
Z2h0bmVzcworICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlQ29udHJh
c3QKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZU9wYWNpdHkKKyAg
ICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUJsdXIKKyAgICAgICAgICAg
ICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZURyb3BTaGFkb3cKKyAgICAgICAgICAgICAg
ICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZVpvb20pOworICAgICAgICBtX2Ftb3VudCA9IGFt
b3VudDsKKyAgICB9CisgICAgdm9pZCBzZXREcm9wU2hhZG93T2Zmc2V0KFdlYlBvaW50IG9mZnNl
dCkKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlQobV90eXBlID09IEZpbHRlclR5cGVEcm9w
U2hhZG93KTsKKyAgICAgICAgbV9kcm9wU2hhZG93T2Zmc2V0ID0gb2Zmc2V0OworICAgIH0KKyAg
ICB2b2lkIHNldERyb3BTaGFkb3dDb2xvcihXZWJDb2xvciBjb2xvcikKKyAgICB7CisgICAgICAg
IFdFQktJVF9BU1NFUlQobV90eXBlID09IEZpbHRlclR5cGVEcm9wU2hhZG93KTsKKyAgICAgICAg
bV9kcm9wU2hhZG93Q29sb3IgPSBjb2xvcjsKKyAgICB9CisgICAgdm9pZCBzZXRNYXRyaXgoY29u
c3QgU2tTY2FsYXIgbWF0cml4WzIwXSkKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlQobV90
eXBlID09IEZpbHRlclR5cGVDb2xvck1hdHJpeCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCAyMDsgKytpKQorICAgICAgICAgICAgbV9tYXRyaXhbaV0gPSBtYXRyaXhbaV07Cisg
ICAgfQorICAgIHZvaWQgc2V0Wm9vbVJlY3QoV2ViUmVjdCByZWN0KQorICAgIHsKKyAgICAgICAg
V0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZVpvb20pOworICAgICAgICBtX3pvb21S
ZWN0ID0gcmVjdDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgRmlsdGVyVHlwZSBtX3R5cGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmlsdGVyT3BlcmF0aW9u
c1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25z
VGVzdC5jcHAKaW5kZXggOGEzYzVkOGExNjAwYWE5ZGI5ODkxOWE3NjE1NTMzZjgzNzhiNTk2OC4u
ODczZDIxNmNkYzcwZmM5NTg4ZGRkMzNhYzVhM2FjYThlOGZjNDk0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHAKQEAg
LTg5LDUgKzg5LDEwOCBAQCBURVNUKFdlYkZpbHRlck9wZXJhdGlvbnNUZXN0LCBnZXRPdXRzZXRz
RHJvcFNoYWRvdykKICAgICBFWFBFQ1RfRVEoNTQsIGxlZnQpOwogfQogCisjZGVmaW5lIFNBVkVf
UkVTVE9SRV9BTU9VTlQoVHlwZSwgYSkgXAorICAgIHsgXAorICAgICAgICBXZWJGaWx0ZXJPcGVy
YXRpb24gb3AgPSBXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSMjVHlwZSMjRmlsdGVyKGEpOyBc
CisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUs
IG9wLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGEsIG9wLmFtb3VudCgpKTsgXAorICAg
ICAgICBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBXZWJGaWx0ZXJPcGVyYXRp
b246OmNyZWF0ZUVtcHR5RmlsdGVyKCk7IFwKKyAgICAgICAgb3AyLnNldFR5cGUoV2ViRmlsdGVy
T3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlKTsgXAorICAgICAgICBcCisgICAgICAgIEVYUEVD
VF9ORShhLCBvcDIuYW1vdW50KCkpOyBcCisgICAgICAgIFwKKyAgICAgICAgb3AyLnNldEFtb3Vu
dChhKTsgXAorICAgICAgICBcCisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246
OkZpbHRlclR5cGUjI1R5cGUsIG9wMi50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBv
cDIuYW1vdW50KCkpOyBcCisgICAgfQorCisjZGVmaW5lIFNBVkVfUkVTVE9SRV9PRkZTRVRfQU1P
VU5UX0NPTE9SKFR5cGUsIGEsIGIsIGMpIFwKKyAgICB7IFwKKyAgICAgICAgV2ViRmlsdGVyT3Bl
cmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUjI1R5cGUjI0ZpbHRlcihhLCBi
LCBjKTsgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBl
IyNUeXBlLCBvcC50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBvcC5kcm9wU2hhZG93
T2Zmc2V0KCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShiLCBvcC5hbW91bnQoKSk7IFwKKyAgICAg
ICAgRVhQRUNUX0VRKGMsIG9wLmRyb3BTaGFkb3dDb2xvcigpKTsgXAorICAgICAgICBcCisgICAg
ICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVt
cHR5RmlsdGVyKCk7IFwKKyAgICAgICAgb3AyLnNldFR5cGUoV2ViRmlsdGVyT3BlcmF0aW9uOjpG
aWx0ZXJUeXBlIyNUeXBlKTsgXAorICAgICAgICBcCisgICAgICAgIEVYUEVDVF9ORShhLCBvcDIu
ZHJvcFNoYWRvd09mZnNldCgpKTsgXAorICAgICAgICBFWFBFQ1RfTkUoYiwgb3AyLmFtb3VudCgp
KTsgXAorICAgICAgICBFWFBFQ1RfTkUoYywgb3AyLmRyb3BTaGFkb3dDb2xvcigpKTsgXAorICAg
ICAgICBcCisgICAgICAgIG9wMi5zZXREcm9wU2hhZG93T2Zmc2V0KGEpOyBcCisgICAgICAgIG9w
Mi5zZXRBbW91bnQoYik7IFwKKyAgICAgICAgb3AyLnNldERyb3BTaGFkb3dDb2xvcihjKTsgXAor
ICAgICAgICBcCisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5
cGUjI1R5cGUsIG9wMi50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBvcDIuZHJvcFNo
YWRvd09mZnNldCgpKTsgXAorICAgICAgICBFWFBFQ1RfRVEoYiwgb3AyLmFtb3VudCgpKTsgXAor
ICAgICAgICBFWFBFQ1RfRVEoYywgb3AyLmRyb3BTaGFkb3dDb2xvcigpKTsgXAorICAgIH0KKwor
I2RlZmluZSBTQVZFX1JFU1RPUkVfTUFUUklYKFR5cGUsIGEpIFwKKyAgICB7IFwKKyAgICAgICAg
V2ViRmlsdGVyT3BlcmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUjI1R5cGUj
I0ZpbHRlcihhKTsgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0
ZXJUeXBlIyNUeXBlLCBvcC50eXBlKCkpOyAgICAgXAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgMjA7ICsraSkgXAorICAgICAgICAgICAgRVhQRUNUX0VRKGFbaV0sIG9wLm1hdHJp
eCgpW2ldKTsgXAorICAgICAgICBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBX
ZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVtcHR5RmlsdGVyKCk7IFwKKyAgICAgICAgb3AyLnNl
dFR5cGUoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlKTsgXAorICAgICAgICBc
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyMDsgKytpKSBcCisgICAgICAgICAg
ICBFWFBFQ1RfTkUoYVtpXSwgb3AyLm1hdHJpeCgpW2ldKTsgXAorICAgICAgICBcCisgICAgICAg
IG9wMi5zZXRNYXRyaXgoYSk7IFwKKyAgICAgICAgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmls
dGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlLCBvcDIudHlwZSgpKTsgXAorICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMjA7ICsraSkgXAorICAgICAgICAgICAgRVhQRUNUX0VR
KGFbaV0sIG9wLm1hdHJpeCgpW2ldKTsgXAorICAgIH0KKworI2RlZmluZSBTQVZFX1JFU1RPUkVf
Wk9PTVJFQ1RfQU1PVU5UKFR5cGUsIGEsIGIpIFwKKyAgICB7IFwKKyAgICAgICAgV2ViRmlsdGVy
T3BlcmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUjI1R5cGUjI0ZpbHRlcihh
LCBiKTsgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBl
IyNUeXBlLCBvcC50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBvcC56b29tUmVjdCgp
KTsgXAorICAgICAgICBFWFBFQ1RfRVEoYiwgb3AuYW1vdW50KCkpOyBcCisgICAgICAgIFwKKyAg
ICAgICAgV2ViRmlsdGVyT3BlcmF0aW9uIG9wMiA9IFdlYkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRl
RW1wdHlGaWx0ZXIoKTsgXAorICAgICAgICBvcDIuc2V0VHlwZShXZWJGaWx0ZXJPcGVyYXRpb246
OkZpbHRlclR5cGUjI1R5cGUpOyBcCisgICAgICAgIFwKKyAgICAgICAgRVhQRUNUX05FKGEsIG9w
Mi56b29tUmVjdCgpKTsgXAorICAgICAgICBFWFBFQ1RfTkUoYiwgb3AyLmFtb3VudCgpKTsgXAor
ICAgICAgICBcCisgICAgICAgIG9wMi5zZXRab29tUmVjdChhKTsgXAorICAgICAgICBvcDIuc2V0
QW1vdW50KGIpOyBcCisgICAgICAgIFwKKyAgICAgICAgRVhQRUNUX0VRKFdlYkZpbHRlck9wZXJh
dGlvbjo6RmlsdGVyVHlwZSMjVHlwZSwgb3AyLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VR
KGEsIG9wMi56b29tUmVjdCgpKTsgXAorICAgICAgICBFWFBFQ1RfRVEoYiwgb3AyLmFtb3VudCgp
KTsgXAorICAgIH0KKworCitURVNUKFdlYkZpbHRlck9wZXJhdGlvbnNUZXN0LCBzYXZlQW5kUmVz
dG9yZSkKK3sKKyAgICBTQVZFX1JFU1RPUkVfQU1PVU5UKEdyYXlzY2FsZSwgMC42Zik7CisgICAg
U0FWRV9SRVNUT1JFX0FNT1VOVChTZXBpYSwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FNT1VO
VChTYXR1cmF0ZSwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FNT1VOVChIdWVSb3RhdGUsIDAu
NmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoSW52ZXJ0LCAwLjZmKTsKKyAgICBTQVZFX1JF
U1RPUkVfQU1PVU5UKEJyaWdodG5lc3MsIDAuNmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQo
Q29udHJhc3QsIDAuNmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoT3BhY2l0eSwgMC42Zik7
CisgICAgU0FWRV9SRVNUT1JFX0FNT1VOVChCbHVyLCAwLjZmKTsKKyAgICBTQVZFX1JFU1RPUkVf
T0ZGU0VUX0FNT1VOVF9DT0xPUihEcm9wU2hhZG93LCBXZWJQb2ludCgzLCA0KSwgMC40ZiwgMHhm
ZmZmZmYwMCk7CisKKyAgICBTa1NjYWxhciBtYXRyaXhbMjBdID0geyAxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAgfTsK
KyAgICBTQVZFX1JFU1RPUkVfTUFUUklYKENvbG9yTWF0cml4LCBtYXRyaXgpOworCisgICAgU0FW
RV9SRVNUT1JFX1pPT01SRUNUX0FNT1VOVChab29tLCBXZWJSZWN0KDIwLCAxOSwgMTgsIDE3KSwg
MzIpOworfQorCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165385</attachid>
            <date>2012-09-24 08:12:53 -0700</date>
            <delta_ts>2012-09-24 08:46:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-97147-20120924111214.patch</filename>
            <type>text/plain</type>
            <size>10218</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NTAyZjFjNGQzNDVi
NzViMjczMDVhNTA4ZTAyY2JiNzgwNjViMjU1Li45NDVlZmIyZmViZGQ5MDk4NzZlYzBlMWZlNzU1
NzY4YWVmMmZkNzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wOS0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIHRvIFdlYkZpbHRlck9wZXJhdGlvbiBmb3IgSVBDIHBpY2tsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgIFRoZXNlIG1ldGhvZHMg
YWxsb3cgdXMgdG8gcmVzdG9yZSBhIFdlYkZpbHRlck9wZXJhdGlvbiBmcm9tIGEgYmxvYgorICAg
ICAgICBvZiBvcGFxdWUgZGF0YS4gVGhlIHBpY2tsaW5nIGNvZGUgbmVlZHMgdG8gYmUgYWJsZSB0
byBjcmVhdGUgYW4KKyAgICAgICAgZW1wdHkgb2JqZWN0IGFuZCB0aGVuIGZpbGwgaW4gdGhlIHBp
ZWNlcywgc28gdGhlc2Ugc2V0dGVycyBhbGxvdyBpdAorICAgICAgICB0byBkbyBzby4KKworICAg
ICAgICBUZXN0OiBXZWJGaWx0ZXJPcGVyYXRpb25zVGVzdC5zYXZlQW5kUmVzdG9yZQorCisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmFtb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6ZHJvcFNoYWRvd09mZnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bHRlck9wZXJhdGlvbjo6bWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0
aW9uOjp6b29tUmVjdCk6CisgICAgICAgIChXZWJGaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVtcHR5RmlsdGVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRmlsdGVyT3BlcmF0aW9uOjpzZXRBbW91bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWx0
ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dPZmZzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWx0ZXJPcGVyYXRpb246OnNldERyb3BTaGFkb3dDb2xvcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbHRlck9wZXJhdGlvbjo6c2V0TWF0cml4KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsdGVy
T3BlcmF0aW9uOjpzZXRab29tUmVjdCk6CisgICAgICAgICogY2hyb21pdW0vc3JjL1dlYkZpbHRl
ck9wZXJhdGlvbi5jcHA6CisKIDIwMTItMDktMjQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMjI0My4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMzQwZWVkNmFmNzkwNDBmYmM1OWU4ZDY4NWRm
OGU1Mzg5YmQzMzRjYi4uMWYzNGNjODI0NmU0MDliNTIwYWMwODg3NTcxYjA2YjBjNzg1NWNhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOS0yMCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IEFkZCBzZXR0ZXJzIHRvIFdlYkZpbHRlck9wZXJhdGlvbiBmb3IgSVBDIHBpY2tsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgICogdGVzdHMvRmlsdGVy
T3BlcmF0aW9uc1Rlc3QuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
VEVTVCk6CisKIDIwMTItMDktMjQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMjI0My4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9uLmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oCmlu
ZGV4IDlmMTU1MTlhMTA5MGJjYWIxNDI4ODgyY2Y4Y2EwMDllMWNmNGU0ZmIuLjM2MjhmNDg3YjY4
ZmIzYTIzZGEzZjU1NDZiNGU2NjUxOTQxZTE5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsdGVyT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJGaWx0ZXJPcGVyYXRpb24uaApAQCAtNTUsMTIgKzU1LDIz
IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0IGFtb3VudCgpIGNvbnN0CiAgICAgeworICAgICAgICBX
RUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlR3JheXNjYWxlCisgICAgICAgICAgICAg
ICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5cGVTZXBpYQorICAgICAgICAgICAgICAgICAgIHx8
IG1fdHlwZSA9PSBGaWx0ZXJUeXBlU2F0dXJhdGUKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5
cGUgPT0gRmlsdGVyVHlwZUh1ZVJvdGF0ZQorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9
PSBGaWx0ZXJUeXBlSW52ZXJ0CisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRl
clR5cGVCcmlnaHRuZXNzCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZpbHRlclR5
cGVDb250cmFzdAorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlT3Bh
Y2l0eQorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlQmx1cgorICAg
ICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlRHJvcFNoYWRvdworICAgICAg
ICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlWm9vbSk7CiAgICAgICAgIHJldHVy
biBtX2Ftb3VudDsKICAgICB9CiAgICAgV2ViUG9pbnQgZHJvcFNoYWRvd09mZnNldCgpIGNvbnN0
CiAgICAgewogICAgICAgICBXRUJLSVRfQVNTRVJUKG1fdHlwZSA9PSBGaWx0ZXJUeXBlRHJvcFNo
YWRvdyk7Ci0gICAgICAgIHJldHVybiBXZWJQb2ludChtX2Ryb3BTaGFkb3dPZmZzZXQpOworICAg
ICAgICByZXR1cm4gbV9kcm9wU2hhZG93T2Zmc2V0OwogICAgIH0KICAgICBXZWJDb2xvciBkcm9w
U2hhZG93Q29sb3IoKSBjb25zdAogICAgIHsKQEAgLTY5LDE2ICs4MCwxNiBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIGNvbnN0IFNrU2NhbGFyKiBtYXRyaXgoKSBjb25zdAogICAgIHsKKyAgICAgICAg
V0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZUNvbG9yTWF0cml4KTsKICAgICAgICAg
cmV0dXJuIG1fbWF0cml4OwogICAgIH0KIAogICAgIFdlYlJlY3Qgem9vbVJlY3QoKSBjb25zdAog
ICAgIHsKICAgICAgICAgV0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZVpvb20pOwot
ICAgICAgICByZXR1cm4gV2ViUmVjdChtX3pvb21SZWN0KTsKKyAgICAgICAgcmV0dXJuIG1fem9v
bVJlY3Q7CiAgICAgfQogCi0jZGVmaW5lIFdFQktJVF9IQVNfTkVXX1dFQkZJTFRFUk9QRVJBVElP
Tl9BUEkgMQogICAgIHN0YXRpYyBXZWJGaWx0ZXJPcGVyYXRpb24gY3JlYXRlR3JheXNjYWxlRmls
dGVyKGZsb2F0IGFtb3VudCkgeyByZXR1cm4gV2ViRmlsdGVyT3BlcmF0aW9uKEZpbHRlclR5cGVH
cmF5c2NhbGUsIGFtb3VudCk7IH0KICAgICBzdGF0aWMgV2ViRmlsdGVyT3BlcmF0aW9uIGNyZWF0
ZVNlcGlhRmlsdGVyKGZsb2F0IGFtb3VudCkgeyByZXR1cm4gV2ViRmlsdGVyT3BlcmF0aW9uKEZp
bHRlclR5cGVTZXBpYSwgYW1vdW50KTsgfQogICAgIHN0YXRpYyBXZWJGaWx0ZXJPcGVyYXRpb24g
Y3JlYXRlU2F0dXJhdGVGaWx0ZXIoZmxvYXQgYW1vdW50KSB7IHJldHVybiBXZWJGaWx0ZXJPcGVy
YXRpb24oRmlsdGVyVHlwZVNhdHVyYXRlLCBhbW91bnQpOyB9CkBAIC05NCw2ICsxMDUsNDYgQEAg
cHVibGljOgogCiAgICAgYm9vbCBlcXVhbHMoY29uc3QgV2ViRmlsdGVyT3BlcmF0aW9uJiBvdGhl
cikgY29uc3Q7CiAKKyAgICAvLyBNZXRob2RzIGZvciByZXN0b3JpbmcgYSBXZWJGaWx0ZXJPcGVy
YXRpb24uCisgICAgc3RhdGljIFdlYkZpbHRlck9wZXJhdGlvbiBjcmVhdGVFbXB0eUZpbHRlcigp
IHsgcmV0dXJuIFdlYkZpbHRlck9wZXJhdGlvbihGaWx0ZXJUeXBlR3JheXNjYWxlLCAwLjApOyB9
CisgICAgdm9pZCBzZXRUeXBlKEZpbHRlclR5cGUgdHlwZSkgeyBtX3R5cGUgPSB0eXBlOyB9Cisg
ICAgdm9pZCBzZXRBbW91bnQoZmxvYXQgYW1vdW50KQorICAgIHsKKyAgICAgICAgV0VCS0lUX0FT
U0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZUdyYXlzY2FsZQorICAgICAgICAgICAgICAgICAgIHx8
IG1fdHlwZSA9PSBGaWx0ZXJUeXBlU2VwaWEKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUg
PT0gRmlsdGVyVHlwZVNhdHVyYXRlCisgICAgICAgICAgICAgICAgICAgfHwgbV90eXBlID09IEZp
bHRlclR5cGVIdWVSb3RhdGUKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVy
VHlwZUludmVydAorICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlQnJp
Z2h0bmVzcworICAgICAgICAgICAgICAgICAgIHx8IG1fdHlwZSA9PSBGaWx0ZXJUeXBlQ29udHJh
c3QKKyAgICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZU9wYWNpdHkKKyAg
ICAgICAgICAgICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZUJsdXIKKyAgICAgICAgICAg
ICAgICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZURyb3BTaGFkb3cKKyAgICAgICAgICAgICAg
ICAgICB8fCBtX3R5cGUgPT0gRmlsdGVyVHlwZVpvb20pOworICAgICAgICBtX2Ftb3VudCA9IGFt
b3VudDsKKyAgICB9CisgICAgdm9pZCBzZXREcm9wU2hhZG93T2Zmc2V0KFdlYlBvaW50IG9mZnNl
dCkKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlQobV90eXBlID09IEZpbHRlclR5cGVEcm9w
U2hhZG93KTsKKyAgICAgICAgbV9kcm9wU2hhZG93T2Zmc2V0ID0gb2Zmc2V0OworICAgIH0KKyAg
ICB2b2lkIHNldERyb3BTaGFkb3dDb2xvcihXZWJDb2xvciBjb2xvcikKKyAgICB7CisgICAgICAg
IFdFQktJVF9BU1NFUlQobV90eXBlID09IEZpbHRlclR5cGVEcm9wU2hhZG93KTsKKyAgICAgICAg
bV9kcm9wU2hhZG93Q29sb3IgPSBjb2xvcjsKKyAgICB9CisgICAgdm9pZCBzZXRNYXRyaXgoY29u
c3QgU2tTY2FsYXIgbWF0cml4WzIwXSkKKyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlQobV90
eXBlID09IEZpbHRlclR5cGVDb2xvck1hdHJpeCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCAyMDsgKytpKQorICAgICAgICAgICAgbV9tYXRyaXhbaV0gPSBtYXRyaXhbaV07Cisg
ICAgfQorICAgIHZvaWQgc2V0Wm9vbVJlY3QoV2ViUmVjdCByZWN0KQorICAgIHsKKyAgICAgICAg
V0VCS0lUX0FTU0VSVChtX3R5cGUgPT0gRmlsdGVyVHlwZVpvb20pOworICAgICAgICBtX3pvb21S
ZWN0ID0gcmVjdDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgRmlsdGVyVHlwZSBtX3R5cGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmlsdGVyT3BlcmF0aW9u
c1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25z
VGVzdC5jcHAKaW5kZXggOGEzYzVkOGExNjAwYWE5ZGI5ODkxOWE3NjE1NTMzZjgzNzhiNTk2OC4u
ODczZDIxNmNkYzcwZmM5NTg4ZGRkMzNhYzVhM2FjYThlOGZjNDk0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GaWx0ZXJPcGVyYXRpb25zVGVzdC5jcHAKQEAg
LTg5LDUgKzg5LDEwOCBAQCBURVNUKFdlYkZpbHRlck9wZXJhdGlvbnNUZXN0LCBnZXRPdXRzZXRz
RHJvcFNoYWRvdykKICAgICBFWFBFQ1RfRVEoNTQsIGxlZnQpOwogfQogCisjZGVmaW5lIFNBVkVf
UkVTVE9SRV9BTU9VTlQoVHlwZSwgYSkgXAorICAgIHsgXAorICAgICAgICBXZWJGaWx0ZXJPcGVy
YXRpb24gb3AgPSBXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSMjVHlwZSMjRmlsdGVyKGEpOyBc
CisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5cGUjI1R5cGUs
IG9wLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VRKGEsIG9wLmFtb3VudCgpKTsgXAorICAg
ICAgICBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBXZWJGaWx0ZXJPcGVyYXRp
b246OmNyZWF0ZUVtcHR5RmlsdGVyKCk7IFwKKyAgICAgICAgb3AyLnNldFR5cGUoV2ViRmlsdGVy
T3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlKTsgXAorICAgICAgICBcCisgICAgICAgIEVYUEVD
VF9ORShhLCBvcDIuYW1vdW50KCkpOyBcCisgICAgICAgIFwKKyAgICAgICAgb3AyLnNldEFtb3Vu
dChhKTsgXAorICAgICAgICBcCisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246
OkZpbHRlclR5cGUjI1R5cGUsIG9wMi50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBv
cDIuYW1vdW50KCkpOyBcCisgICAgfQorCisjZGVmaW5lIFNBVkVfUkVTVE9SRV9PRkZTRVRfQU1P
VU5UX0NPTE9SKFR5cGUsIGEsIGIsIGMpIFwKKyAgICB7IFwKKyAgICAgICAgV2ViRmlsdGVyT3Bl
cmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUjI1R5cGUjI0ZpbHRlcihhLCBi
LCBjKTsgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBl
IyNUeXBlLCBvcC50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBvcC5kcm9wU2hhZG93
T2Zmc2V0KCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShiLCBvcC5hbW91bnQoKSk7IFwKKyAgICAg
ICAgRVhQRUNUX0VRKGMsIG9wLmRyb3BTaGFkb3dDb2xvcigpKTsgXAorICAgICAgICBcCisgICAg
ICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBXZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVt
cHR5RmlsdGVyKCk7IFwKKyAgICAgICAgb3AyLnNldFR5cGUoV2ViRmlsdGVyT3BlcmF0aW9uOjpG
aWx0ZXJUeXBlIyNUeXBlKTsgXAorICAgICAgICBcCisgICAgICAgIEVYUEVDVF9ORShhLCBvcDIu
ZHJvcFNoYWRvd09mZnNldCgpKTsgXAorICAgICAgICBFWFBFQ1RfTkUoYiwgb3AyLmFtb3VudCgp
KTsgXAorICAgICAgICBFWFBFQ1RfTkUoYywgb3AyLmRyb3BTaGFkb3dDb2xvcigpKTsgXAorICAg
ICAgICBcCisgICAgICAgIG9wMi5zZXREcm9wU2hhZG93T2Zmc2V0KGEpOyBcCisgICAgICAgIG9w
Mi5zZXRBbW91bnQoYik7IFwKKyAgICAgICAgb3AyLnNldERyb3BTaGFkb3dDb2xvcihjKTsgXAor
ICAgICAgICBcCisgICAgICAgIEVYUEVDVF9FUShXZWJGaWx0ZXJPcGVyYXRpb246OkZpbHRlclR5
cGUjI1R5cGUsIG9wMi50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBvcDIuZHJvcFNo
YWRvd09mZnNldCgpKTsgXAorICAgICAgICBFWFBFQ1RfRVEoYiwgb3AyLmFtb3VudCgpKTsgXAor
ICAgICAgICBFWFBFQ1RfRVEoYywgb3AyLmRyb3BTaGFkb3dDb2xvcigpKTsgXAorICAgIH0KKwor
I2RlZmluZSBTQVZFX1JFU1RPUkVfTUFUUklYKFR5cGUsIGEpIFwKKyAgICB7IFwKKyAgICAgICAg
V2ViRmlsdGVyT3BlcmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUjI1R5cGUj
I0ZpbHRlcihhKTsgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0
ZXJUeXBlIyNUeXBlLCBvcC50eXBlKCkpOyAgICAgXAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgMjA7ICsraSkgXAorICAgICAgICAgICAgRVhQRUNUX0VRKGFbaV0sIG9wLm1hdHJp
eCgpW2ldKTsgXAorICAgICAgICBcCisgICAgICAgIFdlYkZpbHRlck9wZXJhdGlvbiBvcDIgPSBX
ZWJGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZUVtcHR5RmlsdGVyKCk7IFwKKyAgICAgICAgb3AyLnNl
dFR5cGUoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlKTsgXAorICAgICAgICBc
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyMDsgKytpKSBcCisgICAgICAgICAg
ICBFWFBFQ1RfTkUoYVtpXSwgb3AyLm1hdHJpeCgpW2ldKTsgXAorICAgICAgICBcCisgICAgICAg
IG9wMi5zZXRNYXRyaXgoYSk7IFwKKyAgICAgICAgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmls
dGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBlIyNUeXBlLCBvcDIudHlwZSgpKTsgXAorICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMjA7ICsraSkgXAorICAgICAgICAgICAgRVhQRUNUX0VR
KGFbaV0sIG9wLm1hdHJpeCgpW2ldKTsgXAorICAgIH0KKworI2RlZmluZSBTQVZFX1JFU1RPUkVf
Wk9PTVJFQ1RfQU1PVU5UKFR5cGUsIGEsIGIpIFwKKyAgICB7IFwKKyAgICAgICAgV2ViRmlsdGVy
T3BlcmF0aW9uIG9wID0gV2ViRmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUjI1R5cGUjI0ZpbHRlcihh
LCBiKTsgXAorICAgICAgICBFWFBFQ1RfRVEoV2ViRmlsdGVyT3BlcmF0aW9uOjpGaWx0ZXJUeXBl
IyNUeXBlLCBvcC50eXBlKCkpOyBcCisgICAgICAgIEVYUEVDVF9FUShhLCBvcC56b29tUmVjdCgp
KTsgXAorICAgICAgICBFWFBFQ1RfRVEoYiwgb3AuYW1vdW50KCkpOyBcCisgICAgICAgIFwKKyAg
ICAgICAgV2ViRmlsdGVyT3BlcmF0aW9uIG9wMiA9IFdlYkZpbHRlck9wZXJhdGlvbjo6Y3JlYXRl
RW1wdHlGaWx0ZXIoKTsgXAorICAgICAgICBvcDIuc2V0VHlwZShXZWJGaWx0ZXJPcGVyYXRpb246
OkZpbHRlclR5cGUjI1R5cGUpOyBcCisgICAgICAgIFwKKyAgICAgICAgRVhQRUNUX05FKGEsIG9w
Mi56b29tUmVjdCgpKTsgXAorICAgICAgICBFWFBFQ1RfTkUoYiwgb3AyLmFtb3VudCgpKTsgXAor
ICAgICAgICBcCisgICAgICAgIG9wMi5zZXRab29tUmVjdChhKTsgXAorICAgICAgICBvcDIuc2V0
QW1vdW50KGIpOyBcCisgICAgICAgIFwKKyAgICAgICAgRVhQRUNUX0VRKFdlYkZpbHRlck9wZXJh
dGlvbjo6RmlsdGVyVHlwZSMjVHlwZSwgb3AyLnR5cGUoKSk7IFwKKyAgICAgICAgRVhQRUNUX0VR
KGEsIG9wMi56b29tUmVjdCgpKTsgXAorICAgICAgICBFWFBFQ1RfRVEoYiwgb3AyLmFtb3VudCgp
KTsgXAorICAgIH0KKworCitURVNUKFdlYkZpbHRlck9wZXJhdGlvbnNUZXN0LCBzYXZlQW5kUmVz
dG9yZSkKK3sKKyAgICBTQVZFX1JFU1RPUkVfQU1PVU5UKEdyYXlzY2FsZSwgMC42Zik7CisgICAg
U0FWRV9SRVNUT1JFX0FNT1VOVChTZXBpYSwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FNT1VO
VChTYXR1cmF0ZSwgMC42Zik7CisgICAgU0FWRV9SRVNUT1JFX0FNT1VOVChIdWVSb3RhdGUsIDAu
NmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoSW52ZXJ0LCAwLjZmKTsKKyAgICBTQVZFX1JF
U1RPUkVfQU1PVU5UKEJyaWdodG5lc3MsIDAuNmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQo
Q29udHJhc3QsIDAuNmYpOworICAgIFNBVkVfUkVTVE9SRV9BTU9VTlQoT3BhY2l0eSwgMC42Zik7
CisgICAgU0FWRV9SRVNUT1JFX0FNT1VOVChCbHVyLCAwLjZmKTsKKyAgICBTQVZFX1JFU1RPUkVf
T0ZGU0VUX0FNT1VOVF9DT0xPUihEcm9wU2hhZG93LCBXZWJQb2ludCgzLCA0KSwgMC40ZiwgMHhm
ZmZmZmYwMCk7CisKKyAgICBTa1NjYWxhciBtYXRyaXhbMjBdID0geyAxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAgfTsK
KyAgICBTQVZFX1JFU1RPUkVfTUFUUklYKENvbG9yTWF0cml4LCBtYXRyaXgpOworCisgICAgU0FW
RV9SRVNUT1JFX1pPT01SRUNUX0FNT1VOVChab29tLCBXZWJSZWN0KDIwLCAxOSwgMTgsIDE3KSwg
MzIpOworfQorCiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>