<?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>76110</bug_id>
          
          <creation_ts>2012-01-11 15:48:45 -0800</creation_ts>
          <short_desc>Event Queue for HTMLMediaElement</short_desc>
          <delta_ts>2012-01-27 14:57:20 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>72171</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Victor Carbune">vcarbune</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>534344</commentid>
    <comment_count>0</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-01-11 15:48:45 -0800</bug_when>
    <thetext>The &lt;track&gt; element requires events to be dispatched asynchronously.

Even though the HTMLMediaElement provides a particular mechanism for firing such events using a timer and a queue, a generic class should be in place that handles both events that are dispatched by the media element and the track element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536578</commentid>
    <comment_count>1</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-01-16 08:37:53 -0800</bug_when>
    <thetext>There&apos;s already a pretty nice EventQueue abstraction http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/dom/EventQueue.h&amp;exact_package=chromium&amp;q=EventQueue&amp;type=cs&amp;l=27. Might be worth taking a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539358</commentid>
    <comment_count>2</comment_count>
      <attachid>123272</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-01-20 02:03:52 -0800</bug_when>
    <thetext>Created attachment 123272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539360</commentid>
    <comment_count>3</comment_count>
      <attachid>123272</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-20 02:22:37 -0800</bug_when>
    <thetext>Comment on attachment 123272
Patch

Attachment 123272 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11314006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539597</commentid>
    <comment_count>4</comment_count>
      <attachid>123272</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-20 10:13:57 -0800</bug_when>
    <thetext>Comment on attachment 123272
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.h:581
&gt; +    MediaEventQueue m_asyncEventQueue;

This shouldn&apos;t be inside of #if ENABLE(VIDEO_TRACK) as it is always used. This is causing the GTK and Qt bot failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539606</commentid>
    <comment_count>5</comment_count>
      <attachid>123272</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-20 10:27:36 -0800</bug_when>
    <thetext>Comment on attachment 123272
Patch

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

Marking r- only because it fails to compile on ports that don&apos;t define VIDEO_TRACK.

&gt; Source/WebCore/html/MediaEventQueue.cpp:8
&gt; +

Nit: This extra blank line is unnecessary.

&gt; Source/WebCore/html/MediaEventQueue.cpp:70
&gt; +    if (m_timer.isActive())

Nit: MediaEventQueue::close calls stop() without checking to see if the timer is active, to be consistent you should one or the other throughout the file. stop() is cheap so I would probably just call it but I don&apos;t have a strong preference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539617</commentid>
    <comment_count>6</comment_count>
      <attachid>123272</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-20 10:48:34 -0800</bug_when>
    <thetext>Comment on attachment 123272
Patch

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

