<?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>106854</bug_id>
          
          <creation_ts>2013-01-14 18:50:10 -0800</creation_ts>
          <short_desc>Generalize DocumentWeakReference into WTF::WeakPtr</short_desc>
          <delta_ts>2013-01-16 04:34:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>levin+threading</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>806879</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-14 18:50:10 -0800</bug_when>
    <thetext>Generalize DocumentWeakReference into WTF::WeakPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806885</commentid>
    <comment_count>1</comment_count>
      <attachid>182679</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-14 19:00:04 -0800</bug_when>
    <thetext>Created attachment 182679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806940</commentid>
    <comment_count>2</comment_count>
      <attachid>182679</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-14 20:58:03 -0800</bug_when>
    <thetext>Comment on attachment 182679
Patch

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

Looks reasonable to me.  You should probably wait for others to wake and comment since we&apos;re adding something to WTF and thus might want a bit broader consensus. :)

&gt; Source/WebCore/dom/Document.cpp:4786
&gt; -    RefPtr&lt;DocumentWeakReference&gt; documentReference;
&gt; +    WeakPtr&lt;Document&gt; documentRef;

I&apos;m not sure why you changed the variable name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806981</commentid>
    <comment_count>3</comment_count>
      <attachid>182701</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-14 22:06:21 -0800</bug_when>
    <thetext>Created attachment 182701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806982</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-14 22:07:12 -0800</bug_when>
    <thetext>This updated version is basically the same, but with some ASSERTs to make sure that the functions are called on the right thread.  (I&apos;ve also improved some of the names slightly.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807401</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-15 10:00:08 -0800</bug_when>
    <thetext>&gt; You should probably wait for others to wake and comment

Some of the people likely to comment read webkit-dev more frequently than bugmail, so e-mailing the list could be helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807404</commentid>
    <comment_count>6</comment_count>
      <attachid>182701</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-15 10:03:02 -0800</bug_when>
    <thetext>Comment on attachment 182701
Patch

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

&gt; Source/WTF/ChangeLog:37
&gt; +        (WeakPtr):

prepare-ChangeLog puts these kinds of bogus lines in. I suggest you take them out.

&gt; Source/WTF/wtf/WeakPtr.h:40
&gt; +class WeakReference : public ThreadSafeRefCounted&lt;WeakReference&lt;T&gt; &gt; {

It seems a little inconsistent to use ThreadSafeRefCounted here when we use the non-thread-safe RefCounted class by default in so many other places in WebKit. It’s almost arbitrary that we chose the thread safe version here. Obviously, going forward it would be nice if we could use the thread-safe version more and maybe phase out the single-threaded-only version some day if we can deal with the performance issues that caused us to make that one. Maybe RefCounted needs to be renamed to something else and ThreadSafeRefCounted should get the short name.

&gt; Source/WTF/wtf/WeakPtr.h:79
&gt; +    ALWAYS_INLINE WeakPtr() : m_impl(0) { }

I don’t think this line of code is needed at all. The default constructor will already initialize m_impl to 0 and I am pretty sure this will get inlined. Normally we wait to use ALWAYS_INLINE and only use it if we find that some compiler isn’t inlining as desired.

&gt; Source/WTF/wtf/WeakPtr.h:80
&gt; +    explicit WeakPtr(PassRefPtr&lt;Internal::WeakReference&lt;T&gt; &gt; impl) : m_impl(impl) { }

Seems unnecessary to make this constructor explicit, harmless to do this any time as a type conversion.

&gt; Source/WTF/wtf/WeakPtr.h:96
&gt; +    explicit WeakPtrFactory(T* ptr) { m_impl = Internal::WeakReference&lt;T&gt;::create(ptr); }
&gt; +    ~WeakPtrFactory() { m_impl-&gt;clear(); }
&gt; +
&gt; +    WeakPtr&lt;T&gt; createWeakPtr() { return WeakPtr&lt;T&gt;(m_impl); }

Some clients might want the version that creates the WeakReference the first time createWeakPtr is called instead of in the constructor.

&gt; Source/WTF/wtf/WeakPtr.h:102
&gt; +template&lt;typename T, typename U&gt; inline bool operator==(const WeakPtr&lt;T&gt;&amp; a, const WeakPtr&lt;U&gt;&amp; b)

Reading this makes me realize our existing strategy on our smart pointer types and == is kind of weak. Lots of people end up doing get() when they want to do == or != even though they don’t have to. And since WeakPtr can be combined with OwnPtr or RefPtr, we don’t have the == and != operators that allow mixing the different pointer types. I think we could consider not bothering with the overloading and just letting people do get() when they want to compare the pointers. Or find a more complete way to do the overloading that works with various combinations of smart pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807587</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-15 12:46:06 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 182701 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182701&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:37
&gt; &gt; +        (WeakPtr):
&gt; 
&gt; prepare-ChangeLog puts these kinds of bogus lines in. I suggest you take them out.

Fixed.

&gt; &gt; Source/WTF/wtf/WeakPtr.h:40
&gt; &gt; +class WeakReference : public ThreadSafeRefCounted&lt;WeakReference&lt;T&gt; &gt; {
&gt; 
&gt; It seems a little inconsistent to use ThreadSafeRefCounted here when we use the non-thread-safe RefCounted class by default in so many other places in WebKit. It’s almost arbitrary that we chose the thread safe version here. Obviously, going forward it would be nice if we could use the thread-safe version more and maybe phase out the single-threaded-only version some day if we can deal with the performance issues that caused us to make that one. Maybe RefCounted needs to be renamed to something else and ThreadSafeRefCounted should get the short name.

The main use case we have for this class is cross-thread messaging where you want to send a message to an object on another thread but that object might be destroyed before the message arrives.  (That&apos;s what DocumentWeakReference was used for prior to this patch.)

&gt; &gt; Source/WTF/wtf/WeakPtr.h:79
&gt; &gt; +    ALWAYS_INLINE WeakPtr() : m_impl(0) { }
&gt; 
&gt; I don’t think this line of code is needed at all. The default constructor will already initialize m_impl to 0 and I am pretty sure this will get inlined. Normally we wait to use ALWAYS_INLINE and only use it if we find that some compiler isn’t inlining as desired.

Fixed.

&gt; &gt; Source/WTF/wtf/WeakPtr.h:80
&gt; &gt; +    explicit WeakPtr(PassRefPtr&lt;Internal::WeakReference&lt;T&gt; &gt; impl) : m_impl(impl) { }
&gt; 
&gt; Seems unnecessary to make this constructor explicit, harmless to do this any time as a type conversion.

Fixed.

&gt; &gt; Source/WTF/wtf/WeakPtr.h:96
&gt; &gt; +    explicit WeakPtrFactory(T* ptr) { m_impl = Internal::WeakReference&lt;T&gt;::create(ptr); }
&gt; &gt; +    ~WeakPtrFactory() { m_impl-&gt;clear(); }
&gt; &gt; +
&gt; &gt; +    WeakPtr&lt;T&gt; createWeakPtr() { return WeakPtr&lt;T&gt;(m_impl); }
&gt; 
&gt; Some clients might want the version that creates the WeakReference the first time createWeakPtr is called instead of in the constructor.

Yes, that&apos;s true.  I&apos;ll add a comment to that effect so that future contributors can add that the first time its needed.

&gt; &gt; Source/WTF/wtf/WeakPtr.h:102
&gt; &gt; +template&lt;typename T, typename U&gt; inline bool operator==(const WeakPtr&lt;T&gt;&amp; a, const WeakPtr&lt;U&gt;&amp; b)
&gt; 
&gt; Reading this makes me realize our existing strategy on our smart pointer types and == is kind of weak. Lots of people end up doing get() when they want to do == or != even though they don’t have to. And since WeakPtr can be combined with OwnPtr or RefPtr, we don’t have the == and != operators that allow mixing the different pointer types. I think we could consider not bothering with the overloading and just letting people do get() when they want to compare the pointers. Or find a more complete way to do the overloading that works with various combinations of smart pointers.

Ok.  These aren&apos;t used anyway, so I&apos;ve removed them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807617</commentid>
    <comment_count>8</comment_count>
      <attachid>182835</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-15 13:03:09 -0800</bug_when>
    <thetext>Created attachment 182835
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807644</commentid>
    <comment_count>9</comment_count>
      <attachid>182835</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 13:36:34 -0800</bug_when>
    <thetext>Comment on attachment 182835
Patch for landing

Clearing flags on attachment: 182835

Committed r139780: &lt;http://trac.webkit.org/changeset/139780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807645</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 13:36:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808272</commentid>
    <comment_count>11</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-01-16 04:34:56 -0800</bug_when>
    <thetext>Thanks so much for working on this, Adam!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182679</attachid>
            <date>2013-01-14 19:00:04 -0800</date>
            <delta_ts>2013-01-14 22:06:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106854-20130114185705.patch</filename>
            <type>text/plain</type>
            <size>17343</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhMTc5OWY0YjRhNWM2Y2MwMWUxNjAx
NjhiNGM1OGJiZTI0YWE2ZWIuLmE1ZmViODY1ZGUzZGU0ZDcyNThkNjkwOGUzOTVjZDI1YTE2YmZj
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDEtMTQgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBHZW5lcmFsaXplIERvY3VtZW50V2Vha1JlZmVyZW5jZSBp
bnRvIFdURjo6V2Vha1B0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA2ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgc2ltcGxlIFdlYWtQdHIgb2JqZWN0IHRvIFdURi4g
VG8gdXNlIFdlYWtQdHIsIG9iamVjdHMKKyAgICAgICAgbXVzdCBob2xkIGEgV2Vha1B0ckZhY3Rv
cnkgbWVtYmVyIHZhcmlhYmxlLCB3aGljaCBjbGVhcnMgdGhlIFdlYWtQdHJzCisgICAgICAgIHdo
ZW4gdGhlIG9iamVjdCBpcyBkZXN0cnVjdGVkLiBUaGUgdW5kZXJseWluZyBzdG9yYWdlIGlzIGEK
KyAgICAgICAgVGhyZWFkU2FmZVJlZkNvdW50ZWQgImltcGwiIG9iamVjdCwgd2hpY2ggaXMgc2hh
cmVkIGJ5IGFsbCB0aGUKKyAgICAgICAgV2Vha1B0cnMuCisKKyAgICAgICAgV2Vha1B0ciBpcyBh
IGdlbmVyYWxpemF0aW9uIG9mIERvY3VtZW50V2Vha1JlZmVyZW5jZSwgd2hpY2ggaXMgdXNlZCB0
bworICAgICAgICBjaGVjayB3aGV0aGVyIHRoZSBEb2N1bWVudCBvYmplY3QgaXMgYWxpdmUgd2hl
biB0YXNrcyBhcml2ZSBvbiB0aGUgbWFpbgorICAgICAgICB0aHJlYWQgZnJvbSB3b3JrZXIgdGhy
ZWFkcy4gV2UgcGxhbiB0byB1c2UgYSBzaW1pbGFyIHBhdHRlcm4gaW4gdGhlCisgICAgICAgIHRo
cmVhZGVkIEhUTUwgcGFyc2VyLCBidXQgd2Ugd2FudCB0byBzZW5kIHRhc2tzIHRvIG9iamVjdHMg
b3RoZXIgdGhhbgorICAgICAgICBEb2N1bWVudC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAg
KiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9X
ZWFrUHRyLmg6IEFkZGVkLgorICAgICAgICAoV2Vha1B0ckltcGwpOgorICAgICAgICAgICAgLSBU
aGUgVGhyZWFkU2FmZVJlZkNvdW50ZWQgb2JqZWN0IHNoYXJlZCBieSBhbGwgdGhlIFdlYWtQdHIK
KyAgICAgICAgICAgICAgaW5zdGFuY2VzLiBUaGlzIHBhdGNoIHVzZXMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgICAgICAgdXNlIFdlYWtQdHJzIHRvIGNhbmNl
bCBjcm9zcy10aHJlYWQgbWVzc2FnZXMuCisgICAgICAgIChXVEY6OldlYWtQdHJJbXBsOjpjcmVh
dGUpOgorICAgICAgICAoV1RGOjpXZWFrUHRySW1wbDo6Z2V0KToKKyAgICAgICAgKFdURjo6V2Vh
a1B0ckltcGw6OmNsZWFyKToKKyAgICAgICAgICAgIC0gV2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ry
b3llZCwgV2Vha1B0ckZhY3RvcnkgY2FsbHMgdGhpcyBmdW5jdGlvbgorICAgICAgICAgICAgICB0
byBjbGVhciBhbGwgdGhlIFdlYWtQdHJzLgorICAgICAgICAoV1RGOjpXZWFrUHRySW1wbDo6V2Vh
a1B0ckltcGwpOgorICAgICAgICAoV2Vha1B0cik6CisgICAgICAgIChXVEY6OldlYWtQdHI6Oldl
YWtQdHIpOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpnZXQpOgorICAgICAgICAgICAgLSBXZSBt
aWdodCB3YW50IHRvIGFkZCBpbXBsaWNpdCBjb252ZXJzaW9ucyBhbmQgQm9vbGVhbiBvcGVyYXRv
cnMKKyAgICAgICAgICAgICAgaW4gdGhlIGZ1dHVyZSwgYnV0IEkndmUga2VwdCB0aGlzIGNsYXNz
IHNpbXBsZSBmb3Igbm93LgorICAgICAgICAoV2Vha1B0ckZhY3RvcnkpOgorICAgICAgICAoV1RG
OjpXZWFrUHRyRmFjdG9yeTo6V2Vha1B0ckZhY3RvcnkpOgorICAgICAgICAoV1RGOjpXZWFrUHRy
RmFjdG9yeTo6fldlYWtQdHJGYWN0b3J5KToKKyAgICAgICAgKFdURjo6V2Vha1B0ckZhY3Rvcnk6
OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAoV1RGOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdU
Rjo6b3BlcmF0b3IhPSk6CisKIDIwMTMtMDEtMTIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgX19zeW5jX2FkZF9hbmRfZmV0Y2ggaW5zdGVhZCBv
ZiBfX2dudV9jeHg6Ol9fZXhjaGFuZ2VfYW5kX2FkZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE1MDQ0Y2VmODhk
ZDFjMTI2YTJkM2Y5ZDg4NDkwNDBlODM1ZTc3NjcuLjI1MzA3NGVmNWQxMDYyYTAzNzQ0Njk2NThi
YmJlYmZhN2QxYjI5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMS0xNCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEdlbmVyYWxpemUgRG9j
dW1lbnRXZWFrUmVmZXJlbmNlIGludG8gV1RGOjpXZWFrUHRyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY4NTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIERvY3VtZW50
V2Vha1JlZmVyZW5jZSB3aXRoIFdlYWtQdHIuIFRoZXJlIHNob3VsZCBiZQorICAgICAgICBubyBj
aGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQ
ZXJmb3JtVGFza0NvbnRleHQ6OlBlcmZvcm1UYXNrQ29udGV4dCk6CisgICAgICAgIChQZXJmb3Jt
VGFza0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZFJlY2VpdmVUYXNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwb3N0VGFzayk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEb2N1bWVudCk6CisKIDIwMTMtMDEt
MTQgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVk
aWFTdHJlYW0gQVBJOiBVcGRhdGUgdGhlIHRyYWNrIGFjY2Vzc29ycyBvbiBNZWRpYVN0cmVhbSB0
byBtYXRjaCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCA3MjUyYjM1NTIzZjlmM2QxOGZmM2VlODJlMGUwNjA0MTE5MTA3ZmJjLi4xODcwODFmYWY2M2I5
YWE2M2I3MWE1MjYwZmRjZjMwMjRhZTMzNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0x
OTMsNiArMTkzLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL1ZlY3Rv
clRyYWl0cy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9XVEZUaHJlYWREYXRhLmNwcCBcCiAgICAg
U291cmNlL1dURi93dGYvV1RGVGhyZWFkRGF0YS5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9XZWFr
UHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL2R0b2EuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0
Zi9kdG9hLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL2R0b2EvYmlnbnVtLWR0b2EuY2MgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5kZXgg
NmNjM2I4YTNlMDM5YWI4MWFhZTg5YTI1ODc4ZTg2NThkMjljYzljMS4uNTMzNmUwOTY4MDk2Mjhl
NjI2ZjVmMGVmYmVjMjE3YWRlM2MwNjEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYuZ3lw
aQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC0xMTIsNiArMTEyLDcgQEAKICAgICAgICAg
ICAgICd3dGYvVmVjdG9yLmgnLAogICAgICAgICAgICAgJ3d0Zi9WZWN0b3JUcmFpdHMuaCcsCiAg
ICAgICAgICAgICAnd3RmL1dURlRocmVhZERhdGEuaCcsCisgICAgICAgICAgICAnd3RmL1dlYWtQ
dHIuaCcsCiAgICAgICAgICAgICAnd3RmL2R0b2EuaCcsCiAgICAgICAgICAgICAnd3RmL2R0b2Ev
YmlnbnVtLWR0b2EuaCcsCiAgICAgICAgICAgICAnd3RmL2R0b2EvYmlnbnVtLmgnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDM2NjE5
NGJiZDMyYjk4ZjRkN2RiZDJhMTg0OTg5MDQ3ZGNlY2UzNjYuLmM5MjljNjgxNmFlZDZkNWZkN2Nk
YzkzYzVlNDlmMzljMDU2ZmRhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysg
Yi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE4OCw3ICsxODgsOCBAQCBIRUFERVJTICs9IFwKICAg
ICBWZWN0b3IuaCBcCiAgICAgVmVjdG9yVHJhaXRzLmggXAogICAgIFZNVGFncy5oIFwKLSAgICBX
VEZUaHJlYWREYXRhLmgKKyAgICBXVEZUaHJlYWREYXRhLmggXAorICAgIFdlYWtQdHIuaAogCiB1
bml4OiBIRUFERVJTICs9IFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZj
cHJvai9XVEYudmNwcm9qCmluZGV4IGViYzgxOTRhZDBhNTZmNWI1ODI2NDYwMDFjOGJiNTMzMzY5
NTRmMzguLmY3M2I2ZmQ5ZTExNTM4ZmViZTQ4OTg4ZDhlMWQ1MTY2YWI2NWY5OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RG
LnZjcHJvai9XVEYudmNwcm9qCkBAIC0xMzI4LDYgKzEzMjgsMTAgQEAKIAkJCVJlbGF0aXZlUGF0
aD0iLi5cd3RmXFdURlRocmVhZERhdGEuaCIKIAkJCT4KIAkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlx3dGZcV2Vha1B0ci5oIgorCQkJPgorCQk8L0ZpbGU+CiAJPC9GaWxl
cz4KIAk8R2xvYmFscz4KIAk8L0dsb2JhbHM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAwNjFlY2M3YzBkYmQ5ZGYyNjdlMjI0ODU5M2I3OGNhY2IzODJmZDUz
Li45OTlmNGM5ZWEwMDBlYjlhOWUyYTE4MmYwODU1NjMyMjMzODc4Y2ZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcyLDYgKzcyLDcgQEAKIAkJN0UyOUMz
M0UxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTI5QzMzRDE1RkZENzlCMDA1MTZENjEg
LyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLzsgfTsKIAkJODEzNDAxMzgxNUIwOTJGRDAwMUZGMEI4
IC8qIEJhc2U2NC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MTM0MDEzNjE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmNwcCAqLzsgfTsKIAkJODEz
NDAxMzkxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEzNDAxMzcxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2
NC5oICovOyB9OworCQk5NzRDRkM4RTE2QTRGMzI3MDA2RDU0MDQgLyogV2Vha1B0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0Q0ZDOEQxNkE0RjMy
NzAwNkQ1NDA0IC8qIFdlYWtQdHIuaCAqLzsgfTsKIAkJQTg3NkRCRDgxNTE4MTZFNTAwREFEQjk1
IC8qIFBsYXRmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODc2REJENzE1MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0uaCAqLzsgfTsKIAkJQThB
NDczN0YxNTFBODI1QjAwNDEyM0ZGIC8qIEFsaWdubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyNTQxNTFBODI1QTAwNDEyM0ZGIC8qIEFs
aWdubWVudC5oICovOyB9OwogCQlBOEE0NzM4MDE1MUE4MjVCMDA0MTIzRkYgLyogQWx3YXlzSW5s
aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzI1NTE1MUE4MjVBMDA0MTIzRkYgLyogQWx3YXlzSW5saW5lLmggKi87IH07CkBAIC0zNzksNiAr
MzgwLDcgQEAKIAkJN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9iamNSdW50aW1lRXh0cmFzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxMzQwMTM2MTVCMDkyRkQwMDFGRjBCOCAv
KiBCYXNlNjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFzZTY0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODEzNDAxMzcxNUIwOTJGRDAwMUZG
MEI4IC8qIEJhc2U2NC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlNjQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0Q0ZDOEQxNkE0RjMyNzAwNkQ1NDA0
IC8qIFdlYWtQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vha1B0ci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc2REJENzE1MTgxNkU1MDBEQURCOTUg
LyogUGxhdGZvcm0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyNTQxNTFBODI1QTAwNDEyM0ZG
IC8qIEFsaWdubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbGlnbm1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyNTUxNTFBODI1QTAwNDEy
M0ZGIC8qIEFsd2F5c0lubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
bHdheXNJbmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg3Niw2ICs4Nzgs
NyBAQAogCQkJCUE4QTQ3MzcwMTUxQTgyNUIwMDQxMjNGRiAvKiBWZWN0b3IuaCAqLywKIAkJCQlB
OEE0NzM3MTE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yVHJhaXRzLmggKi8sCiAJCQkJQThBNDcz
NzIxNTFBODI1QjAwNDEyM0ZGIC8qIFZNVGFncy5oICovLAorCQkJCTk3NENGQzhEMTZBNEYzMjcw
MDZENTQwNCAvKiBXZWFrUHRyLmggKi8sCiAJCQkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuY3BwICovLAogCQkJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBX
VEZUaHJlYWREYXRhLmggKi8sCiAJCQkpOwpAQCAtMTI1MCw2ICsxMjUzLDcgQEAKIAkJCQlBOEE0
NzQ3RTE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzQ3RjE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yVHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQ4MDE1MUE4MjVCMDA0MTIzRkYgLyogVk1UYWdzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5NzRDRkM4RTE2QTRGMzI3MDA2RDU0MDQgLyogV2Vha1B0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNDJjMmRhZDU2ZTM2NjExYWY4
OGRiNjk1NjM0MjMyYjZkNmExYmUyMy4uYjQ4NDgzNmY4ODRhZDMwN2RlNWFkNWQ5OWEyYmRlYzhi
OGQ3MjRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTEyMiw2ICsxMjIsNyBAQCBzZXQoV1RG
X0hFQURFUlMKICAgICBWZWN0b3IuaAogICAgIFZlY3RvclRyYWl0cy5oCiAgICAgV1RGVGhyZWFk
RGF0YS5oCisgICAgV2Vha1B0ci5oCiAgICAgZHRvYS5oCiAKICAgICBkdG9hL2JpZ251bS1kdG9h
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCBiL1NvdXJjZS9XVEYvd3Rm
L1dlYWtQdHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzdkMDFjMzkwZGQ1ZWRlZGJjMTM0NTBiM2YwMjAxOGZh
NmVjOGU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCkBAIC0w
LDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSwgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdURl9XZWFrUHRyX2gKKyNkZWZpbmUgV1RGX1dlYWtQdHJfaAorCisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgV2Vh
a1B0ckltcGwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2Vha1B0ckltcGw8VD4gPiB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vha1B0ckltcGw8VD4pOworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYWtQdHJJ
bXBsPFQ+ID4gY3JlYXRlKFQqIHB0cikgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYWtQdHJJbXBs
KHB0cikpOyB9CisKKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQorICAgIHZv
aWQgY2xlYXIoKSB7IG1fcHRyID0gMDsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYWtQ
dHJJbXBsKFQqIHB0cikgOiBtX3B0cihwdHIpIHsgfQorCisgICAgVCogbV9wdHI7Cit9OworCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgV2Vha1B0ciB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgQUxXQVlTX0lOTElORSBXZWFrUHRyKCkgOiBtX2ltcGwo
MCkgeyB9CisgICAgZXhwbGljaXQgV2Vha1B0cihQYXNzUmVmUHRyPFdlYWtQdHJJbXBsPFQ+ID4g
aW1wbCkgOiBtX2ltcGwoaW1wbCkgeyB9CisKKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBt
X2ltcGwtPmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPFdlYWtQdHJJbXBsPFQ+ID4g
bV9pbXBsOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIFdlYWtQdHJGYWN0b3J5
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUHRyRmFjdG9yeTxUPik7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgV2Vha1B0ckZhY3Rv
cnkoVCogcHRyKSB7IG1faW1wbCA9IFdlYWtQdHJJbXBsPFQ+OjpjcmVhdGUocHRyKTsgfQorICAg
IH5XZWFrUHRyRmFjdG9yeSgpIHsgbV9pbXBsLT5jbGVhcigpOyB9CisKKyAgICBXZWFrUHRyPFQ+
IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBXZWFrUHRyPFQ+KG1faW1wbCk7IH0KKworcHJpdmF0
ZToKKyAgICBSZWZQdHI8V2Vha1B0ckltcGw8VD4gPiBtX2ltcGw7Cit9OworCit0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYWtQ
dHI8VD4mIGEsIGNvbnN0IFdlYWtQdHI8VT4mIGIpCit7IAorICAgIHJldHVybiBhLmdldCgpID09
IGIuZ2V0KCk7IAorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYWtQdHI8VD4mIGEsIFUqIGIpCit7IAorICAgIHJldHVy
biBhLmdldCgpID09IGI7IAorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBp
bmxpbmUgYm9vbCBvcGVyYXRvcj09KFQqIGEsIGNvbnN0IFdlYWtQdHI8VT4mIGIpIAoreworICAg
IHJldHVybiBhID09IGIuZ2V0KCk7IAorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFdlYWtQdHI8VD4mIGEsIGNvbnN0IFdl
YWtQdHI8VT4mIGIpCit7IAorICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0KCk7IAorfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFdlYWtQdHI8VD4mIGEsIFUqIGIpCit7CisgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYjsgCit9
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9y
IT0oVCogYSwgY29uc3QgV2Vha1B0cjxVPiYgYikKK3sgCisgICAgcmV0dXJuIGEgIT0gYi5nZXQo
KTsgCit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OldlYWtQdHI7Cit1c2lu
ZyBXVEY6OldlYWtQdHJGYWN0b3J5OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGY4NTlkZWE3MjkzMDBiOWIxZGVkYjg2OGIzMmJhMTNiZWM3NDhjZTUuLmY5ZDliYTk0NzU1
OTViODg1ZGMzM2VlNzZjODI3MDgyMGM1NjExMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtNDA0LDM1ICs0MDQsNiBAQCBzdGF0aWMgdm9pZCBwcmludE5hdmlnYXRpb25FcnJvck1lc3Nh
Z2UoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiBhY3RpdmVVUkwsIGNvbgogCiBzdGF0aWMgSGFz
aFNldDxEb2N1bWVudCo+KiBkb2N1bWVudHNUaGF0TmVlZFN0eWxlUmVjYWxjID0gMDsKIAotY2xh
c3MgRG9jdW1lbnRXZWFrUmVmZXJlbmNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERv
Y3VtZW50V2Vha1JlZmVyZW5jZT4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERv
Y3VtZW50V2Vha1JlZmVyZW5jZT4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRG9jdW1lbnRXZWFrUmVmZXJlbmNlKGRvY3VtZW50
KSk7Ci0gICAgfQotCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50KCkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIHJldHVybiBtX2RvY3VtZW50OwotICAgIH0K
LQotICAgIHZvaWQgY2xlYXIoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKLSAgICAgICAgbV9kb2N1bWVudCA9IDA7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIERvY3Vt
ZW50V2Vha1JlZmVyZW5jZShEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgICAgIDogbV9kb2N1bWVu
dChkb2N1bWVudCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
fQotCi0gICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7Ci19OwotCiB1aW50NjRfdCBEb2N1bWVudDo6
c19nbG9iYWxUcmVlVmVyc2lvbiA9IDA7CiAKIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJh
bWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKQEAgLTQ4MSw3
ICs0NTIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX2lzU3JjZG9jRG9jdW1lbnQo
ZmFsc2UpCiAgICAgLCBtX3JlbmRlcmVyKDApCiAgICAgLCBtX2V2ZW50UXVldWUoRG9jdW1lbnRF
dmVudFF1ZXVlOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3dlYWtSZWZlcmVuY2UoRG9jdW1lbnRX
ZWFrUmVmZXJlbmNlOjpjcmVhdGUodGhpcykpCisgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAg
ICAgLCBtX2lkQXR0cmlidXRlTmFtZShpZEF0dHIpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgICwgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbigwKQpAQCAtNjU3LDggKzYyOCw2
IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgIGlmIChtX2VsZW1TaGVldCkKICAgICAgICAg
bV9lbGVtU2hlZXQtPmNsZWFyT3duZXJOb2RlKCk7CiAKLSAgICBtX3dlYWtSZWZlcmVuY2UtPmNs
ZWFyKCk7Ci0KICAgICBjbGVhclN0eWxlUmVzb2x2ZXIoKTsgLy8gV2UgbmVlZCB0byBkZXN0b3J5
IENTU0ZvbnRTZWxlY3RvciBiZWZvcmUgZGVzdHJveWluZyBtX2NhY2hlZFJlc291cmNlTG9hZGVy
LgogCiAgICAgLy8gSXQncyBwb3NzaWJsZSBmb3IgbXVsdGlwbGUgRG9jdW1lbnRzIHRvIGVuZCB1
cCByZWZlcmVuY2luZyB0aGUgc2FtZSBDYWNoZWRSZXNvdXJjZUxvYWRlciAoZS5nLiwgU1ZHSW1h
Z2VzCkBAIC00ODA4LDEzICs0Nzc3LDEzIEBAIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nCiBzdHJ1
Y3QgUGVyZm9ybVRhc2tDb250ZXh0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQZXJmb3Jt
VGFza0NvbnRleHQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBQZXJm
b3JtVGFza0NvbnRleHQoUGFzc1JlZlB0cjxEb2N1bWVudFdlYWtSZWZlcmVuY2U+IGRvY3VtZW50
UmVmZXJlbmNlLCBQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2sp
Ci0gICAgICAgIDogZG9jdW1lbnRSZWZlcmVuY2UoZG9jdW1lbnRSZWZlcmVuY2UpCisgICAgUGVy
Zm9ybVRhc2tDb250ZXh0KFdlYWtQdHI8RG9jdW1lbnQ+IGRvY3VtZW50UmVmLCBQYXNzT3duUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2spCisgICAgICAgIDogZG9jdW1lbnRS
ZWYoZG9jdW1lbnRSZWYpCiAgICAgICAgICwgdGFzayh0YXNrKQogICAgIHsKICAgICB9CiAKLSAg
ICBSZWZQdHI8RG9jdW1lbnRXZWFrUmVmZXJlbmNlPiBkb2N1bWVudFJlZmVyZW5jZTsKKyAgICBX
ZWFrUHRyPERvY3VtZW50PiBkb2N1bWVudFJlZjsKICAgICBPd25QdHI8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6VGFzaz4gdGFzazsKIH07CiAKQEAgLTQ4MjUsNyArNDc5NCw3IEBAIHZvaWQgRG9j
dW1lbnQ6OmRpZFJlY2VpdmVUYXNrKHZvaWQqIHVudHlwZWRDb250ZXh0KQogICAgIE93blB0cjxQ
ZXJmb3JtVGFza0NvbnRleHQ+IGNvbnRleHQgPSBhZG9wdFB0cihzdGF0aWNfY2FzdDxQZXJmb3Jt
VGFza0NvbnRleHQqPih1bnR5cGVkQ29udGV4dCkpOwogICAgIEFTU0VSVChjb250ZXh0KTsKIAot
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHQtPmRvY3VtZW50UmVmZXJlbmNlLT5kb2N1
bWVudCgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHQtPmRvY3VtZW50UmVmLmdl
dCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDg0MCw3ICs0
ODA5LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlkUmVjZWl2ZVRhc2sodm9pZCogdW50eXBlZENvbnRl
eHQpCiAKIHZvaWQgRG9jdW1lbnQ6OnBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4gdGFzaykKIHsK
LSAgICBjYWxsT25NYWluVGhyZWFkKGRpZFJlY2VpdmVUYXNrLCBuZXcgUGVyZm9ybVRhc2tDb250
ZXh0KG1fd2Vha1JlZmVyZW5jZSwgdGFzaykpOworICAgIGNhbGxPbk1haW5UaHJlYWQoZGlkUmVj
ZWl2ZVRhc2ssIG5ldyBQZXJmb3JtVGFza0NvbnRleHQobV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCksIHRhc2spKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJGaXJl
ZChUaW1lcjxEb2N1bWVudD4qKQpAQCAtNTk5Miw3ICs1OTYxLDcgQEAgdm9pZCBEb2N1bWVudDo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKICNlbmRpZgogICAgIGluZm8uYWRkTWVtYmVyKG1fc2VsZWN0b3JRdWVyeUNhY2hlKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3JlbmRlcmVyKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3dlYWtS
ZWZlcmVuY2UpOworICAgIGluZm8uYWRkTWVtYmVyKG1fd2Vha0ZhY3RvcnkpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1faWRBdHRyaWJ1dGVOYW1lKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgaW5mby5hZGRNZW1iZXIobV9mdWxsU2NyZWVuRWxlbWVudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGE5YzU5ODY2NTQ4OGJiNDkwNWYyYjM3N2ZlNjM2YThhODdlYTQwYzAuLmYyNWMz
NDdmOTQwOTcxNmY4MDViNWQxNjMyZGI5YmVlZjUyN2E4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgxLDcgKzgyLDYgQEAg
Y2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2w7CiBj
bGFzcyBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOwogY2xhc3MgRG9jdW1lbnRUeXBlOwot
Y2xhc3MgRG9jdW1lbnRXZWFrUmVmZXJlbmNlOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEVudGl0
eVJlZmVyZW5jZTsKIGNsYXNzIEV2ZW50OwpAQCAtMTQ3NSw3ICsxNDc1LDcgQEAgcHJpdmF0ZToK
ICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CiAgICAgUmVmUHRyPERvY3VtZW50RXZlbnRR
dWV1ZT4gbV9ldmVudFF1ZXVlOwogCi0gICAgUmVmUHRyPERvY3VtZW50V2Vha1JlZmVyZW5jZT4g
bV93ZWFrUmVmZXJlbmNlOworICAgIFdlYWtQdHJGYWN0b3J5PERvY3VtZW50PiBtX3dlYWtGYWN0
b3J5OwogCiAgICAgSGFzaFNldDxNZWRpYUNhblN0YXJ0TGlzdGVuZXIqPiBtX21lZGlhQ2FuU3Rh
cnRMaXN0ZW5lcnM7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182701</attachid>
            <date>2013-01-14 22:06:21 -0800</date>
            <delta_ts>2013-01-15 13:03:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106854-20130114220321.patch</filename>
            <type>text/plain</type>
            <size>17781</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhMTc5OWY0YjRhNWM2Y2MwMWUxNjAx
NjhiNGM1OGJiZTI0YWE2ZWIuLmJiYmZiOTY4ZTgwZTdhMjE3MzQ0Mzc5NTZkNDlmYmQ5MzM2MWRl
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTMtMDEtMTQgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBHZW5lcmFsaXplIERvY3VtZW50V2Vha1JlZmVyZW5jZSBp
bnRvIFdURjo6V2Vha1B0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA2ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgc2ltcGxlIFdlYWtQdHIgb2JqZWN0IHRvIFdURi4g
VG8gdXNlIFdlYWtQdHIsIG9iamVjdHMKKyAgICAgICAgbXVzdCBob2xkIGEgV2Vha1B0ckZhY3Rv
cnkgbWVtYmVyIHZhcmlhYmxlLCB3aGljaCBjbGVhcnMgdGhlIFdlYWtQdHJzCisgICAgICAgIHdo
ZW4gdGhlIG9iamVjdCBpcyBkZXN0cnVjdGVkLiBUaGUgdW5kZXJseWluZyBzdG9yYWdlIGlzIGEK
KyAgICAgICAgVGhyZWFkU2FmZVJlZkNvdW50ZWQgIldlYWtSZWZlcmVuY2UiIG9iamVjdCwgd2hp
Y2ggaXMgc2hhcmVkIGJ5IGFsbCB0aGUKKyAgICAgICAgV2Vha1B0cnMuCisKKyAgICAgICAgV2Vh
a1B0ciBpcyBhIGdlbmVyYWxpemF0aW9uIG9mIERvY3VtZW50V2Vha1JlZmVyZW5jZSwgd2hpY2gg
aXMgdXNlZCB0bworICAgICAgICBjaGVjayB3aGV0aGVyIHRoZSBEb2N1bWVudCBvYmplY3QgaXMg
YWxpdmUgd2hlbiB0YXNrcyBhcml2ZSBvbiB0aGUgbWFpbgorICAgICAgICB0aHJlYWQgZnJvbSB3
b3JrZXIgdGhyZWFkcy4gV2UgcGxhbiB0byB1c2UgYSBzaW1pbGFyIHBhdHRlcm4gaW4gdGhlCisg
ICAgICAgIHRocmVhZGVkIEhUTUwgcGFyc2VyLCBidXQgd2Ugd2FudCB0byBzZW5kIHRhc2tzIHRv
IG9iamVjdHMgb3RoZXIgdGhhbgorICAgICAgICBEb2N1bWVudC4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoK
KyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIHd0Zi9XZWFrUHRyLmg6IEFkZGVkLgorICAgICAgICAoV2Vha1JlZmVyZW5jZSk6CisgICAg
ICAgICAgICAtIFRoZSBUaHJlYWRTYWZlUmVmQ291bnRlZCBvYmplY3Qgc2hhcmVkIGJ5IGFsbCB0
aGUgV2Vha1B0cgorICAgICAgICAgICAgICBpbnN0YW5jZXMuIFRoaXMgcGF0Y2ggdXNlcyBUaHJl
YWRTYWZlUmVmQ291bnRlZCBzbyB0aGF0IHdlIGNhbgorICAgICAgICAgICAgICB1c2UgV2Vha1B0
cnMgdG8gY2FuY2VsIGNyb3NzLXRocmVhZCBtZXNzYWdlcy4KKyAgICAgICAgKFdURjo6V2Vha1Jl
ZmVyZW5jZTo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6V2Vha1JlZmVyZW5jZTo6Z2V0KToKKyAg
ICAgICAgKFdURjo6V2Vha1JlZmVyZW5jZTo6Y2xlYXIpOgorICAgICAgICAgICAgLSBXaGVuIHRo
ZSBvYmplY3QgaXMgZGVzdHJveWVkLCBXZWFrUHRyRmFjdG9yeSBjYWxscyB0aGlzIGZ1bmN0aW9u
CisgICAgICAgICAgICAgIHRvIGNsZWFyIGFsbCB0aGUgV2Vha1B0cnMuCisgICAgICAgIChXVEY6
OldlYWtSZWZlcmVuY2U6OldlYWtSZWZlcmVuY2UpOgorICAgICAgICAoV2Vha1B0cik6CisgICAg
ICAgIChXVEY6OldlYWtQdHI6OldlYWtQdHIpOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpnZXQp
OgorICAgICAgICAgICAgLSBXZSBtaWdodCB3YW50IHRvIGFkZCBpbXBsaWNpdCBjb252ZXJzaW9u
cyBhbmQgQm9vbGVhbiBvcGVyYXRvcnMKKyAgICAgICAgICAgICAgaW4gdGhlIGZ1dHVyZSwgYnV0
IEkndmUga2VwdCB0aGlzIGNsYXNzIHNpbXBsZSBmb3Igbm93LgorICAgICAgICAoV2Vha1B0ckZh
Y3RvcnkpOgorICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6V2Vha1B0ckZhY3RvcnkpOgor
ICAgICAgICAoV1RGOjpXZWFrUHRyRmFjdG9yeTo6fldlYWtQdHJGYWN0b3J5KToKKyAgICAgICAg
KFdURjo6V2Vha1B0ckZhY3Rvcnk6OmNyZWF0ZVdlYWtQdHIpOgorICAgICAgICAoV1RGOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKFdURjo6b3BlcmF0b3IhPSk6CisKIDIwMTMtMDEtMTIgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgX19zeW5jX2Fk
ZF9hbmRfZmV0Y2ggaW5zdGVhZCBvZiBfX2dudV9jeHg6Ol9fZXhjaGFuZ2VfYW5kX2FkZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDE1MDQ0Y2VmODhkZDFjMTI2YTJkM2Y5ZDg4NDkwNDBlODM1ZTc3NjcuLjI1MzA3
NGVmNWQxMDYyYTAzNzQ0Njk2NThiYmJlYmZhN2QxYjI5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNiBAQAorMjAxMy0wMS0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIEdlbmVyYWxpemUgRG9jdW1lbnRXZWFrUmVmZXJlbmNlIGludG8gV1RGOjpXZWFrUHRy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY4NTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIHJlcGxhY2VzIERvY3VtZW50V2Vha1JlZmVyZW5jZSB3aXRoIFdlYWtQdHIuIFRoZXJlIHNo
b3VsZCBiZQorICAgICAgICBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtVGFza0NvbnRleHQ6OlBlcmZvcm1UYXNrQ29udGV4
dCk6CisgICAgICAgIChQZXJmb3JtVGFza0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmRpZFJlY2VpdmVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwb3N0
VGFzayk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChE
b2N1bWVudCk6CisKIDIwMTMtMDEtMTQgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2ds
ZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBVcGRhdGUgdGhlIHRyYWNrIGFjY2Vz
c29ycyBvbiBNZWRpYVN0cmVhbSB0byBtYXRjaCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCA3MjUyYjM1NTIzZjlmM2QxOGZmM2VlODJlMGUwNjA0MTE5
MTA3ZmJjLi4xODcwODFmYWY2M2I5YWE2M2I3MWE1MjYwZmRjZjMwMjRhZTMzNTY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0xOTMsNiArMTkzLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAg
IFNvdXJjZS9XVEYvd3RmL1ZlY3RvclRyYWl0cy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9XVEZU
aHJlYWREYXRhLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvV1RGVGhyZWFkRGF0YS5oIFwKKyAg
ICBTb3VyY2UvV1RGL3d0Zi9XZWFrUHRyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL2R0b2EuY3Bw
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9kdG9hLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL2R0b2Ev
YmlnbnVtLWR0b2EuY2MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJj
ZS9XVEYvV1RGLmd5cGkKaW5kZXggNmNjM2I4YTNlMDM5YWI4MWFhZTg5YTI1ODc4ZTg2NThkMjlj
YzljMS4uNTMzNmUwOTY4MDk2MjhlNjI2ZjVmMGVmYmVjMjE3YWRlM2MwNjEzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC0xMTIs
NiArMTEyLDcgQEAKICAgICAgICAgICAgICd3dGYvVmVjdG9yLmgnLAogICAgICAgICAgICAgJ3d0
Zi9WZWN0b3JUcmFpdHMuaCcsCiAgICAgICAgICAgICAnd3RmL1dURlRocmVhZERhdGEuaCcsCisg
ICAgICAgICAgICAnd3RmL1dlYWtQdHIuaCcsCiAgICAgICAgICAgICAnd3RmL2R0b2EuaCcsCiAg
ICAgICAgICAgICAnd3RmL2R0b2EvYmlnbnVtLWR0b2EuaCcsCiAgICAgICAgICAgICAnd3RmL2R0
b2EvYmlnbnVtLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dU
Ri9XVEYucHJvCmluZGV4IDM2NjE5NGJiZDMyYjk4ZjRkN2RiZDJhMTg0OTg5MDQ3ZGNlY2UzNjYu
LmM5MjljNjgxNmFlZDZkNWZkN2NkYzkzYzVlNDlmMzljMDU2ZmRhZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE4OCw3ICsxODgs
OCBAQCBIRUFERVJTICs9IFwKICAgICBWZWN0b3IuaCBcCiAgICAgVmVjdG9yVHJhaXRzLmggXAog
ICAgIFZNVGFncy5oIFwKLSAgICBXVEZUaHJlYWREYXRhLmgKKyAgICBXVEZUaHJlYWREYXRhLmgg
XAorICAgIFdlYWtQdHIuaAogCiB1bml4OiBIRUFERVJTICs9IFRocmVhZElkZW50aWZpZXJEYXRh
UHRocmVhZHMuaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGViYzgxOTRhZDBhNTZm
NWI1ODI2NDYwMDFjOGJiNTMzMzY5NTRmMzguLmY3M2I2ZmQ5ZTExNTM4ZmViZTQ4OTg4ZDhlMWQ1
MTY2YWI2NWY5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9q
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC0xMzI4LDYgKzEzMjgs
MTAgQEAKIAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXFdURlRocmVhZERhdGEuaCIKIAkJCT4KIAkJ
PC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcV2Vha1B0ci5oIgorCQkJ
PgorCQk8L0ZpbGU+CiAJPC9GaWxlcz4KIAk8R2xvYmFscz4KIAk8L0dsb2JhbHM+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwNjFlY2M3YzBkYmQ5ZGYyNjdl
MjI0ODU5M2I3OGNhY2IzODJmZDUzLi45OTlmNGM5ZWEwMDBlYjlhOWUyYTE4MmYwODU1NjMyMjMz
ODc4Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcy
LDYgKzcyLDcgQEAKIAkJN0UyOUMzM0UxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0
cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTI5
QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLzsgfTsKIAkJODEz
NDAxMzgxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTM0MDEzNjE1QjA5MkZEMDAxRkYwQjggLyogQmFz
ZTY0LmNwcCAqLzsgfTsKIAkJODEzNDAxMzkxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEzNDAxMzcxNUIw
OTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5oICovOyB9OworCQk5NzRDRkM4RTE2QTRGMzI3MDA2RDU0
MDQgLyogV2Vha1B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTc0Q0ZDOEQxNkE0RjMyNzAwNkQ1NDA0IC8qIFdlYWtQdHIuaCAqLzsgfTsKIAkJQTg3
NkRCRDgxNTE4MTZFNTAwREFEQjk1IC8qIFBsYXRmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODc2REJENzE1MTgxNkU1MDBEQURCOTUgLyogUGxh
dGZvcm0uaCAqLzsgfTsKIAkJQThBNDczN0YxNTFBODI1QjAwNDEyM0ZGIC8qIEFsaWdubWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyNTQx
NTFBODI1QTAwNDEyM0ZGIC8qIEFsaWdubWVudC5oICovOyB9OwogCQlBOEE0NzM4MDE1MUE4MjVC
MDA0MTIzRkYgLyogQWx3YXlzSW5saW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI1NTE1MUE4MjVBMDA0MTIzRkYgLyogQWx3YXlzSW5saW5l
LmggKi87IH07CkBAIC0zNzksNiArMzgwLDcgQEAKIAkJN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYx
IC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE9iamNSdW50aW1lRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxMzQw
MTM2MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQmFzZTY0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODEzNDAxMzcxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCYXNlNjQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0
Q0ZDOEQxNkE0RjMyNzAwNkQ1NDA0IC8qIFdlYWtQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2Vha1B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc2
REJENzE1MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGxhdGZvcm0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDcyNTQxNTFBODI1QTAwNDEyM0ZGIC8qIEFsaWdubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBbGlnbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThBNDcyNTUxNTFBODI1QTAwNDEyM0ZGIC8qIEFsd2F5c0lubGluZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBbHdheXNJbmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTg3Niw2ICs4NzgsNyBAQAogCQkJCUE4QTQ3MzcwMTUxQTgyNUIwMDQxMjNGRiAv
KiBWZWN0b3IuaCAqLywKIAkJCQlBOEE0NzM3MTE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yVHJh
aXRzLmggKi8sCiAJCQkJQThBNDczNzIxNTFBODI1QjAwNDEyM0ZGIC8qIFZNVGFncy5oICovLAor
CQkJCTk3NENGQzhEMTZBNEYzMjcwMDZENTQwNCAvKiBXZWFrUHRyLmggKi8sCiAJCQkJQThBNDcz
N0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuY3BwICovLAogCQkJCUE4QTQ3MzdC
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8sCiAJCQkpOwpAQCAtMTI1MCw2
ICsxMjUzLDcgQEAKIAkJCQlBOEE0NzQ3RTE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzQ3RjE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yVHJhaXRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ4MDE1MUE4MjVCMDA0MTIzRkYgLyogVk1UYWdz
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzRDRkM4RTE2QTRGMzI3MDA2RDU0MDQgLyogV2Vha1B0
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0
cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5k
ZXggNDJjMmRhZDU2ZTM2NjExYWY4OGRiNjk1NjM0MjMyYjZkNmExYmUyMy4uYjQ4NDgzNmY4ODRh
ZDMwN2RlNWFkNWQ5OWEyYmRlYzhiOGQ3MjRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTEy
Miw2ICsxMjIsNyBAQCBzZXQoV1RGX0hFQURFUlMKICAgICBWZWN0b3IuaAogICAgIFZlY3RvclRy
YWl0cy5oCiAgICAgV1RGVGhyZWFkRGF0YS5oCisgICAgV2Vha1B0ci5oCiAgICAgZHRvYS5oCiAK
ICAgICBkdG9hL2JpZ251bS1kdG9hLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQ
dHIuaCBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWRjMzE4MDI1Y2Fi
ZDlkN2E4MGQ5MjAzNDllNmZkNGY3YzJkMDg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvV2Vha1B0ci5oCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdURl9XZWFrUHRyX2gKKyNkZWZpbmUg
V1RGX1dlYWtQdHJfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCitu
YW1lc3BhY2UgV1RGIHsKKworbmFtZXNwYWNlIEludGVybmFsIHsKKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4KK2NsYXNzIFdlYWtSZWZlcmVuY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
V2Vha1JlZmVyZW5jZTxUPiA+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUmVmZXJl
bmNlPFQ+KTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWFrUmVmZXJlbmNlPFQ+ID4gY3JlYXRlKFQqIHB0cikgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYWtSZWZlcmVuY2UocHRyKSk7IH0KKworICAgIFQqIGdldCgpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQobV9ib3VuZFRocmVhZCA9PSBjdXJyZW50VGhyZWFkKCkp
OworICAgICAgICByZXR1cm4gbV9wdHI7CisgICAgfQorCisgICAgdm9pZCBjbGVhcigpCisgICAg
eworICAgICAgICBBU1NFUlQobV9ib3VuZFRocmVhZCA9PSBjdXJyZW50VGhyZWFkKCkpOworICAg
ICAgICBtX3B0ciA9IDA7CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYWtSZWZl
cmVuY2UoVCogcHRyKQorICAgICAgICA6IG1fcHRyKHB0cikKKyNpZm5kZWYgTkRFQlVHCisgICAg
ICAgICwgbV9ib3VuZFRocmVhZChjdXJyZW50VGhyZWFkKCkpCisjZW5kaWYKKyAgICB7CisgICAg
fQorCisgICAgVCogbV9wdHI7CisjaWZuZGVmIE5ERUJVRworICAgIFRocmVhZElkZW50aWZpZXIg
bV9ib3VuZFRocmVhZDsKKyNlbmRpZgorfTsKKworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
Y2xhc3MgV2Vha1B0ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgQUxXQVlTX0lOTElORSBXZWFrUHRyKCkgOiBtX2ltcGwoMCkgeyB9CisgICAgZXhwbGljaXQg
V2Vha1B0cihQYXNzUmVmUHRyPEludGVybmFsOjpXZWFrUmVmZXJlbmNlPFQ+ID4gaW1wbCkgOiBt
X2ltcGwoaW1wbCkgeyB9CisKKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX2ltcGwtPmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEludGVybmFsOjpXZWFrUmVmZXJlbmNlPFQ+
ID4gbV9pbXBsOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIFdlYWtQdHJGYWN0
b3J5IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWFrUHRyRmFjdG9yeTxUPik7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgV2Vha1B0ckZh
Y3RvcnkoVCogcHRyKSB7IG1faW1wbCA9IEludGVybmFsOjpXZWFrUmVmZXJlbmNlPFQ+OjpjcmVh
dGUocHRyKTsgfQorICAgIH5XZWFrUHRyRmFjdG9yeSgpIHsgbV9pbXBsLT5jbGVhcigpOyB9CisK
KyAgICBXZWFrUHRyPFQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBXZWFrUHRyPFQ+KG1faW1w
bCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8SW50ZXJuYWw6OldlYWtSZWZlcmVuY2U8VD4g
PiBtX2ltcGw7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYWtQdHI8VD4mIGEsIGNvbnN0IFdlYWtQdHI8VT4mIGIp
Cit7IAorICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7IAorfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYWtQdHI8
VD4mIGEsIFUqIGIpCit7IAorICAgIHJldHVybiBhLmdldCgpID09IGI7IAorfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KFQqIGEsIGNv
bnN0IFdlYWtQdHI8VT4mIGIpIAoreworICAgIHJldHVybiBhID09IGIuZ2V0KCk7IAorfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFdlYWtQdHI8VD4mIGEsIGNvbnN0IFdlYWtQdHI8VT4mIGIpCit7IAorICAgIHJldHVybiBh
LmdldCgpICE9IGIuZ2V0KCk7IAorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFdlYWtQdHI8VD4mIGEsIFUqIGIpCit7Cisg
ICAgcmV0dXJuIGEuZ2V0KCkgIT0gYjsgCit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oVCogYSwgY29uc3QgV2Vha1B0cjxVPiYgYikK
K3sgCisgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsgCit9CisKK30gLy8gbmFtZXNwYWNlIFdURgor
Cit1c2luZyBXVEY6OldlYWtQdHI7Cit1c2luZyBXVEY6OldlYWtQdHJGYWN0b3J5OworCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY4NTlkZWE3MjkzMDBiOWIxZGVkYjg2OGIz
MmJhMTNiZWM3NDhjZTUuLjY5MTJkN2RhMGI2MTA5OWE0ZDE1NzUzZmMzYTYyMDRjMzVhYTI4Njgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDA0LDM1ICs0MDQsNiBAQCBzdGF0aWMgdm9p
ZCBwcmludE5hdmlnYXRpb25FcnJvck1lc3NhZ2UoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiBh
Y3RpdmVVUkwsIGNvbgogCiBzdGF0aWMgSGFzaFNldDxEb2N1bWVudCo+KiBkb2N1bWVudHNUaGF0
TmVlZFN0eWxlUmVjYWxjID0gMDsKIAotY2xhc3MgRG9jdW1lbnRXZWFrUmVmZXJlbmNlIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERvY3VtZW50V2Vha1JlZmVyZW5jZT4gewotcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50V2Vha1JlZmVyZW5jZT4gY3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRG9j
dW1lbnRXZWFrUmVmZXJlbmNlKGRvY3VtZW50KSk7Ci0gICAgfQotCi0gICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAg
IHJldHVybiBtX2RvY3VtZW50OwotICAgIH0KLQotICAgIHZvaWQgY2xlYXIoKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgbV9kb2N1bWVudCA9IDA7Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIERvY3VtZW50V2Vha1JlZmVyZW5jZShEb2N1bWVudCogZG9j
dW1lbnQpCi0gICAgICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgfQotCi0gICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7
Ci19OwotCiB1aW50NjRfdCBEb2N1bWVudDo6c19nbG9iYWxUcmVlVmVyc2lvbiA9IDA7CiAKIERv
Y3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hI
VE1MLCBib29sIGlzSFRNTCkKQEAgLTQ4MSw3ICs0NTIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQo
RnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwp
CiAgICAgLCBtX2lzU3JjZG9jRG9jdW1lbnQoZmFsc2UpCiAgICAgLCBtX3JlbmRlcmVyKDApCiAg
ICAgLCBtX2V2ZW50UXVldWUoRG9jdW1lbnRFdmVudFF1ZXVlOjpjcmVhdGUodGhpcykpCi0gICAg
LCBtX3dlYWtSZWZlcmVuY2UoRG9jdW1lbnRXZWFrUmVmZXJlbmNlOjpjcmVhdGUodGhpcykpCisg
ICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAgICAgLCBtX2lkQXR0cmlidXRlTmFtZShpZEF0dHIp
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICwgbV9hcmVLZXlzRW5hYmxlZEluRnVs
bFNjcmVlbigwKQpAQCAtNjU3LDggKzYyOCw2IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAg
IGlmIChtX2VsZW1TaGVldCkKICAgICAgICAgbV9lbGVtU2hlZXQtPmNsZWFyT3duZXJOb2RlKCk7
CiAKLSAgICBtX3dlYWtSZWZlcmVuY2UtPmNsZWFyKCk7Ci0KICAgICBjbGVhclN0eWxlUmVzb2x2
ZXIoKTsgLy8gV2UgbmVlZCB0byBkZXN0b3J5IENTU0ZvbnRTZWxlY3RvciBiZWZvcmUgZGVzdHJv
eWluZyBtX2NhY2hlZFJlc291cmNlTG9hZGVyLgogCiAgICAgLy8gSXQncyBwb3NzaWJsZSBmb3Ig
bXVsdGlwbGUgRG9jdW1lbnRzIHRvIGVuZCB1cCByZWZlcmVuY2luZyB0aGUgc2FtZSBDYWNoZWRS
ZXNvdXJjZUxvYWRlciAoZS5nLiwgU1ZHSW1hZ2VzCkBAIC00ODA4LDEzICs0Nzc3LDEzIEBAIHZv
aWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nCiBzdHJ1Y3QgUGVyZm9ybVRhc2tDb250ZXh0IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQZXJmb3JtVGFza0NvbnRleHQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBQZXJmb3JtVGFza0NvbnRleHQoUGFzc1JlZlB0cjxEb2N1
bWVudFdlYWtSZWZlcmVuY2U+IGRvY3VtZW50UmVmZXJlbmNlLCBQYXNzT3duUHRyPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2spCi0gICAgICAgIDogZG9jdW1lbnRSZWZlcmVuY2Uo
ZG9jdW1lbnRSZWZlcmVuY2UpCisgICAgUGVyZm9ybVRhc2tDb250ZXh0KFdlYWtQdHI8RG9jdW1l
bnQ+IGRvY3VtZW50LCBQYXNzT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRh
c2spCisgICAgICAgIDogZG9jdW1lbnRSZWZlcmVuY2UoZG9jdW1lbnQpCiAgICAgICAgICwgdGFz
ayh0YXNrKQogICAgIHsKICAgICB9CiAKLSAgICBSZWZQdHI8RG9jdW1lbnRXZWFrUmVmZXJlbmNl
PiBkb2N1bWVudFJlZmVyZW5jZTsKKyAgICBXZWFrUHRyPERvY3VtZW50PiBkb2N1bWVudFJlZmVy
ZW5jZTsKICAgICBPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzazsKIH07
CiAKQEAgLTQ4MjUsNyArNDc5NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmRpZFJlY2VpdmVUYXNrKHZv
aWQqIHVudHlwZWRDb250ZXh0KQogICAgIE93blB0cjxQZXJmb3JtVGFza0NvbnRleHQ+IGNvbnRl
eHQgPSBhZG9wdFB0cihzdGF0aWNfY2FzdDxQZXJmb3JtVGFza0NvbnRleHQqPih1bnR5cGVkQ29u
dGV4dCkpOwogICAgIEFTU0VSVChjb250ZXh0KTsKIAotICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IGNvbnRleHQtPmRvY3VtZW50UmVmZXJlbmNlLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IGNvbnRleHQtPmRvY3VtZW50UmVmZXJlbmNlLmdldCgpOwogICAgIGlmICghZG9j
dW1lbnQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDg0MCw3ICs0ODA5LDcgQEAgdm9pZCBEb2N1
bWVudDo6ZGlkUmVjZWl2ZVRhc2sodm9pZCogdW50eXBlZENvbnRleHQpCiAKIHZvaWQgRG9jdW1l
bnQ6OnBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4gdGFzaykKIHsKLSAgICBjYWxsT25NYWluVGhy
ZWFkKGRpZFJlY2VpdmVUYXNrLCBuZXcgUGVyZm9ybVRhc2tDb250ZXh0KG1fd2Vha1JlZmVyZW5j
ZSwgdGFzaykpOworICAgIGNhbGxPbk1haW5UaHJlYWQoZGlkUmVjZWl2ZVRhc2ssIG5ldyBQZXJm
b3JtVGFza0NvbnRleHQobV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCksIHRhc2spKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4q
KQpAQCAtNTk5Miw3ICs1OTYxLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICNlbmRpZgogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fc2VsZWN0b3JRdWVyeUNhY2hlKTsKICAgICBpbmZvLmFkZE1lbWJlciht
X3JlbmRlcmVyKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3dlYWtSZWZlcmVuY2UpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fd2Vha0ZhY3RvcnkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faWRBdHRy
aWJ1dGVOYW1lKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaW5mby5hZGRNZW1i
ZXIobV9mdWxsU2NyZWVuRWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGE5YzU5ODY2
NTQ4OGJiNDkwNWYyYjM3N2ZlNjM2YThhODdlYTQwYzAuLmYyNWMzNDdmOTQwOTcxNmY4MDViNWQx
NjMyZGI5YmVlZjUyN2E4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01Myw2ICs1Myw3IEBA
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgxLDcgKzgyLDYgQEAgY2xhc3MgRG9jdW1lbnRQYXJz
ZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFN0eWxl
U2hlZXRDb2xsZWN0aW9uOwogY2xhc3MgRG9jdW1lbnRUeXBlOwotY2xhc3MgRG9jdW1lbnRXZWFr
UmVmZXJlbmNlOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEVudGl0eVJlZmVyZW5jZTsKIGNsYXNz
IEV2ZW50OwpAQCAtMTQ3NSw3ICsxNDc1LDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJPYmplY3Qq
IG1fcmVuZGVyZXI7CiAgICAgUmVmUHRyPERvY3VtZW50RXZlbnRRdWV1ZT4gbV9ldmVudFF1ZXVl
OwogCi0gICAgUmVmUHRyPERvY3VtZW50V2Vha1JlZmVyZW5jZT4gbV93ZWFrUmVmZXJlbmNlOwor
ICAgIFdlYWtQdHJGYWN0b3J5PERvY3VtZW50PiBtX3dlYWtGYWN0b3J5OwogCiAgICAgSGFzaFNl
dDxNZWRpYUNhblN0YXJ0TGlzdGVuZXIqPiBtX21lZGlhQ2FuU3RhcnRMaXN0ZW5lcnM7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182835</attachid>
            <date>2013-01-15 13:03:09 -0800</date>
            <delta_ts>2013-01-15 13:36:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106854-20130115130011.patch</filename>
            <type>text/plain</type>
            <size>16970</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZhMTc5OWY0YjRhNWM2Y2MwMWUxNjAx
NjhiNGM1OGJiZTI0YWE2ZWIuLjBkNDFjMjNhY2Y4ZjAyZmFlMGQzODg5NjRkNWMyMGYzZjg2ZWQw
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTMtMDEtMTQgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBHZW5lcmFsaXplIERvY3VtZW50V2Vha1JlZmVyZW5jZSBp
bnRvIFdURjo6V2Vha1B0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA2ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgc2ltcGxlIFdlYWtQdHIgb2JqZWN0IHRvIFdURi4gVG8g
dXNlIFdlYWtQdHIsIG9iamVjdHMKKyAgICAgICAgbXVzdCBob2xkIGEgV2Vha1B0ckZhY3Rvcnkg
bWVtYmVyIHZhcmlhYmxlLCB3aGljaCBjbGVhcnMgdGhlIFdlYWtQdHJzCisgICAgICAgIHdoZW4g
dGhlIG9iamVjdCBpcyBkZXN0cnVjdGVkLiBUaGUgdW5kZXJseWluZyBzdG9yYWdlIGlzIGEKKyAg
ICAgICAgVGhyZWFkU2FmZVJlZkNvdW50ZWQgIldlYWtSZWZlcmVuY2UiIG9iamVjdCwgd2hpY2gg
aXMgc2hhcmVkIGJ5IGFsbCB0aGUKKyAgICAgICAgV2Vha1B0cnMuCisKKyAgICAgICAgV2Vha1B0
ciBpcyBhIGdlbmVyYWxpemF0aW9uIG9mIERvY3VtZW50V2Vha1JlZmVyZW5jZSwgd2hpY2ggaXMg
dXNlZCB0bworICAgICAgICBjaGVjayB3aGV0aGVyIHRoZSBEb2N1bWVudCBvYmplY3QgaXMgYWxp
dmUgd2hlbiB0YXNrcyBhcml2ZSBvbiB0aGUgbWFpbgorICAgICAgICB0aHJlYWQgZnJvbSB3b3Jr
ZXIgdGhyZWFkcy4gV2UgcGxhbiB0byB1c2UgYSBzaW1pbGFyIHBhdHRlcm4gaW4gdGhlCisgICAg
ICAgIHRocmVhZGVkIEhUTUwgcGFyc2VyLCBidXQgd2Ugd2FudCB0byBzZW5kIHRhc2tzIHRvIG9i
amVjdHMgb3RoZXIgdGhhbgorICAgICAgICBEb2N1bWVudC4KKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAg
ICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IHd0Zi9XZWFrUHRyLmg6IEFkZGVkLgorICAgICAgICAoV2Vha1JlZmVyZW5jZSk6CisgICAgICAg
ICAgICAtIFRoZSBUaHJlYWRTYWZlUmVmQ291bnRlZCBvYmplY3Qgc2hhcmVkIGJ5IGFsbCB0aGUg
V2Vha1B0cgorICAgICAgICAgICAgICBpbnN0YW5jZXMuIFRoaXMgcGF0Y2ggdXNlcyBUaHJlYWRT
YWZlUmVmQ291bnRlZCBzbyB0aGF0IHdlIGNhbgorICAgICAgICAgICAgICB1c2UgV2Vha1B0cnMg
dG8gY2FuY2VsIGNyb3NzLXRocmVhZCBtZXNzYWdlcy4KKyAgICAgICAgKFdURjo6V2Vha1JlZmVy
ZW5jZTo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6V2Vha1JlZmVyZW5jZTo6Z2V0KToKKyAgICAg
ICAgKFdURjo6V2Vha1JlZmVyZW5jZTo6Y2xlYXIpOgorICAgICAgICAgICAgLSBXaGVuIHRoZSBv
YmplY3QgaXMgZGVzdHJveWVkLCBXZWFrUHRyRmFjdG9yeSBjYWxscyB0aGlzIGZ1bmN0aW9uCisg
ICAgICAgICAgICAgIHRvIGNsZWFyIGFsbCB0aGUgV2Vha1B0cnMuCisgICAgICAgIChXVEY6Oldl
YWtSZWZlcmVuY2U6OldlYWtSZWZlcmVuY2UpOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpXZWFr
UHRyKToKKyAgICAgICAgKFdURjo6V2Vha1B0cjo6Z2V0KToKKyAgICAgICAgICAgIC0gV2UgbWln
aHQgd2FudCB0byBhZGQgaW1wbGljaXQgY29udmVyc2lvbnMgYW5kIEJvb2xlYW4gb3BlcmF0b3Jz
CisgICAgICAgICAgICAgIGluIHRoZSBmdXR1cmUsIGJ1dCBJJ3ZlIGtlcHQgdGhpcyBjbGFzcyBz
aW1wbGUgZm9yIG5vdy4KKyAgICAgICAgKFdURjo6V2Vha1B0ckZhY3Rvcnk6OldlYWtQdHJGYWN0
b3J5KToKKyAgICAgICAgKFdURjo6V2Vha1B0ckZhY3Rvcnk6On5XZWFrUHRyRmFjdG9yeSk6Cisg
ICAgICAgIChXVEY6OldlYWtQdHJGYWN0b3J5OjpjcmVhdGVXZWFrUHRyKToKKwogMjAxMy0wMS0x
MiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBf
X3N5bmNfYWRkX2FuZF9mZXRjaCBpbnN0ZWFkIG9mIF9fZ251X2N4eDo6X19leGNoYW5nZV9hbmRf
YWRkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMTUwNDRjZWY4OGRkMWMxMjZhMmQzZjlkODg0OTA0MGU4MzVlNzc2
Ny4uNzVhMmM2Zjc5NDQ3YTljYzNmYTU4N2UxOWNlZjc2ZWJjNTVlYmMxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI2IEBACisyMDEzLTAxLTE0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgR2VuZXJhbGl6ZSBEb2N1bWVudFdlYWtSZWZlcmVuY2UgaW50byBXVEY6
OldlYWtQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNjg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmVwbGFjZXMgRG9jdW1lbnRXZWFrUmVmZXJlbmNlIHdpdGggV2Vha1B0ci4gVGhl
cmUgc2hvdWxkIGJlCisgICAgICAgIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1UYXNrQ29udGV4dDo6UGVyZm9ybVRhc2tD
b250ZXh0KToKKyAgICAgICAgKFBlcmZvcm1UYXNrQ29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZGlkUmVjZWl2ZVRhc2spOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnBvc3RUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKERvY3VtZW50KToKKwogMjAxMy0wMS0xNCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IFVwZGF0ZSB0aGUgdHJhY2sg
YWNjZXNzb3JzIG9uIE1lZGlhU3RyZWFtIHRvIG1hdGNoIHRoZSBsYXRlc3Qgc3BlY2lmaWNhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dU
Ri9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDcyNTJiMzU1MjNmOWYzZDE4ZmYzZWU4MmUwZTA2
MDQxMTkxMDdmYmMuLjE4NzA4MWZhZjYzYjlhYTYzYjcxYTUyNjBmZGNmMzAyNGFlMzM1NjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RG
L0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE5Myw2ICsxOTMsNyBAQCB3dGZfc291cmNlcyArPSBc
CiAgICAgU291cmNlL1dURi93dGYvVmVjdG9yVHJhaXRzLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L1dURlRocmVhZERhdGEuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9XVEZUaHJlYWREYXRhLmgg
XAorICAgIFNvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCBcCiAgICAgU291cmNlL1dURi93dGYvZHRv
YS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL2R0b2EuaCBcCiAgICAgU291cmNlL1dURi93dGYv
ZHRvYS9iaWdudW0tZHRvYS5jYyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIv
U291cmNlL1dURi9XVEYuZ3lwaQppbmRleCA2Y2MzYjhhM2UwMzlhYjgxYWFlODlhMjU4NzhlODY1
OGQyOWNjOWMxLi41MzM2ZTA5NjgwOTYyOGU2MjZmNWYwZWZiZWMyMTdhZGUzYzA2MTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAg
LTExMiw2ICsxMTIsNyBAQAogICAgICAgICAgICAgJ3d0Zi9WZWN0b3IuaCcsCiAgICAgICAgICAg
ICAnd3RmL1ZlY3RvclRyYWl0cy5oJywKICAgICAgICAgICAgICd3dGYvV1RGVGhyZWFkRGF0YS5o
JywKKyAgICAgICAgICAgICd3dGYvV2Vha1B0ci5oJywKICAgICAgICAgICAgICd3dGYvZHRvYS5o
JywKICAgICAgICAgICAgICd3dGYvZHRvYS9iaWdudW0tZHRvYS5oJywKICAgICAgICAgICAgICd3
dGYvZHRvYS9iaWdudW0uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3Vy
Y2UvV1RGL1dURi5wcm8KaW5kZXggMzY2MTk0YmJkMzJiOThmNGQ3ZGJkMmExODQ5ODkwNDdkY2Vj
ZTM2Ni4uYzkyOWM2ODE2YWVkNmQ1ZmQ3Y2RjOTNjNWU0OWYzOWMwNTZmZGFmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMTg4LDcg
KzE4OCw4IEBAIEhFQURFUlMgKz0gXAogICAgIFZlY3Rvci5oIFwKICAgICBWZWN0b3JUcmFpdHMu
aCBcCiAgICAgVk1UYWdzLmggXAotICAgIFdURlRocmVhZERhdGEuaAorICAgIFdURlRocmVhZERh
dGEuaCBcCisgICAgV2Vha1B0ci5oCiAKIHVuaXg6IEhFQURFUlMgKz0gVGhyZWFkSWRlbnRpZmll
ckRhdGFQdGhyZWFkcy5oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYu
dmNwcm9qIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggZWJjODE5NGFk
MGE1NmY1YjU4MjY0NjAwMWM4YmI1MzMzNjk1NGYzOC4uZjczYjZmZDllMTE1MzhmZWJlNDg5ODhk
OGUxZDUxNjZhYjY1Zjk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52
Y3Byb2oKKysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTEzMjgsNiAr
MTMyOCwxMCBAQAogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcV1RGVGhyZWFkRGF0YS5oIgogCQkJ
PgogCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxXZWFrUHRyLmgi
CisJCQk+CisJCTwvRmlsZT4KIAk8L0ZpbGVzPgogCTxHbG9iYWxzPgogCTwvR2xvYmFscz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDA2MWVjYzdjMGRiZDlk
ZjI2N2UyMjQ4NTkzYjc4Y2FjYjM4MmZkNTMuLjk5OWY0YzllYTAwMGViOWE5ZTJhMTgyZjA4NTU2
MzIyMzM4NzhjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNzIsNiArNzIsNyBAQAogCQk3RTI5QzMzRTE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRp
bWVFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFMjlDMzNEMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oICovOyB9Owog
CQk4MTM0MDEzODE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMzQwMTM2MTVCMDkyRkQwMDFGRjBCOCAv
KiBCYXNlNjQuY3BwICovOyB9OwogCQk4MTM0MDEzOTE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTM0MDEz
NzE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmggKi87IH07CisJCTk3NENGQzhFMTZBNEYzMjcw
MDZENTQwNCAvKiBXZWFrUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzRDRkM4RDE2QTRGMzI3MDA2RDU0MDQgLyogV2Vha1B0ci5oICovOyB9Owog
CQlBODc2REJEODE1MTgxNkU1MDBEQURCOTUgLyogUGxhdGZvcm0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzZEQkQ3MTUxODE2RTUwMERBREI5NSAv
KiBQbGF0Zm9ybS5oICovOyB9OwogCQlBOEE0NzM3RjE1MUE4MjVCMDA0MTIzRkYgLyogQWxpZ25t
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzI1NDE1MUE4MjVBMDA0MTIzRkYgLyogQWxpZ25tZW50LmggKi87IH07CiAJCUE4QTQ3MzgwMTUx
QTgyNUIwMDQxMjNGRiAvKiBBbHdheXNJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjU1MTUxQTgyNUEwMDQxMjNGRiAvKiBBbHdheXNJ
bmxpbmUuaCAqLzsgfTsKQEAgLTM3OSw2ICszODAsNyBAQAogCQk3RTI5QzMzRDE1RkZENzlCMDA1
MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gT2JqY1J1bnRpbWVFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODEzNDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlNjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MTM0MDEzNzE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2U2NC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NzRDRkM4RDE2QTRGMzI3MDA2RDU0MDQgLyogV2Vha1B0ci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWFrUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4NzZEQkQ3MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzI1NDE1MUE4MjVBMDA0MTIzRkYgLyogQWxpZ25tZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFsaWdubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBOEE0NzI1NTE1MUE4MjVBMDA0MTIzRkYgLyogQWx3YXlzSW5saW5lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFsd2F5c0lubGluZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODc2LDYgKzg3OCw3IEBACiAJCQkJQThBNDczNzAxNTFBODI1QjAwNDEy
M0ZGIC8qIFZlY3Rvci5oICovLAogCQkJCUE4QTQ3MzcxMTUxQTgyNUIwMDQxMjNGRiAvKiBWZWN0
b3JUcmFpdHMuaCAqLywKIAkJCQlBOEE0NzM3MjE1MUE4MjVCMDA0MTIzRkYgLyogVk1UYWdzLmgg
Ki8sCisJCQkJOTc0Q0ZDOEQxNkE0RjMyNzAwNkQ1NDA0IC8qIFdlYWtQdHIuaCAqLywKIAkJCQlB
OEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgKi8sCiAJCQkJQThB
NDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAqLywKIAkJCSk7CkBAIC0x
MjUwLDYgKzEyNTMsNyBAQAogCQkJCUE4QTQ3NDdFMTUxQTgyNUIwMDQxMjNGRiAvKiBWZWN0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDdGMTUxQTgyNUIwMDQxMjNGRiAvKiBWZWN0b3JU
cmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDgwMTUxQTgyNUIwMDQxMjNGRiAvKiBW
TVRhZ3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NENGQzhFMTZBNEYzMjcwMDZENTQwNCAvKiBX
ZWFrUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0NjE1MUE4MjVCMDA0MTIzRkYgLyog
V1RGU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIzRkYg
LyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAppbmRleCA0MmMyZGFkNTZlMzY2MTFhZjg4ZGI2OTU2MzQyMzJiNmQ2YTFiZTIzLi5iNDg0ODM2
Zjg4NGFkMzA3ZGU1YWQ1ZDk5YTJiZGVjOGI4ZDcyNGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApA
QCAtMTIyLDYgKzEyMiw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIFZlY3Rvci5oCiAgICAgVmVj
dG9yVHJhaXRzLmgKICAgICBXVEZUaHJlYWREYXRhLmgKKyAgICBXZWFrUHRyLmgKICAgICBkdG9h
LmgKIAogICAgIGR0b2EvYmlnbnVtLWR0b2EuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
V2Vha1B0ci5oIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNjQ1MDYy
MDA2ZTc4NGMzZjk5MmEzZDM0YjVlMjJjODkxMGM1YmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9XZWFrUHRyLmgKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV1RGX1dlYWtQdHJfaAorI2Rl
ZmluZSBXVEZfV2Vha1B0cl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CisKK25hbWVzcGFjZSBXVEYgeworCituYW1lc3BhY2UgSW50ZXJuYWwgeworCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgorY2xhc3MgV2Vha1JlZmVyZW5jZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxXZWFrUmVmZXJlbmNlPFQ+ID4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYWtS
ZWZlcmVuY2U8VD4pOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYWtSZWZlcmVuY2U8VD4gPiBjcmVhdGUoVCogcHRyKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgV2Vha1JlZmVyZW5jZShwdHIpKTsgfQorCisgICAgVCogZ2V0KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2JvdW5kVGhyZWFkID09IGN1cnJlbnRUaHJl
YWQoKSk7CisgICAgICAgIHJldHVybiBtX3B0cjsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVChtX2JvdW5kVGhyZWFkID09IGN1cnJlbnRUaHJlYWQoKSk7
CisgICAgICAgIG1fcHRyID0gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2Vh
a1JlZmVyZW5jZShUKiBwdHIpCisgICAgICAgIDogbV9wdHIocHRyKQorI2lmbmRlZiBOREVCVUcK
KyAgICAgICAgLCBtX2JvdW5kVGhyZWFkKGN1cnJlbnRUaHJlYWQoKSkKKyNlbmRpZgorICAgIHsK
KyAgICB9CisKKyAgICBUKiBtX3B0cjsKKyNpZm5kZWYgTkRFQlVHCisgICAgVGhyZWFkSWRlbnRp
ZmllciBtX2JvdW5kVGhyZWFkOworI2VuZGlmCit9OworCit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+CitjbGFzcyBXZWFrUHRyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBXZWFrUHRyKCkgeyB9CisgICAgV2Vha1B0cihQYXNzUmVmUHRyPEludGVybmFsOjpX
ZWFrUmVmZXJlbmNlPFQ+ID4gcmVmKSA6IG1fcmVmKHJlZikgeyB9CisKKyAgICBUKiBnZXQoKSBj
b25zdCB7IHJldHVybiBtX3JlZi0+Z2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8SW50
ZXJuYWw6OldlYWtSZWZlcmVuY2U8VD4gPiBtX3JlZjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+CitjbGFzcyBXZWFrUHRyRmFjdG9yeSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2Vh
a1B0ckZhY3Rvcnk8VD4pOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIGV4cGxpY2l0IFdlYWtQdHJGYWN0b3J5KFQqIHB0cikgeyBtX3JlZiA9IEludGVybmFsOjpX
ZWFrUmVmZXJlbmNlPFQ+OjpjcmVhdGUocHRyKTsgfQorICAgIH5XZWFrUHRyRmFjdG9yeSgpIHsg
bV9yZWYtPmNsZWFyKCk7IH0KKworICAgIC8vIFdlIHNob3VsZCBjb25zaWRlciBoYXZpbmcgY3Jl
YXRlV2Vha1B0ciBwb3B1bGF0ZSBtX3JlZiB0aGUgZmlyc3QgdGltZSBjcmVhdGVXZWFrUHRyIGlz
IGNhbGxlZC4KKyAgICBXZWFrUHRyPFQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBXZWFrUHRy
PFQ+KG1fcmVmKTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxJbnRlcm5hbDo6V2Vha1JlZmVy
ZW5jZTxUPiA+IG1fcmVmOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6
V2Vha1B0cjsKK3VzaW5nIFdURjo6V2Vha1B0ckZhY3Rvcnk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZjg1OWRlYTcyOTMwMGI5YjFkZWRiODY4YjMyYmExM2JlYzc0OGNl
NS4uNjkxMmQ3ZGEwYjYxMDk5YTRkMTU3NTNmYzNhNjIwNGMzNWFhMjg2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC00MDQsMzUgKzQwNCw2IEBAIHN0YXRpYyB2b2lkIHByaW50TmF2aWdh
dGlvbkVycm9yTWVzc2FnZShGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIGFjdGl2ZVVSTCwgY29u
CiAKIHN0YXRpYyBIYXNoU2V0PERvY3VtZW50Kj4qIGRvY3VtZW50c1RoYXROZWVkU3R5bGVSZWNh
bGMgPSAwOwogCi1jbGFzcyBEb2N1bWVudFdlYWtSZWZlcmVuY2UgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8RG9jdW1lbnRXZWFrUmVmZXJlbmNlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RG9jdW1lbnRXZWFrUmVmZXJlbmNlPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudFdlYWtSZWZl
cmVuY2UoZG9jdW1lbnQpKTsKLSAgICB9Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQoKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgcmV0dXJuIG1fZG9j
dW1lbnQ7Ci0gICAgfQotCi0gICAgdm9pZCBjbGVhcigpCi0gICAgewotICAgICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwotICAgICAgICBtX2RvY3VtZW50ID0gMDsKLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgRG9jdW1lbnRXZWFrUmVmZXJlbmNlKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAg
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgIHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLSAgICB9Ci0KLSAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKLX07Ci0KIHVpbnQ2
NF90IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9uID0gMDsKIAogRG9jdW1lbnQ6OkRvY3Vt
ZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNI
VE1MKQpAQCAtNDgxLDcgKzQ1Miw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUs
IGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1faXNT
cmNkb2NEb2N1bWVudChmYWxzZSkKICAgICAsIG1fcmVuZGVyZXIoMCkKICAgICAsIG1fZXZlbnRR
dWV1ZShEb2N1bWVudEV2ZW50UXVldWU6OmNyZWF0ZSh0aGlzKSkKLSAgICAsIG1fd2Vha1JlZmVy
ZW5jZShEb2N1bWVudFdlYWtSZWZlcmVuY2U6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fd2Vha0Zh
Y3RvcnkodGhpcykKICAgICAsIG1faWRBdHRyaWJ1dGVOYW1lKGlkQXR0cikKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2FyZUtleXNFbmFibGVkSW5GdWxsU2NyZWVuKDApCkBA
IC02NTcsOCArNjI4LDYgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgaWYgKG1fZWxlbVNo
ZWV0KQogICAgICAgICBtX2VsZW1TaGVldC0+Y2xlYXJPd25lck5vZGUoKTsKIAotICAgIG1fd2Vh
a1JlZmVyZW5jZS0+Y2xlYXIoKTsKLQogICAgIGNsZWFyU3R5bGVSZXNvbHZlcigpOyAvLyBXZSBu
ZWVkIHRvIGRlc3RvcnkgQ1NTRm9udFNlbGVjdG9yIGJlZm9yZSBkZXN0cm95aW5nIG1fY2FjaGVk
UmVzb3VyY2VMb2FkZXIuCiAKICAgICAvLyBJdCdzIHBvc3NpYmxlIGZvciBtdWx0aXBsZSBEb2N1
bWVudHMgdG8gZW5kIHVwIHJlZmVyZW5jaW5nIHRoZSBzYW1lIENhY2hlZFJlc291cmNlTG9hZGVy
IChlLmcuLCBTVkdJbWFnZXMKQEAgLTQ4MDgsMTMgKzQ3NzcsMTMgQEAgdm9pZCBEb2N1bWVudDo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcKIHN0cnVjdCBQZXJmb3JtVGFza0NvbnRleHQgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBlcmZvcm1UYXNrQ29udGV4dCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIFBlcmZvcm1UYXNrQ29udGV4dChQYXNzUmVmUHRyPERvY3VtZW50V2Vha1JlZmVy
ZW5jZT4gZG9jdW1lbnRSZWZlcmVuY2UsIFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzaz4gdGFzaykKLSAgICAgICAgOiBkb2N1bWVudFJlZmVyZW5jZShkb2N1bWVudFJlZmVy
ZW5jZSkKKyAgICBQZXJmb3JtVGFza0NvbnRleHQoV2Vha1B0cjxEb2N1bWVudD4gZG9jdW1lbnQs
IFBhc3NPd25QdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzaykKKyAgICAgICAg
OiBkb2N1bWVudFJlZmVyZW5jZShkb2N1bWVudCkKICAgICAgICAgLCB0YXNrKHRhc2spCiAgICAg
ewogICAgIH0KIAotICAgIFJlZlB0cjxEb2N1bWVudFdlYWtSZWZlcmVuY2U+IGRvY3VtZW50UmVm
ZXJlbmNlOworICAgIFdlYWtQdHI8RG9jdW1lbnQ+IGRvY3VtZW50UmVmZXJlbmNlOwogICAgIE93
blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrOwogfTsKIApAQCAtNDgyNSw3
ICs0Nzk0LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlkUmVjZWl2ZVRhc2sodm9pZCogdW50eXBlZENv
bnRleHQpCiAgICAgT3duUHRyPFBlcmZvcm1UYXNrQ29udGV4dD4gY29udGV4dCA9IGFkb3B0UHRy
KHN0YXRpY19jYXN0PFBlcmZvcm1UYXNrQ29udGV4dCo+KHVudHlwZWRDb250ZXh0KSk7CiAgICAg
QVNTRVJUKGNvbnRleHQpOwogCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dC0+ZG9j
dW1lbnRSZWZlcmVuY2UtPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29u
dGV4dC0+ZG9jdW1lbnRSZWZlcmVuY2UuZ2V0KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC00ODQwLDcgKzQ4MDksNyBAQCB2b2lkIERvY3VtZW50OjpkaWRSZWNl
aXZlVGFzayh2b2lkKiB1bnR5cGVkQ29udGV4dCkKIAogdm9pZCBEb2N1bWVudDo6cG9zdFRhc2so
UGFzc093blB0cjxUYXNrPiB0YXNrKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoZGlkUmVjZWl2
ZVRhc2ssIG5ldyBQZXJmb3JtVGFza0NvbnRleHQobV93ZWFrUmVmZXJlbmNlLCB0YXNrKSk7Cisg
ICAgY2FsbE9uTWFpblRocmVhZChkaWRSZWNlaXZlVGFzaywgbmV3IFBlcmZvcm1UYXNrQ29udGV4
dChtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKSwgdGFzaykpOwogfQogCiB2b2lkIERvY3Vt
ZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopCkBAIC01OTkyLDcg
KzU5NjEsNyBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogI2VuZGlmCiAgICAgaW5mby5hZGRNZW1iZXIo
bV9zZWxlY3RvclF1ZXJ5Q2FjaGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyZXIpOwot
ICAgIGluZm8uYWRkTWVtYmVyKG1fd2Vha1JlZmVyZW5jZSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV93ZWFrRmFjdG9yeSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9pZEF0dHJpYnV0ZU5hbWUpOwog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpbmZvLmFkZE1lbWJlcihtX2Z1bGxTY3Jl
ZW5FbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYTljNTk4NjY1NDg4YmI0OTA1ZjJi
Mzc3ZmU2MzZhOGE4N2VhNDBjMC4uZjI1YzM0N2Y5NDA5NzE2ZjgwNWI1ZDE2MzJkYjliZWVmNTI3
YThlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtODEsNyArODIsNiBAQCBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNsYXNzIERv
Y3VtZW50U2hhcmVkT2JqZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b247CiBjbGFzcyBEb2N1bWVudFR5cGU7Ci1jbGFzcyBEb2N1bWVudFdlYWtSZWZlcmVuY2U7CiBj
bGFzcyBFbGVtZW50OwogY2xhc3MgRW50aXR5UmVmZXJlbmNlOwogY2xhc3MgRXZlbnQ7CkBAIC0x
NDc1LDcgKzE0NzUsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsK
ICAgICBSZWZQdHI8RG9jdW1lbnRFdmVudFF1ZXVlPiBtX2V2ZW50UXVldWU7CiAKLSAgICBSZWZQ
dHI8RG9jdW1lbnRXZWFrUmVmZXJlbmNlPiBtX3dlYWtSZWZlcmVuY2U7CisgICAgV2Vha1B0ckZh
Y3Rvcnk8RG9jdW1lbnQ+IG1fd2Vha0ZhY3Rvcnk7CiAKICAgICBIYXNoU2V0PE1lZGlhQ2FuU3Rh
cnRMaXN0ZW5lcio+IG1fbWVkaWFDYW5TdGFydExpc3RlbmVyczsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>