&gt; Source/WebCore/html/MediaEventQueue.h:34
&gt; +class MediaEventQueue : public EventQueue {
&gt; +
&gt; +public:
&gt; +    MediaEventQueue();
&gt; +    virtual ~MediaEventQueue();
&gt; +
&gt; +    // EventQueue
&gt; +    virtual bool enqueueEvent(PassRefPtr&lt;Event&gt;) OVERRIDE;
&gt; +    virtual bool cancelEvent(Event*) OVERRIDE;
&gt; +    virtual void close() OVERRIDE;
&gt; +
&gt; +    void cancelAllEvents();
&gt; +    bool hasPendingEvents() const;
&gt; +
&gt; +private:
&gt; +    void timerFired(Timer&lt;MediaEventQueue&gt;*);
&gt; +
&gt; +    Vector&lt;RefPtr&lt;Event&gt; &gt; m_pendingEvents;
&gt; +    Timer&lt;MediaEventQueue&gt; m_timer;
&gt; +
&gt; +    bool m_isClosed;

Why is this class called &quot;MediaEventQueue&quot;? We may end with a class that is specific to the media element at some point, but at this point it is just a generic event queue that could be used by other classes. 

I think this should a more generic name, GenericEventQueue or SimpleEventQueue perhaps, and it should be in WebCore/dom along with the abstract base class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539910</commentid>
    <comment_count>7</comment_count>
      <attachid>123407</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-01-20 16:33:16 -0800</bug_when>
    <thetext>Created attachment 123407
Updated patch. Renamed the class in GenericQueueEvent under dom/ and hopefully fixed build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539946</commentid>
    <comment_count>8</comment_count>
      <attachid>123416</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-01-20 17:12:00 -0800</bug_when>
    <thetext>Created attachment 123416
Updated the vcproj entry as it was not building on win-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540097</commentid>
    <comment_count>9</comment_count>
      <attachid>123439</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-01-21 00:48:11 -0800</bug_when>
    <thetext>Created attachment 123439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540105</commentid>
    <comment_count>10</comment_count>
      <attachid>123441</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-01-21 01:43:26 -0800</bug_when>
    <thetext>Created attachment 123441
Green patch

Fixed build issues. Patch should be ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541304</commentid>
    <comment_count>11</comment_count>
      <attachid>123441</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-24 06:58:41 -0800</bug_when>
    <thetext>Comment on attachment 123441
Green patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:-3181
&gt; -    // Return true when we have pending events so we can&apos;t fire events after the JS 
&gt; -    // object gets collected.

Why remove this comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542451</commentid>
    <comment_count>12</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-01-25 11:00:14 -0800</bug_when>
    <thetext>I tried building this before landing it, and this did not build for me on Mac. It looks like it needs symbols added to WebCore exports.

Here is the tail of the build output:

Ld /Volumes/HD2/WebKit2/WebKitBuild/Debug/WebCore.framework/Versions/A/WebCore normal x86_64
    cd /Volumes/HD2/WebKit2/Source/WebCore
    setenv MACOSX_DEPLOYMENT_TARGET 10.7
    /Developer/usr/bin/clang++ -arch x86_64 -dynamiclib -L/Volumes/HD2/WebKit2/WebKitBuild/Debug -F/Volumes/HD2/WebKit2/WebKitBuild/Debug -F/System/Library/Frameworks/Carbon.framework/Frameworks -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks -F/System/Library/Frameworks/CoreServices.framework/Frameworks -F/System/Library/PrivateFrameworks -filelist /Volumes/HD2/WebKit2/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/WebCore.LinkFileList -Xlinker --no-demangle -exported_symbols_list /Volumes/HD2/WebKit2/WebKitBuild/Debug/DerivedSources/WebCore/WebCore.LP64.exp -install_name /Volumes/HD2/WebKit2/WebKitBuild/Debug/WebCore.framework/Versions/A/WebCore -mmacosx-version-min=10.7 -lsqlite3 -lobjc -lANGLE -allowable_client WebCoreTestSupport -sub_library libobjc -umbrella WebKit -allowable_client WebKit2 -Xlinker -objc_gc_compaction -framework IOSurface -framework Accelerate -framework ApplicationServices -framework AudioToolbox -framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework IOKit -framework JavaScriptCore -licucore -lobjc -lxml2 -lz -framework OpenGL -framework QuartzCore -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 535.19 -o /Volumes/HD2/WebKit2/WebKitBuild/Debug/WebCore.framework/Versions/A/WebCore
Undefined symbols for architecture x86_64:
  &quot;__ZN7WebCore17GenericEventQueueC1Ev&quot;, referenced from:
      __ZN7WebCore16HTMLMediaElementC2ERKNS_13QualifiedNameEPNS_8DocumentEb in HTMLMediaElement.o
  &quot;__ZN7WebCore17GenericEventQueueD1Ev&quot;, referenced from:
      __ZN7WebCore16HTMLMediaElementD2Ev in HTMLMediaElement.o
  &quot;__ZN7WebCore17GenericEventQueue15cancelAllEventsEv&quot;, referenced from:
      __ZN7WebCore16HTMLMediaElement31cancelPendingEventsAndCallbacksEv in HTMLMediaElement.o
  &quot;__ZNK7WebCore17GenericEventQueue16hasPendingEventsEv&quot;, referenced from:
      __ZNK7WebCore16HTMLMediaElement18hasPendingActivityEv in HTMLMediaElement.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


** BUILD FAILED **</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544406</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-01-27 14:57:20 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/106156</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123272</attachid>
            <date>2012-01-20 02:03:52 -0800</date>
            <delta_ts>2012-01-20 16:33:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76110-20120120120350.patch</filename>
            <type>text/plain</type>
            <size>14331</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZjMjJlOWI1NDkyMTIy
MDQzOGJmYzYxNmRlMDVhY2YyNmYzYjFmNS4uNzJhNzdkNjg0MWY1YmMzZDI3Y2U0ODAzZTA0N2Zk
Yjc3ZjNmYjUxMiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAxLTIwICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgorCisgICAgICAgIEFkZGVkIHRoZSBNZWRp
YUV2ZW50UXVldWUgY2xhc3MgaW4gb3JkZXIgdG8gZ2VuZXJhbGl6ZSBhc3luY2hyb25vdXMKKyAg
ICAgICAgZXZlbnQgZGlzcGF0Y2hpbmcgaW4gSFRNTE1lZGlhRWxlbWVudC4KKworICAgICAgICBJ
biBvcmRlciB0byBzdXBwb3J0IGFzeW5jaHJvbm91cyBldmVudHMgZGlzcGF0Y2hlZCBieSBIVE1M
VHJhY2tFbGVtZW50CisgICAgICAgIHRoZXJlIGlzIGEgbmVlZCBmb3IgYSBnZW5lcmFsaXplZCBp
bXBsZW1lbnRhdGlvbiBvZiBhbiBldmVudCBxdWV1ZSB0bworICAgICAgICBiZSB1c2VkIGZvciBi
b3RoIEhUTUxNZWRpYUVsZW1lbnQgYW5kIFRleHQgVHJhY2tzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjExMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gbmV3IGZ1bmN0
aW9uYWxpdHksIG9ubHkgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KTogUmVmYWN0b3JlZCBj
b2RlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudCk6
IFJlZmFjdG9yZWQgbWV0aG9kIHRvIGVucXVldWUKKyAgICAgICAgYW4gZXZlbnQgdGhlIHNjaGVk
dWxlZCBldmVudCBvbiB0aGUgTWVkaWFFdmVudFF1ZXVlIGluc3RhbmNlLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuY2VsUGVuZGluZ0V2ZW50c0FuZENhbGxiYWNrcyk6
IERpdHRvCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNQZW5kaW5nQWN0
aXZpdHkpOiBEaXR0bworICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0
Y2hFdmVudCk6IFRoaXMgbWV0aG9kIGlzIG92ZXJyaWRkZW4KKyAgICAgICAgdG8ga2VlcCBhbiBl
dmlkZW5jZSB3aGVuIGEgY2FuUGxheSBldmVudCBpcyBmaXJlZC4KKyAgICAgICAgKiBodG1sL0hU
TUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL01lZGlhRXZlbnRRdWV1ZS5jcHA6IEFk
ZGVkLiBJbXBsZW1lbnRzIHRoZSBhYnN0cmFjdCBjbGFzcyBFdmVudFF1ZXVlLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFFdmVudFF1ZXVlOjpNZWRpYUV2ZW50UXVldWUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFFdmVudFF1ZXVlOjp+TWVkaWFFdmVudFF1ZXVlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KTogQXBwZW5kIGFuIGV2ZW50IHRvIHRo
ZSBjdXJyZW50CisgICAgICAgIHBlbmRpbmcgZXZlbnQgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRXZlbnRRdWV1ZTo6Y2FuY2VsRXZlbnQpOiBSZW1vdmVzIGFuIGV2ZW50IGZyb20gdGhl
IGN1cnJlbnQKKyAgICAgICAgcGVuZGluZyBldmVudCBsaXN0IGFuZCBzdG9wcyB0aW1lciBpZiBy
ZXF1aXJlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCk6
IENhbGxiYWNrIG1ldGhvZCB3aGVuIHRoZSB0aW1lciBmaXJlcy4KKyAgICAgICAgRGlzcGF0Y2hl
cyBhbGwgZXZlbnRzIHRoYXQgYXJlIGN1cnJlbnRseSBwZW5kaW5nLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFFdmVudFF1ZXVlOjpjbG9zZSk6IENsb3NlcyB0aGUgZXZlbnQgcXVldWUgc3VjaCB0
aGF0IGl0IGNhbm5vdAorICAgICAgICBiZSB1c2VkIGFueW1vcmUuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUV2ZW50UXVldWU6OmNhbmNlbEFsbEV2ZW50cyk6IFJlbW92ZXMgYWxsIHRoZSBwZW5k
aW5nIGV2ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRXZlbnRRdWV1ZTo6aGFzUGVuZGlu
Z0V2ZW50cyk6IFRydWUgaWYgdGhlcmUgYXJlIHBlbmRpbmcgZXZlbnRzLgorICAgICAgICAqIGh0
bWwvTWVkaWFFdmVudFF1ZXVlLmg6IEFkZGVkLgorCiAyMDEyLTAxLTE5ICBDYXJ5IENsYXJrICA8
Y2FyeWNsYXJrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1NraWEgTWFjXSBNYXRjaCBzdHlsZSBv
ZiBwbGF0Zm9ybSBlcnJvciB1bmRlcmxpbmUgZm9yIG1pc3NwZWxsaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBhZDFiYmJhMzVmNzhlZGM0NjI0Y2FjZjQ5MDZkODI3MGMxZmU1ODFiLi4zNTU0
NDE1YmRkZWRjYjAxMWFjN2I1YWNkOWIzNWI5ZTVkMzIyZGExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtODA5LDYgKzgwOSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0xpbmtS
ZWxBdHRyaWJ1dGUuY3BwCiAgICAgaHRtbC9NZWRpYUNvbnRyb2xsZXIuY3BwCiAgICAgaHRtbC9N
ZWRpYURvY3VtZW50LmNwcAorICAgIGh0bWwvTWVkaWFFdmVudFF1ZXVlLmNwcAogICAgIGh0bWwv
TWljcm9EYXRhSXRlbVZhbHVlLmNwcAogICAgIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwCiAgICAg
aHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC0yMDE3LDYgKzIwMTgsNyBAQCBJRiAoRU5BQkxF
X1ZJREVPKQogICAgICAgICBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCiAgICAgICAgIGh0bWwv
SFRNTFNvdXJjZUVsZW1lbnQuY3BwCiAgICAgICAgIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAK
KyAgICAgICAgaHRtbC9NZWRpYUV2ZW50UXVldWUuY3BwCiAgICAgICAgIGh0bWwvTWVkaWFGcmFn
bWVudFVSSVBhcnNlci5jcHAKICAgICAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwCiAgICAgICAgIGh0bWwvVGltZVJhbmdlcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IGJiYjI2NTk2NzJmMTExMWRiMWQ1M2NlYWJmODVjMTUxYzBhYzQyMjcuLjk2
Yzg3ODA0YzdlY2Y4MzlhZTUwMGM5N2Q4YzBiZWM5ZDYzZjJjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMjE3NCw2ICsyMTc0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVycm9y
LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFdmVudFF1ZXVlLmNwcCBcCisJU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUV2ZW50UXVldWUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZy
YWdtZW50VVJJUGFyc2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZh
bHVlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA0NTdkYjBjZTBiY2ViOGIwN2RjNDQ5NDQ0NmM3ZjE4
NjkxZmU2NTViLi4yNDkwMDk1MTAzMmM3NDM3ZGY4M2E0MzYxY2EyYjQ4ZjFmNWFiODU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTMxMzgsNiArMzEzOCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9W
SURFTz0xKSB7CiAgICAgICAgIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwIFwKICAgICAgICAg
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBcCiAgICAgICAgIGh0bWwvTWVkaWFDb250cm9sbGVy
LmNwcCBcCisgICAgICAgIGh0bWwvTWVkaWFFdmVudFF1ZXVlLmNwcCBcCiAgICAgICAgIGh0bWwv
TWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgXAogICAgICAgICBodG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAgXAogICAgICAgICBodG1sL1RpbWVSYW5nZXMuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCA3YjUxN2Q0Mzk5MTA4YjI2ZWVkMTY0OTk5MzBhMmYwNDQ5ZGFjMmJhLi43
MzQyZDgyY2RkNjMyMjVlMDJlOTJlMmVjM2FlZTA5MzBjM2FhZmRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC01NzUxLDYgKzU3NTEsOCBAQAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFFcnJvci5oJywK
ICAgICAgICAgICAgICdodG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwJywKICAgICAgICAg
ICAgICdodG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuaCcsCisgICAgICAgICAgICAnaHRtbC9N
ZWRpYUV2ZW50UXVldWUuY3BwJywKKyAgICAgICAgICAgICdodG1sL01lZGlhRXZlbnRRdWV1ZS5o
JywKICAgICAgICAgICAgICdodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAnLAogICAgICAgICAg
ICAgJ2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmgnLAogICAgICAgICAgICAgJ2h0bWwvTW9udGhJ
bnB1dFR5cGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggZTg2ZDM5ZTlmMDdkNTE0MmE0Y2IxNjg1MTY1MTI4NTgzNzNlMjJkMi4uODJm
MzJjZGU4Y2MxMGFhYmMyY2IxZmZlZWRiZmM2NzRhNDI2ODBlNSAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTYwNTAyLDYgKzYwNTAyLDE0IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
TWVkaWFFdmVudFF1ZXVlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxNZWRpYUV2ZW50UXVldWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxNZWRpYUZyYWdtZW50VVJJUGFy
c2VyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAppbmRleCAwNWNjNWIyOGU1Mzk4MDI4NWViZTNmOGQ5ZjQzYjMzNDZjNGViZWYw
Li45NjExOTQ1OWFlN2EyMDQ3YmI3MjI0Zjk2ODQ4ZmE0Mjg0NmFmMWEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE3NCw3ICsxNzQsNiBAQCBIVE1MTWVk
aWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAg
ICAgLCBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQsIHRoaXMpCiAgICAgLCBtX2xvYWRUaW1lcih0
aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6bG9hZFRpbWVyRmlyZWQpCi0gICAgLCBtX2FzeW5jRXZl
bnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6YXN5bmNFdmVudFRpbWVyRmlyZWQpCiAg
ICAgLCBtX3Byb2dyZXNzRXZlbnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jl
c3NFdmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcih0aGlzLCAm
SFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCiAgICAgLCBtX3Bs
YXllZFRpbWVSYW5nZXMoKQpAQCAtNTQxLDI5ICs1NDAsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQogI2lmIExP
R19NRURJQV9FVkVOVFMKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVs
ZUV2ZW50IC0gc2NoZWR1bGluZyAnJXMnIiwgZXZlbnROYW1lLnN0cmluZygpLmFzY2lpKCkuZGF0
YSgpKTsKICNlbmRpZgotICAgIG1fcGVuZGluZ0V2ZW50cy5hcHBlbmQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWUsIGZhbHNlLCB0cnVlKSk7Ci0gICAgaWYgKCFtX2FzeW5jRXZlbnRUaW1lci5pc0Fj
dGl2ZSgpKQotICAgICAgICBtX2FzeW5jRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Ci19Ci0K
LXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YXN5bmNFdmVudFRpbWVyRmlyZWQoVGltZXI8SFRNTE1l
ZGlhRWxlbWVudD4qKQotewotICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gcGVuZGluZ0V2ZW50
czsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0g
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCB0cnVlKTsKKyAgICBldmVudC0+c2V0VGFy
Z2V0KHRoaXMpOwogCi0gICAgbV9wZW5kaW5nRXZlbnRzLnN3YXAocGVuZGluZ0V2ZW50cyk7Ci0g
ICAgdW5zaWduZWQgY291bnQgPSBwZW5kaW5nRXZlbnRzLnNpemUoKTsKLSAgICBmb3IgKHVuc2ln
bmVkIG5keCA9IDA7IG5keCA8IGNvdW50OyArK25keCkgewotI2lmIExPR19NRURJQV9FVkVOVFMK
LSAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6YXN5bmNFdmVudFRpbWVyRmly
ZWQgLSBkaXNwYXRjaGluZyAnJXMnIiwgcGVuZGluZ0V2ZW50c1tuZHhdLT50eXBlKCkuc3RyaW5n
KCkuYXNjaWkoKS5kYXRhKCkpOwotI2VuZGlmCi0gICAgICAgIGlmIChwZW5kaW5nRXZlbnRzW25k
eF0tPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2FucGxheUV2ZW50KSB7Ci0gICAgICAgICAgICBt
X2Rpc3BhdGNoaW5nQ2FuUGxheUV2ZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgIGRpc3BhdGNoRXZl
bnQocGVuZGluZ0V2ZW50c1tuZHhdLnJlbGVhc2UoKSwgZWMpOwotICAgICAgICAgICAgbV9kaXNw
YXRjaGluZ0NhblBsYXlFdmVudCA9IGZhbHNlOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IGRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50c1tuZHhdLnJlbGVhc2UoKSwgZWMpOwotICAgIH0K
KyAgICBtX2FzeW5jRXZlbnRRdWV1ZS5lbnF1ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKIH0K
IAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkVGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFF
bGVtZW50PiopCkBAIC0xMTkyLDggKzExNzIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhRW5naW5lRXJyb3IoUGFzc1JlZlB0cjxNZWRpYUVycm9yPiBlcnIpCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmNhbmNlbFBlbmRpbmdFdmVudHNBbmRDYWxsYmFja3MoKQogewogICAgIExPRyhN
ZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhbmNlbFBlbmRpbmdFdmVudHNBbmRDYWxsYmFja3Mi
KTsKLQotICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOworICAgIG1fYXN5bmNFdmVudFF1ZXVl
LmNhbmNlbEFsbEV2ZW50cygpOwogCiAgICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgp
OyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobm9kZS0+
aGFzVGFnTmFtZShzb3VyY2VUYWcpKQpAQCAtMzE3NywxMSArMzE1Niw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cmVzdW1lKCkKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdAogewotICAgIC8vIFJldHVybiB0cnVlIHdoZW4gd2UgaGF2ZSBwZW5k
aW5nIGV2ZW50cyBzbyB3ZSBjYW4ndCBmaXJlIGV2ZW50cyBhZnRlciB0aGUgSlMgCi0gICAgLy8g
b2JqZWN0IGdldHMgY29sbGVjdGVkLgotICAgIGJvb2wgcGVuZGluZyA9IG1fcGVuZGluZ0V2ZW50
cy5zaXplKCk7Ci0gICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6aGFzUGVuZGluZ0Fj
dGl2aXR5IC0+ICVzIiwgYm9vbFN0cmluZyhwZW5kaW5nKSk7Ci0gICAgcmV0dXJuIHBlbmRpbmc7
CisgICAgcmV0dXJuIG1fYXN5bmNFdmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKTsKIH0KIAog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVZvbHVtZURpZENoYW5nZSgpCkBAIC0zNjkyLDYg
KzM2NjcsMjQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYUNvbnRyb2xsZXIo
KQogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVwb3J0Q29udHJvbGxlclN0YXRlKCk7CiB9
CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50
PiBldmVudCkKK3sKKyAgICBib29sIGRpc3BhdGNoUmVzdWx0OworICAgIGJvb2wgaXNDYW5QbGF5
RXZlbnQ7CisKKyAgICBpc0NhblBsYXlFdmVudCA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5jYW5wbGF5RXZlbnQpOworCisgICAgaWYgKGlzQ2FuUGxheUV2ZW50KQorICAgICAgICBt
X2Rpc3BhdGNoaW5nQ2FuUGxheUV2ZW50ID0gdHJ1ZTsKKworICAgIGRpc3BhdGNoUmVzdWx0ID0g
SFRNTEVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgaWYgKGlzQ2FuUGxheUV2
ZW50KQorICAgICAgICBtX2Rpc3BhdGNoaW5nQ2FuUGxheUV2ZW50ID0gZmFsc2U7CisKKyAgICBy
ZXR1cm4gZGlzcGF0Y2hSZXN1bHQ7Cit9CisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNCbG9j
a2VkKCkgY29uc3QKIHsKICAgICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgYSBibG9ja2VkIG1lZGlh
IGVsZW1lbnQgaWYgaXRzIHJlYWR5U3RhdGUgYXR0cmlidXRlIGlzIGluIHRoZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBkYTQ5YzQwMmVhMDg0OTkxYmYwNTk1NmE3
NTg4NzhjOTU5MDZlMTM3Li41YzM2MmU5YjM3ZTdlMTdhMmFkZDUyNzA0MzA0Y2RlMTJiY2I5Mzkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRM
aXN0ZW5lci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgorI2luY2x1
ZGUgIk1lZGlhRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAKICNpZiBF
TkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKQEAgLTIwNSw3ICsyMDYsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tXYXNBZGRlZChIVE1MVHJhY2tFbGVtZW50Kik7CiAg
ICAgdmlydHVhbCB2b2lkIHRyYWNrV2FzUmVtb3ZlZChIVE1MVHJhY2tFbGVtZW50Kik7Ci0gICAg
CisKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFjayhIVE1MVHJhY2tFbGVtZW50Kik7CiAgICAg
dm9pZCBjb25maWd1cmVUZXh0VHJhY2tzKCk7CiAgICAgYm9vbCB0ZXh0VHJhY2tzQXJlUmVhZHko
KSBjb25zdDsKQEAgLTI3Myw2ICsyNzQsOCBAQCBwdWJsaWM6CiAgICAgTWVkaWFDb250cm9sbGVy
KiBjb250cm9sbGVyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sbGVyPik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNz
UmVmUHRyPEV2ZW50Pik7CisKIHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wpOwogICAgIHZpcnR1YWwgfkhUTUxNZWRp
YUVsZW1lbnQoKTsKQEAgLTM2NSw3ICszNjgsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2
b2lkIGxvYWRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+Kik7Ci0gICAgdm9pZCBh
c3luY0V2ZW50VGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopOwogICAgIHZvaWQg
cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKTsKICAgICB2
b2lkIHBsYXliYWNrUHJvZ3Jlc3NUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+Kik7
CiAgICAgdm9pZCBzdGFydFBsYXliYWNrUHJvZ3Jlc3NUaW1lcigpOwpAQCAtNDcwLDEwICs0NzIs
OCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2xv
YWRUaW1lcjsKLSAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2FzeW5jRXZlbnRUaW1lcjsK
ICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRUaW1lcjsKICAgICBU
aW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcjsKLSAgICBWZWN0
b3I8UmVmUHRyPEV2ZW50PiA+IG1fcGVuZGluZ0V2ZW50czsKICAgICBSZWZQdHI8VGltZVJhbmdl
cz4gbV9wbGF5ZWRUaW1lUmFuZ2VzOwogCiAgICAgZmxvYXQgbV9wbGF5YmFja1JhdGU7CkBAIC01
NzgsNiArNTc4LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4gPiBt
X3RleHRUcmFja3NXaGVuUmVzb3VyY2VTZWxlY3Rpb25CZWdhbjsKICAgICBDdWVJbnRlcnZhbFRy
ZWUgbV9jdWVUcmVlOwogICAgIEN1ZUxpc3QgbV9jdXJyZW50bHlBY3RpdmVDdWVzOworICAgIE1l
ZGlhRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKICAgICBpbnQgbV9pZ25vcmVUcmFja0Rp
c3BsYXlVcGRhdGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYUV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUV2ZW50UXVldWUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBiMDQ3OTlkZjk5YmYyNDBmNDIxOTBjYzhmZTJhMWVlNmE5OTRlYzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXZlbnRRdWV1ZS5j
cHAKQEAgLTAsMCArMSw4MyBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFZJ
REVPKQorI2luY2x1ZGUgIk1lZGlhRXZlbnRRdWV1ZS5oIgorCisjaW5jbHVkZSAiRXZlbnQuaCIK
KworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhRXZlbnRRdWV1ZTo6TWVkaWFFdmVudFF1
ZXVlKCkKKyAgICA6IG1fdGltZXIodGhpcywgJk1lZGlhRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCkK
KyAgICAsIG1faXNDbG9zZWQoZmFsc2UpCit7Cit9CisKK01lZGlhRXZlbnRRdWV1ZTo6fk1lZGlh
RXZlbnRRdWV1ZSgpCit7Cit9CisKK2Jvb2wgTWVkaWFFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIEFTU0VSVChldmVudC0+dGFyZ2V0KCkpOworICAgIG1fcGVu
ZGluZ0V2ZW50cy5hcHBlbmQoZXZlbnQpOworCisgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkp
CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgTWVkaWFFdmVudFF1ZXVlOjpjYW5jZWxFdmVudChFdmVudCogZXZlbnQpCit7Cisg
ICAgYm9vbCBmb3VuZCA9IG1fcGVuZGluZ0V2ZW50cy5jb250YWlucyhldmVudCk7CisKKyAgICBp
ZiAoZm91bmQpCisgICAgICAgIG1fcGVuZGluZ0V2ZW50cy5yZW1vdmUobV9wZW5kaW5nRXZlbnRz
LmZpbmQoZXZlbnQpKTsKKworICAgIGlmIChtX3BlbmRpbmdFdmVudHMuaXNFbXB0eSgpKQorICAg
ICAgICBtX3RpbWVyLnN0b3AoKTsKKworICAgIHJldHVybiBmb3VuZDsKK30KKwordm9pZCBNZWRp
YUV2ZW50UXVldWU6OnRpbWVyRmlyZWQoVGltZXI8TWVkaWFFdmVudFF1ZXVlPiAqdGltZXIpCit7
CisgICAgQVNTRVJUKCFtX3RpbWVyLmlzQWN0aXZlKCkpOworICAgIEFTU0VSVCghbV9wZW5kaW5n
RXZlbnRzLmlzRW1wdHkoKSk7CisKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IHBlbmRpbmdF
dmVudHM7CisgICAgbV9wZW5kaW5nRXZlbnRzLnN3YXAocGVuZGluZ0V2ZW50cyk7CisKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGVuZGluZ0V2ZW50cy5zaXplKCk7ICsraSkKKyAgICAg
ICAgcGVuZGluZ0V2ZW50c1tpXS0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50
c1tpXS5yZWxlYXNlKCkpOworfQorCit2b2lkIE1lZGlhRXZlbnRRdWV1ZTo6Y2xvc2UoKQorewor
ICAgIG1faXNDbG9zZWQgPSB0cnVlOworCisgICAgbV90aW1lci5zdG9wKCk7CisgICAgbV9wZW5k
aW5nRXZlbnRzLmNsZWFyKCk7Cit9CisKK3ZvaWQgTWVkaWFFdmVudFF1ZXVlOjpjYW5jZWxBbGxF
dmVudHMoKQoreworICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fdGltZXIu
c3RvcCgpOworCisgICAgbV9wZW5kaW5nRXZlbnRzLmNsZWFyKCk7Cit9CisKK2Jvb2wgTWVkaWFF
dmVudFF1ZXVlOjpoYXNQZW5kaW5nRXZlbnRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wZW5k
aW5nRXZlbnRzLnNpemUoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFdmVudFF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RXZlbnRRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4Yzc4NTNiMmI1NTQwZmIxZTQxZDcwNjU0NzBiYjli
MTUwNDdjZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXZl
bnRRdWV1ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKworI2lmbmRlZiBNZWRpYUV2ZW50UXVldWVfaAor
I2RlZmluZSBNZWRpYUV2ZW50UXVldWVfaAorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVk
ZSAiRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBNZWRpYUV2ZW50UXVldWUgOiBwdWJsaWMgRXZlbnRRdWV1ZSB7CisKK3B1YmxpYzoKKyAg
ICBNZWRpYUV2ZW50UXVldWUoKTsKKyAgICB2aXJ0dWFsIH5NZWRpYUV2ZW50UXVldWUoKTsKKwor
ICAgIC8vIEV2ZW50UXVldWUKKyAgICB2aXJ0dWFsIGJvb2wgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuY2VsRXZlbnQoRXZlbnQq
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSBPVkVSUklERTsKKworICAgIHZv
aWQgY2FuY2VsQWxsRXZlbnRzKCk7CisgICAgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPE1lZGlhRXZlbnRRdWV1ZT4q
KTsKKworICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRzOworICAgIFRp
bWVyPE1lZGlhRXZlbnRRdWV1ZT4gbV90aW1lcjsKKworICAgIGJvb2wgbV9pc0Nsb3NlZDsKK307
CisKK30KKworI2VuZGlmCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123407</attachid>
            <date>2012-01-20 16:33:16 -0800</date>
            <delta_ts>2012-01-20 17:11:51 -0800</delta_ts>
            <desc>Updated patch. Renamed the class in GenericQueueEvent under dom/ and hopefully fixed build issues.</desc>
            <filename>bug-76110-20120121023314.patch</filename>
            <type>text/plain</type>
            <size>15821</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZjMjJlOWI1NDkyMTIy
MDQzOGJmYzYxNmRlMDVhY2YyNmYzYjFmNS4uNTYyOTNjY2ZhNmE2ZjgxMmI2ZTI0NzBmY2YwNTQw
Y2Q4NDQ2NGU1NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTAxLTIwICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgorCisgICAgICAgIEFkZGVkIHRoZSBHZW5l
cmljRXZlbnRRdWV1ZSBjbGFzcyBpbiBvcmRlciB0byBnZW5lcmFsaXplIGFzeW5jaHJvbm91cwor
ICAgICAgICBldmVudCBkaXNwYXRjaGluZyBpbiBIVE1MTWVkaWFFbGVtZW50LgorCisgICAgICAg
IEluIG9yZGVyIHRvIHN1cHBvcnQgYXN5bmNocm9ub3VzIGV2ZW50cyBkaXNwYXRjaGVkIGJ5IEhU
TUxUcmFja0VsZW1lbnQKKyAgICAgICAgdGhlcmUgaXMgYSBuZWVkIGZvciBhIGdlbmVyYWxpemVk
IGltcGxlbWVudGF0aW9uIG9mIGFuIGV2ZW50IHF1ZXVlIHRvCisgICAgICAgIGJlIHVzZWQgZm9y
IGJvdGggSFRNTE1lZGlhRWxlbWVudCBhbmQgVGV4dCBUcmFja3MuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVu
Y3Rpb25hbGl0eSwgb25seSByZWZhY3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogZG9tL0dlbmVyaWNFdmVudFF1ZXVl
LmNwcDogQWRkZWQuIEltcGxlbWVudHMgdGhlIGFic3RyYWN0IGNsYXNzIEV2ZW50UXVldWUuCisg
ICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6R2VuZXJpY0V2ZW50UXVldWUpOgor
ICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6On5HZW5lcmljRXZlbnRRdWV1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KTogQXBw
ZW5kIGFuIGV2ZW50IHRvIHRoZSBjdXJyZW50CisgICAgICAgIHBlbmRpbmcgZXZlbnQgbGlzdC4K
KyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxFdmVudCk6IFJlbW92
ZXMgYW4gZXZlbnQgZnJvbSB0aGUgY3VycmVudAorICAgICAgICBwZW5kaW5nIGV2ZW50IGxpc3Qu
CisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCk6IENhbGxi
YWNrIG1ldGhvZCB3aGVuIHRoZSB0aW1lciBmaXJlcy4KKyAgICAgICAgRGlzcGF0Y2hlcyBhbGwg
ZXZlbnRzIHRoYXQgYXJlIGN1cnJlbnRseSBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6R2Vu
ZXJpY0V2ZW50UXVldWU6OmNsb3NlKTogQ2xvc2VzIHRoZSBldmVudCBxdWV1ZSBzdWNoIHRoYXQg
aXQgY2Fubm90CisgICAgICAgIGJlIHVzZWQgYW55bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6Okdl
bmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxBbGxFdmVudHMpOiBSZW1vdmVzIGFsbCBwZW5kaW5nIGV2
ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlOjpoYXNQZW5kaW5nRXZl
bnRzKTogVHJ1ZSBpZiB0aGVyZSBhcmUgcGVuZGluZyBldmVudHMuCisgICAgICAgICogZG9tL0dl
bmVyaWNFdmVudFF1ZXVlLmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQp
OiBSZWZhY3RvcmVkIG1ldGhvZCB0byBlbnF1ZXVlCisgICAgICAgIHRoZSBzY2hlZHVsZWQgZXZl
bnQgb24gdGhlIEdlbmVyaWNFdmVudFF1ZXVlIGluc3RhbmNlLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y2FuY2VsUGVuZGluZ0V2ZW50c0FuZENhbGxiYWNrcyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkaXNwYXRjaEV2
ZW50KTogVGhpcyBtZXRob2QgaXMgb3ZlcnJpZGVuCisgICAgICAgIHRvIGtlZXAgYW4gZXZpZGVu
Y2Ugd2hlbiBhIGNhblBsYXkgZXZlbnQgaXMgZmlyZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50Lmg6CisKIDIwMTItMDEtMTkgIENhcnkgQ2xhcmsgIDxjYXJ5Y2xhcmtAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBbU2tpYSBNYWNdIE1hdGNoIHN0eWxlIG9mIHBsYXRmb3JtIGVycm9y
IHVuZGVybGluZSBmb3IgbWlzc3BlbGxpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFkMWJi
YmEzNWY3OGVkYzQ2MjRjYWNmNDkwNmQ4MjcwYzFmZTU4MWIuLmUwZjczNDVhZDA5M2Y0MWYzYjcw
Y2U1ZWM4MDc4ODU1NjlkMmRhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01NTQsNiArNTU0
LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9FdmVudFRhcmdldC5jcHAKICAgICBk
b20vRXhjZXB0aW9uQmFzZS5jcHAKICAgICBkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNw
cAorICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKICAgICBkb20vSWNvblVSTC5jcHAKICAg
ICBkb20vS2V5Ym9hcmRFdmVudC5jcHAKICAgICBkb20vTWVzc2FnZUNoYW5uZWwuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiYmIyNjU5NjcyZjExMTFkYjFkNTNjZWFiZjg1
YzE1MWMwYWM0MjI3Li44Mjc5NjdkYzM3YTI1ZDNjOTU1NjU4MjY3NjZmNWI5YjcyZDQ1NGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1NTcsNiArMTU1Nyw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVy
bWlzc2lvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNv
dW50SW5jcmVtZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL0ljb25VUkwuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWNvblVSTC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNDU3
ZGIwY2UwYmNlYjhiMDdkYzQ0OTQ0NDZjN2YxODY5MWZlNjU1Yi4uMGE4NDJiMmQ1YThmZjQ1OWY2
NjY5Y2QyZTRlM2RhODY4MTY0YjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01MTksNiArNTE5LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCiAgICAgZG9tL0V4Y2VwdGlv
bkJhc2UuY3BwIFwKICAgICBkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCBcCisgICAg
ZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9tL0ljb25VUkwuY3BwIFwKICAgICBk
b20vS2V5Ym9hcmRFdmVudC5jcHAgXAogICAgIGRvbS9NZXNzYWdlQ2hhbm5lbC5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDdiNTE3ZDQzOTkxMDhiMjZlZWQxNjQ5OTkzMGEyZjA0NDlkYWMyYmEu
LjA5YTQ2YTczMjUyOTg1ZWZkMmJkYTI3Yzk5YzZjMGVhNzBmNDQ2NGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTUzOTgsNiArNTM5OCw4IEBACiAgICAgICAgICAgICAnZG9tL0V4Y2VwdGlvbkJhc2Uu
Y3BwJywKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQmFzZS5oJywKICAgICAgICAgICAgICdk
b20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL0dlbmVy
aWNFdmVudFF1ZXVlLmNwcCcsCisgICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgn
LAogICAgICAgICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9t
L0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgnLAogICAgICAgICAgICAg
J2RvbS9JY29uVVJMLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJp
Y0V2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mM2EyNDhmZDM3YTNmMGY0M2U5NjEzYjIzNjI1NjdkNmE5ZDRkMmE4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNw
cApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBWaWN0b3IgQ2Fy
YnVuZSAodmljdG9yQHJvc2VkdS5vcmcpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCisKKyNpbmNsdWRlICJFdmVudC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0dlbmVyaWNFdmVudFF1ZXVlOjpHZW5lcmljRXZlbnRRdWV1
ZSgpCisgICAgOiBtX3RpbWVyKHRoaXMsICZHZW5lcmljRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCkK
KyAgICAsIG1faXNDbG9zZWQoZmFsc2UpCit7Cit9CisKK0dlbmVyaWNFdmVudFF1ZXVlOjp+R2Vu
ZXJpY0V2ZW50UXVldWUoKQoreworfQorCitib29sIEdlbmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVl
RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgaWYgKG1faXNDbG9zZWQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFTU0VSVChldmVudC0+dGFyZ2V0KCkpOworICAg
IG1fcGVuZGluZ0V2ZW50cy5hcHBlbmQoZXZlbnQpOworCisgICAgaWYgKCFtX3RpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgR2VuZXJpY0V2ZW50UXVldWU6OmNhbmNlbEV2ZW50KEV2ZW50KiBldmVu
dCkKK3sKKyAgICBib29sIGZvdW5kID0gbV9wZW5kaW5nRXZlbnRzLmNvbnRhaW5zKGV2ZW50KTsK
KworICAgIGlmIChmb3VuZCkKKyAgICAgICAgbV9wZW5kaW5nRXZlbnRzLnJlbW92ZShtX3BlbmRp
bmdFdmVudHMuZmluZChldmVudCkpOworCisgICAgaWYgKG1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5
KCkpCisgICAgICAgIG1fdGltZXIuc3RvcCgpOworCisgICAgcmV0dXJuIGZvdW5kOworfQorCit2
b2lkIEdlbmVyaWNFdmVudFF1ZXVlOjp0aW1lckZpcmVkKFRpbWVyPEdlbmVyaWNFdmVudFF1ZXVl
PiAqdGltZXIpCit7CisgICAgQVNTRVJUKCFtX3RpbWVyLmlzQWN0aXZlKCkpOworICAgIEFTU0VS
VCghbV9wZW5kaW5nRXZlbnRzLmlzRW1wdHkoKSk7CisKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50
PiA+IHBlbmRpbmdFdmVudHM7CisgICAgbV9wZW5kaW5nRXZlbnRzLnN3YXAocGVuZGluZ0V2ZW50
cyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGVuZGluZ0V2ZW50cy5zaXplKCk7
ICsraSkKKyAgICAgICAgcGVuZGluZ0V2ZW50c1tpXS0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQo
cGVuZGluZ0V2ZW50c1tpXS5yZWxlYXNlKCkpOworfQorCit2b2lkIEdlbmVyaWNFdmVudFF1ZXVl
OjpjbG9zZSgpCit7CisgICAgbV9pc0Nsb3NlZCA9IHRydWU7CisKKyAgICBtX3RpbWVyLnN0b3Ao
KTsKKyAgICBtX3BlbmRpbmdFdmVudHMuY2xlYXIoKTsKK30KKwordm9pZCBHZW5lcmljRXZlbnRR
dWV1ZTo6Y2FuY2VsQWxsRXZlbnRzKCkKK3sKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBtX3Bl
bmRpbmdFdmVudHMuY2xlYXIoKTsKK30KKworYm9vbCBHZW5lcmljRXZlbnRRdWV1ZTo6aGFzUGVu
ZGluZ0V2ZW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1
ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmI2ZjZiNGNlYTc4YTQyNTY0NmQ0OTk4ZWZkZTFmZDY4ZGEzYjJiNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgVmljdG9yIENhcmJ1bmUgKHZpY3RvckByb3Nl
ZHUub3JnKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEdlbmVyaWNFdmVudFF1ZXVlX2gKKyNkZWZpbmUgR2Vu
ZXJpY0V2ZW50UXVldWVfaAorCisjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZSA6IHB1Ymxp
YyBFdmVudFF1ZXVlIHsKKworcHVibGljOgorICAgIEdlbmVyaWNFdmVudFF1ZXVlKCk7CisgICAg
dmlydHVhbCB+R2VuZXJpY0V2ZW50UXVldWUoKTsKKworICAgIC8vIEV2ZW50UXVldWUKKyAgICB2
aXJ0dWFsIGJvb2wgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuY2VsRXZlbnQoRXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xvc2UoKSBPVkVSUklERTsKKworICAgIHZvaWQgY2FuY2VsQWxsRXZlbnRzKCk7Cisg
ICAgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdm9pZCB0
aW1lckZpcmVkKFRpbWVyPEdlbmVyaWNFdmVudFF1ZXVlPiopOworCisgICAgVmVjdG9yPFJlZlB0
cjxFdmVudD4gPiBtX3BlbmRpbmdFdmVudHM7CisgICAgVGltZXI8R2VuZXJpY0V2ZW50UXVldWU+
IG1fdGltZXI7CisKKyAgICBib29sIG1faXNDbG9zZWQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDVjYzViMjhlNTM5ODAy
ODVlYmUzZjhkOWY0M2IzMzQ2YzRlYmVmMC4uOTYxMTk0NTlhZTdhMjA0N2JiNzIyNGY5Njg0OGZh
NDI4NDZhZjFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBA
IC0xNzQsNyArMTc0LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW0KICAgICA6IEhUTUxFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0
aGlzKQogICAgICwgbV9sb2FkVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRUaW1l
ckZpcmVkKQotICAgICwgbV9hc3luY0V2ZW50VGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6
OmFzeW5jRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wcm9ncmVzc0V2ZW50VGltZXIodGhpcywg
JkhUTUxNZWRpYUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wbGF5
YmFja1Byb2dyZXNzVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUHJvZ3Jl
c3NUaW1lckZpcmVkKQogICAgICwgbV9wbGF5ZWRUaW1lUmFuZ2VzKCkKQEAgLTU0MSwyOSArNTQw
LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50TmFtZSkKICNpZiBMT0dfTUVESUFfRVZFTlRTCiAgICAgTE9HKE1lZGlhLCAi
SFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudCAtIHNjaGVkdWxpbmcgJyVzJyIsIGV2ZW50
TmFtZS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CiAjZW5kaWYKLSAgICBtX3BlbmRpbmdFdmVu
dHMuYXBwZW5kKEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgdHJ1ZSkpOwotICAgIGlm
ICghbV9hc3luY0V2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9hc3luY0V2ZW50VGlt
ZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFzeW5jRXZl
bnRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+KikKLXsKLSAgICBWZWN0b3I8UmVm
UHRyPEV2ZW50PiA+IHBlbmRpbmdFdmVudHM7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Cisg
ICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwg
dHJ1ZSk7CisgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKIAotICAgIG1fcGVuZGluZ0V2ZW50
cy5zd2FwKHBlbmRpbmdFdmVudHMpOwotICAgIHVuc2lnbmVkIGNvdW50ID0gcGVuZGluZ0V2ZW50
cy5zaXplKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBuZHggPSAwOyBuZHggPCBjb3VudDsgKytuZHgp
IHsKLSNpZiBMT0dfTUVESUFfRVZFTlRTCi0gICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVs
ZW1lbnQ6OmFzeW5jRXZlbnRUaW1lckZpcmVkIC0gZGlzcGF0Y2hpbmcgJyVzJyIsIHBlbmRpbmdF
dmVudHNbbmR4XS0+dHlwZSgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSNlbmRpZgotICAg
ICAgICBpZiAocGVuZGluZ0V2ZW50c1tuZHhdLT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNhbnBs
YXlFdmVudCkgewotICAgICAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVudCA9IHRydWU7
Ci0gICAgICAgICAgICBkaXNwYXRjaEV2ZW50KHBlbmRpbmdFdmVudHNbbmR4XS5yZWxlYXNlKCks
IGVjKTsKLSAgICAgICAgICAgIG1fZGlzcGF0Y2hpbmdDYW5QbGF5RXZlbnQgPSBmYWxzZTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBkaXNwYXRjaEV2ZW50KHBlbmRpbmdFdmVudHNbbmR4
XS5yZWxlYXNlKCksIGVjKTsKLSAgICB9CisgICAgbV9hc3luY0V2ZW50UXVldWUuZW5xdWV1ZUV2
ZW50KGV2ZW50LnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFRp
bWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKQpAQCAtMTE5Miw4ICsxMTcyLDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZUVycm9yKFBhc3NSZWZQdHI8TWVkaWFF
cnJvcj4gZXJyKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjYW5jZWxQZW5kaW5nRXZlbnRzQW5k
Q2FsbGJhY2tzKCkKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpjYW5jZWxQ
ZW5kaW5nRXZlbnRzQW5kQ2FsbGJhY2tzIik7Ci0KLSAgICBtX3BlbmRpbmdFdmVudHMuY2xlYXIo
KTsKKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS5jYW5jZWxBbGxFdmVudHMoKTsKIAogICAgIGZvciAo
Tm9kZSogbm9kZSA9IGZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5n
KCkpIHsKICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc291cmNlVGFnKSkKQEAgLTMxNzcs
MTEgKzMxNTYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlc3VtZSgpCiAKIGJvb2wgSFRN
TE1lZGlhRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICAvLyBSZXR1
cm4gdHJ1ZSB3aGVuIHdlIGhhdmUgcGVuZGluZyBldmVudHMgc28gd2UgY2FuJ3QgZmlyZSBldmVu
dHMgYWZ0ZXIgdGhlIEpTIAotICAgIC8vIG9iamVjdCBnZXRzIGNvbGxlY3RlZC4KLSAgICBib29s
IHBlbmRpbmcgPSBtX3BlbmRpbmdFdmVudHMuc2l6ZSgpOwotICAgIExPRyhNZWRpYSwgIkhUTUxN
ZWRpYUVsZW1lbnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSAtPiAlcyIsIGJvb2xTdHJpbmcocGVuZGlu
ZykpOwotICAgIHJldHVybiBwZW5kaW5nOworICAgIHJldHVybiBtX2FzeW5jRXZlbnRRdWV1ZS5o
YXNQZW5kaW5nRXZlbnRzKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFWb2x1
bWVEaWRDaGFuZ2UoKQpAQCAtMzY5Miw2ICszNjY3LDI0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dXBkYXRlTWVkaWFDb250cm9sbGVyKCkKICAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXItPnJl
cG9ydENvbnRyb2xsZXJTdGF0ZSgpOwogfQogCitib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmRpc3Bh
dGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgYm9vbCBkaXNwYXRjaFJl
c3VsdDsKKyAgICBib29sIGlzQ2FuUGxheUV2ZW50OworCisgICAgaXNDYW5QbGF5RXZlbnQgPSAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2FucGxheUV2ZW50KTsKKworICAgIGlmIChp
c0NhblBsYXlFdmVudCkKKyAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVudCA9IHRydWU7
CisKKyAgICBkaXNwYXRjaFJlc3VsdCA9IEhUTUxFbGVtZW50OjpkaXNwYXRjaEV2ZW50KGV2ZW50
KTsKKworICAgIGlmIChpc0NhblBsYXlFdmVudCkKKyAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBs
YXlFdmVudCA9IGZhbHNlOworCisgICAgcmV0dXJuIGRpc3BhdGNoUmVzdWx0OworfQorCiBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OmlzQmxvY2tlZCgpIGNvbnN0CiB7CiAgICAgLy8gQSBtZWRpYSBl
bGVtZW50IGlzIGEgYmxvY2tlZCBtZWRpYSBlbGVtZW50IGlmIGl0cyByZWFkeVN0YXRlIGF0dHJp
YnV0ZSBpcyBpbiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXgg
ZGE0OWM0MDJlYTA4NDk5MWJmMDU5NTZhNzU4ODc4Yzk1OTA2ZTEzNy4uNWY3NjNiMjc4NzhiZjM1
NWI1ZmJjY2U5MmY1NTIwNzg1OWZiNDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUu
aCIKICNpbmNsdWRlICJNZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xsZXJJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgpAQCAtMjA1LDcg
KzIwNiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB0cmFja1dhc0FkZGVkKEhUTUxU
cmFja0VsZW1lbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tXYXNSZW1vdmVkKEhUTUxUcmFj
a0VsZW1lbnQqKTsKLSAgICAKKwogICAgIHZvaWQgY29uZmlndXJlVGV4dFRyYWNrKEhUTUxUcmFj
a0VsZW1lbnQqKTsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja3MoKTsKICAgICBib29sIHRl
eHRUcmFja3NBcmVSZWFkeSgpIGNvbnN0OwpAQCAtMjczLDYgKzI3NCw4IEBAIHB1YmxpYzoKICAg
ICBNZWRpYUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIoKSBjb25zdDsKICAgICB2b2lkIHNldENvbnRy
b2xsZXIoUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xsZXI+KTsKIAorICAgIHZpcnR1YWwgYm9vbCBk
aXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxN
ZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCk7CiAgICAg
dmlydHVhbCB+SFRNTE1lZGlhRWxlbWVudCgpOwpAQCAtMzY1LDcgKzM2OCw2IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVu
dD4qKTsKLSAgICB2b2lkIGFzeW5jRXZlbnRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1l
bnQ+Kik7CiAgICAgdm9pZCBwcm9ncmVzc0V2ZW50VGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFF
bGVtZW50PiopOwogICAgIHZvaWQgcGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQoVGltZXI8SFRN
TE1lZGlhRWxlbWVudD4qKTsKICAgICB2b2lkIHN0YXJ0UGxheWJhY2tQcm9ncmVzc1RpbWVyKCk7
CkBAIC00NzAsMTEgKzQ3MiwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBUaW1lcjxIVE1M
TWVkaWFFbGVtZW50PiBtX2xvYWRUaW1lcjsKLSAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBt
X2FzeW5jRXZlbnRUaW1lcjsKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNz
RXZlbnRUaW1lcjsKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3BsYXliYWNrUHJvZ3Jl
c3NUaW1lcjsKLSAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fcGVuZGluZ0V2ZW50czsKICAg
ICBSZWZQdHI8VGltZVJhbmdlcz4gbV9wbGF5ZWRUaW1lUmFuZ2VzOworICAgIEdlbmVyaWNFdmVu
dFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwogCiAgICAgZmxvYXQgbV9wbGF5YmFja1JhdGU7CiAg
ICAgZmxvYXQgbV9kZWZhdWx0UGxheWJhY2tSYXRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123416</attachid>
            <date>2012-01-20 17:12:00 -0800</date>
            <delta_ts>2012-01-21 00:48:02 -0800</delta_ts>
            <desc>Updated the vcproj entry as it was not building on win-ews</desc>
            <filename>bug-76110-20120121031158.patch</filename>
            <type>text/plain</type>
            <size>17473</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZjMjJlOWI1NDkyMTIy
MDQzOGJmYzYxNmRlMDVhY2YyNmYzYjFmNS4uZWVmN2M4MzZlMWZkMWE2NTk0NDVjZDc0ZTc5ZDhk
ZWJlMjljM2VjOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAxLTIwICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgorCisgICAgICAgIEFkZGVkIHRoZSBHZW5l
cmljRXZlbnRRdWV1ZSBjbGFzcyBpbiBvcmRlciB0byBnZW5lcmFsaXplIGFzeW5jaHJvbm91cwor
ICAgICAgICBldmVudCBkaXNwYXRjaGluZyBpbiBIVE1MTWVkaWFFbGVtZW50LgorCisgICAgICAg
IEluIG9yZGVyIHRvIHN1cHBvcnQgYXN5bmNocm9ub3VzIGV2ZW50cyBkaXNwYXRjaGVkIGJ5IEhU
TUxUcmFja0VsZW1lbnQKKyAgICAgICAgdGhlcmUgaXMgYSBuZWVkIGZvciBhIGdlbmVyYWxpemVk
IGltcGxlbWVudGF0aW9uIG9mIGFuIGV2ZW50IHF1ZXVlIHRvCisgICAgICAgIGJlIHVzZWQgZm9y
IGJvdGggSFRNTE1lZGlhRWxlbWVudCBhbmQgVGV4dCBUcmFja3MuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVu
Y3Rpb25hbGl0eSwgb25seSByZWZhY3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcDogQWRkZWQuIElt
cGxlbWVudHMgdGhlIGFic3RyYWN0IGNsYXNzIEV2ZW50UXVldWUuCisgICAgICAgIChXZWJDb3Jl
OjpHZW5lcmljRXZlbnRRdWV1ZTo6R2VuZXJpY0V2ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29y
ZTo6R2VuZXJpY0V2ZW50UXVldWU6On5HZW5lcmljRXZlbnRRdWV1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KTogQXBwZW5kIGFuIGV2ZW50IHRv
IHRoZSBjdXJyZW50CisgICAgICAgIHBlbmRpbmcgZXZlbnQgbGlzdC4KKyAgICAgICAgKFdlYkNv
cmU6OkdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxFdmVudCk6IFJlbW92ZXMgYW4gZXZlbnQgZnJv
bSB0aGUgY3VycmVudAorICAgICAgICBwZW5kaW5nIGV2ZW50IGxpc3QuCisgICAgICAgIChXZWJD
b3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCk6IENhbGxiYWNrIG1ldGhvZCB3aGVu
IHRoZSB0aW1lciBmaXJlcy4KKyAgICAgICAgRGlzcGF0Y2hlcyBhbGwgZXZlbnRzIHRoYXQgYXJl
IGN1cnJlbnRseSBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6
OmNsb3NlKTogQ2xvc2VzIHRoZSBldmVudCBxdWV1ZSBzdWNoIHRoYXQgaXQgY2Fubm90CisgICAg
ICAgIGJlIHVzZWQgYW55bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVl
OjpjYW5jZWxBbGxFdmVudHMpOiBSZW1vdmVzIGFsbCBwZW5kaW5nIGV2ZW50cy4KKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlOjpoYXNQZW5kaW5nRXZlbnRzKTogVHJ1ZSBpZiB0
aGVyZSBhcmUgcGVuZGluZyBldmVudHMuCisgICAgICAgICogZG9tL0dlbmVyaWNFdmVudFF1ZXVl
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQpOiBSZWZhY3RvcmVkIG1l
dGhvZCB0byBlbnF1ZXVlCisgICAgICAgIHRoZSBzY2hlZHVsZWQgZXZlbnQgb24gdGhlIEdlbmVy
aWNFdmVudFF1ZXVlIGluc3RhbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6Y2FuY2VsUGVuZGluZ0V2ZW50c0FuZENhbGxiYWNrcyk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkaXNwYXRjaEV2ZW50KTogVGhpcyBtZXRo
b2QgaXMgb3ZlcnJpZGVuCisgICAgICAgIHRvIGtlZXAgYW4gZXZpZGVuY2Ugd2hlbiBhIGNhblBs
YXkgZXZlbnQgaXMgZmlyZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisK
IDIwMTItMDEtMTkgIENhcnkgQ2xhcmsgIDxjYXJ5Y2xhcmtAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBbU2tpYSBNYWNdIE1hdGNoIHN0eWxlIG9mIHBsYXRmb3JtIGVycm9yIHVuZGVybGluZSBmb3Ig
bWlzc3BlbGxpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFkMWJiYmEzNWY3OGVkYzQ2MjRj
YWNmNDkwNmQ4MjcwYzFmZTU4MWIuLmUwZjczNDVhZDA5M2Y0MWYzYjcwY2U1ZWM4MDc4ODU1Njlk
MmRhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01NTQsNiArNTU0LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9FdmVudFRhcmdldC5jcHAKICAgICBkb20vRXhjZXB0aW9uQmFz
ZS5jcHAKICAgICBkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcAorICAgIGRvbS9HZW5l
cmljRXZlbnRRdWV1ZS5jcHAKICAgICBkb20vSWNvblVSTC5jcHAKICAgICBkb20vS2V5Ym9hcmRF
dmVudC5jcHAKICAgICBkb20vTWVzc2FnZUNoYW5uZWwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCBiYmIyNjU5NjcyZjExMTFkYjFkNTNjZWFiZjg1YzE1MWMwYWM0MjI3Li44
Mjc5NjdkYzM3YTI1ZDNjOTU1NjU4MjY3NjZmNWI5YjcyZDQ1NGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTE1NTcsNiArMTU1Nyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ljb25VUkwu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWNvblVSTC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vSGFzaENoYW5nZUV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNDU3ZGIwY2UwYmNlYjhiMDdk
YzQ0OTQ0NDZjN2YxODY5MWZlNjU1Yi4uMGE4NDJiMmQ1YThmZjQ1OWY2NjY5Y2QyZTRlM2RhODY4
MTY0YjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01MTksNiArNTE5LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCiAgICAgZG9tL0V4Y2VwdGlvbkJhc2UuY3BwIFwKICAg
ICBkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCBcCisgICAgZG9tL0dlbmVyaWNFdmVu
dFF1ZXVlLmNwcCBcCiAgICAgZG9tL0ljb25VUkwuY3BwIFwKICAgICBkb20vS2V5Ym9hcmRFdmVu
dC5jcHAgXAogICAgIGRvbS9NZXNzYWdlQ2hhbm5lbC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDdiNTE3ZDQzOTkxMDhiMjZlZWQxNjQ5OTkzMGEyZjA0NDlkYWMyYmEuLjA5YTQ2YTczMjUyOTg1
ZWZkMmJkYTI3Yzk5YzZjMGVhNzBmNDQ2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUzOTgsNiAr
NTM5OCw4IEBACiAgICAgICAgICAgICAnZG9tL0V4Y2VwdGlvbkJhc2UuY3BwJywKICAgICAgICAg
ICAgICdkb20vRXhjZXB0aW9uQmFzZS5oJywKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQ29k
ZVBsYWNlaG9sZGVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNw
cCcsCisgICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgnLAogICAgICAgICAgICAg
J2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0lnbm9yZURlc3RydWN0
aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgnLAogICAgICAgICAgICAgJ2RvbS9JY29uVVJMLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IGU4NmQzOWU5ZjA3ZDUxNDJhNGNiMTY4NTE2NTEyODU4MzczZTIyZDIuLjUzODMyZDM5YzJlMWQ3
YWVmOGIxZGE1MGMwYmVkZjc5NWE4ZjI2YzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00ODg3OCw2ICs0ODg3OCw2MiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cR2VuZXJpY0V2ZW50
UXVldWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXEdlbmVyaWNFdmVudFF1ZXVlLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEhhc2hDaGFuZ2VFdmVudC5oIgog
CQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmlj
RXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzYTI0OGZkMzdhM2YwZjQzZTk2MTNiMjM2MjU2N2Q2YTlkNGQyYTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuY3Bw
CkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFZpY3RvciBDYXJi
dW5lICh2aWN0b3JAcm9zZWR1Lm9yZykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKKworI2luY2x1ZGUgIkV2ZW50LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworR2VuZXJpY0V2ZW50UXVldWU6OkdlbmVyaWNFdmVudFF1ZXVl
KCkKKyAgICA6IG1fdGltZXIodGhpcywgJkdlbmVyaWNFdmVudFF1ZXVlOjp0aW1lckZpcmVkKQor
ICAgICwgbV9pc0Nsb3NlZChmYWxzZSkKK3sKK30KKworR2VuZXJpY0V2ZW50UXVldWU6On5HZW5l
cmljRXZlbnRRdWV1ZSgpCit7Cit9CisKK2Jvb2wgR2VuZXJpY0V2ZW50UXVldWU6OmVucXVldWVF
dmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKSk7CisgICAg
bV9wZW5kaW5nRXZlbnRzLmFwcGVuZChldmVudCk7CisKKyAgICBpZiAoIW1fdGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBHZW5lcmljRXZlbnRRdWV1ZTo6Y2FuY2VsRXZlbnQoRXZlbnQqIGV2ZW50
KQoreworICAgIGJvb2wgZm91bmQgPSBtX3BlbmRpbmdFdmVudHMuY29udGFpbnMoZXZlbnQpOwor
CisgICAgaWYgKGZvdW5kKQorICAgICAgICBtX3BlbmRpbmdFdmVudHMucmVtb3ZlKG1fcGVuZGlu
Z0V2ZW50cy5maW5kKGV2ZW50KSk7CisKKyAgICBpZiAobV9wZW5kaW5nRXZlbnRzLmlzRW1wdHko
KSkKKyAgICAgICAgbV90aW1lci5zdG9wKCk7CisKKyAgICByZXR1cm4gZm91bmQ7Cit9CisKK3Zv
aWQgR2VuZXJpY0V2ZW50UXVldWU6OnRpbWVyRmlyZWQoVGltZXI8R2VuZXJpY0V2ZW50UXVldWU+
ICp0aW1lcikKK3sKKyAgICBBU1NFUlQoIW1fdGltZXIuaXNBY3RpdmUoKSk7CisgICAgQVNTRVJU
KCFtX3BlbmRpbmdFdmVudHMuaXNFbXB0eSgpKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+
ID4gcGVuZGluZ0V2ZW50czsKKyAgICBtX3BlbmRpbmdFdmVudHMuc3dhcChwZW5kaW5nRXZlbnRz
KTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwZW5kaW5nRXZlbnRzLnNpemUoKTsg
KytpKQorICAgICAgICBwZW5kaW5nRXZlbnRzW2ldLT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudChw
ZW5kaW5nRXZlbnRzW2ldLnJlbGVhc2UoKSk7Cit9CisKK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWU6
OmNsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKworICAgIG1fdGltZXIuc3RvcCgp
OworICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOworfQorCit2b2lkIEdlbmVyaWNFdmVudFF1
ZXVlOjpjYW5jZWxBbGxFdmVudHMoKQoreworICAgIG1fdGltZXIuc3RvcCgpOworICAgIG1fcGVu
ZGluZ0V2ZW50cy5jbGVhcigpOworfQorCitib29sIEdlbmVyaWNFdmVudFF1ZXVlOjpoYXNQZW5k
aW5nRXZlbnRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wZW5kaW5nRXZlbnRzLnNpemUoKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YjZmNmI0Y2VhNzhhNDI1NjQ2ZDQ5OThlZmRlMWZkNjhkYTNiMmI0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgKQEAgLTAsMCArMSw2MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBWaWN0b3IgQ2FyYnVuZSAodmljdG9yQHJvc2Vk
dS5vcmcpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgR2VuZXJpY0V2ZW50UXVldWVfaAorI2RlZmluZSBHZW5l
cmljRXZlbnRRdWV1ZV9oCisKKyNpbmNsdWRlICJFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiVGlt
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlbmVyaWNFdmVudFF1ZXVlIDogcHVibGlj
IEV2ZW50UXVldWUgeworCitwdWJsaWM6CisgICAgR2VuZXJpY0V2ZW50UXVldWUoKTsKKyAgICB2
aXJ0dWFsIH5HZW5lcmljRXZlbnRRdWV1ZSgpOworCisgICAgLy8gRXZlbnRRdWV1ZQorICAgIHZp
cnR1YWwgYm9vbCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBjYW5jZWxFdmVudChFdmVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBjbG9zZSgpIE9WRVJSSURFOworCisgICAgdm9pZCBjYW5jZWxBbGxFdmVudHMoKTsKKyAg
ICBib29sIGhhc1BlbmRpbmdFdmVudHMoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB2b2lkIHRp
bWVyRmlyZWQoVGltZXI8R2VuZXJpY0V2ZW50UXVldWU+Kik7CisKKyAgICBWZWN0b3I8UmVmUHRy
PEV2ZW50PiA+IG1fcGVuZGluZ0V2ZW50czsKKyAgICBUaW1lcjxHZW5lcmljRXZlbnRRdWV1ZT4g
bV90aW1lcjsKKworICAgIGJvb2wgbV9pc0Nsb3NlZDsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwNWNjNWIyOGU1Mzk4MDI4
NWViZTNmOGQ5ZjQzYjMzNDZjNGViZWYwLi45NjExOTQ1OWFlN2EyMDQ3YmI3MjI0Zjk2ODQ4ZmE0
Mjg0NmFmMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAg
LTE3NCw3ICsxNzQsNiBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bQogICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQsIHRo
aXMpCiAgICAgLCBtX2xvYWRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6bG9hZFRpbWVy
RmlyZWQpCi0gICAgLCBtX2FzeW5jRXZlbnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6
YXN5bmNFdmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dyZXNzRXZlbnRUaW1lcih0aGlzLCAm
SFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXli
YWNrUHJvZ3Jlc3NUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVz
c1RpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXllZFRpbWVSYW5nZXMoKQpAQCAtNTQxLDI5ICs1NDAs
MTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnROYW1lKQogI2lmIExPR19NRURJQV9FVkVOVFMKICAgICBMT0coTWVkaWEsICJI
VE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50IC0gc2NoZWR1bGluZyAnJXMnIiwgZXZlbnRO
YW1lLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKICNlbmRpZgotICAgIG1fcGVuZGluZ0V2ZW50
cy5hcHBlbmQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCB0cnVlKSk7Ci0gICAgaWYg
KCFtX2FzeW5jRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX2FzeW5jRXZlbnRUaW1l
ci5zdGFydE9uZVNob3QoMCk7Ci19Ci0KLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YXN5bmNFdmVu
dFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKQotewotICAgIFZlY3RvcjxSZWZQ
dHI8RXZlbnQ+ID4gcGVuZGluZ0V2ZW50czsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAg
ICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCB0
cnVlKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwogCi0gICAgbV9wZW5kaW5nRXZlbnRz
LnN3YXAocGVuZGluZ0V2ZW50cyk7Ci0gICAgdW5zaWduZWQgY291bnQgPSBwZW5kaW5nRXZlbnRz
LnNpemUoKTsKLSAgICBmb3IgKHVuc2lnbmVkIG5keCA9IDA7IG5keCA8IGNvdW50OyArK25keCkg
ewotI2lmIExPR19NRURJQV9FVkVOVFMKLSAgICAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxl
bWVudDo6YXN5bmNFdmVudFRpbWVyRmlyZWQgLSBkaXNwYXRjaGluZyAnJXMnIiwgcGVuZGluZ0V2
ZW50c1tuZHhdLT50eXBlKCkuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwotI2VuZGlmCi0gICAg
ICAgIGlmIChwZW5kaW5nRXZlbnRzW25keF0tPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2FucGxh
eUV2ZW50KSB7Ci0gICAgICAgICAgICBtX2Rpc3BhdGNoaW5nQ2FuUGxheUV2ZW50ID0gdHJ1ZTsK
LSAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50c1tuZHhdLnJlbGVhc2UoKSwg
ZWMpOwotICAgICAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVudCA9IGZhbHNlOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50c1tuZHhd
LnJlbGVhc2UoKSwgZWMpOwotICAgIH0KKyAgICBtX2FzeW5jRXZlbnRRdWV1ZS5lbnF1ZXVlRXZl
bnQoZXZlbnQucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkVGlt
ZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopCkBAIC0xMTkyLDggKzExNzIsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lRXJyb3IoUGFzc1JlZlB0cjxNZWRpYUVy
cm9yPiBlcnIpCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNhbmNlbFBlbmRpbmdFdmVudHNBbmRD
YWxsYmFja3MoKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmNhbmNlbFBl
bmRpbmdFdmVudHNBbmRDYWxsYmFja3MiKTsKLQotICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigp
OworICAgIG1fYXN5bmNFdmVudFF1ZXVlLmNhbmNlbEFsbEV2ZW50cygpOwogCiAgICAgZm9yIChO
b2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmco
KSkgewogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzb3VyY2VUYWcpKQpAQCAtMzE3Nywx
MSArMzE1Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVzdW1lKCkKIAogYm9vbCBIVE1M
TWVkaWFFbGVtZW50OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIC8vIFJldHVy
biB0cnVlIHdoZW4gd2UgaGF2ZSBwZW5kaW5nIGV2ZW50cyBzbyB3ZSBjYW4ndCBmaXJlIGV2ZW50
cyBhZnRlciB0aGUgSlMgCi0gICAgLy8gb2JqZWN0IGdldHMgY29sbGVjdGVkLgotICAgIGJvb2wg
cGVuZGluZyA9IG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7Ci0gICAgTE9HKE1lZGlhLCAiSFRNTE1l
ZGlhRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5IC0+ICVzIiwgYm9vbFN0cmluZyhwZW5kaW5n
KSk7Ci0gICAgcmV0dXJuIHBlbmRpbmc7CisgICAgcmV0dXJuIG1fYXN5bmNFdmVudFF1ZXVlLmhh
c1BlbmRpbmdFdmVudHMoKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVZvbHVt
ZURpZENoYW5nZSgpCkBAIC0zNjkyLDYgKzM2NjcsMjQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp1cGRhdGVNZWRpYUNvbnRyb2xsZXIoKQogICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVw
b3J0Q29udHJvbGxlclN0YXRlKCk7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZGlzcGF0
Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBib29sIGRpc3BhdGNoUmVz
dWx0OworICAgIGJvb2wgaXNDYW5QbGF5RXZlbnQ7CisKKyAgICBpc0NhblBsYXlFdmVudCA9IChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jYW5wbGF5RXZlbnQpOworCisgICAgaWYgKGlz
Q2FuUGxheUV2ZW50KQorICAgICAgICBtX2Rpc3BhdGNoaW5nQ2FuUGxheUV2ZW50ID0gdHJ1ZTsK
KworICAgIGRpc3BhdGNoUmVzdWx0ID0gSFRNTEVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQoZXZlbnQp
OworCisgICAgaWYgKGlzQ2FuUGxheUV2ZW50KQorICAgICAgICBtX2Rpc3BhdGNoaW5nQ2FuUGxh
eUV2ZW50ID0gZmFsc2U7CisKKyAgICByZXR1cm4gZGlzcGF0Y2hSZXN1bHQ7Cit9CisKIGJvb2wg
SFRNTE1lZGlhRWxlbWVudDo6aXNCbG9ja2VkKCkgY29uc3QKIHsKICAgICAvLyBBIG1lZGlhIGVs
ZW1lbnQgaXMgYSBibG9ja2VkIG1lZGlhIGVsZW1lbnQgaWYgaXRzIHJlYWR5U3RhdGUgYXR0cmli
dXRlIGlzIGluIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBk
YTQ5YzQwMmVhMDg0OTkxYmYwNTk1NmE3NTg4NzhjOTU5MDZlMTM3Li41Zjc2M2IyNzg3OGJmMzU1
YjVmYmNjZTkyZjU1MjA3ODU5ZmI0NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5o
IgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbGxlckludGVyZmFjZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCkBAIC0yMDUsNyAr
MjA2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHRyYWNrV2FzQWRkZWQoSFRNTFRy
YWNrRWxlbWVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0cmFja1dhc1JlbW92ZWQoSFRNTFRyYWNr
RWxlbWVudCopOwotICAgIAorCiAgICAgdm9pZCBjb25maWd1cmVUZXh0VHJhY2soSFRNTFRyYWNr
RWxlbWVudCopOwogICAgIHZvaWQgY29uZmlndXJlVGV4dFRyYWNrcygpOwogICAgIGJvb2wgdGV4
dFRyYWNrc0FyZVJlYWR5KCkgY29uc3Q7CkBAIC0yNzMsNiArMjc0LDggQEAgcHVibGljOgogICAg
IE1lZGlhQ29udHJvbGxlciogY29udHJvbGxlcigpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29udHJv
bGxlcihQYXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4pOwogCisgICAgdmlydHVhbCBib29sIGRp
c3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1l
ZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sKTsKICAgICB2
aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50KCk7CkBAIC0zNjUsNyArMzY4LDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAgICAgdm9pZCBsb2FkVGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50
PiopOwotICAgIHZvaWQgYXN5bmNFdmVudFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVu
dD4qKTsKICAgICB2b2lkIHByb2dyZXNzRXZlbnRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVs
ZW1lbnQ+Kik7CiAgICAgdm9pZCBwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZChUaW1lcjxIVE1M
TWVkaWFFbGVtZW50PiopOwogICAgIHZvaWQgc3RhcnRQbGF5YmFja1Byb2dyZXNzVGltZXIoKTsK
QEAgLTQ3MCwxMSArNDcyLDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFRpbWVyPEhUTUxN
ZWRpYUVsZW1lbnQ+IG1fbG9hZFRpbWVyOwotICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1f
YXN5bmNFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcHJvZ3Jlc3NF
dmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcGxheWJhY2tQcm9ncmVz
c1RpbWVyOwotICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRzOwogICAg
IFJlZlB0cjxUaW1lUmFuZ2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CisgICAgR2VuZXJpY0V2ZW50
UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAKICAgICBmbG9hdCBtX3BsYXliYWNrUmF0ZTsKICAg
ICBmbG9hdCBtX2RlZmF1bHRQbGF5YmFja1JhdGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123439</attachid>
            <date>2012-01-21 00:48:11 -0800</date>
            <delta_ts>2012-01-21 01:43:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76110-20120121104809.patch</filename>
            <type>text/plain</type>
            <size>16952</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODJkNTE0YWU0MDUzMGVl
MjljY2RkZjg5MDk4ZDIwYzg2NDJiYTNhNy4uMTRhOGQ1NmM4NWQ2ZjA3YzUxOTdkY2NhYmZkNWNm
NGQ4MWFlNmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAxLTIxICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgorCisgICAgICAgIEFkZGVkIHRoZSBHZW5l
cmljRXZlbnRRdWV1ZSBjbGFzcyBpbiBvcmRlciB0byBnZW5lcmFsaXplIGFzeW5jaHJvbm91cwor
ICAgICAgICBldmVudCBkaXNwYXRjaGluZyBpbiBIVE1MTWVkaWFFbGVtZW50LgorCisgICAgICAg
IEluIG9yZGVyIHRvIHN1cHBvcnQgYXN5bmNocm9ub3VzIGV2ZW50cyBkaXNwYXRjaGVkIGJ5IEhU
TUxUcmFja0VsZW1lbnQKKyAgICAgICAgdGhlcmUgaXMgYSBuZWVkIGZvciBhIGdlbmVyYWxpemVk
IGltcGxlbWVudGF0aW9uIG9mIGFuIGV2ZW50IHF1ZXVlIHRvCisgICAgICAgIGJlIHVzZWQgZm9y
IGJvdGggSFRNTE1lZGlhRWxlbWVudCBhbmQgVGV4dCBUcmFja3MuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVu
Y3Rpb25hbGl0eSwgb25seSByZWZhY3RvcmluZy4KKwogMjAxMi0wMS0yMSAgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBQb3B1cE1lbnVDbGllbnQ6Om11
bHRpcGxlKCkgc2hvdWxkIGJlIGNvbnN0CkBAIC01NjEsMTEgKzU3NiwzOCBAQAogICAgICAgICBD
U1MgcHJvcGVydHkuCiAKICAgICAgICAgTm8gbmV3IHRlc3RzIDogSXQncyBhIHJlZmFjdG9yLCBl
eGlzdGluZyB0ZXN0cyBzaG91bGQgY292ZXIgaXQuCis+Pj4+Pj4+IG1hc3RlcgogCiAgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CiAgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKICAgICAg
ICAgKiBUYXJnZXQucHJpOgogICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKzw8PDw8PDwgSEVBRAor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGRvbS9H
ZW5lcmljRXZlbnRRdWV1ZS5jcHA6IEFkZGVkLiBJbXBsZW1lbnRzIHRoZSBhYnN0cmFjdCBjbGFz
cyBFdmVudFF1ZXVlLgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6OkdlbmVy
aWNFdmVudFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlOjp+R2Vu
ZXJpY0V2ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6OmVu
cXVldWVFdmVudCk6IEFwcGVuZCBhbiBldmVudCB0byB0aGUgY3VycmVudAorICAgICAgICBwZW5k
aW5nIGV2ZW50IGxpc3QuCisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6Y2Fu
Y2VsRXZlbnQpOiBSZW1vdmVzIGFuIGV2ZW50IGZyb20gdGhlIGN1cnJlbnQKKyAgICAgICAgcGVu
ZGluZyBldmVudCBsaXN0LgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6OnRp
bWVyRmlyZWQpOiBDYWxsYmFjayBtZXRob2Qgd2hlbiB0aGUgdGltZXIgZmlyZXMuCisgICAgICAg
IERpc3BhdGNoZXMgYWxsIGV2ZW50cyB0aGF0IGFyZSBjdXJyZW50bHkgcGVuZGluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlOjpjbG9zZSk6IENsb3NlcyB0aGUgZXZlbnQg
cXVldWUgc3VjaCB0aGF0IGl0IGNhbm5vdAorICAgICAgICBiZSB1c2VkIGFueW1vcmUuCisgICAg
ICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6Y2FuY2VsQWxsRXZlbnRzKTogUmVtb3Zl
cyBhbGwgcGVuZGluZyBldmVudHMuCisgICAgICAgIChXZWJDb3JlOjpHZW5lcmljRXZlbnRRdWV1
ZTo6aGFzUGVuZGluZ0V2ZW50cyk6IFRydWUgaWYgdGhlcmUgYXJlIHBlbmRpbmcgZXZlbnRzLgor
ICAgICAgICAqIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6SFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpzY2hlZHVsZUV2ZW50KTogUmVmYWN0b3JlZCBtZXRob2QgdG8gZW5xdWV1ZQorICAgICAgICB0
aGUgc2NoZWR1bGVkIGV2ZW50IG9uIHRoZSBHZW5lcmljRXZlbnRRdWV1ZSBpbnN0YW5jZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhbmNlbFBlbmRpbmdFdmVudHNBbmRD
YWxsYmFja3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhh
c1BlbmRpbmdBY3Rpdml0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6ZGlzcGF0Y2hFdmVudCk6IFRoaXMgbWV0aG9kIGlzIG92ZXJyaWRlbgorICAgICAgICB0
byBrZWVwIGFuIGV2aWRlbmNlIHdoZW4gYSBjYW5QbGF5IGV2ZW50IGlzIGZpcmVkLgorICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorPT09PT09PQogICAgICAgICAqIFdlYkNvcmUu
b3JkZXI6CiAgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CiAgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgpAQCAtODkxLDYgKzkzMyw3IEBA
CiAgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6YmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0
KToKICAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJ
bXBsLmNwcDoKICAgICAgICAgKFdlYkNvcmU6OkNDVGlsZWRMYXllckltcGw6OmFwcGVuZFF1YWRz
KToKKz4+Pj4+Pj4gbWFzdGVyCiAKIDIwMTItMDEtMTkgIENhcnkgQ2xhcmsgIDxjYXJ5Y2xhcmtA
Z29vZ2xlLmNvbT4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZDJlNTZlYTk3ZTcxODM2OGVi
NDYxYWEzMjMxNTg3ZGJjYzY3YmJlLi45ZmMyN2FhYzkyOGIxNjVmMjMzMjJhZTdjMjE0NTE5Nzgz
YTNmZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTU1LDYgKzU1NSw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBkb20vRXZlbnRUYXJnZXQuY3BwCiAgICAgZG9tL0V4Y2VwdGlvbkJh
c2UuY3BwCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5jcHAKKyAgICBkb20vR2Vu
ZXJpY0V2ZW50UXVldWUuY3BwCiAgICAgZG9tL0ljb25VUkwuY3BwCiAgICAgZG9tL0tleWJvYXJk
RXZlbnQuY3BwCiAgICAgZG9tL01lc3NhZ2VDaGFubmVsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggMjEzMDFjN2NlYjE5MjcyYWM4MTBjNjI5MjU4NzNhZDYzY2ZkMTFjMy4u
YTdhN2ZlNDk5MmMwYWI4ZWNmZDI0NGNkY2UzNTllMzBlN2I3Zjg4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0xNTYxLDYgKzE1NjEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9GcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVy
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCBcCisJ
U291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9JY29uVVJM
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ljb25VUkwuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0hhc2hDaGFuZ2VFdmVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDFjYTA5ZTY5ZGU1YWM5Yzdj
NDU0OGYyYmU0NTYwMmVlNjk0ZTkwZmIuLmM2NGYyYTNlNDU0Y2JhMGM2OTkwNzZmYTQ1MzU2MzY3
ZDJhYWFhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTIxLDYgKzUyMSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGRvbS9FdmVudFRhcmdldC5jcHAgXAogICAgIGRvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAg
ICAgZG9tL0V4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5jcHAgXAorICAgIGRvbS9HZW5lcmljRXZl
bnRRdWV1ZS5jcHAgXAogICAgIGRvbS9JY29uVVJMLmNwcCBcCiAgICAgZG9tL0tleWJvYXJkRXZl
bnQuY3BwIFwKICAgICBkb20vTWVzc2FnZUNoYW5uZWwuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCAyZjEwOTM3NjgwNzIxZmMzZTgyMzYzZmYzNjI1MWZiOGI3OTRlM2QzLi4yNjMzMjc5Y2ZiNjUz
YjA2Y2NiNmRlNDBlZjZiMGE2ZWFkOGE5NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01NDA1LDYg
KzU0MDUsOCBAQAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25CYXNlLmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL0V4Y2VwdGlvbkJhc2UuaCcsCiAgICAgICAgICAgICAnZG9tL0V4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5j
cHAnLAorICAgICAgICAgICAgJ2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oJywKICAgICAgICAgICAg
ICdkb20vSGFzaENoYW5nZUV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9JZ25vcmVEZXN0cnVj
dGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oJywKICAgICAgICAgICAgICdkb20vSWNvblVSTC5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCAxYmE2YWIxY2EyYTE1YzMzMDJmZDY0OGYyNzk1ZDkxYjA3YmU1ZDM1Li5hYzdhNzc0ODYyZmZl
NTg0YjkxNTMxOWUwZjFiN2NhYjQyMzY2ZWNhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDg4OTgsNiArNDg4OTgsMTQgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEdlbmVyaWNFdmVu
dFF1ZXVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxHZW5lcmljRXZlbnRRdWV1ZS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxIYXNoQ2hhbmdlRXZlbnQuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVl
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mM2EyNDhmZDM3YTNmMGY0M2U5NjEzYjIzNjI1NjdkNmE5ZDRkMmE4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcApAQCAtMCww
ICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBWaWN0b3IgQ2FyYnVuZSAodmlj
dG9yQHJvc2VkdS5vcmcpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IkdlbmVyaWNFdmVudFF1ZXVlLmgiCisKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0dlbmVyaWNFdmVudFF1ZXVlOjpHZW5lcmljRXZlbnRRdWV1ZSgpCisgICAg
OiBtX3RpbWVyKHRoaXMsICZHZW5lcmljRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCkKKyAgICAsIG1f
aXNDbG9zZWQoZmFsc2UpCit7Cit9CisKK0dlbmVyaWNFdmVudFF1ZXVlOjp+R2VuZXJpY0V2ZW50
UXVldWUoKQoreworfQorCitib29sIEdlbmVyaWNFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEFTU0VSVChldmVudC0+dGFyZ2V0KCkpOworICAgIG1fcGVuZGlu
Z0V2ZW50cy5hcHBlbmQoZXZlbnQpOworCisgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisg
ICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgR2VuZXJpY0V2ZW50UXVldWU6OmNhbmNlbEV2ZW50KEV2ZW50KiBldmVudCkKK3sKKyAg
ICBib29sIGZvdW5kID0gbV9wZW5kaW5nRXZlbnRzLmNvbnRhaW5zKGV2ZW50KTsKKworICAgIGlm
IChmb3VuZCkKKyAgICAgICAgbV9wZW5kaW5nRXZlbnRzLnJlbW92ZShtX3BlbmRpbmdFdmVudHMu
ZmluZChldmVudCkpOworCisgICAgaWYgKG1fcGVuZGluZ0V2ZW50cy5pc0VtcHR5KCkpCisgICAg
ICAgIG1fdGltZXIuc3RvcCgpOworCisgICAgcmV0dXJuIGZvdW5kOworfQorCit2b2lkIEdlbmVy
aWNFdmVudFF1ZXVlOjp0aW1lckZpcmVkKFRpbWVyPEdlbmVyaWNFdmVudFF1ZXVlPiAqdGltZXIp
Cit7CisgICAgQVNTRVJUKCFtX3RpbWVyLmlzQWN0aXZlKCkpOworICAgIEFTU0VSVCghbV9wZW5k
aW5nRXZlbnRzLmlzRW1wdHkoKSk7CisKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IHBlbmRp
bmdFdmVudHM7CisgICAgbV9wZW5kaW5nRXZlbnRzLnN3YXAocGVuZGluZ0V2ZW50cyk7CisKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGVuZGluZ0V2ZW50cy5zaXplKCk7ICsraSkKKyAg
ICAgICAgcGVuZGluZ0V2ZW50c1tpXS0+dGFyZ2V0KCktPmRpc3BhdGNoRXZlbnQocGVuZGluZ0V2
ZW50c1tpXS5yZWxlYXNlKCkpOworfQorCit2b2lkIEdlbmVyaWNFdmVudFF1ZXVlOjpjbG9zZSgp
Cit7CisgICAgbV9pc0Nsb3NlZCA9IHRydWU7CisKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBt
X3BlbmRpbmdFdmVudHMuY2xlYXIoKTsKK30KKwordm9pZCBHZW5lcmljRXZlbnRRdWV1ZTo6Y2Fu
Y2VsQWxsRXZlbnRzKCkKK3sKKyAgICBtX3RpbWVyLnN0b3AoKTsKKyAgICBtX3BlbmRpbmdFdmVu
dHMuY2xlYXIoKTsKK30KKworYm9vbCBHZW5lcmljRXZlbnRRdWV1ZTo6aGFzUGVuZGluZ0V2ZW50
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2ZjZiNGNl
YTc4YTQyNTY0NmQ0OTk4ZWZkZTFmZDY4ZGEzYjJiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgVmljdG9yIENhcmJ1bmUgKHZpY3RvckByb3NlZHUub3JnKQor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEdlbmVyaWNFdmVudFF1ZXVlX2gKKyNkZWZpbmUgR2VuZXJpY0V2ZW50
UXVldWVfaAorCisjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW5lcmljRXZlbnRRdWV1ZSA6IHB1YmxpYyBFdmVudFF1
ZXVlIHsKKworcHVibGljOgorICAgIEdlbmVyaWNFdmVudFF1ZXVlKCk7CisgICAgdmlydHVhbCB+
R2VuZXJpY0V2ZW50UXVldWUoKTsKKworICAgIC8vIEV2ZW50UXVldWUKKyAgICB2aXJ0dWFsIGJv
b2wgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuY2VsRXZlbnQoRXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xv
c2UoKSBPVkVSUklERTsKKworICAgIHZvaWQgY2FuY2VsQWxsRXZlbnRzKCk7CisgICAgYm9vbCBo
YXNQZW5kaW5nRXZlbnRzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdm9pZCB0aW1lckZpcmVk
KFRpbWVyPEdlbmVyaWNFdmVudFF1ZXVlPiopOworCisgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4g
PiBtX3BlbmRpbmdFdmVudHM7CisgICAgVGltZXI8R2VuZXJpY0V2ZW50UXVldWU+IG1fdGltZXI7
CisKKyAgICBib29sIG1faXNDbG9zZWQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDVjYzViMjhlNTM5ODAyODVlYmUzZjhk
OWY0M2IzMzQ2YzRlYmVmMC4uOTYxMTk0NTlhZTdhMjA0N2JiNzIyNGY5Njg0OGZhNDI4NDZhZjFh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xNzQsNyAr
MTc0LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW0KICAgICA6IEhUTUxFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQogICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQogICAg
ICwgbV9sb2FkVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRUaW1lckZpcmVkKQot
ICAgICwgbV9hc3luY0V2ZW50VGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OmFzeW5jRXZl
bnRUaW1lckZpcmVkKQogICAgICwgbV9wcm9ncmVzc0V2ZW50VGltZXIodGhpcywgJkhUTUxNZWRp
YUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wbGF5YmFja1Byb2dy
ZXNzVGltZXIodGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUHJvZ3Jlc3NUaW1lckZp
cmVkKQogICAgICwgbV9wbGF5ZWRUaW1lUmFuZ2VzKCkKQEAgLTU0MSwyOSArNTQwLDEwIEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50TmFtZSkKICNpZiBMT0dfTUVESUFfRVZFTlRTCiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlh
RWxlbWVudDo6c2NoZWR1bGVFdmVudCAtIHNjaGVkdWxpbmcgJyVzJyIsIGV2ZW50TmFtZS5zdHJp
bmcoKS5hc2NpaSgpLmRhdGEoKSk7CiAjZW5kaWYKLSAgICBtX3BlbmRpbmdFdmVudHMuYXBwZW5k
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgdHJ1ZSkpOwotICAgIGlmICghbV9hc3lu
Y0V2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9hc3luY0V2ZW50VGltZXIuc3RhcnRP
bmVTaG90KDApOwotfQotCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFzeW5jRXZlbnRUaW1lckZp
cmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+KikKLXsKLSAgICBWZWN0b3I8UmVmUHRyPEV2ZW50
PiA+IHBlbmRpbmdFdmVudHM7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgUmVmUHRy
PEV2ZW50PiBldmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lLCBmYWxzZSwgdHJ1ZSk7Cisg
ICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKIAotICAgIG1fcGVuZGluZ0V2ZW50cy5zd2FwKHBl
bmRpbmdFdmVudHMpOwotICAgIHVuc2lnbmVkIGNvdW50ID0gcGVuZGluZ0V2ZW50cy5zaXplKCk7
Ci0gICAgZm9yICh1bnNpZ25lZCBuZHggPSAwOyBuZHggPCBjb3VudDsgKytuZHgpIHsKLSNpZiBM
T0dfTUVESUFfRVZFTlRTCi0gICAgICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmFz
eW5jRXZlbnRUaW1lckZpcmVkIC0gZGlzcGF0Y2hpbmcgJyVzJyIsIHBlbmRpbmdFdmVudHNbbmR4
XS0+dHlwZSgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSNlbmRpZgotICAgICAgICBpZiAo
cGVuZGluZ0V2ZW50c1tuZHhdLT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNhbnBsYXlFdmVudCkg
ewotICAgICAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVudCA9IHRydWU7Ci0gICAgICAg
ICAgICBkaXNwYXRjaEV2ZW50KHBlbmRpbmdFdmVudHNbbmR4XS5yZWxlYXNlKCksIGVjKTsKLSAg
ICAgICAgICAgIG1fZGlzcGF0Y2hpbmdDYW5QbGF5RXZlbnQgPSBmYWxzZTsKLSAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICBkaXNwYXRjaEV2ZW50KHBlbmRpbmdFdmVudHNbbmR4XS5yZWxlYXNl
KCksIGVjKTsKLSAgICB9CisgICAgbV9hc3luY0V2ZW50UXVldWUuZW5xdWV1ZUV2ZW50KGV2ZW50
LnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFRpbWVyRmlyZWQo
VGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKQpAQCAtMTE5Miw4ICsxMTcyLDcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYUVuZ2luZUVycm9yKFBhc3NSZWZQdHI8TWVkaWFFcnJvcj4gZXJy
KQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjYW5jZWxQZW5kaW5nRXZlbnRzQW5kQ2FsbGJhY2tz
KCkKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpjYW5jZWxQZW5kaW5nRXZl
bnRzQW5kQ2FsbGJhY2tzIik7Ci0KLSAgICBtX3BlbmRpbmdFdmVudHMuY2xlYXIoKTsKKyAgICBt
X2FzeW5jRXZlbnRRdWV1ZS5jYW5jZWxBbGxFdmVudHMoKTsKIAogICAgIGZvciAoTm9kZSogbm9k
ZSA9IGZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKICAg
ICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc291cmNlVGFnKSkKQEAgLTMxNzcsMTEgKzMxNTYs
NyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlc3VtZSgpCiAKIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKLSAgICAvLyBSZXR1cm4gdHJ1ZSB3
aGVuIHdlIGhhdmUgcGVuZGluZyBldmVudHMgc28gd2UgY2FuJ3QgZmlyZSBldmVudHMgYWZ0ZXIg
dGhlIEpTIAotICAgIC8vIG9iamVjdCBnZXRzIGNvbGxlY3RlZC4KLSAgICBib29sIHBlbmRpbmcg
PSBtX3BlbmRpbmdFdmVudHMuc2l6ZSgpOwotICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1l
bnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSAtPiAlcyIsIGJvb2xTdHJpbmcocGVuZGluZykpOwotICAg
IHJldHVybiBwZW5kaW5nOworICAgIHJldHVybiBtX2FzeW5jRXZlbnRRdWV1ZS5oYXNQZW5kaW5n
RXZlbnRzKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFWb2x1bWVEaWRDaGFu
Z2UoKQpAQCAtMzY5Miw2ICszNjY3LDI0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRl
TWVkaWFDb250cm9sbGVyKCkKICAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXItPnJlcG9ydENvbnRy
b2xsZXJTdGF0ZSgpOwogfQogCitib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmRpc3BhdGNoRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgYm9vbCBkaXNwYXRjaFJlc3VsdDsKKyAg
ICBib29sIGlzQ2FuUGxheUV2ZW50OworCisgICAgaXNDYW5QbGF5RXZlbnQgPSAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuY2FucGxheUV2ZW50KTsKKworICAgIGlmIChpc0NhblBsYXlF
dmVudCkKKyAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVudCA9IHRydWU7CisKKyAgICBk
aXNwYXRjaFJlc3VsdCA9IEhUTUxFbGVtZW50OjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKworICAg
IGlmIChpc0NhblBsYXlFdmVudCkKKyAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVudCA9
IGZhbHNlOworCisgICAgcmV0dXJuIGRpc3BhdGNoUmVzdWx0OworfQorCiBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6OmlzQmxvY2tlZCgpIGNvbnN0CiB7CiAgICAgLy8gQSBtZWRpYSBlbGVtZW50IGlz
IGEgYmxvY2tlZCBtZWRpYSBlbGVtZW50IGlmIGl0cyByZWFkeVN0YXRlIGF0dHJpYnV0ZSBpcyBp
biB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggZGE0OWM0MDJl
YTA4NDk5MWJmMDU5NTZhNzU4ODc4Yzk1OTA2ZTEzNy4uNWY3NjNiMjc4NzhiZjM1NWI1ZmJjY2U5
MmY1NTIwNzg1OWZiNDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJNZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXJJ
bnRlcmZhY2UuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgpAQCAtMjA1LDcgKzIwNiw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB0cmFja1dhc0FkZGVkKEhUTUxUcmFja0VsZW1l
bnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tXYXNSZW1vdmVkKEhUTUxUcmFja0VsZW1lbnQq
KTsKLSAgICAKKwogICAgIHZvaWQgY29uZmlndXJlVGV4dFRyYWNrKEhUTUxUcmFja0VsZW1lbnQq
KTsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja3MoKTsKICAgICBib29sIHRleHRUcmFja3NB
cmVSZWFkeSgpIGNvbnN0OwpAQCAtMjczLDYgKzI3NCw4IEBAIHB1YmxpYzoKICAgICBNZWRpYUNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIoKSBjb25zdDsKICAgICB2b2lkIHNldENvbnRyb2xsZXIoUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xsZXI+KTsKIAorICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2
ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCk7CiAgICAgdmlydHVhbCB+
SFRNTE1lZGlhRWxlbWVudCgpOwpAQCAtMzY1LDcgKzM2OCw2IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKTsKLSAg
ICB2b2lkIGFzeW5jRXZlbnRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+Kik7CiAg
ICAgdm9pZCBwcm9ncmVzc0V2ZW50VGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50Piop
OwogICAgIHZvaWQgcGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxl
bWVudD4qKTsKICAgICB2b2lkIHN0YXJ0UGxheWJhY2tQcm9ncmVzc1RpbWVyKCk7CkBAIC00NzAs
MTEgKzQ3MiwxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVt
ZW50PiBtX2xvYWRUaW1lcjsKLSAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2FzeW5jRXZl
bnRUaW1lcjsKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRUaW1l
cjsKICAgICBUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcjsK
LSAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fcGVuZGluZ0V2ZW50czsKICAgICBSZWZQdHI8
VGltZVJhbmdlcz4gbV9wbGF5ZWRUaW1lUmFuZ2VzOworICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1f
YXN5bmNFdmVudFF1ZXVlOwogCiAgICAgZmxvYXQgbV9wbGF5YmFja1JhdGU7CiAgICAgZmxvYXQg
bV9kZWZhdWx0UGxheWJhY2tSYXRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123441</attachid>
            <date>2012-01-21 01:43:26 -0800</date>
            <delta_ts>2012-01-24 06:58:41 -0800</delta_ts>
            <desc>Green patch</desc>
            <filename>bug-76110-20120121114324.patch</filename>
            <type>text/plain</type>
            <size>16519</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg2ODEyMzA5MWUyNDMw
MDJlNTI3MTRkZjA3ZWVhYzRhOTAzMTkwMC4uNDAwYzdkY2MzNTRhOGRiOWZiNTA0MWQ1OGY2NjQ0
NjQyNjgwYWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAxLTIwICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgorCisgICAgICAgIEFkZGVkIHRoZSBHZW5l
cmljRXZlbnRRdWV1ZSBjbGFzcyBpbiBvcmRlciB0byBnZW5lcmFsaXplIGFzeW5jaHJvbm91cwor
ICAgICAgICBldmVudCBkaXNwYXRjaGluZyBpbiBIVE1MTWVkaWFFbGVtZW50LgorCisgICAgICAg
IEluIG9yZGVyIHRvIHN1cHBvcnQgYXN5bmNocm9ub3VzIGV2ZW50cyBkaXNwYXRjaGVkIGJ5IEhU
TUxUcmFja0VsZW1lbnQKKyAgICAgICAgdGhlcmUgaXMgYSBuZWVkIGZvciBhIGdlbmVyYWxpemVk
IGltcGxlbWVudGF0aW9uIG9mIGFuIGV2ZW50IHF1ZXVlIHRvCisgICAgICAgIGJlIHVzZWQgZm9y
IGJvdGggSFRNTE1lZGlhRWxlbWVudCBhbmQgVGV4dCBUcmFja3MuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVu
Y3Rpb25hbGl0eSwgb25seSByZWZhY3RvcmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcDogQWRkZWQuIElt
cGxlbWVudHMgdGhlIGFic3RyYWN0IGNsYXNzIEV2ZW50UXVldWUuCisgICAgICAgIChXZWJDb3Jl
OjpHZW5lcmljRXZlbnRRdWV1ZTo6R2VuZXJpY0V2ZW50UXVldWUpOgorICAgICAgICAoV2ViQ29y
ZTo6R2VuZXJpY0V2ZW50UXVldWU6On5HZW5lcmljRXZlbnRRdWV1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KTogQXBwZW5kIGFuIGV2ZW50IHRv
IHRoZSBjdXJyZW50CisgICAgICAgIHBlbmRpbmcgZXZlbnQgbGlzdC4KKyAgICAgICAgKFdlYkNv
cmU6OkdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxFdmVudCk6IFJlbW92ZXMgYW4gZXZlbnQgZnJv
bSB0aGUgY3VycmVudAorICAgICAgICBwZW5kaW5nIGV2ZW50IGxpc3QuCisgICAgICAgIChXZWJD
b3JlOjpHZW5lcmljRXZlbnRRdWV1ZTo6dGltZXJGaXJlZCk6IENhbGxiYWNrIG1ldGhvZCB3aGVu
IHRoZSB0aW1lciBmaXJlcy4KKyAgICAgICAgRGlzcGF0Y2hlcyBhbGwgZXZlbnRzIHRoYXQgYXJl
IGN1cnJlbnRseSBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0V2ZW50UXVldWU6
OmNsb3NlKTogQ2xvc2VzIHRoZSBldmVudCBxdWV1ZSBzdWNoIHRoYXQgaXQgY2Fubm90CisgICAg
ICAgIGJlIHVzZWQgYW55bW9yZS4KKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVl
OjpjYW5jZWxBbGxFdmVudHMpOiBSZW1vdmVzIGFsbCBwZW5kaW5nIGV2ZW50cy4KKyAgICAgICAg
KFdlYkNvcmU6OkdlbmVyaWNFdmVudFF1ZXVlOjpoYXNQZW5kaW5nRXZlbnRzKTogVHJ1ZSBpZiB0
aGVyZSBhcmUgcGVuZGluZyBldmVudHMuCisgICAgICAgICogZG9tL0dlbmVyaWNFdmVudFF1ZXVl
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRXZlbnQpOiBSZWZhY3RvcmVkIG1l
dGhvZCB0byBlbnF1ZXVlCisgICAgICAgIHRoZSBzY2hlZHVsZWQgZXZlbnQgb24gdGhlIEdlbmVy
aWNFdmVudFF1ZXVlIGluc3RhbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6Y2FuY2VsUGVuZGluZ0V2ZW50c0FuZENhbGxiYWNrcyk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkaXNwYXRjaEV2ZW50KTogVGhpcyBtZXRo
b2QgaXMgb3ZlcnJpZGVuCisgICAgICAgIHRvIGtlZXAgYW4gZXZpZGVuY2Ugd2hlbiBhIGNhblBs
YXkgZXZlbnQgaXMgZmlyZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisK
IDIwMTItMDEtMjEgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSRUdSRVNTSU9OIChTYWZhcmkgNS4wLjUgLSBUb1QpOiBjcmFzaCBpbiBTVkcgdGVz
dCBodHRwOi8vZGV2LnczLm9yZy9TVkcvcHJvZmlsZXMvMS4xRjIvdGVzdC9oYXJuZXNzL2h0bWxP
YmplY3RBcHByb3ZlZC9hbmltYXRlLWVsZW0tMzktdC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDlkMmU1NmVhOTdlNzE4MzY4ZWI0NjFhYTMyMzE1ODdkYmNjNjdiYmUuLjlmYzI3YWFjOTI4
YjE2NWYyMzMyMmFlN2MyMTQ1MTk3ODNhM2ZkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01
NTUsNiArNTU1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9FdmVudFRhcmdldC5j
cHAKICAgICBkb20vRXhjZXB0aW9uQmFzZS5jcHAKICAgICBkb20vRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmNwcAorICAgIGRvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAKICAgICBkb20vSWNvblVS
TC5jcHAKICAgICBkb20vS2V5Ym9hcmRFdmVudC5jcHAKICAgICBkb20vTWVzc2FnZUNoYW5uZWwu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyMTMwMWM3Y2ViMTkyNzJhYzgx
MGM2MjkyNTg3M2FkNjNjZmQxMWMzLi5hN2E3ZmU0OTkyYzBhYjhlY2ZkMjQ0Y2RjZTM1OWUzMGU3
YjdmODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1NjEsNiArMTU2MSw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0ZyYWdtZW50U2Ny
aXB0aW5nUGVybWlzc2lvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWdub3JlRGVzdHJ1Y3Rp
dmVXcml0ZUNvdW50SW5jcmVtZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVl
dWUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUuaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0ljb25VUkwuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSWNvblVS
TC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggMWNhMDllNjlkZTVhYzljN2M0NTQ4ZjJiZTQ1NjAyZWU2OTRlOTBmYi4uYzY0ZjJhM2U0
NTRjYmEwYzY5OTA3NmZhNDUzNTYzNjdkMmFhYWEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01MjEsNiAr
NTIxLDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCiAgICAgZG9t
L0V4Y2VwdGlvbkJhc2UuY3BwIFwKICAgICBkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNw
cCBcCisgICAgZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9tL0ljb25VUkwuY3Bw
IFwKICAgICBkb20vS2V5Ym9hcmRFdmVudC5jcHAgXAogICAgIGRvbS9NZXNzYWdlQ2hhbm5lbC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJmMTA5Mzc2ODA3MjFmYzNlODIzNjNmZjM2MjUxZmI4
Yjc5NGUzZDMuLjI2MzMyNzljZmI2NTNiMDZjY2I2ZGU0MGVmNmIwYTZlYWQ4YTk0NzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTU0MDUsNiArNTQwNSw4IEBACiAgICAgICAgICAgICAnZG9tL0V4Y2Vw
dGlvbkJhc2UuY3BwJywKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQmFzZS5oJywKICAgICAg
ICAgICAgICdkb20vRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmNwcCcsCisgICAgICAgICAgICAn
ZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmNwcCcsCisgICAgICAgICAgICAnZG9tL0dlbmVyaWNFdmVu
dFF1ZXVlLmgnLAogICAgICAgICAgICAgJ2RvbS9IYXNoQ2hhbmdlRXZlbnQuaCcsCiAgICAgICAg
ICAgICAnZG9tL0lnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgnLAogICAg
ICAgICAgICAgJ2RvbS9JY29uVVJMLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDFiYTZhYjFjYTJhMTVjMzMwMmZkNjQ4ZjI3OTVkOTFi
MDdiZTVkMzUuLmFjN2E3NzQ4NjJmZmU1ODRiOTE1MzE5ZTBmMWI3Y2FiNDIzNjZlY2EgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00ODg5OCw2
ICs0ODg5OCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxkb21cR2VuZXJpY0V2ZW50UXVldWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEdlbmVyaWNFdmVudFF1ZXVlLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEhhc2hD
aGFuZ2VFdmVudC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9HZW5lcmljRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJp
Y0V2ZW50UXVldWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzYTI0OGZkMzdhM2YwZjQzZTk2MTNiMjM2MjU2
N2Q2YTlkNGQyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJp
Y0V2ZW50UXVldWUuY3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIFZpY3RvciBDYXJidW5lICh2aWN0b3JAcm9zZWR1Lm9yZykKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKKworI2luY2x1ZGUg
IkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR2VuZXJpY0V2ZW50UXVldWU6Okdl
bmVyaWNFdmVudFF1ZXVlKCkKKyAgICA6IG1fdGltZXIodGhpcywgJkdlbmVyaWNFdmVudFF1ZXVl
Ojp0aW1lckZpcmVkKQorICAgICwgbV9pc0Nsb3NlZChmYWxzZSkKK3sKK30KKworR2VuZXJpY0V2
ZW50UXVldWU6On5HZW5lcmljRXZlbnRRdWV1ZSgpCit7Cit9CisKK2Jvb2wgR2VuZXJpY0V2ZW50
UXVldWU6OmVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBpZiAo
bV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKGV2ZW50LT50
YXJnZXQoKSk7CisgICAgbV9wZW5kaW5nRXZlbnRzLmFwcGVuZChldmVudCk7CisKKyAgICBpZiAo
IW1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBHZW5lcmljRXZlbnRRdWV1ZTo6Y2FuY2VsRXZl
bnQoRXZlbnQqIGV2ZW50KQoreworICAgIGJvb2wgZm91bmQgPSBtX3BlbmRpbmdFdmVudHMuY29u
dGFpbnMoZXZlbnQpOworCisgICAgaWYgKGZvdW5kKQorICAgICAgICBtX3BlbmRpbmdFdmVudHMu
cmVtb3ZlKG1fcGVuZGluZ0V2ZW50cy5maW5kKGV2ZW50KSk7CisKKyAgICBpZiAobV9wZW5kaW5n
RXZlbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgbV90aW1lci5zdG9wKCk7CisKKyAgICByZXR1cm4g
Zm91bmQ7Cit9CisKK3ZvaWQgR2VuZXJpY0V2ZW50UXVldWU6OnRpbWVyRmlyZWQoVGltZXI8R2Vu
ZXJpY0V2ZW50UXVldWU+ICp0aW1lcikKK3sKKyAgICBBU1NFUlQoIW1fdGltZXIuaXNBY3RpdmUo
KSk7CisgICAgQVNTRVJUKCFtX3BlbmRpbmdFdmVudHMuaXNFbXB0eSgpKTsKKworICAgIFZlY3Rv
cjxSZWZQdHI8RXZlbnQ+ID4gcGVuZGluZ0V2ZW50czsKKyAgICBtX3BlbmRpbmdFdmVudHMuc3dh
cChwZW5kaW5nRXZlbnRzKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwZW5kaW5n
RXZlbnRzLnNpemUoKTsgKytpKQorICAgICAgICBwZW5kaW5nRXZlbnRzW2ldLT50YXJnZXQoKS0+
ZGlzcGF0Y2hFdmVudChwZW5kaW5nRXZlbnRzW2ldLnJlbGVhc2UoKSk7Cit9CisKK3ZvaWQgR2Vu
ZXJpY0V2ZW50UXVldWU6OmNsb3NlKCkKK3sKKyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKworICAg
IG1fdGltZXIuc3RvcCgpOworICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOworfQorCit2b2lk
IEdlbmVyaWNFdmVudFF1ZXVlOjpjYW5jZWxBbGxFdmVudHMoKQoreworICAgIG1fdGltZXIuc3Rv
cCgpOworICAgIG1fcGVuZGluZ0V2ZW50cy5jbGVhcigpOworfQorCitib29sIEdlbmVyaWNFdmVu
dFF1ZXVlOjpoYXNQZW5kaW5nRXZlbnRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wZW5kaW5n
RXZlbnRzLnNpemUoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0dl
bmVyaWNFdmVudFF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2VuZXJpY0V2ZW50UXVldWUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42YjZmNmI0Y2VhNzhhNDI1NjQ2ZDQ5OThlZmRlMWZkNjhkYTNiMmI0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0dlbmVyaWNFdmVudFF1ZXVlLmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBWaWN0b3IgQ2FyYnVu
ZSAodmljdG9yQHJvc2VkdS5vcmcpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgR2VuZXJpY0V2ZW50UXVldWVf
aAorI2RlZmluZSBHZW5lcmljRXZlbnRRdWV1ZV9oCisKKyNpbmNsdWRlICJFdmVudFF1ZXVlLmgi
CisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlbmVyaWNFdmVu
dFF1ZXVlIDogcHVibGljIEV2ZW50UXVldWUgeworCitwdWJsaWM6CisgICAgR2VuZXJpY0V2ZW50
UXVldWUoKTsKKyAgICB2aXJ0dWFsIH5HZW5lcmljRXZlbnRRdWV1ZSgpOworCisgICAgLy8gRXZl
bnRRdWV1ZQorICAgIHZpcnR1YWwgYm9vbCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4p
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5jZWxFdmVudChFdmVudCopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9WRVJSSURFOworCisgICAgdm9pZCBjYW5jZWxB
bGxFdmVudHMoKTsKKyAgICBib29sIGhhc1BlbmRpbmdFdmVudHMoKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8R2VuZXJpY0V2ZW50UXVldWU+Kik7CisKKyAg
ICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fcGVuZGluZ0V2ZW50czsKKyAgICBUaW1lcjxHZW5l
cmljRXZlbnRRdWV1ZT4gbV90aW1lcjsKKworICAgIGJvb2wgbV9pc0Nsb3NlZDsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAw
NWNjNWIyOGU1Mzk4MDI4NWViZTNmOGQ5ZjQzYjMzNDZjNGViZWYwLi45NjExOTQ1OWFlN2EyMDQ3
YmI3MjI0Zjk2ODQ4ZmE0Mjg0NmFmMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTE3NCw3ICsxNzQsNiBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVk
aWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bQog
ICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBBY3RpdmVET01PYmpl
Y3QoZG9jdW1lbnQsIHRoaXMpCiAgICAgLCBtX2xvYWRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxl
bWVudDo6bG9hZFRpbWVyRmlyZWQpCi0gICAgLCBtX2FzeW5jRXZlbnRUaW1lcih0aGlzLCAmSFRN
TE1lZGlhRWxlbWVudDo6YXN5bmNFdmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dyZXNzRXZl
bnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQp
CiAgICAgLCBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6
cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXllZFRpbWVSYW5nZXMoKQpA
QCAtNTQxLDI5ICs1NDAsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lKQogI2lmIExPR19NRURJQV9FVkVOVFMKICAg
ICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50IC0gc2NoZWR1bGlu
ZyAnJXMnIiwgZXZlbnROYW1lLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKICNlbmRpZgotICAg
IG1fcGVuZGluZ0V2ZW50cy5hcHBlbmQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWUsIGZhbHNlLCB0
cnVlKSk7Ci0gICAgaWYgKCFtX2FzeW5jRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBt
X2FzeW5jRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Ci19Ci0KLXZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6YXN5bmNFdmVudFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKQotewot
ICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gcGVuZGluZ0V2ZW50czsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWUsIGZhbHNlLCB0cnVlKTsKKyAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwogCi0gICAg
bV9wZW5kaW5nRXZlbnRzLnN3YXAocGVuZGluZ0V2ZW50cyk7Ci0gICAgdW5zaWduZWQgY291bnQg
PSBwZW5kaW5nRXZlbnRzLnNpemUoKTsKLSAgICBmb3IgKHVuc2lnbmVkIG5keCA9IDA7IG5keCA8
IGNvdW50OyArK25keCkgewotI2lmIExPR19NRURJQV9FVkVOVFMKLSAgICAgICAgTE9HKE1lZGlh
LCAiSFRNTE1lZGlhRWxlbWVudDo6YXN5bmNFdmVudFRpbWVyRmlyZWQgLSBkaXNwYXRjaGluZyAn
JXMnIiwgcGVuZGluZ0V2ZW50c1tuZHhdLT50eXBlKCkuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkp
OwotI2VuZGlmCi0gICAgICAgIGlmIChwZW5kaW5nRXZlbnRzW25keF0tPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkuY2FucGxheUV2ZW50KSB7Ci0gICAgICAgICAgICBtX2Rpc3BhdGNoaW5nQ2FuUGxh
eUV2ZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQocGVuZGluZ0V2ZW50c1tu
ZHhdLnJlbGVhc2UoKSwgZWMpOwotICAgICAgICAgICAgbV9kaXNwYXRjaGluZ0NhblBsYXlFdmVu
dCA9IGZhbHNlOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQocGVu
ZGluZ0V2ZW50c1tuZHhdLnJlbGVhc2UoKSwgZWMpOwotICAgIH0KKyAgICBtX2FzeW5jRXZlbnRR
dWV1ZS5lbnF1ZXVlRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkVGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopCkBAIC0xMTky
LDggKzExNzIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhRW5naW5lRXJyb3IoUGFz
c1JlZlB0cjxNZWRpYUVycm9yPiBlcnIpCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNhbmNlbFBl
bmRpbmdFdmVudHNBbmRDYWxsYmFja3MoKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVs
ZW1lbnQ6OmNhbmNlbFBlbmRpbmdFdmVudHNBbmRDYWxsYmFja3MiKTsKLQotICAgIG1fcGVuZGlu
Z0V2ZW50cy5jbGVhcigpOworICAgIG1fYXN5bmNFdmVudFF1ZXVlLmNhbmNlbEFsbEV2ZW50cygp
OwogCiAgICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9k
ZS0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzb3VyY2VU
YWcpKQpAQCAtMzE3NywxMSArMzE1Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVzdW1l
KCkKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAog
ewotICAgIC8vIFJldHVybiB0cnVlIHdoZW4gd2UgaGF2ZSBwZW5kaW5nIGV2ZW50cyBzbyB3ZSBj
YW4ndCBmaXJlIGV2ZW50cyBhZnRlciB0aGUgSlMgCi0gICAgLy8gb2JqZWN0IGdldHMgY29sbGVj
dGVkLgotICAgIGJvb2wgcGVuZGluZyA9IG1fcGVuZGluZ0V2ZW50cy5zaXplKCk7Ci0gICAgTE9H
KE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6aGFzUGVuZGluZ0FjdGl2aXR5IC0+ICVzIiwgYm9v
bFN0cmluZyhwZW5kaW5nKSk7Ci0gICAgcmV0dXJuIHBlbmRpbmc7CisgICAgcmV0dXJuIG1fYXN5
bmNFdmVudFF1ZXVlLmhhc1BlbmRpbmdFdmVudHMoKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVZvbHVtZURpZENoYW5nZSgpCkBAIC0zNjkyLDYgKzM2NjcsMjQgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYUNvbnRyb2xsZXIoKQogICAgICAgICBtX21lZGlh
Q29udHJvbGxlci0+cmVwb3J0Q29udHJvbGxlclN0YXRlKCk7CiB9CiAKK2Jvb2wgSFRNTE1lZGlh
RWxlbWVudDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBi
b29sIGRpc3BhdGNoUmVzdWx0OworICAgIGJvb2wgaXNDYW5QbGF5RXZlbnQ7CisKKyAgICBpc0Nh
blBsYXlFdmVudCA9IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jYW5wbGF5RXZlbnQp
OworCisgICAgaWYgKGlzQ2FuUGxheUV2ZW50KQorICAgICAgICBtX2Rpc3BhdGNoaW5nQ2FuUGxh
eUV2ZW50ID0gdHJ1ZTsKKworICAgIGRpc3BhdGNoUmVzdWx0ID0gSFRNTEVsZW1lbnQ6OmRpc3Bh
dGNoRXZlbnQoZXZlbnQpOworCisgICAgaWYgKGlzQ2FuUGxheUV2ZW50KQorICAgICAgICBtX2Rp
c3BhdGNoaW5nQ2FuUGxheUV2ZW50ID0gZmFsc2U7CisKKyAgICByZXR1cm4gZGlzcGF0Y2hSZXN1
bHQ7Cit9CisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNCbG9ja2VkKCkgY29uc3QKIHsKICAg
ICAvLyBBIG1lZGlhIGVsZW1lbnQgaXMgYSBibG9ja2VkIG1lZGlhIGVsZW1lbnQgaWYgaXRzIHJl
YWR5U3RhdGUgYXR0cmlidXRlIGlzIGluIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAppbmRleCBkYTQ5YzQwMmVhMDg0OTkxYmYwNTk1NmE3NTg4NzhjOTU5MDZlMTM3Li41
Zjc2M2IyNzg3OGJmMzU1YjVmYmNjZTkyZjU1MjA3ODU5ZmI0NmNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJHZW5l
cmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
LmgiCkBAIC0yMDUsNyArMjA2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHRyYWNr
V2FzQWRkZWQoSFRNTFRyYWNrRWxlbWVudCopOwogICAgIHZpcnR1YWwgdm9pZCB0cmFja1dhc1Jl
bW92ZWQoSFRNTFRyYWNrRWxlbWVudCopOwotICAgIAorCiAgICAgdm9pZCBjb25maWd1cmVUZXh0
VHJhY2soSFRNTFRyYWNrRWxlbWVudCopOwogICAgIHZvaWQgY29uZmlndXJlVGV4dFRyYWNrcygp
OwogICAgIGJvb2wgdGV4dFRyYWNrc0FyZVJlYWR5KCkgY29uc3Q7CkBAIC0yNzMsNiArMjc0LDgg
QEAgcHVibGljOgogICAgIE1lZGlhQ29udHJvbGxlciogY29udHJvbGxlcigpIGNvbnN0OwogICAg
IHZvaWQgc2V0Q29udHJvbGxlcihQYXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4pOwogCisgICAg
dmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworCiBwcm90ZWN0
ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
LCBib29sKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50KCk7CkBAIC0zNjUsNyArMzY4
LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBsb2FkVGltZXJGaXJlZChUaW1lcjxI
VE1MTWVkaWFFbGVtZW50PiopOwotICAgIHZvaWQgYXN5bmNFdmVudFRpbWVyRmlyZWQoVGltZXI8
SFRNTE1lZGlhRWxlbWVudD4qKTsKICAgICB2b2lkIHByb2dyZXNzRXZlbnRUaW1lckZpcmVkKFRp
bWVyPEhUTUxNZWRpYUVsZW1lbnQ+Kik7CiAgICAgdm9pZCBwbGF5YmFja1Byb2dyZXNzVGltZXJG
aXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopOwogICAgIHZvaWQgc3RhcnRQbGF5YmFja1By
b2dyZXNzVGltZXIoKTsKQEAgLTQ3MCwxMSArNDcyLDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fbG9hZFRpbWVyOwotICAgIFRpbWVyPEhUTUxN
ZWRpYUVsZW1lbnQ+IG1fYXN5bmNFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1l
bnQ+IG1fcHJvZ3Jlc3NFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1f
cGxheWJhY2tQcm9ncmVzc1RpbWVyOwotICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9wZW5k
aW5nRXZlbnRzOwogICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7Cisg
ICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2ZW50UXVldWU7CiAKICAgICBmbG9hdCBtX3Bs
YXliYWNrUmF0ZTsKICAgICBmbG9hdCBtX2RlZmF1bHRQbGF5YmFja1JhdGU7Cg==
</data>
<flag name="review"
          id="124505"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>