<?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>147802</bug_id>
          
          <creation_ts>2015-08-07 18:03:09 -0700</creation_ts>
          <short_desc>Media Session: notify the UI process when media controls are enabled/disabled</short_desc>
          <delta_ts>2015-08-12 12:25:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>145411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Rajca">mrajca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>mrajca</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115946</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-07 18:03:09 -0700</bug_when>
    <thetext>UIs such as lock screens should have knowledge about which media controls are enabled/disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115949</commentid>
    <comment_count>1</comment_count>
      <attachid>258550</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-07 18:22:26 -0700</bug_when>
    <thetext>Created attachment 258550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116149</commentid>
    <comment_count>2</comment_count>
      <attachid>258550</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-08-09 18:15:29 -0700</bug_when>
    <thetext>Comment on attachment 258550
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaRemoteControls.h:56
&gt; -    MediaRemoteControls(ScriptExecutionContext&amp;);
&gt; +    MediaRemoteControls(ScriptExecutionContext&amp;, MediaSession*);

Why is this constructor public instead of private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116297</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-10 13:06:10 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 258550 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258550&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaRemoteControls.h:56
&gt; &gt; -    MediaRemoteControls(ScriptExecutionContext&amp;);
&gt; &gt; +    MediaRemoteControls(ScriptExecutionContext&amp;, MediaSession*);
&gt; 
&gt; Why is this constructor public instead of private?

When Media Sessions of a &quot;content&quot; category kind are created, they get a new MediaRemoteControls object by default. MediaRemoteControls&apos; constructor is public so we can call it from MediaSession.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116300</commentid>
    <comment_count>4</comment_count>
      <attachid>258643</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-10 13:19:10 -0700</bug_when>
    <thetext>Created attachment 258643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116428</commentid>
    <comment_count>5</comment_count>
      <attachid>258643</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-08-10 18:29:16 -0700</bug_when>
    <thetext>Comment on attachment 258643
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaRemoteControls.cpp:50
&gt; +    if (m_session)
&gt; +        m_session-&gt;controlIsEnabledDidChange();

But maybe m_previousTrackEnabled didn&apos;t change?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:5947
&gt; +    focusManager-&gt;playbackAttributeDidChange(this, sourceElementID, IsPlaying, state &amp; MediaProducer::IsSourceElementPlaying);
&gt; +    focusManager-&gt;playbackAttributeDidChange(this, sourceElementID, IsPreviousTrackControlEnabled, state &amp; MediaProducer::IsPreviousTrackControlEnabled);
&gt; +    focusManager-&gt;playbackAttributeDidChange(this, sourceElementID, IsNextTrackControlEnabled, state &amp; MediaProducer::IsNextTrackControlEnabled);

Seems a bit weird to do it like this. Why not just pass  state and let focusManger figure things out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116433</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-10 19:00:56 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 258643 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258643&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaRemoteControls.cpp:50
&gt; &gt; +    if (m_session)
&gt; &gt; +        m_session-&gt;controlIsEnabledDidChange();
&gt; 
&gt; But maybe m_previousTrackEnabled didn&apos;t change?

This doesn&apos;t matter as all the media state will get sent over to the UI process anyway.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:5947
&gt; &gt; +    focusManager-&gt;playbackAttributeDidChange(this, sourceElementID, IsPlaying, state &amp; MediaProducer::IsSourceElementPlaying);
&gt; &gt; +    focusManager-&gt;playbackAttributeDidChange(this, sourceElementID, IsPreviousTrackControlEnabled, state &amp; MediaProducer::IsPreviousTrackControlEnabled);
&gt; &gt; +    focusManager-&gt;playbackAttributeDidChange(this, sourceElementID, IsNextTrackControlEnabled, state &amp; MediaProducer::IsNextTrackControlEnabled);
&gt; 
&gt; Seems a bit weird to do it like this. Why not just pass  state and let
&gt; focusManger figure things out?

Good idea. I&apos;ll send a revised patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116434</commentid>
    <comment_count>7</comment_count>
      <attachid>258681</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-10 19:02:28 -0700</bug_when>
    <thetext>Created attachment 258681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116436</commentid>
    <comment_count>8</comment_count>
      <attachid>258682</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-10 19:07:41 -0700</bug_when>
    <thetext>Created attachment 258682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116438</commentid>
    <comment_count>9</comment_count>
      <attachid>258682</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-08-10 19:15:36 -0700</bug_when>
    <thetext>Comment on attachment 258682
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaRemoteControls.h:67
&gt; +    MediaSession* m_session { nullptr };

You&apos;re storing a raw pointer to the MediaSession, but MediaRemoteControls is refCounted, so I see nothing that clears the pointer if MediaSession is destroyed before MediaRemoteControls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116444</commentid>
    <comment_count>10</comment_count>
      <attachid>258684</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-10 19:22:49 -0700</bug_when>
    <thetext>Created attachment 258684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116591</commentid>
    <comment_count>11</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-11 11:04:52 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 258682 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258682&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaRemoteControls.h:67
&gt; &gt; +    MediaSession* m_session { nullptr };
&gt; 
&gt; You&apos;re storing a raw pointer to the MediaSession, but MediaRemoteControls is
&gt; refCounted, so I see nothing that clears the pointer if MediaSession is
&gt; destroyed before MediaRemoteControls.

Good catch. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116959</commentid>
    <comment_count>12</comment_count>
      <attachid>258684</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-08-12 10:00:19 -0700</bug_when>
    <thetext>Comment on attachment 258684
Patch

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

&gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:74
&gt; -        m_controls = adoptRef(*new MediaRemoteControls(context));
&gt; +        m_controls = adoptRef(*new MediaRemoteControls(context, this));

Why doesn&apos;t this use MediaRemoteControls::create() (which would need an extra parameter)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116965</commentid>
    <comment_count>13</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-12 10:18:03 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 258684 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258684&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:74
&gt; &gt; -        m_controls = adoptRef(*new MediaRemoteControls(context));
&gt; &gt; +        m_controls = adoptRef(*new MediaRemoteControls(context, this));
&gt; 
&gt; Why doesn&apos;t this use MediaRemoteControls::create() (which would need an
&gt; extra parameter)?

The bindings generator expects only one parameter (the ScriptExecutionContext) so I can&apos;t add another one. Since the only case where we need to store a backpointer to the media session is this one, I just create the object directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116995</commentid>
    <comment_count>14</comment_count>
      <attachid>258684</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-08-12 11:39:54 -0700</bug_when>
    <thetext>Comment on attachment 258684
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:74
&gt;&gt;&gt; +        m_controls = adoptRef(*new MediaRemoteControls(context, this));
&gt;&gt; 
&gt;&gt; Why doesn&apos;t this use MediaRemoteControls::create() (which would need an extra parameter)?
&gt; 
&gt; The bindings generator expects only one parameter (the ScriptExecutionContext) so I can&apos;t add another one. Since the only case where we need to store a backpointer to the media session is this one, I just create the object directly.

Can&apos;t you make a second MediaRemoteControls::create method and use it here? That will also allow you to make the MediaRemoteControls constructor private, which is the preferred pattern when possible in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117009</commentid>
    <comment_count>15</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-12 12:07:28 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 258684 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258684&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/Modules/mediasession/MediaSession.cpp:74
&gt; &gt;&gt;&gt; +        m_controls = adoptRef(*new MediaRemoteControls(context, this));
&gt; &gt;&gt; 
&gt; &gt;&gt; Why doesn&apos;t this use MediaRemoteControls::create() (which would need an extra parameter)?
&gt; &gt; 
&gt; &gt; The bindings generator expects only one parameter (the ScriptExecutionContext) so I can&apos;t add another one. Since the only case where we need to store a backpointer to the media session is this one, I just create the object directly.
&gt; 
&gt; Can&apos;t you make a second MediaRemoteControls::create method and use it here?
&gt; That will also allow you to make the MediaRemoteControls constructor
&gt; private, which is the preferred pattern when possible in WebKit.

Actually, I can stick with one create method but give the MediaSession parameter a default value of null. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117013</commentid>
    <comment_count>16</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-12 12:25:32 -0700</bug_when>
    <thetext>Committed r188345: &lt;http://trac.webkit.org/changeset/188345&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258550</attachid>
            <date>2015-08-07 18:22:26 -0700</date>
            <delta_ts>2015-08-10 13:19:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147802-20150807182215.patch</filename>
            <type>text/plain</type>
            <size>12956</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI4MDZiYWM5YWIxODAw
MjNhY2UwYTM1M2ZkMDhjNDQyMjlkMGE4Yi4uYmEzY2I5ZjEwMTU3NTdiZDNhMmYzNzcwNGQzNzBk
Y2E1MmRmZTYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTA3ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBub3Rp
ZnkgdGhlIFVJIHByb2Nlc3Mgd2hlbiBtZWRpYSBjb250cm9scyBhcmUgZW5hYmxlZC9kaXNhYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6Ok1lZGlhUmVtb3RlQ29udHJvbHMpOiBLZWVwIHRyYWNr
IG9mIHRoZSBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29u
dHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKTogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBsaW5lLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0Vu
YWJsZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6OnNldE5leHRUcmFja0VuYWJs
ZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlbW90ZUNvbnRyb2xzOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0VuYWJsZWQpOiBNb3Zl
ZCB0byBpbXBsZW1lbnRhdGlvbiBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVD
b250cm9sczo6c2V0TmV4dFRyYWNrRW5hYmxlZCk6IE1vdmVkIHRvIGltcGxlbWVudGF0aW9uIGZp
bGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKTogS2VlcCB0cmFjayBv
ZiB0aGUgcmVtb3RlIGNvbnRyb2xzJyBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbElzRW5hYmxlZERpZENoYW5nZSk6IFByb3BhZ2F0ZSB0aGUg
bmV3IG1lZGlhIHN0YXRlIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOiBJbmNsdWRl
IHdoZXRoZXIgd2UgY2FuIHNraXAgdG8gdGhlIHByZXZpb3VzL25leHQgdHJhY2suCisgICAgICAg
ICogcGFnZS9NZWRpYVByb2R1Y2VyLmg6CisKIDIwMTUtMDgtMDYgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgU1FMU3RhdGVtZW50QmFja2Vu
ZCB0byBTUUxTdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwYTJmYTUyZmQxYjk2MGExNzgxM2FiNzZj
MGUzMDVhNWQ2YjNhMGQ5Li43MmRhZGQwOWFiYjNkYzFhN2E0MTJkMDUzZDZhY2M4MmMxYjYyZjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTUtMDgtMDcgIE1hdHQgUmFqY2EgIDxt
cmFqY2FAYXBwbGUuY29tPgogCisgICAgICAgIE1lZGlhIFNlc3Npb246IG5vdGlmeSB0aGUgVUkg
cHJvY2VzcyB3aGVuIG1lZGlhIGNvbnRyb2xzIGFyZSBlbmFibGVkL2Rpc2FibGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc4MDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJN
ZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXI6OnBsYXliYWNrQXR0cmlidXRlRGlkQ2hhbmdlKTogR2VuZXJhbGl6
ZWQgdG8gdGFrZSBkaWZmZXJlbnQgYXR0cmlidXRlcy4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTZXNzaW9uRm9jdXNNYW5hZ2VyOjptZWRpYUVsZW1lbnRJc1BsYXlpbmdEaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZSk6IFByb2Nlc3MgbmV3IGF0
dHJpYnV0ZXMgZm9yIGVuYWJsaW5nL2Rpc2FibGluZyBtZWRpYSBjb250cm9scy4KKworMjAxNS0w
OC0wNyAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5jb20+CisKICAgICAgICAgTWVkaWEgU2Vz
c2lvbjogZ2VuZXJhbGl6ZSBpc0ZvY3VzZWRDb250ZW50TWVkaWFFbGVtZW50UGxheWluZyBzbyBp
dCB3b3JrcyB3aXRoIG90aGVyIHBsYXliYWNrIGF0dHJpYnV0ZXMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc5NwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMu
Y3BwCmluZGV4IGZkZjkzYjBmN2Y3NzQ3MjE0MjUwMWMxNWI1NTI4NTIzM2M1YWRkODYuLjJkMDkz
MDkwMjc0OGEzNzJjMzg1ZDBhMTRmOTRlN2IyNGYwYzYwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMu
Y3BwCkBAIC0yOCwxNiArMjgsMzQgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogCisj
aW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFS
ZW1vdGVDb250cm9sczo6TWVkaWFSZW1vdGVDb250cm9scyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KQorTWVkaWFSZW1vdGVDb250cm9sczo6TWVkaWFSZW1vdGVDb250cm9scyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNZWRpYVNlc3Npb24qIHNlc3Npb24pCiAgICAg
OiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKKyAgICAsIG1fc2Vzc2lvbihzZXNz
aW9uKQogewogfQogCiBNZWRpYVJlbW90ZUNvbnRyb2xzOjp+TWVkaWFSZW1vdGVDb250cm9scygp
CiB7Ci0gICAgCit9CisKK3ZvaWQgTWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFj
a0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCit7CisgICAgbV9wcmV2aW91c1RyYWNrRW5hYmxlZCA9
IGlzRW5hYmxlZDsKKworICAgIGlmIChtX3Nlc3Npb24pCisgICAgICAgIG1fc2Vzc2lvbi0+Y29u
dHJvbElzRW5hYmxlZERpZENoYW5nZSgpOworfQorCit2b2lkIE1lZGlhUmVtb3RlQ29udHJvbHM6
OnNldE5leHRUcmFja0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCit7CisgICAgbV9uZXh0VHJhY2tF
bmFibGVkID0gaXNFbmFibGVkOworCisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNz
aW9uLT5jb250cm9sSXNFbmFibGVkRGlkQ2hhbmdlKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMu
aAppbmRleCA5Y2FmMDkxNjlhOTZiMjZhZGQzMmI1ZTUyNWFiZDRiZDRiOGI0M2VmLi5lZTc2NDg2
MjAzNDAwNmNlYjNiNjM4MmVjNjQ3MTkwN2ZkMTBmNDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5oCkBA
IC0zMywyNSArMzMsMjcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVNl
c3Npb247CisKIGNsYXNzIE1lZGlhUmVtb3RlQ29udHJvbHMgOiBwdWJsaWMgUmVmQ291bnRlZDxN
ZWRpYVJlbW90ZUNvbnRyb2xzPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFSZW1vdGVDb250cm9scz4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTWVkaWFSZW1vdGVDb250cm9scyhjb250ZXh0LCBudWxscHRyKSk7CiAgICAg
fQogCiAgICAgYm9vbCBwcmV2aW91c1RyYWNrRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJl
dmlvdXNUcmFja0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNldFByZXZpb3VzVHJhY2tFbmFibGVkKGJv
b2wgZW5hYmxlZCkgeyBtX3ByZXZpb3VzVHJhY2tFbmFibGVkID0gZW5hYmxlZDsgfQorICAgIHZv
aWQgc2V0UHJldmlvdXNUcmFja0VuYWJsZWQoYm9vbCk7CiAKICAgICBib29sIG5leHRUcmFja0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX25leHRUcmFja0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNl
dE5leHRUcmFja0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fbmV4dFRyYWNrRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KKyAgICB2b2lkIHNldE5leHRUcmFja0VuYWJsZWQoYm9vbCk7CiAKICAgICB1c2lu
ZyBSZWZDb3VudGVkPE1lZGlhUmVtb3RlQ29udHJvbHM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291
bnRlZDxNZWRpYVJlbW90ZUNvbnRyb2xzPjo6ZGVyZWY7CiAKICAgICB2aXJ0dWFsIH5NZWRpYVJl
bW90ZUNvbnRyb2xzKCk7CiAKLSAgICBNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKTsKKyAgICBNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBNZWRpYVNlc3Npb24qKTsKIAogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNZWRpYVJlbW90
ZUNvbnRyb2xzRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgdmlydHVhbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gJm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQpAQCAtNjIsNiArNjQsOCBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9wcmV2aW91c1RyYWNrRW5hYmxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX25leHRUcmFja0VuYWJsZWQgeyBmYWxzZSB9OwogCisgICAgTWVkaWFTZXNzaW9uKiBt
X3Nlc3Npb24geyBudWxscHRyIH07CisKICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBvdmVycmlkZSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRU
YXJnZXQoKSBvdmVycmlkZSBmaW5hbCB7IGRlcmVmKCk7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAppbmRleCBlYjc0
MWJiYTc4YjE2ZmM3OGY5ZGYzNDE5NTY1YzBkNGU3NzRjZGVkLi45OTBjNjBlMGRjNTIwZjQ3OGU4
MTg3ZTg0NGVkMGNlNGE2ZTAzMDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgTWVkaWFT
ZXNzaW9uOjpNZWRpYVNlc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiBraW5kKQogICAgIC8vIDMuIElmIG1lZGlhIHNlc3Npb24ncyBjdXJyZW50IG1l
ZGlhIHNlc3Npb24gdHlwZSBpcyAiY29udGVudCIsIHRoZW4gY3JlYXRlIGEgbmV3IG1lZGlhIHJl
bW90ZSBjb250cm9sbGVyIGZvciBtZWRpYQogICAgIC8vICAgIHNlc3Npb24uIChPdGhlcndpc2Ug
bWVkaWEgc2Vzc2lvbiBoYXMgbm8gbWVkaWEgcmVtb3RlIGNvbnRyb2xsZXIuKQogICAgIGlmICht
X2tpbmQgPT0gS2luZDo6Q29udGVudCkKLSAgICAgICAgbV9jb250cm9scyA9IGFkb3B0UmVmKCpu
ZXcgTWVkaWFSZW1vdGVDb250cm9scyhjb250ZXh0KSk7CisgICAgICAgIG1fY29udHJvbHMgPSBh
ZG9wdFJlZigqbmV3IE1lZGlhUmVtb3RlQ29udHJvbHMoY29udGV4dCwgdGhpcykpOwogCiAgICAg
TWVkaWFTZXNzaW9uTWFuYWdlcjo6c2luZ2xldG9uKCkuYWRkTWVkaWFTZXNzaW9uKCp0aGlzKTsK
IH0KQEAgLTMxNyw2ICszMTcsMjEgQEAgdm9pZCBNZWRpYVNlc3Npb246OnNraXBUb1ByZXZpb3Vz
VHJhY2soKQogICAgICAgICBtX2NvbnRyb2xzLT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnByZXZpb3VzdHJhY2tFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKK3Zv
aWQgTWVkaWFTZXNzaW9uOjpjb250cm9sSXNFbmFibGVkRGlkQ2hhbmdlKCkKK3sKKyAgICAvLyBN
ZWRpYSByZW1vdGUgY29udHJvbHMgYXJlIG9ubHkgYWxsb3dlZCBvbiBDb250ZW50IG1lZGlhIHNl
c3Npb25zLgorICAgIEFTU0VSVChtX2tpbmQgPT0gS2luZDo6Q29udGVudCk7CisKKyAgICAvLyBN
ZWRpYSBlbGVtZW50cyBiZWxvbmdpbmcgdG8gQ29udGVudCBtZWRpYSBzZXNzaW9ucyBoYXZlIG11
dHVhbGx5LWV4Y2x1c2l2ZSBwbGF5YmFjay4KKyAgICBBU1NFUlQobV9hY3RpdmVQYXJ0aWNpcGF0
aW5nRWxlbWVudHMuc2l6ZSgpIDw9IDEpOworCisgICAgaWYgKG1fYWN0aXZlUGFydGljaXBhdGlu
Z0VsZW1lbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSFRNTE1lZGlhRWxl
bWVudCogZWxlbWVudCA9ICptX2FjdGl2ZVBhcnRpY2lwYXRpbmdFbGVtZW50cy5iZWdpbigpOwor
ICAgIG1fZG9jdW1lbnQudXBkYXRlSXNQbGF5aW5nTWVkaWEoZWxlbWVudC0+ZWxlbWVudElEKCkp
OworfQorCiB9CiAKICNlbmRpZiAvKiBFTkFCTEUoTUVESUFfU0VTU0lPTikgKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKaW5kZXgg
NDFmOGY2YTJlZWEzNjcyNGIzYTYyMzE4YWE2YWNjZTU4YWQwZTJkMC4uYmU2ZjE1M2MxZTc1N2Ni
NDllZTQ1MGY5OThjZDllZTUxYjFiYTNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmgKQEAgLTg2LDYgKzg2LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2tpcFRvTmV4dFRyYWNrKCk7CiAgICAgdm9pZCBza2lwVG9QcmV2aW91c1Ry
YWNrKCk7CiAKKyAgICB2b2lkIGNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKTsKKwogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZWI0ODRlMTc4Y2I0NGY5OTE4ZWQyYzU0YmFmYmZmY2IxMDMxOGE4ZC4uMzNk
NzE1ZDNmMTI2Njk3MzU0ZGJlMzExMmJmNTQ1NmFlMDk1ZDhjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0zNTE2LDYgKzM1MTYsMTYgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5
aW5nTWVkaWEodWludDY0X3Qgc291cmNlRWxlbWVudElEKQogICAgIGlmIChIVE1MTWVkaWFFbGVt
ZW50KiBzb3VyY2VFbGVtZW50ID0gSFRNTE1lZGlhRWxlbWVudDo6ZWxlbWVudFdpdGhJRChzb3Vy
Y2VFbGVtZW50SUQpKSB7CiAgICAgICAgIGlmIChzb3VyY2VFbGVtZW50LT5pc1BsYXlpbmcoKSkK
ICAgICAgICAgICAgIHN0YXRlIHw9IE1lZGlhUHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlp
bmc7CisKKyAgICAgICAgaWYgKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbiA9IHNvdXJjZUVsZW1lbnQt
PnNlc3Npb24oKSkgeworICAgICAgICAgICAgYm9vbCBpc051bGw7CisgICAgICAgICAgICBpZiAo
TWVkaWFSZW1vdGVDb250cm9scyogY29udHJvbHMgPSBzZXNzaW9uLT5jb250cm9scyhpc051bGwp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xzLT5wcmV2aW91c1RyYWNrRW5hYmxlZCgp
KQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSB8PSBNZWRpYVByb2R1Y2VyOjpJc1ByZXZpb3Vz
VHJhY2tDb250cm9sRW5hYmxlZDsKKyAgICAgICAgICAgICAgICBpZiAoY29udHJvbHMtPm5leHRU
cmFja0VuYWJsZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgfD0gTWVkaWFQcm9kdWNl
cjo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQog
ICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJv
ZHVjZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCmluZGV4IDliMWY4
NDM0NGYxNjg0NzcxMzBkODgyNDlkMzc3NjJiYTg4ODlhYWYuLjlmY2FjNGFhNTAxZTE0MzA0ODU0
NDFlOTU2Y2I2MDAwZjgwMThmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVk
aWFQcm9kdWNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCkBA
IC0zOSw2ICszOSw4IEBAIHB1YmxpYzoKICAgICAgICAgRXh0ZXJuYWxEZXZpY2VBdXRvUGxheUNh
bmRpZGF0ZSA9IDEgPDwgNCwKICAgICAgICAgRGlkUGxheVRvRW5kID0gMSA8PCA1LAogICAgICAg
ICBJc1NvdXJjZUVsZW1lbnRQbGF5aW5nID0gMSA8PCA2LAorICAgICAgICBJc05leHRUcmFja0Nv
bnRyb2xFbmFibGVkID0gMSA8PCA3LAorICAgICAgICBJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5h
YmxlZCA9IDEgPDwgOCwKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTWVkaWFTdGF0ZUZs
YWdzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNz
aW9uRm9jdXNNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXIuY3BwCmluZGV4IDYxMGU0ODc5MTk3ZGU1ZDk2ODU4MGNjZjYxMmU4
NmYxMzU0NDcyZTMuLjg3NDJkMDFmMDY4YmUzZWM4ZTMxY2JiMGE5MmE4YmJhNWQ3NGRhYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25Gb2N1c01h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25G
b2N1c01hbmFnZXIuY3BwCkBAIC03MCwxMiArNzAsMTIgQEAgYm9vbCBXZWJNZWRpYVNlc3Npb25G
b2N1c01hbmFnZXI6OnZhbHVlRm9yUGxheWJhY2tBdHRyaWJ1dGUoV0tNZWRpYVNlc3Npb25Gb2N1
c00KICAgICByZXR1cm4gbV9wbGF5YmFja0F0dHJpYnV0ZXMuZ2V0KGF0dHJpYnV0ZSk7CiB9CiAK
LXZvaWQgV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyOjptZWRpYUVsZW1lbnRJc1BsYXlpbmdE
aWRDaGFuZ2UoV2ViUGFnZVByb3h5KiBwcm94eSwgdWludDY0X3QgZWxlbWVudElELCBib29sIGlz
UGxheWluZykKK3ZvaWQgV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyOjpwbGF5YmFja0F0dHJp
YnV0ZURpZENoYW5nZShXZWJQYWdlUHJveHkqIHByb3h5LCB1aW50NjRfdCBlbGVtZW50SUQsIFdL
TWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1dGUgYXR0cmlidXRlLCBib29s
IHZhbHVlKQogewogICAgIGlmIChtX2ZvY3VzZWRNZWRpYUVsZW1lbnQpIHsKICAgICAgICAgaWYg
KHByb3h5ID09IG1fZm9jdXNlZE1lZGlhRWxlbWVudC0+Zmlyc3QgJiYgZWxlbWVudElEID09IG1f
Zm9jdXNlZE1lZGlhRWxlbWVudC0+c2Vjb25kKSB7Ci0gICAgICAgICAgICBtX3BsYXliYWNrQXR0
cmlidXRlcy5zZXQoSXNQbGF5aW5nLCBpc1BsYXlpbmcpOwotICAgICAgICAgICAgbV9jbGllbnQu
ZGlkQ2hhbmdlUGxheWJhY2tBdHRyaWJ1dGUodGhpcywgSXNQbGF5aW5nLCBpc1BsYXlpbmcpOwor
ICAgICAgICAgICAgbV9wbGF5YmFja0F0dHJpYnV0ZXMuc2V0KGF0dHJpYnV0ZSwgdmFsdWUpOwor
ICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2hhbmdlUGxheWJhY2tBdHRyaWJ1dGUodGhpcywgYXR0
cmlidXRlLCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgKaW5kZXggM2Fl
MTNhZjhlNjVjZDUwZTY3MjY5OWM3NmNmN2Q3YjAyYTRmM2E2MC4uZWZjOWMxMjVjODI3MzYwZGVk
MzU2ZWEzNWE0M2RkOWRhYWU4OGMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIuaApAQCAtNDYsNyArNDYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLTWVkaWFTZXNzaW9uRm9j
dXNNYW5hZ2VyQ2xpZW50QmFzZSopOwogCiAgICAgYm9vbCB2YWx1ZUZvclBsYXliYWNrQXR0cmli
dXRlKFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1dGUpIGNvbnN0Owot
ICAgIHZvaWQgbWVkaWFFbGVtZW50SXNQbGF5aW5nRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSosIHVp
bnQ2NF90LCBib29sKTsKKyAgICB2b2lkIHBsYXliYWNrQXR0cmlidXRlRGlkQ2hhbmdlKFdlYlBh
Z2VQcm94eSosIHVpbnQ2NF90LCBXS01lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlclBsYXliYWNrQXR0
cmlidXRlLCBib29sKTsKIAogICAgIHZvaWQgc2V0Rm9jdXNlZE1lZGlhRWxlbWVudChXZWJQYWdl
UHJveHkmLCB1aW50NjRfdCk7CiAgICAgdm9pZCBjbGVhckZvY3VzZWRNZWRpYUVsZW1lbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWJlMTUzNjA4
NmZiZmUxYTc2Y2UwZjJhNTU4NTNhMWRiOWIzNjRiYS4uZWFiNmYzNzRlMTY3ZTIyMTM0NTAxMzlk
MTI0M2MwODJmZDQ2YzhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTU5NDIsNyArNTk0Miw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdN
ZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUsCiAjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyKiBm
b2N1c01hbmFnZXIgPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5zdXBwbGVtZW50PFdlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlcj4oKTsKICAgICBBU1NFUlQoZm9jdXNNYW5hZ2VyKTsKLSAgICBm
b2N1c01hbmFnZXItPm1lZGlhRWxlbWVudElzUGxheWluZ0RpZENoYW5nZSh0aGlzLCBzb3VyY2VF
bGVtZW50SUQsIHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNTb3VyY2VFbGVtZW50UGxheWluZyk7
CisgICAgZm9jdXNNYW5hZ2VyLT5wbGF5YmFja0F0dHJpYnV0ZURpZENoYW5nZSh0aGlzLCBzb3Vy
Y2VFbGVtZW50SUQsIElzUGxheWluZywgc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nKTsKKyAgICBmb2N1c01hbmFnZXItPnBsYXliYWNrQXR0cmlidXRlRGlkQ2hh
bmdlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgSXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQs
IHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQpOwor
ICAgIGZvY3VzTWFuYWdlci0+cGxheWJhY2tBdHRyaWJ1dGVEaWRDaGFuZ2UodGhpcywgc291cmNl
RWxlbWVudElELCBJc05leHRUcmFja0NvbnRyb2xFbmFibGVkLCBzdGF0ZSAmIE1lZGlhUHJvZHVj
ZXI6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQpOwogI2VuZGlmCiAKICAgICBpZiAoc3RhdGUg
PT0gbV9tZWRpYVN0YXRlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258643</attachid>
            <date>2015-08-10 13:19:10 -0700</date>
            <delta_ts>2015-08-10 19:02:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147802-20150810131855.patch</filename>
            <type>text/plain</type>
            <size>13113</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJmYTExMmFhMjAwY2Mx
NTEzMzA3OGRmNGNkMTRiOTQ3NzNmMDM2Ni4uNWQyNTdjOGNiMjNiODA2NmE5MGUxMmYzMzI2NDk3
ZjUwMWY1ZjM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTA3ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBub3Rp
ZnkgdGhlIFVJIHByb2Nlc3Mgd2hlbiBtZWRpYSBjb250cm9scyBhcmUgZW5hYmxlZC9kaXNhYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6Ok1lZGlhUmVtb3RlQ29udHJvbHMpOiBLZWVwIHRyYWNr
IG9mIHRoZSBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29u
dHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKTogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBsaW5lLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0Vu
YWJsZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6OnNldE5leHRUcmFja0VuYWJs
ZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlbW90ZUNvbnRyb2xzOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0VuYWJsZWQpOiBNb3Zl
ZCB0byBpbXBsZW1lbnRhdGlvbiBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVD
b250cm9sczo6c2V0TmV4dFRyYWNrRW5hYmxlZCk6IE1vdmVkIHRvIGltcGxlbWVudGF0aW9uIGZp
bGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKTogS2VlcCB0cmFjayBv
ZiB0aGUgcmVtb3RlIGNvbnRyb2xzJyBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbElzRW5hYmxlZERpZENoYW5nZSk6IFByb3BhZ2F0ZSB0aGUg
bmV3IG1lZGlhIHN0YXRlIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOiBJbmNsdWRl
IHdoZXRoZXIgd2UgY2FuIHNraXAgdG8gdGhlIHByZXZpb3VzL25leHQgdHJhY2suCisgICAgICAg
ICogcGFnZS9NZWRpYVByb2R1Y2VyLmg6CisKIDIwMTUtMDgtMTAgIEphbWVzIENyYWlnICA8amNy
YWlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQWRkcmVzcyBmb2xsb3ctdXAgY29tbWVudHMg
aW4gYnVnIDE0NTY4NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU2YmY1NjUxOTgwZjgwOGY4M2VkN2UxNmMxMGZh
YzI5YWM1ZjllNzkuLjA0MDgzNzk3YmIzZGM1YWM3ZWNkNDc2M2M4OGQ1NWMzZjk5YmQ4ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNS0wOC0wNyAgTWF0dCBSYWpjYSAgPG1yYWpj
YUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjogbm90aWZ5IHRoZSBVSSBwcm9j
ZXNzIHdoZW4gbWVkaWEgY29udHJvbHMgYXJlIGVuYWJsZWQvZGlzYWJsZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzgwMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlcjo6cGxheWJhY2tBdHRyaWJ1dGVEaWRDaGFuZ2UpOiBHZW5lcmFsaXplZCB0
byB0YWtlIGRpZmZlcmVudCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXI6Om1lZGlhRWxlbWVudElzUGxheWluZ0RpZENoYW5nZSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogUHJvY2VzcyBuZXcgYXR0cmli
dXRlcyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG1lZGlhIGNvbnRyb2xzLgorCisyMDE1LTA4LTA3
ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKwogICAgICAgICBNZWRpYSBTZXNzaW9u
OiBnZW5lcmFsaXplIGlzRm9jdXNlZENvbnRlbnRNZWRpYUVsZW1lbnRQbGF5aW5nIHNvIGl0IHdv
cmtzIHdpdGggb3RoZXIgcGxheWJhY2sgYXR0cmlidXRlcwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Nzk3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
aW5kZXggZmRmOTNiMGY3Zjc3NDcyMTQyNTAxYzE1YjU1Mjg1MjMzYzVhZGQ4Ni4uMmQwOTMwOTAy
NzQ4YTM3MmMzODVkMGExNGY5NGU3YjI0ZjBjNjA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
QEAgLTI4LDE2ICsyOCwzNCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKKyNpbmNs
dWRlICJNZWRpYVNlc3Npb24uaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYVJlbW90
ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpCitNZWRpYVJlbW90ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKICAgICA6IG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24p
CiB7CiB9CiAKIE1lZGlhUmVtb3RlQ29udHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKCkKIHsK
LSAgICAKK30KKwordm9pZCBNZWRpYVJlbW90ZUNvbnRyb2xzOjpzZXRQcmV2aW91c1RyYWNrRW5h
YmxlZChib29sIGlzRW5hYmxlZCkKK3sKKyAgICBtX3ByZXZpb3VzVHJhY2tFbmFibGVkID0gaXNF
bmFibGVkOworCisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNzaW9uLT5jb250cm9s
SXNFbmFibGVkRGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgTWVkaWFSZW1vdGVDb250cm9sczo6c2V0
TmV4dFRyYWNrRW5hYmxlZChib29sIGlzRW5hYmxlZCkKK3sKKyAgICBtX25leHRUcmFja0VuYWJs
ZWQgPSBpc0VuYWJsZWQ7CisKKyAgICBpZiAobV9zZXNzaW9uKQorICAgICAgICBtX3Nlc3Npb24t
PmNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5oCmlu
ZGV4IDljYWYwOTE2OWE5NmIyNmFkZDMyYjVlNTI1YWJkNGJkNGI4YjQzZWYuLmVlNzY0ODYyMDM0
MDA2Y2ViM2I2MzgyZWM2NDcxOTA3ZmQxMGY0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmgKQEAgLTMz
LDI1ICszMywyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE1lZGlhU2Vzc2lv
bjsKKwogY2xhc3MgTWVkaWFSZW1vdGVDb250cm9scyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
UmVtb3RlQ29udHJvbHM+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVJlbW90ZUNvbnRyb2xzPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhUmVtb3RlQ29udHJvbHMoY29udGV4dCkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQsIG51bGxwdHIpKTsKICAgICB9CiAK
ICAgICBib29sIHByZXZpb3VzVHJhY2tFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmV2aW91
c1RyYWNrRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0UHJldmlvdXNUcmFja0VuYWJsZWQoYm9vbCBl
bmFibGVkKSB7IG1fcHJldmlvdXNUcmFja0VuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgdm9pZCBz
ZXRQcmV2aW91c1RyYWNrRW5hYmxlZChib29sKTsKIAogICAgIGJvb2wgbmV4dFRyYWNrRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dFRyYWNrRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0TmV4
dFRyYWNrRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9uZXh0VHJhY2tFbmFibGVkID0gZW5hYmxl
ZDsgfQorICAgIHZvaWQgc2V0TmV4dFRyYWNrRW5hYmxlZChib29sKTsKIAogICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8TWVkaWFSZW1vdGVDb250cm9scz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhUmVtb3RlQ29udHJvbHM+OjpkZXJlZjsKIAogICAgIHZpcnR1YWwgfk1lZGlhUmVtb3Rl
Q29udHJvbHMoKTsKIAotICAgIE1lZGlhUmVtb3RlQ29udHJvbHMoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpOworICAgIE1lZGlhUmVtb3RlQ29udHJvbHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IE1lZGlhU2Vzc2lvbiopOwogCiAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE1lZGlhUmVtb3RlQ29u
dHJvbHNFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CkBAIC02Miw2ICs2NCw4IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3ByZXZpb3VzVHJhY2tFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1fbmV4dFRyYWNrRW5hYmxlZCB7IGZhbHNlIH07CiAKKyAgICBNZWRpYVNlc3Npb24qIG1fc2Vz
c2lvbiB7IG51bGxwdHIgfTsKKwogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGViNzQxYmJh
NzhiMTZmYzc4ZjlkZjM0MTk1NjVjMGQ0ZTc3NGNkZWQuLjk5MGM2MGUwZGM1MjBmNDc4ZTgxODdl
ODQ0ZWQwY2U0YTZlMDMwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtNzEsNyArNzEsNyBAQCBNZWRpYVNlc3Np
b246Ok1lZGlhU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgbWVkaWEgc2Vzc2lvbidzIGN1cnJlbnQgbWVkaWEg
c2Vzc2lvbiB0eXBlIGlzICJjb250ZW50IiwgdGhlbiBjcmVhdGUgYSBuZXcgbWVkaWEgcmVtb3Rl
IGNvbnRyb2xsZXIgZm9yIG1lZGlhCiAgICAgLy8gICAgc2Vzc2lvbi4gKE90aGVyd2lzZSBtZWRp
YSBzZXNzaW9uIGhhcyBubyBtZWRpYSByZW1vdGUgY29udHJvbGxlci4pCiAgICAgaWYgKG1fa2lu
ZCA9PSBLaW5kOjpDb250ZW50KQotICAgICAgICBtX2NvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBN
ZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQpKTsKKyAgICAgICAgbV9jb250cm9scyA9IGFkb3B0
UmVmKCpuZXcgTWVkaWFSZW1vdGVDb250cm9scyhjb250ZXh0LCB0aGlzKSk7CiAKICAgICBNZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaW5nbGV0b24oKS5hZGRNZWRpYVNlc3Npb24oKnRoaXMpOwogfQpA
QCAtMzE3LDYgKzMxNywyMSBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2tpcFRvUHJldmlvdXNUcmFj
aygpCiAgICAgICAgIG1fY29udHJvbHMtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkucHJldmlvdXN0cmFja0V2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBN
ZWRpYVNlc3Npb246OmNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKQoreworICAgIC8vIE1lZGlh
IHJlbW90ZSBjb250cm9scyBhcmUgb25seSBhbGxvd2VkIG9uIENvbnRlbnQgbWVkaWEgc2Vzc2lv
bnMuCisgICAgQVNTRVJUKG1fa2luZCA9PSBLaW5kOjpDb250ZW50KTsKKworICAgIC8vIE1lZGlh
IGVsZW1lbnRzIGJlbG9uZ2luZyB0byBDb250ZW50IG1lZGlhIHNlc3Npb25zIGhhdmUgbXV0dWFs
bHktZXhjbHVzaXZlIHBsYXliYWNrLgorICAgIEFTU0VSVChtX2FjdGl2ZVBhcnRpY2lwYXRpbmdF
bGVtZW50cy5zaXplKCkgPD0gMSk7CisKKyAgICBpZiAobV9hY3RpdmVQYXJ0aWNpcGF0aW5nRWxl
bWVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBIVE1MTWVkaWFFbGVtZW50
KiBlbGVtZW50ID0gKm1fYWN0aXZlUGFydGljaXBhdGluZ0VsZW1lbnRzLmJlZ2luKCk7CisgICAg
bV9kb2N1bWVudC51cGRhdGVJc1BsYXlpbmdNZWRpYShlbGVtZW50LT5lbGVtZW50SUQoKSk7Cit9
CisKIH0KIAogI2VuZGlmIC8qIEVOQUJMRShNRURJQV9TRVNTSU9OKSAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAppbmRleCA0MWY4
ZjZhMmVlYTM2NzI0YjNhNjIzMThhYTZhY2NlNThhZDBlMmQwLi5iZTZmMTUzYzFlNzU3Y2I0OWVl
NDUwZjk5OGNkOWVlNTFiMWJhM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBza2lwVG9OZXh0VHJhY2soKTsKICAgICB2b2lkIHNraXBUb1ByZXZpb3VzVHJhY2so
KTsKIAorICAgIHZvaWQgY29udHJvbElzRW5hYmxlZERpZENoYW5nZSgpOworCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCBlYjQ4NGUxNzhjYjQ0Zjk5MThlZDJjNTRiYWZiZmZjYjEwMzE4YThkLi4zM2Q3MTVk
M2YxMjY2OTczNTRkYmUzMTEyYmY1NDU2YWUwOTVkOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTM1MTYsNiArMzUxNiwxNiBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJc1BsYXlpbmdN
ZWRpYSh1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCiAgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQq
IHNvdXJjZUVsZW1lbnQgPSBIVE1MTWVkaWFFbGVtZW50OjplbGVtZW50V2l0aElEKHNvdXJjZUVs
ZW1lbnRJRCkpIHsKICAgICAgICAgaWYgKHNvdXJjZUVsZW1lbnQtPmlzUGxheWluZygpKQogICAg
ICAgICAgICAgc3RhdGUgfD0gTWVkaWFQcm9kdWNlcjo6SXNTb3VyY2VFbGVtZW50UGxheWluZzsK
KworICAgICAgICBpZiAoTWVkaWFTZXNzaW9uKiBzZXNzaW9uID0gc291cmNlRWxlbWVudC0+c2Vz
c2lvbigpKSB7CisgICAgICAgICAgICBib29sIGlzTnVsbDsKKyAgICAgICAgICAgIGlmIChNZWRp
YVJlbW90ZUNvbnRyb2xzKiBjb250cm9scyA9IHNlc3Npb24tPmNvbnRyb2xzKGlzTnVsbCkpIHsK
KyAgICAgICAgICAgICAgICBpZiAoY29udHJvbHMtPnByZXZpb3VzVHJhY2tFbmFibGVkKCkpCisg
ICAgICAgICAgICAgICAgICAgIHN0YXRlIHw9IE1lZGlhUHJvZHVjZXI6OklzUHJldmlvdXNUcmFj
a0NvbnRyb2xFbmFibGVkOworICAgICAgICAgICAgICAgIGlmIChjb250cm9scy0+bmV4dFRyYWNr
RW5hYmxlZCgpKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSB8PSBNZWRpYVByb2R1Y2VyOjpJ
c05leHRUcmFja0NvbnRyb2xFbmFibGVkOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOWIxZjg0MzQ0
ZjE2ODQ3NzEzMGQ4ODI0OWQzNzc2MmJhODg4OWFhZi4uOWZjYWM0YWE1MDFlMTQzMDQ4NTQ0MWU5
NTZjYjYwMDBmODAxOGZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVBy
b2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTM5
LDYgKzM5LDggQEAgcHVibGljOgogICAgICAgICBFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlk
YXRlID0gMSA8PCA0LAogICAgICAgICBEaWRQbGF5VG9FbmQgPSAxIDw8IDUsCiAgICAgICAgIElz
U291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCisgICAgICAgIElzTmV4dFRyYWNrQ29udHJv
bEVuYWJsZWQgPSAxIDw8IDcsCisgICAgICAgIElzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVk
ID0gMSA8PCA4LAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBNZWRpYVN0YXRlRmxhZ3M7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25G
b2N1c01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlci5jcHAKaW5kZXggZGRjNDg3NWIyNGJmZTMwZGNmYTVlN2MyMjk0NWQzZGU1
NTdiODBjMS4uZDhkMzAxNGU2NDI0ZmI2NGJiYjUzZDY3MzRlMjM1MDI1ZGE0NDU3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3Vz
TWFuYWdlci5jcHAKQEAgLTcwLDE2ICs3MCwxNiBAQCBib29sIFdlYk1lZGlhU2Vzc2lvbkZvY3Vz
TWFuYWdlcjo6dmFsdWVGb3JQbGF5YmFja0F0dHJpYnV0ZShXS01lZGlhU2Vzc2lvbkZvY3VzTQog
ICAgIHJldHVybiBtX3BsYXliYWNrQXR0cmlidXRlcyAmIGF0dHJpYnV0ZTsKIH0KIAotdm9pZCBX
ZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI6Om1lZGlhRWxlbWVudElzUGxheWluZ0RpZENoYW5n
ZShXZWJQYWdlUHJveHkqIHByb3h5LCB1aW50NjRfdCBlbGVtZW50SUQsIGJvb2wgaXNQbGF5aW5n
KQordm9pZCBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI6OnBsYXliYWNrQXR0cmlidXRlRGlk
Q2hhbmdlKFdlYlBhZ2VQcm94eSogcHJveHksIHVpbnQ2NF90IGVsZW1lbnRJRCwgV0tNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXJQbGF5YmFja0F0dHJpYnV0ZSBhdHRyaWJ1dGUsIGJvb2wgdmFsdWUp
CiB7CiAgICAgaWYgKG1fZm9jdXNlZE1lZGlhRWxlbWVudCkgewogICAgICAgICBpZiAocHJveHkg
PT0gbV9mb2N1c2VkTWVkaWFFbGVtZW50LT5maXJzdCAmJiBlbGVtZW50SUQgPT0gbV9mb2N1c2Vk
TWVkaWFFbGVtZW50LT5zZWNvbmQpIHsKLSAgICAgICAgICAgIGlmIChpc1BsYXlpbmcpCi0gICAg
ICAgICAgICAgICAgbV9wbGF5YmFja0F0dHJpYnV0ZXMgfD0gSXNQbGF5aW5nOworICAgICAgICAg
ICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgICAgIG1fcGxheWJhY2tBdHRyaWJ1dGVzIHw9IGF0
dHJpYnV0ZTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX3BsYXliYWNrQXR0
cmlidXRlcyAmPSB+SXNQbGF5aW5nOworICAgICAgICAgICAgICAgIG1fcGxheWJhY2tBdHRyaWJ1
dGVzICY9IH5hdHRyaWJ1dGU7CiAKLSAgICAgICAgICAgIG1fY2xpZW50LmRpZENoYW5nZVBsYXli
YWNrQXR0cmlidXRlKHRoaXMsIElzUGxheWluZywgaXNQbGF5aW5nKTsKKyAgICAgICAgICAgIG1f
Y2xpZW50LmRpZENoYW5nZVBsYXliYWNrQXR0cmlidXRlKHRoaXMsIGF0dHJpYnV0ZSwgdmFsdWUp
OwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oCmluZGV4IDIxZWU3MjEyMDM3MDJkYWIy
NDE5NjI4NTMyM2VkOTE5YTg3N2RjYjAuLjQ4ZGE2NzViNGRkNTA3ZWQ2MGVkZTNjNzRjN2MwMzQy
YTI1Nzg2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVk
aWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZv
aWQgaW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS01lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlckNsaWVu
dEJhc2UqKTsKIAogICAgIGJvb2wgdmFsdWVGb3JQbGF5YmFja0F0dHJpYnV0ZShXS01lZGlhU2Vz
c2lvbkZvY3VzTWFuYWdlclBsYXliYWNrQXR0cmlidXRlKSBjb25zdDsKLSAgICB2b2lkIG1lZGlh
RWxlbWVudElzUGxheWluZ0RpZENoYW5nZShXZWJQYWdlUHJveHkqLCB1aW50NjRfdCwgYm9vbCk7
CisgICAgdm9pZCBwbGF5YmFja0F0dHJpYnV0ZURpZENoYW5nZShXZWJQYWdlUHJveHkqLCB1aW50
NjRfdCwgV0tNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXJQbGF5YmFja0F0dHJpYnV0ZSwgYm9vbCk7
CiAKICAgICB2b2lkIHNldEZvY3VzZWRNZWRpYUVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0
X3QpOwogICAgIHZvaWQgY2xlYXJGb2N1c2VkTWVkaWFFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDliZTE1MzYwODZmYmZlMWE3NmNlMGYy
YTU1ODUzYTFkYjliMzY0YmEuLmVhYjZmMzc0ZTE2N2UyMjEzNDUwMTM5ZDEyNDNjMDgyZmQ0NmM4
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTQy
LDcgKzU5NDIsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uo
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlLAogI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQogICAgIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlciogZm9jdXNNYW5hZ2VyID0g
cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuc3VwcGxlbWVudDxXZWJNZWRpYVNlc3Npb25Gb2N1c01h
bmFnZXI+KCk7CiAgICAgQVNTRVJUKGZvY3VzTWFuYWdlcik7Ci0gICAgZm9jdXNNYW5hZ2VyLT5t
ZWRpYUVsZW1lbnRJc1BsYXlpbmdEaWRDaGFuZ2UodGhpcywgc291cmNlRWxlbWVudElELCBzdGF0
ZSAmIE1lZGlhUHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpOworICAgIGZvY3VzTWFu
YWdlci0+cGxheWJhY2tBdHRyaWJ1dGVEaWRDaGFuZ2UodGhpcywgc291cmNlRWxlbWVudElELCBJ
c1BsYXlpbmcsIHN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SXNTb3VyY2VFbGVtZW50UGxheWluZyk7
CisgICAgZm9jdXNNYW5hZ2VyLT5wbGF5YmFja0F0dHJpYnV0ZURpZENoYW5nZSh0aGlzLCBzb3Vy
Y2VFbGVtZW50SUQsIElzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkLCBzdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6OklzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKTsKKyAgICBmb2N1c01hbmFn
ZXItPnBsYXliYWNrQXR0cmlidXRlRGlkQ2hhbmdlKHRoaXMsIHNvdXJjZUVsZW1lbnRJRCwgSXNO
ZXh0VHJhY2tDb250cm9sRW5hYmxlZCwgc3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpJc05leHRUcmFj
a0NvbnRyb2xFbmFibGVkKTsKICNlbmRpZgogCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0
ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258681</attachid>
            <date>2015-08-10 19:02:28 -0700</date>
            <delta_ts>2015-08-10 19:07:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147802-20150810190213.patch</filename>
            <type>text/plain</type>
            <size>13660</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJmYTExMmFhMjAwY2Mx
NTEzMzA3OGRmNGNkMTRiOTQ3NzNmMDM2Ni4uNWQyNTdjOGNiMjNiODA2NmE5MGUxMmYzMzI2NDk3
ZjUwMWY1ZjM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTA3ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBub3Rp
ZnkgdGhlIFVJIHByb2Nlc3Mgd2hlbiBtZWRpYSBjb250cm9scyBhcmUgZW5hYmxlZC9kaXNhYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6Ok1lZGlhUmVtb3RlQ29udHJvbHMpOiBLZWVwIHRyYWNr
IG9mIHRoZSBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29u
dHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKTogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBsaW5lLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0Vu
YWJsZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6OnNldE5leHRUcmFja0VuYWJs
ZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlbW90ZUNvbnRyb2xzOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0VuYWJsZWQpOiBNb3Zl
ZCB0byBpbXBsZW1lbnRhdGlvbiBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVD
b250cm9sczo6c2V0TmV4dFRyYWNrRW5hYmxlZCk6IE1vdmVkIHRvIGltcGxlbWVudGF0aW9uIGZp
bGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKTogS2VlcCB0cmFjayBv
ZiB0aGUgcmVtb3RlIGNvbnRyb2xzJyBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbElzRW5hYmxlZERpZENoYW5nZSk6IFByb3BhZ2F0ZSB0aGUg
bmV3IG1lZGlhIHN0YXRlIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOiBJbmNsdWRl
IHdoZXRoZXIgd2UgY2FuIHNraXAgdG8gdGhlIHByZXZpb3VzL25leHQgdHJhY2suCisgICAgICAg
ICogcGFnZS9NZWRpYVByb2R1Y2VyLmg6CisKIDIwMTUtMDgtMTAgIEphbWVzIENyYWlnICA8amNy
YWlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQWRkcmVzcyBmb2xsb3ctdXAgY29tbWVudHMg
aW4gYnVnIDE0NTY4NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU2YmY1NjUxOTgwZjgwOGY4M2VkN2UxNmMxMGZh
YzI5YWM1ZjllNzkuLjA0MDgzNzk3YmIzZGM1YWM3ZWNkNDc2M2M4OGQ1NWMzZjk5YmQ4ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNS0wOC0wNyAgTWF0dCBSYWpjYSAgPG1yYWpj
YUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjogbm90aWZ5IHRoZSBVSSBwcm9j
ZXNzIHdoZW4gbWVkaWEgY29udHJvbHMgYXJlIGVuYWJsZWQvZGlzYWJsZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzgwMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlcjo6cGxheWJhY2tBdHRyaWJ1dGVEaWRDaGFuZ2UpOiBHZW5lcmFsaXplZCB0
byB0YWtlIGRpZmZlcmVudCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXI6Om1lZGlhRWxlbWVudElzUGxheWluZ0RpZENoYW5nZSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogUHJvY2VzcyBuZXcgYXR0cmli
dXRlcyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG1lZGlhIGNvbnRyb2xzLgorCisyMDE1LTA4LTA3
ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKwogICAgICAgICBNZWRpYSBTZXNzaW9u
OiBnZW5lcmFsaXplIGlzRm9jdXNlZENvbnRlbnRNZWRpYUVsZW1lbnRQbGF5aW5nIHNvIGl0IHdv
cmtzIHdpdGggb3RoZXIgcGxheWJhY2sgYXR0cmlidXRlcwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Nzk3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
aW5kZXggZmRmOTNiMGY3Zjc3NDcyMTQyNTAxYzE1YjU1Mjg1MjMzYzVhZGQ4Ni4uMmQwOTMwOTAy
NzQ4YTM3MmMzODVkMGExNGY5NGU3YjI0ZjBjNjA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
QEAgLTI4LDE2ICsyOCwzNCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKKyNpbmNs
dWRlICJNZWRpYVNlc3Npb24uaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYVJlbW90
ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpCitNZWRpYVJlbW90ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKICAgICA6IG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24p
CiB7CiB9CiAKIE1lZGlhUmVtb3RlQ29udHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKCkKIHsK
LSAgICAKK30KKwordm9pZCBNZWRpYVJlbW90ZUNvbnRyb2xzOjpzZXRQcmV2aW91c1RyYWNrRW5h
YmxlZChib29sIGlzRW5hYmxlZCkKK3sKKyAgICBtX3ByZXZpb3VzVHJhY2tFbmFibGVkID0gaXNF
bmFibGVkOworCisgICAgaWYgKG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNzaW9uLT5jb250cm9s
SXNFbmFibGVkRGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgTWVkaWFSZW1vdGVDb250cm9sczo6c2V0
TmV4dFRyYWNrRW5hYmxlZChib29sIGlzRW5hYmxlZCkKK3sKKyAgICBtX25leHRUcmFja0VuYWJs
ZWQgPSBpc0VuYWJsZWQ7CisKKyAgICBpZiAobV9zZXNzaW9uKQorICAgICAgICBtX3Nlc3Npb24t
PmNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5oCmlu
ZGV4IDljYWYwOTE2OWE5NmIyNmFkZDMyYjVlNTI1YWJkNGJkNGI4YjQzZWYuLmVlNzY0ODYyMDM0
MDA2Y2ViM2I2MzgyZWM2NDcxOTA3ZmQxMGY0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmgKQEAgLTMz
LDI1ICszMywyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE1lZGlhU2Vzc2lv
bjsKKwogY2xhc3MgTWVkaWFSZW1vdGVDb250cm9scyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlh
UmVtb3RlQ29udHJvbHM+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVJlbW90ZUNvbnRyb2xzPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhUmVtb3RlQ29udHJvbHMoY29udGV4dCkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQsIG51bGxwdHIpKTsKICAgICB9CiAK
ICAgICBib29sIHByZXZpb3VzVHJhY2tFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmV2aW91
c1RyYWNrRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0UHJldmlvdXNUcmFja0VuYWJsZWQoYm9vbCBl
bmFibGVkKSB7IG1fcHJldmlvdXNUcmFja0VuYWJsZWQgPSBlbmFibGVkOyB9CisgICAgdm9pZCBz
ZXRQcmV2aW91c1RyYWNrRW5hYmxlZChib29sKTsKIAogICAgIGJvb2wgbmV4dFRyYWNrRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dFRyYWNrRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0TmV4
dFRyYWNrRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9uZXh0VHJhY2tFbmFibGVkID0gZW5hYmxl
ZDsgfQorICAgIHZvaWQgc2V0TmV4dFRyYWNrRW5hYmxlZChib29sKTsKIAogICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8TWVkaWFSZW1vdGVDb250cm9scz46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhUmVtb3RlQ29udHJvbHM+OjpkZXJlZjsKIAogICAgIHZpcnR1YWwgfk1lZGlhUmVtb3Rl
Q29udHJvbHMoKTsKIAotICAgIE1lZGlhUmVtb3RlQ29udHJvbHMoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpOworICAgIE1lZGlhUmVtb3RlQ29udHJvbHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IE1lZGlhU2Vzc2lvbiopOwogCiAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE1lZGlhUmVtb3RlQ29u
dHJvbHNFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CkBAIC02Miw2ICs2NCw4IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3ByZXZpb3VzVHJhY2tFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1fbmV4dFRyYWNrRW5hYmxlZCB7IGZhbHNlIH07CiAKKyAgICBNZWRpYVNlc3Npb24qIG1fc2Vz
c2lvbiB7IG51bGxwdHIgfTsKKwogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGViNzQxYmJh
NzhiMTZmYzc4ZjlkZjM0MTk1NjVjMGQ0ZTc3NGNkZWQuLjk5MGM2MGUwZGM1MjBmNDc4ZTgxODdl
ODQ0ZWQwY2U0YTZlMDMwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtNzEsNyArNzEsNyBAQCBNZWRpYVNlc3Np
b246Ok1lZGlhU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgbWVkaWEgc2Vzc2lvbidzIGN1cnJlbnQgbWVkaWEg
c2Vzc2lvbiB0eXBlIGlzICJjb250ZW50IiwgdGhlbiBjcmVhdGUgYSBuZXcgbWVkaWEgcmVtb3Rl
IGNvbnRyb2xsZXIgZm9yIG1lZGlhCiAgICAgLy8gICAgc2Vzc2lvbi4gKE90aGVyd2lzZSBtZWRp
YSBzZXNzaW9uIGhhcyBubyBtZWRpYSByZW1vdGUgY29udHJvbGxlci4pCiAgICAgaWYgKG1fa2lu
ZCA9PSBLaW5kOjpDb250ZW50KQotICAgICAgICBtX2NvbnRyb2xzID0gYWRvcHRSZWYoKm5ldyBN
ZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQpKTsKKyAgICAgICAgbV9jb250cm9scyA9IGFkb3B0
UmVmKCpuZXcgTWVkaWFSZW1vdGVDb250cm9scyhjb250ZXh0LCB0aGlzKSk7CiAKICAgICBNZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaW5nbGV0b24oKS5hZGRNZWRpYVNlc3Npb24oKnRoaXMpOwogfQpA
QCAtMzE3LDYgKzMxNywyMSBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2tpcFRvUHJldmlvdXNUcmFj
aygpCiAgICAgICAgIG1fY29udHJvbHMtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkucHJldmlvdXN0cmFja0V2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0KIAordm9pZCBN
ZWRpYVNlc3Npb246OmNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKQoreworICAgIC8vIE1lZGlh
IHJlbW90ZSBjb250cm9scyBhcmUgb25seSBhbGxvd2VkIG9uIENvbnRlbnQgbWVkaWEgc2Vzc2lv
bnMuCisgICAgQVNTRVJUKG1fa2luZCA9PSBLaW5kOjpDb250ZW50KTsKKworICAgIC8vIE1lZGlh
IGVsZW1lbnRzIGJlbG9uZ2luZyB0byBDb250ZW50IG1lZGlhIHNlc3Npb25zIGhhdmUgbXV0dWFs
bHktZXhjbHVzaXZlIHBsYXliYWNrLgorICAgIEFTU0VSVChtX2FjdGl2ZVBhcnRpY2lwYXRpbmdF
bGVtZW50cy5zaXplKCkgPD0gMSk7CisKKyAgICBpZiAobV9hY3RpdmVQYXJ0aWNpcGF0aW5nRWxl
bWVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBIVE1MTWVkaWFFbGVtZW50
KiBlbGVtZW50ID0gKm1fYWN0aXZlUGFydGljaXBhdGluZ0VsZW1lbnRzLmJlZ2luKCk7CisgICAg
bV9kb2N1bWVudC51cGRhdGVJc1BsYXlpbmdNZWRpYShlbGVtZW50LT5lbGVtZW50SUQoKSk7Cit9
CisKIH0KIAogI2VuZGlmIC8qIEVOQUJMRShNRURJQV9TRVNTSU9OKSAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAppbmRleCA0MWY4
ZjZhMmVlYTM2NzI0YjNhNjIzMThhYTZhY2NlNThhZDBlMmQwLi5iZTZmMTUzYzFlNzU3Y2I0OWVl
NDUwZjk5OGNkOWVlNTFiMWJhM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBza2lwVG9OZXh0VHJhY2soKTsKICAgICB2b2lkIHNraXBUb1ByZXZpb3VzVHJhY2so
KTsKIAorICAgIHZvaWQgY29udHJvbElzRW5hYmxlZERpZENoYW5nZSgpOworCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCBlYjQ4NGUxNzhjYjQ0Zjk5MThlZDJjNTRiYWZiZmZjYjEwMzE4YThkLi4zM2Q3MTVk
M2YxMjY2OTczNTRkYmUzMTEyYmY1NDU2YWUwOTVkOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTM1MTYsNiArMzUxNiwxNiBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVJc1BsYXlpbmdN
ZWRpYSh1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCiAgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQq
IHNvdXJjZUVsZW1lbnQgPSBIVE1MTWVkaWFFbGVtZW50OjplbGVtZW50V2l0aElEKHNvdXJjZUVs
ZW1lbnRJRCkpIHsKICAgICAgICAgaWYgKHNvdXJjZUVsZW1lbnQtPmlzUGxheWluZygpKQogICAg
ICAgICAgICAgc3RhdGUgfD0gTWVkaWFQcm9kdWNlcjo6SXNTb3VyY2VFbGVtZW50UGxheWluZzsK
KworICAgICAgICBpZiAoTWVkaWFTZXNzaW9uKiBzZXNzaW9uID0gc291cmNlRWxlbWVudC0+c2Vz
c2lvbigpKSB7CisgICAgICAgICAgICBib29sIGlzTnVsbDsKKyAgICAgICAgICAgIGlmIChNZWRp
YVJlbW90ZUNvbnRyb2xzKiBjb250cm9scyA9IHNlc3Npb24tPmNvbnRyb2xzKGlzTnVsbCkpIHsK
KyAgICAgICAgICAgICAgICBpZiAoY29udHJvbHMtPnByZXZpb3VzVHJhY2tFbmFibGVkKCkpCisg
ICAgICAgICAgICAgICAgICAgIHN0YXRlIHw9IE1lZGlhUHJvZHVjZXI6OklzUHJldmlvdXNUcmFj
a0NvbnRyb2xFbmFibGVkOworICAgICAgICAgICAgICAgIGlmIChjb250cm9scy0+bmV4dFRyYWNr
RW5hYmxlZCgpKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSB8PSBNZWRpYVByb2R1Y2VyOjpJ
c05leHRUcmFja0NvbnRyb2xFbmFibGVkOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOWIxZjg0MzQ0
ZjE2ODQ3NzEzMGQ4ODI0OWQzNzc2MmJhODg4OWFhZi4uOWZjYWM0YWE1MDFlMTQzMDQ4NTQ0MWU5
NTZjYjYwMDBmODAxOGZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVBy
b2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAgLTM5
LDYgKzM5LDggQEAgcHVibGljOgogICAgICAgICBFeHRlcm5hbERldmljZUF1dG9QbGF5Q2FuZGlk
YXRlID0gMSA8PCA0LAogICAgICAgICBEaWRQbGF5VG9FbmQgPSAxIDw8IDUsCiAgICAgICAgIElz
U291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCisgICAgICAgIElzTmV4dFRyYWNrQ29udHJv
bEVuYWJsZWQgPSAxIDw8IDcsCisgICAgICAgIElzUHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVk
ID0gMSA8PCA4LAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBNZWRpYVN0YXRlRmxhZ3M7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25G
b2N1c01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlci5jcHAKaW5kZXggZGRjNDg3NWIyNGJmZTMwZGNmYTVlN2MyMjk0NWQzZGU1
NTdiODBjMS4uZjUyMWNiMmUzMGE4OGFjMGRiYmIyNjI5ODFjMzkyNzMzMWMxMjBiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3Vz
TWFuYWdlci5jcHAKQEAgLTcwLDE2ICs3MCwyMyBAQCBib29sIFdlYk1lZGlhU2Vzc2lvbkZvY3Vz
TWFuYWdlcjo6dmFsdWVGb3JQbGF5YmFja0F0dHJpYnV0ZShXS01lZGlhU2Vzc2lvbkZvY3VzTQog
ICAgIHJldHVybiBtX3BsYXliYWNrQXR0cmlidXRlcyAmIGF0dHJpYnV0ZTsKIH0KIAotdm9pZCBX
ZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI6Om1lZGlhRWxlbWVudElzUGxheWluZ0RpZENoYW5n
ZShXZWJQYWdlUHJveHkqIHByb3h5LCB1aW50NjRfdCBlbGVtZW50SUQsIGJvb2wgaXNQbGF5aW5n
KQordm9pZCBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI6OnVwZGF0ZVBsYXliYWNrQXR0cmli
dXRlKFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1dGUgYXR0cmlidXRl
LCBib29sIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSkKKyAgICAgICAgbV9wbGF5YmFja0F0dHJp
YnV0ZXMgfD0gYXR0cmlidXRlOworICAgIGVsc2UKKyAgICAgICAgbV9wbGF5YmFja0F0dHJpYnV0
ZXMgJj0gfmF0dHJpYnV0ZTsKKworICAgIG1fY2xpZW50LmRpZENoYW5nZVBsYXliYWNrQXR0cmli
dXRlKHRoaXMsIGF0dHJpYnV0ZSwgdmFsdWUpOworfQorCit2b2lkIFdlYk1lZGlhU2Vzc2lvbkZv
Y3VzTWFuYWdlcjo6dXBkYXRlUGxheWJhY2tBdHRyaWJ1dGVzRnJvbU1lZGlhU3RhdGUoV2ViUGFn
ZVByb3h5KiBwcm94eSwgdWludDY0X3QgZWxlbWVudElELCBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgaWYgKG1fZm9jdXNlZE1lZGlhRWxlbWVu
dCkgewogICAgICAgICBpZiAocHJveHkgPT0gbV9mb2N1c2VkTWVkaWFFbGVtZW50LT5maXJzdCAm
JiBlbGVtZW50SUQgPT0gbV9mb2N1c2VkTWVkaWFFbGVtZW50LT5zZWNvbmQpIHsKLSAgICAgICAg
ICAgIGlmIChpc1BsYXlpbmcpCi0gICAgICAgICAgICAgICAgbV9wbGF5YmFja0F0dHJpYnV0ZXMg
fD0gSXNQbGF5aW5nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fcGxheWJh
Y2tBdHRyaWJ1dGVzICY9IH5Jc1BsYXlpbmc7Ci0KLSAgICAgICAgICAgIG1fY2xpZW50LmRpZENo
YW5nZVBsYXliYWNrQXR0cmlidXRlKHRoaXMsIElzUGxheWluZywgaXNQbGF5aW5nKTsKKyAgICAg
ICAgICAgIHVwZGF0ZVBsYXliYWNrQXR0cmlidXRlKElzUGxheWluZywgZmxhZ3MgJiBXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKTsKKyAgICAgICAgICAgIHVw
ZGF0ZVBsYXliYWNrQXR0cmlidXRlKElzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQsIGZsYWdzICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOZXh0VHJhY2tDb250cm9sRW5hYmxlZCk7CisgICAg
ICAgICAgICB1cGRhdGVQbGF5YmFja0F0dHJpYnV0ZShJc1ByZXZpb3VzVHJhY2tDb250cm9sRW5h
YmxlZCwgZmxhZ3MgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc1ByZXZpb3VzVHJhY2tDb250
cm9sRW5hYmxlZCk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgKaW5kZXggMjFlZTcy
MTIwMzcwMmRhYjI0MTk2Mjg1MzIzZWQ5MTlhODc3ZGNiMC4uMDdhYzQzNjA4YzQ4MDY5Yjg0OGJh
ODkyNDFjMzQ0MDdhOTQxM2E4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLTWVkaWFTZXNzaW9uRm9jdXNN
YW5hZ2VyQ2xpZW50QmFzZSopOwogCiAgICAgYm9vbCB2YWx1ZUZvclBsYXliYWNrQXR0cmlidXRl
KFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1dGUpIGNvbnN0OwotICAg
IHZvaWQgbWVkaWFFbGVtZW50SXNQbGF5aW5nRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSosIHVpbnQ2
NF90LCBib29sKTsKKyAgICB2b2lkIHVwZGF0ZVBsYXliYWNrQXR0cmlidXRlc0Zyb21NZWRpYVN0
YXRlKFdlYlBhZ2VQcm94eSosIHVpbnQ2NF90LCBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRGb2N1c2VkTWVkaWFFbGVtZW50KFdlYlBhZ2VQ
cm94eSYsIHVpbnQ2NF90KTsKICAgICB2b2lkIGNsZWFyRm9jdXNlZE1lZGlhRWxlbWVudCgpOwpA
QCAtNjEsNiArNjEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0
U3VwcGxlbWVudCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRT
dXBwbGVtZW50KCkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHVwZGF0ZVBsYXliYWNrQXR0cmlidXRl
KFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1dGUsIGJvb2wpOworCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEZvY3VzZWRNZWRpYUVsZW1lbnQ+IG1fZm9jdXNlZE1lZGlhRWxl
bWVudDsKICAgICBXS01lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlclBsYXliYWNrQXR0cmlidXRlcyBt
X3BsYXliYWNrQXR0cmlidXRlcyB7IDAgfTsKICAgICBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFn
ZXJDbGllbnQgbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDliZTE1MzYwODZmYmZlMWE3NmNlMGYyYTU1ODUzYTFkYjliMzY0YmEuLmI5NGQ5
MmRiYzBhMDg2MzU5NTBmMDUwYTE2MjUzY2YwOGNkOTY1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTQyLDcgKzU5NDIsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIHN0YXRlLAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIFdlYk1lZGlhU2Vz
c2lvbkZvY3VzTWFuYWdlciogZm9jdXNNYW5hZ2VyID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCku
c3VwcGxlbWVudDxXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI+KCk7CiAgICAgQVNTRVJUKGZv
Y3VzTWFuYWdlcik7Ci0gICAgZm9jdXNNYW5hZ2VyLT5tZWRpYUVsZW1lbnRJc1BsYXlpbmdEaWRD
aGFuZ2UodGhpcywgc291cmNlRWxlbWVudElELCBzdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OklzU291
cmNlRWxlbWVudFBsYXlpbmcpOworICAgIGZvY3VzTWFuYWdlci0+dXBkYXRlUGxheWJhY2tBdHRy
aWJ1dGVzRnJvbU1lZGlhU3RhdGUodGhpcywgc291cmNlRWxlbWVudElELCBzdGF0ZSk7CiAjZW5k
aWYKIAogICAgIGlmIChzdGF0ZSA9PSBtX21lZGlhU3RhdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258682</attachid>
            <date>2015-08-10 19:07:41 -0700</date>
            <delta_ts>2015-08-10 19:22:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147802-20150810190726.patch</filename>
            <type>text/plain</type>
            <size>13786</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJmYTExMmFhMjAwY2Mx
NTEzMzA3OGRmNGNkMTRiOTQ3NzNmMDM2Ni4uNWQyNTdjOGNiMjNiODA2NmE5MGUxMmYzMzI2NDk3
ZjUwMWY1ZjM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTA3ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBub3Rp
ZnkgdGhlIFVJIHByb2Nlc3Mgd2hlbiBtZWRpYSBjb250cm9scyBhcmUgZW5hYmxlZC9kaXNhYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6Ok1lZGlhUmVtb3RlQ29udHJvbHMpOiBLZWVwIHRyYWNr
IG9mIHRoZSBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29u
dHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKTogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBsaW5lLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0Vu
YWJsZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6OnNldE5leHRUcmFja0VuYWJs
ZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlbW90ZUNvbnRyb2xzOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0VuYWJsZWQpOiBNb3Zl
ZCB0byBpbXBsZW1lbnRhdGlvbiBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVD
b250cm9sczo6c2V0TmV4dFRyYWNrRW5hYmxlZCk6IE1vdmVkIHRvIGltcGxlbWVudGF0aW9uIGZp
bGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKTogS2VlcCB0cmFjayBv
ZiB0aGUgcmVtb3RlIGNvbnRyb2xzJyBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbElzRW5hYmxlZERpZENoYW5nZSk6IFByb3BhZ2F0ZSB0aGUg
bmV3IG1lZGlhIHN0YXRlIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOiBJbmNsdWRl
IHdoZXRoZXIgd2UgY2FuIHNraXAgdG8gdGhlIHByZXZpb3VzL25leHQgdHJhY2suCisgICAgICAg
ICogcGFnZS9NZWRpYVByb2R1Y2VyLmg6CisKIDIwMTUtMDgtMTAgIEphbWVzIENyYWlnICA8amNy
YWlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQWRkcmVzcyBmb2xsb3ctdXAgY29tbWVudHMg
aW4gYnVnIDE0NTY4NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU2YmY1NjUxOTgwZjgwOGY4M2VkN2UxNmMxMGZh
YzI5YWM1ZjllNzkuLjA0MDgzNzk3YmIzZGM1YWM3ZWNkNDc2M2M4OGQ1NWMzZjk5YmQ4ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNS0wOC0wNyAgTWF0dCBSYWpjYSAgPG1yYWpj
YUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjogbm90aWZ5IHRoZSBVSSBwcm9j
ZXNzIHdoZW4gbWVkaWEgY29udHJvbHMgYXJlIGVuYWJsZWQvZGlzYWJsZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzgwMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlcjo6cGxheWJhY2tBdHRyaWJ1dGVEaWRDaGFuZ2UpOiBHZW5lcmFsaXplZCB0
byB0YWtlIGRpZmZlcmVudCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXI6Om1lZGlhRWxlbWVudElzUGxheWluZ0RpZENoYW5nZSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogUHJvY2VzcyBuZXcgYXR0cmli
dXRlcyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG1lZGlhIGNvbnRyb2xzLgorCisyMDE1LTA4LTA3
ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKwogICAgICAgICBNZWRpYSBTZXNzaW9u
OiBnZW5lcmFsaXplIGlzRm9jdXNlZENvbnRlbnRNZWRpYUVsZW1lbnRQbGF5aW5nIHNvIGl0IHdv
cmtzIHdpdGggb3RoZXIgcGxheWJhY2sgYXR0cmlidXRlcwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Nzk3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
aW5kZXggZmRmOTNiMGY3Zjc3NDcyMTQyNTAxYzE1YjU1Mjg1MjMzYzVhZGQ4Ni4uNmM1YWJhMjdh
YjllZTlkNWE0OTU4ZjAyNTdlNWU4NDllOTE1NmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
QEAgLTI4LDE2ICsyOCw0MCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKKyNpbmNs
dWRlICJNZWRpYVNlc3Npb24uaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYVJlbW90
ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpCitNZWRpYVJlbW90ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKICAgICA6IG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24p
CiB7CiB9CiAKIE1lZGlhUmVtb3RlQ29udHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKCkKIHsK
LSAgICAKK30KKwordm9pZCBNZWRpYVJlbW90ZUNvbnRyb2xzOjpzZXRQcmV2aW91c1RyYWNrRW5h
YmxlZChib29sIGlzRW5hYmxlZCkKK3sKKyAgICBpZiAobV9wcmV2aW91c1RyYWNrRW5hYmxlZCA9
PSBpc0VuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJldmlvdXNUcmFja0VuYWJs
ZWQgPSBpc0VuYWJsZWQ7CisKKyAgICBpZiAobV9zZXNzaW9uKQorICAgICAgICBtX3Nlc3Npb24t
PmNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKTsKK30KKwordm9pZCBNZWRpYVJlbW90ZUNvbnRy
b2xzOjpzZXROZXh0VHJhY2tFbmFibGVkKGJvb2wgaXNFbmFibGVkKQoreworICAgIGlmIChtX25l
eHRUcmFja0VuYWJsZWQgPT0gaXNFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX25l
eHRUcmFja0VuYWJsZWQgPSBpc0VuYWJsZWQ7CisKKyAgICBpZiAobV9zZXNzaW9uKQorICAgICAg
ICBtX3Nlc3Npb24tPmNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250
cm9scy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVD
b250cm9scy5oCmluZGV4IDljYWYwOTE2OWE5NmIyNmFkZDMyYjVlNTI1YWJkNGJkNGI4YjQzZWYu
LmVlNzY0ODYyMDM0MDA2Y2ViM2I2MzgyZWM2NDcxOTA3ZmQxMGY0MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRy
b2xzLmgKQEAgLTMzLDI1ICszMywyNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IE1lZGlhU2Vzc2lvbjsKKwogY2xhc3MgTWVkaWFSZW1vdGVDb250cm9scyA6IHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhUmVtb3RlQ29udHJvbHM+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVJlbW90ZUNvbnRyb2xzPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE1lZGlhUmVtb3RlQ29udHJvbHMoY29udGV4dCkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQsIG51bGxwdHIp
KTsKICAgICB9CiAKICAgICBib29sIHByZXZpb3VzVHJhY2tFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9wcmV2aW91c1RyYWNrRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0UHJldmlvdXNUcmFja0Vu
YWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fcHJldmlvdXNUcmFja0VuYWJsZWQgPSBlbmFibGVkOyB9
CisgICAgdm9pZCBzZXRQcmV2aW91c1RyYWNrRW5hYmxlZChib29sKTsKIAogICAgIGJvb2wgbmV4
dFRyYWNrRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dFRyYWNrRW5hYmxlZDsgfQotICAg
IHZvaWQgc2V0TmV4dFRyYWNrRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9uZXh0VHJhY2tFbmFi
bGVkID0gZW5hYmxlZDsgfQorICAgIHZvaWQgc2V0TmV4dFRyYWNrRW5hYmxlZChib29sKTsKIAog
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFSZW1vdGVDb250cm9scz46OnJlZjsKICAgICB1c2lu
ZyBSZWZDb3VudGVkPE1lZGlhUmVtb3RlQ29udHJvbHM+OjpkZXJlZjsKIAogICAgIHZpcnR1YWwg
fk1lZGlhUmVtb3RlQ29udHJvbHMoKTsKIAotICAgIE1lZGlhUmVtb3RlQ29udHJvbHMoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpOworICAgIE1lZGlhUmVtb3RlQ29udHJvbHMoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIE1lZGlhU2Vzc2lvbiopOwogCiAgICAgdmlydHVhbCBFdmVudFRhcmdldElu
dGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE1l
ZGlhUmVtb3RlQ29udHJvbHNFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICB2aXJ0dWFs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CkBAIC02Miw2ICs2
NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByZXZpb3VzVHJhY2tFbmFibGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fbmV4dFRyYWNrRW5hYmxlZCB7IGZhbHNlIH07CiAKKyAgICBNZWRpYVNl
c3Npb24qIG1fc2Vzc2lvbiB7IG51bGxwdHIgfTsKKwogICAgIHZpcnR1YWwgdm9pZCByZWZFdmVu
dFRhcmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIGZpbmFsIHsgZGVyZWYoKTsgfQogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCmlu
ZGV4IGViNzQxYmJhNzhiMTZmYzc4ZjlkZjM0MTk1NjVjMGQ0ZTc3NGNkZWQuLjk5MGM2MGUwZGM1
MjBmNDc4ZTgxODdlODQ0ZWQwY2U0YTZlMDMwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcApAQCAtNzEsNyArNzEsNyBA
QCBNZWRpYVNlc3Npb246Ok1lZGlhU2Vzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgbWVkaWEgc2Vzc2lvbidzIGN1
cnJlbnQgbWVkaWEgc2Vzc2lvbiB0eXBlIGlzICJjb250ZW50IiwgdGhlbiBjcmVhdGUgYSBuZXcg
bWVkaWEgcmVtb3RlIGNvbnRyb2xsZXIgZm9yIG1lZGlhCiAgICAgLy8gICAgc2Vzc2lvbi4gKE90
aGVyd2lzZSBtZWRpYSBzZXNzaW9uIGhhcyBubyBtZWRpYSByZW1vdGUgY29udHJvbGxlci4pCiAg
ICAgaWYgKG1fa2luZCA9PSBLaW5kOjpDb250ZW50KQotICAgICAgICBtX2NvbnRyb2xzID0gYWRv
cHRSZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQpKTsKKyAgICAgICAgbV9jb250
cm9scyA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZW1vdGVDb250cm9scyhjb250ZXh0LCB0aGlzKSk7
CiAKICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaW5nbGV0b24oKS5hZGRNZWRpYVNlc3Npb24o
KnRoaXMpOwogfQpAQCAtMzE3LDYgKzMxNywyMSBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6c2tpcFRv
UHJldmlvdXNUcmFjaygpCiAgICAgICAgIG1fY29udHJvbHMtPmRpc3BhdGNoRXZlbnQoRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkucHJldmlvdXN0cmFja0V2ZW50LCBmYWxzZSwgZmFsc2UpKTsK
IH0KIAordm9pZCBNZWRpYVNlc3Npb246OmNvbnRyb2xJc0VuYWJsZWREaWRDaGFuZ2UoKQorewor
ICAgIC8vIE1lZGlhIHJlbW90ZSBjb250cm9scyBhcmUgb25seSBhbGxvd2VkIG9uIENvbnRlbnQg
bWVkaWEgc2Vzc2lvbnMuCisgICAgQVNTRVJUKG1fa2luZCA9PSBLaW5kOjpDb250ZW50KTsKKwor
ICAgIC8vIE1lZGlhIGVsZW1lbnRzIGJlbG9uZ2luZyB0byBDb250ZW50IG1lZGlhIHNlc3Npb25z
IGhhdmUgbXV0dWFsbHktZXhjbHVzaXZlIHBsYXliYWNrLgorICAgIEFTU0VSVChtX2FjdGl2ZVBh
cnRpY2lwYXRpbmdFbGVtZW50cy5zaXplKCkgPD0gMSk7CisKKyAgICBpZiAobV9hY3RpdmVQYXJ0
aWNpcGF0aW5nRWxlbWVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBIVE1M
TWVkaWFFbGVtZW50KiBlbGVtZW50ID0gKm1fYWN0aXZlUGFydGljaXBhdGluZ0VsZW1lbnRzLmJl
Z2luKCk7CisgICAgbV9kb2N1bWVudC51cGRhdGVJc1BsYXlpbmdNZWRpYShlbGVtZW50LT5lbGVt
ZW50SUQoKSk7Cit9CisKIH0KIAogI2VuZGlmIC8qIEVOQUJMRShNRURJQV9TRVNTSU9OKSAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24u
aAppbmRleCA0MWY4ZjZhMmVlYTM2NzI0YjNhNjIzMThhYTZhY2NlNThhZDBlMmQwLi5iZTZmMTUz
YzFlNzU3Y2I0OWVlNDUwZjk5OGNkOWVlNTFiMWJhM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uaApAQCAtODYsNiArODYsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBza2lwVG9OZXh0VHJhY2soKTsKICAgICB2b2lkIHNraXBUb1By
ZXZpb3VzVHJhY2soKTsKIAorICAgIHZvaWQgY29udHJvbElzRW5hYmxlZERpZENoYW5nZSgpOwor
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCBlYjQ4NGUxNzhjYjQ0Zjk5MThlZDJjNTRiYWZiZmZjYjEwMzE4
YThkLi4zM2Q3MTVkM2YxMjY2OTczNTRkYmUzMTEyYmY1NDU2YWUwOTVkOGNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTM1MTYsNiArMzUxNiwxNiBAQCB2b2lkIERvY3VtZW50Ojp1cGRh
dGVJc1BsYXlpbmdNZWRpYSh1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCiAgICAgaWYgKEhUTUxN
ZWRpYUVsZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBIVE1MTWVkaWFFbGVtZW50OjplbGVtZW50V2l0
aElEKHNvdXJjZUVsZW1lbnRJRCkpIHsKICAgICAgICAgaWYgKHNvdXJjZUVsZW1lbnQtPmlzUGxh
eWluZygpKQogICAgICAgICAgICAgc3RhdGUgfD0gTWVkaWFQcm9kdWNlcjo6SXNTb3VyY2VFbGVt
ZW50UGxheWluZzsKKworICAgICAgICBpZiAoTWVkaWFTZXNzaW9uKiBzZXNzaW9uID0gc291cmNl
RWxlbWVudC0+c2Vzc2lvbigpKSB7CisgICAgICAgICAgICBib29sIGlzTnVsbDsKKyAgICAgICAg
ICAgIGlmIChNZWRpYVJlbW90ZUNvbnRyb2xzKiBjb250cm9scyA9IHNlc3Npb24tPmNvbnRyb2xz
KGlzTnVsbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY29udHJvbHMtPnByZXZpb3VzVHJhY2tF
bmFibGVkKCkpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlIHw9IE1lZGlhUHJvZHVjZXI6Oklz
UHJldmlvdXNUcmFja0NvbnRyb2xFbmFibGVkOworICAgICAgICAgICAgICAgIGlmIChjb250cm9s
cy0+bmV4dFRyYWNrRW5hYmxlZCgpKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSB8PSBNZWRp
YVByb2R1Y2VyOjpJc05leHRUcmFja0NvbnRyb2xFbmFibGVkOworICAgICAgICAgICAgfQorICAg
ICAgICB9CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWVkaWFQcm9kdWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5k
ZXggOWIxZjg0MzQ0ZjE2ODQ3NzEzMGQ4ODI0OWQzNzc2MmJhODg4OWFhZi4uOWZjYWM0YWE1MDFl
MTQzMDQ4NTQ0MWU5NTZjYjYwMDBmODAxOGZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9NZWRpYVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1
Y2VyLmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogICAgICAgICBFeHRlcm5hbERldmljZUF1
dG9QbGF5Q2FuZGlkYXRlID0gMSA8PCA0LAogICAgICAgICBEaWRQbGF5VG9FbmQgPSAxIDw8IDUs
CiAgICAgICAgIElzU291cmNlRWxlbWVudFBsYXlpbmcgPSAxIDw8IDYsCisgICAgICAgIElzTmV4
dFRyYWNrQ29udHJvbEVuYWJsZWQgPSAxIDw8IDcsCisgICAgICAgIElzUHJldmlvdXNUcmFja0Nv
bnRyb2xFbmFibGVkID0gMSA8PCA4LAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBNZWRp
YVN0YXRlRmxhZ3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJN
ZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5jcHAKaW5kZXggZGRjNDg3NWIyNGJmZTMwZGNmYTVl
N2MyMjk0NWQzZGU1NTdiODBjMS4uZjUyMWNiMmUzMGE4OGFjMGRiYmIyNjI5ODFjMzkyNzMzMWMx
MjBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlci5jcHAKQEAgLTcwLDE2ICs3MCwyMyBAQCBib29sIFdlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlcjo6dmFsdWVGb3JQbGF5YmFja0F0dHJpYnV0ZShXS01lZGlhU2Vz
c2lvbkZvY3VzTQogICAgIHJldHVybiBtX3BsYXliYWNrQXR0cmlidXRlcyAmIGF0dHJpYnV0ZTsK
IH0KIAotdm9pZCBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI6Om1lZGlhRWxlbWVudElzUGxh
eWluZ0RpZENoYW5nZShXZWJQYWdlUHJveHkqIHByb3h5LCB1aW50NjRfdCBlbGVtZW50SUQsIGJv
b2wgaXNQbGF5aW5nKQordm9pZCBXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI6OnVwZGF0ZVBs
YXliYWNrQXR0cmlidXRlKFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1
dGUgYXR0cmlidXRlLCBib29sIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSkKKyAgICAgICAgbV9w
bGF5YmFja0F0dHJpYnV0ZXMgfD0gYXR0cmlidXRlOworICAgIGVsc2UKKyAgICAgICAgbV9wbGF5
YmFja0F0dHJpYnV0ZXMgJj0gfmF0dHJpYnV0ZTsKKworICAgIG1fY2xpZW50LmRpZENoYW5nZVBs
YXliYWNrQXR0cmlidXRlKHRoaXMsIGF0dHJpYnV0ZSwgdmFsdWUpOworfQorCit2b2lkIFdlYk1l
ZGlhU2Vzc2lvbkZvY3VzTWFuYWdlcjo6dXBkYXRlUGxheWJhY2tBdHRyaWJ1dGVzRnJvbU1lZGlh
U3RhdGUoV2ViUGFnZVByb3h5KiBwcm94eSwgdWludDY0X3QgZWxlbWVudElELCBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgZmxhZ3MpCiB7CiAgICAgaWYgKG1fZm9jdXNl
ZE1lZGlhRWxlbWVudCkgewogICAgICAgICBpZiAocHJveHkgPT0gbV9mb2N1c2VkTWVkaWFFbGVt
ZW50LT5maXJzdCAmJiBlbGVtZW50SUQgPT0gbV9mb2N1c2VkTWVkaWFFbGVtZW50LT5zZWNvbmQp
IHsKLSAgICAgICAgICAgIGlmIChpc1BsYXlpbmcpCi0gICAgICAgICAgICAgICAgbV9wbGF5YmFj
a0F0dHJpYnV0ZXMgfD0gSXNQbGF5aW5nOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIG1fcGxheWJhY2tBdHRyaWJ1dGVzICY9IH5Jc1BsYXlpbmc7Ci0KLSAgICAgICAgICAgIG1f
Y2xpZW50LmRpZENoYW5nZVBsYXliYWNrQXR0cmlidXRlKHRoaXMsIElzUGxheWluZywgaXNQbGF5
aW5nKTsKKyAgICAgICAgICAgIHVwZGF0ZVBsYXliYWNrQXR0cmlidXRlKElzUGxheWluZywgZmxh
Z3MgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc1NvdXJjZUVsZW1lbnRQbGF5aW5nKTsKKyAg
ICAgICAgICAgIHVwZGF0ZVBsYXliYWNrQXR0cmlidXRlKElzTmV4dFRyYWNrQ29udHJvbEVuYWJs
ZWQsIGZsYWdzICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SXNOZXh0VHJhY2tDb250cm9sRW5h
YmxlZCk7CisgICAgICAgICAgICB1cGRhdGVQbGF5YmFja0F0dHJpYnV0ZShJc1ByZXZpb3VzVHJh
Y2tDb250cm9sRW5hYmxlZCwgZmxhZ3MgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc1ByZXZp
b3VzVHJhY2tDb250cm9sRW5hYmxlZCk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgK
aW5kZXggMjFlZTcyMTIwMzcwMmRhYjI0MTk2Mjg1MzIzZWQ5MTlhODc3ZGNiMC4uMDdhYzQzNjA4
YzQ4MDY5Yjg0OGJhODkyNDFjMzQ0MDdhOTQxM2E4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIuaApAQCAtNDYsNyAr
NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLTWVkaWFT
ZXNzaW9uRm9jdXNNYW5hZ2VyQ2xpZW50QmFzZSopOwogCiAgICAgYm9vbCB2YWx1ZUZvclBsYXli
YWNrQXR0cmlidXRlKFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1dGUp
IGNvbnN0OwotICAgIHZvaWQgbWVkaWFFbGVtZW50SXNQbGF5aW5nRGlkQ2hhbmdlKFdlYlBhZ2VQ
cm94eSosIHVpbnQ2NF90LCBib29sKTsKKyAgICB2b2lkIHVwZGF0ZVBsYXliYWNrQXR0cmlidXRl
c0Zyb21NZWRpYVN0YXRlKFdlYlBhZ2VQcm94eSosIHVpbnQ2NF90LCBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRGb2N1c2VkTWVkaWFFbGVt
ZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90KTsKICAgICB2b2lkIGNsZWFyRm9jdXNlZE1lZGlh
RWxlbWVudCgpOwpAQCAtNjEsNiArNjEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBy
ZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHVwZGF0ZVBsYXli
YWNrQXR0cmlidXRlKFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJhY2tBdHRyaWJ1dGUs
IGJvb2wpOworCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZvY3VzZWRNZWRpYUVsZW1lbnQ+IG1fZm9j
dXNlZE1lZGlhRWxlbWVudDsKICAgICBXS01lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlclBsYXliYWNr
QXR0cmlidXRlcyBtX3BsYXliYWNrQXR0cmlidXRlcyB7IDAgfTsKICAgICBXZWJNZWRpYVNlc3Np
b25Gb2N1c01hbmFnZXJDbGllbnQgbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDliZTE1MzYwODZmYmZlMWE3NmNlMGYyYTU1ODUzYTFkYjli
MzY0YmEuLmI5NGQ5MmRiYzBhMDg2MzU5NTBmMDUwYTE2MjUzY2YwOGNkOTY1YjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTQyLDcgKzU5NDIsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNl
cjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlLAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAg
IFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlciogZm9jdXNNYW5hZ2VyID0gcHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkuc3VwcGxlbWVudDxXZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXI+KCk7CiAg
ICAgQVNTRVJUKGZvY3VzTWFuYWdlcik7Ci0gICAgZm9jdXNNYW5hZ2VyLT5tZWRpYUVsZW1lbnRJ
c1BsYXlpbmdEaWRDaGFuZ2UodGhpcywgc291cmNlRWxlbWVudElELCBzdGF0ZSAmIE1lZGlhUHJv
ZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpOworICAgIGZvY3VzTWFuYWdlci0+dXBkYXRl
UGxheWJhY2tBdHRyaWJ1dGVzRnJvbU1lZGlhU3RhdGUodGhpcywgc291cmNlRWxlbWVudElELCBz
dGF0ZSk7CiAjZW5kaWYKIAogICAgIGlmIChzdGF0ZSA9PSBtX21lZGlhU3RhdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258684</attachid>
            <date>2015-08-10 19:22:49 -0700</date>
            <delta_ts>2015-08-12 11:39:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147802-20150810192234.patch</filename>
            <type>text/plain</type>
            <size>14187</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJmYTExMmFhMjAwY2Mx
NTEzMzA3OGRmNGNkMTRiOTQ3NzNmMDM2Ni4uNWQyNTdjOGNiMjNiODA2NmE5MGUxMmYzMzI2NDk3
ZjUwMWY1ZjM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE1LTA4LTA3ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBub3Rp
ZnkgdGhlIFVJIHByb2Nlc3Mgd2hlbiBtZWRpYSBjb250cm9scyBhcmUgZW5hYmxlZC9kaXNhYmxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6Ok1lZGlhUmVtb3RlQ29udHJvbHMpOiBLZWVwIHRyYWNr
IG9mIHRoZSBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29u
dHJvbHM6On5NZWRpYVJlbW90ZUNvbnRyb2xzKTogUmVtb3ZlZCB1bm5lY2Vzc2FyeSBsaW5lLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0Vu
YWJsZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVtb3RlQ29udHJvbHM6OnNldE5leHRUcmFja0VuYWJs
ZWQpOiBUZWxsIHRoZSBzZXNzaW9uIGEgY29udHJvbCB3YXMgZW5hYmxlZC9kaXNhYmxlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVJlbW90ZUNvbnRyb2xzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlbW90ZUNvbnRyb2xzOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFSZW1vdGVDb250cm9sczo6c2V0UHJldmlvdXNUcmFja0VuYWJsZWQpOiBNb3Zl
ZCB0byBpbXBsZW1lbnRhdGlvbiBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZW1vdGVD
b250cm9sczo6c2V0TmV4dFRyYWNrRW5hYmxlZCk6IE1vdmVkIHRvIGltcGxlbWVudGF0aW9uIGZp
bGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKTogS2VlcCB0cmFjayBv
ZiB0aGUgcmVtb3RlIGNvbnRyb2xzJyBwYXJlbnQgc2Vzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbjo6Y29udHJvbElzRW5hYmxlZERpZENoYW5nZSk6IFByb3BhZ2F0ZSB0aGUg
bmV3IG1lZGlhIHN0YXRlIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEpOiBJbmNsdWRl
IHdoZXRoZXIgd2UgY2FuIHNraXAgdG8gdGhlIHByZXZpb3VzL25leHQgdHJhY2suCisgICAgICAg
ICogcGFnZS9NZWRpYVByb2R1Y2VyLmg6CisKIDIwMTUtMDgtMTAgIEphbWVzIENyYWlnICA8amNy
YWlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogQWRkcmVzcyBmb2xsb3ctdXAgY29tbWVudHMg
aW4gYnVnIDE0NTY4NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU2YmY1NjUxOTgwZjgwOGY4M2VkN2UxNmMxMGZh
YzI5YWM1ZjllNzkuLjA0MDgzNzk3YmIzZGM1YWM3ZWNkNDc2M2M4OGQ1NWMzZjk5YmQ4ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxOSBAQAogMjAxNS0wOC0wNyAgTWF0dCBSYWpjYSAgPG1yYWpj
YUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjogbm90aWZ5IHRoZSBVSSBwcm9j
ZXNzIHdoZW4gbWVkaWEgY29udHJvbHMgYXJlIGVuYWJsZWQvZGlzYWJsZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzgwMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlh
U2Vzc2lvbkZvY3VzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lv
bkZvY3VzTWFuYWdlcjo6cGxheWJhY2tBdHRyaWJ1dGVEaWRDaGFuZ2UpOiBHZW5lcmFsaXplZCB0
byB0YWtlIGRpZmZlcmVudCBhdHRyaWJ1dGVzLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNl
c3Npb25Gb2N1c01hbmFnZXI6Om1lZGlhRWxlbWVudElzUGxheWluZ0RpZENoYW5nZSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKTogUHJvY2VzcyBuZXcgYXR0cmli
dXRlcyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIG1lZGlhIGNvbnRyb2xzLgorCisyMDE1LTA4LTA3
ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKwogICAgICAgICBNZWRpYSBTZXNzaW9u
OiBnZW5lcmFsaXplIGlzRm9jdXNlZENvbnRlbnRNZWRpYUVsZW1lbnRQbGF5aW5nIHNvIGl0IHdv
cmtzIHdpdGggb3RoZXIgcGxheWJhY2sgYXR0cmlidXRlcwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3Nzk3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
aW5kZXggZmRmOTNiMGY3Zjc3NDcyMTQyNTAxYzE1YjU1Mjg1MjMzYzVhZGQ4Ni4uNGE4Mjc3NWIw
N2Q5NGZkNjMwMzViYzc1ZTc1MTRjNDY2MTUyZjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFSZW1vdGVDb250cm9scy5jcHAK
QEAgLTI4LDE2ICsyOCw0NSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAKKyNpbmNs
dWRlICJNZWRpYVNlc3Npb24uaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYVJlbW90
ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpCitNZWRpYVJlbW90ZUNvbnRyb2xzOjpNZWRpYVJlbW90ZUNvbnRyb2xzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKICAgICA6IG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQorICAgICwgbV9zZXNzaW9uKHNlc3Npb24p
Cit7Cit9CisKK3ZvaWQgTWVkaWFSZW1vdGVDb250cm9sczo6Y2xlYXJTZXNzaW9uKCkKIHsKKyAg
ICBtX3Nlc3Npb24gPSBudWxscHRyOwogfQogCiBNZWRpYVJlbW90ZUNvbnRyb2xzOjp+TWVkaWFS
ZW1vdGVDb250cm9scygpCiB7Ci0gICAgCit9CisKK3ZvaWQgTWVkaWFSZW1vdGVDb250cm9sczo6
c2V0UHJldmlvdXNUcmFja0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpCit7CisgICAgaWYgKG1fcHJl
dmlvdXNUcmFja0VuYWJsZWQgPT0gaXNFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3ByZXZpb3VzVHJhY2tFbmFibGVkID0gaXNFbmFibGVkOworCisgICAgaWYgKG1fc2Vzc2lvbikK
KyAgICAgICAgbV9zZXNzaW9uLT5jb250cm9sSXNFbmFibGVkRGlkQ2hhbmdlKCk7Cit9CisKK3Zv
aWQgTWVkaWFSZW1vdGVDb250cm9sczo6c2V0TmV4dFRyYWNrRW5hYmxlZChib29sIGlzRW5hYmxl
ZCkKK3sKKyAgICBpZiAobV9uZXh0VHJhY2tFbmFibGVkID09IGlzRW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9uZXh0VHJhY2tFbmFibGVkID0gaXNFbmFibGVkOworCisgICAgaWYg
KG1fc2Vzc2lvbikKKyAgICAgICAgbV9zZXNzaW9uLT5jb250cm9sSXNFbmFibGVkRGlkQ2hhbmdl
KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNz
aW9uL01lZGlhUmVtb3RlQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhUmVtb3RlQ29udHJvbHMuaAppbmRleCA5Y2FmMDkxNjlhOTZiMjZhZGQzMmI1
ZTUyNWFiZDRiZDRiOGI0M2VmLi5iNmNjMDcwZTg0YjE4YzBkN2Q5Y2FlNzljYzQyMDVlMzVlODQ0
ZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YVJlbW90ZUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFSZW1vdGVDb250cm9scy5oCkBAIC0zMywyNSArMzMsMjkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVNlc3Npb247CisKIGNsYXNzIE1lZGlhUmVtb3RlQ29u
dHJvbHMgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlbW90ZUNvbnRyb2xzPiwgcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFS
ZW1vdGVDb250cm9scz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNv
bnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFSZW1vdGVDb250cm9s
cyhjb250ZXh0LCBudWxscHRyKSk7CiAgICAgfQogCiAgICAgYm9vbCBwcmV2aW91c1RyYWNrRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNUcmFja0VuYWJsZWQ7IH0KLSAgICB2b2lk
IHNldFByZXZpb3VzVHJhY2tFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3ByZXZpb3VzVHJhY2tF
bmFibGVkID0gZW5hYmxlZDsgfQorICAgIHZvaWQgc2V0UHJldmlvdXNUcmFja0VuYWJsZWQoYm9v
bCk7CiAKICAgICBib29sIG5leHRUcmFja0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX25leHRU
cmFja0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNldE5leHRUcmFja0VuYWJsZWQoYm9vbCBlbmFibGVk
KSB7IG1fbmV4dFRyYWNrRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICB2b2lkIHNldE5leHRUcmFj
a0VuYWJsZWQoYm9vbCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhUmVtb3RlQ29udHJv
bHM+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVJlbW90ZUNvbnRyb2xzPjo6ZGVy
ZWY7CiAKKyAgICB2b2lkIGNsZWFyU2Vzc2lvbigpOworCiAgICAgdmlydHVhbCB+TWVkaWFSZW1v
dGVDb250cm9scygpOwogCi0gICAgTWVkaWFSZW1vdGVDb250cm9scyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jik7CisgICAgTWVkaWFSZW1vdGVDb250cm9scyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgTWVkaWFTZXNzaW9uKik7CiAKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2
ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFSZW1vdGVD
b250cm9sc0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICZtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0KQEAgLTYyLDYgKzY2LDggQEAgcHJp
dmF0ZToKICAgICBib29sIG1fcHJldmlvdXNUcmFja0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9uZXh0VHJhY2tFbmFibGVkIHsgZmFsc2UgfTsKIAorICAgIE1lZGlhU2Vzc2lvbiogbV9z
ZXNzaW9uIHsgbnVsbHB0ciB9OworCiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkg
b3ZlcnJpZGUgZmluYWwgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgZmluYWwgeyBkZXJlZigpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAKaW5kZXggZWI3NDFi
YmE3OGIxNmZjNzhmOWRmMzQxOTU2NWMwZDRlNzc0Y2RlZC4uNDVhOTNiMWE5OGEzOTMzNjhkMjM5
NzQ4M2I0OGMzMGEzMTcxYjVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb24uY3BwCkBAIC03MSw3ICs3MSw3IEBAIE1lZGlhU2Vz
c2lvbjo6TWVkaWFTZXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYga2luZCkKICAgICAvLyAzLiBJZiBtZWRpYSBzZXNzaW9uJ3MgY3VycmVudCBtZWRp
YSBzZXNzaW9uIHR5cGUgaXMgImNvbnRlbnQiLCB0aGVuIGNyZWF0ZSBhIG5ldyBtZWRpYSByZW1v
dGUgY29udHJvbGxlciBmb3IgbWVkaWEKICAgICAvLyAgICBzZXNzaW9uLiAoT3RoZXJ3aXNlIG1l
ZGlhIHNlc3Npb24gaGFzIG5vIG1lZGlhIHJlbW90ZSBjb250cm9sbGVyLikKICAgICBpZiAobV9r
aW5kID09IEtpbmQ6OkNvbnRlbnQpCi0gICAgICAgIG1fY29udHJvbHMgPSBhZG9wdFJlZigqbmV3
IE1lZGlhUmVtb3RlQ29udHJvbHMoY29udGV4dCkpOworICAgICAgICBtX2NvbnRyb2xzID0gYWRv
cHRSZWYoKm5ldyBNZWRpYVJlbW90ZUNvbnRyb2xzKGNvbnRleHQsIHRoaXMpKTsKIAogICAgIE1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNpbmdsZXRvbigpLmFkZE1lZGlhU2Vzc2lvbigqdGhpcyk7CiB9
CkBAIC03OSw2ICs3OSw5IEBAIE1lZGlhU2Vzc2lvbjo6TWVkaWFTZXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYga2luZCkKIE1lZGlhU2Vzc2lvbjo6
fk1lZGlhU2Vzc2lvbigpCiB7CiAgICAgTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2luZ2xldG9uKCku
cmVtb3ZlTWVkaWFTZXNzaW9uKCp0aGlzKTsKKworICAgIGlmIChtX2NvbnRyb2xzKQorICAgICAg
ICBtX2NvbnRyb2xzLT5jbGVhclNlc3Npb24oKTsKIH0KIAogU3RyaW5nIE1lZGlhU2Vzc2lvbjo6
a2luZCgpIGNvbnN0CkBAIC0zMTcsNiArMzIwLDIxIEBAIHZvaWQgTWVkaWFTZXNzaW9uOjpza2lw
VG9QcmV2aW91c1RyYWNrKCkKICAgICAgICAgbV9jb250cm9scy0+ZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wcmV2aW91c3RyYWNrRXZlbnQsIGZhbHNlLCBmYWxzZSkp
OwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbjo6Y29udHJvbElzRW5hYmxlZERpZENoYW5nZSgpCit7
CisgICAgLy8gTWVkaWEgcmVtb3RlIGNvbnRyb2xzIGFyZSBvbmx5IGFsbG93ZWQgb24gQ29udGVu
dCBtZWRpYSBzZXNzaW9ucy4KKyAgICBBU1NFUlQobV9raW5kID09IEtpbmQ6OkNvbnRlbnQpOwor
CisgICAgLy8gTWVkaWEgZWxlbWVudHMgYmVsb25naW5nIHRvIENvbnRlbnQgbWVkaWEgc2Vzc2lv
bnMgaGF2ZSBtdXR1YWxseS1leGNsdXNpdmUgcGxheWJhY2suCisgICAgQVNTRVJUKG1fYWN0aXZl
UGFydGljaXBhdGluZ0VsZW1lbnRzLnNpemUoKSA8PSAxKTsKKworICAgIGlmIChtX2FjdGl2ZVBh
cnRpY2lwYXRpbmdFbGVtZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEhU
TUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQgPSAqbV9hY3RpdmVQYXJ0aWNpcGF0aW5nRWxlbWVudHMu
YmVnaW4oKTsKKyAgICBtX2RvY3VtZW50LnVwZGF0ZUlzUGxheWluZ01lZGlhKGVsZW1lbnQtPmVs
ZW1lbnRJRCgpKTsKK30KKwogfQogCiAjZW5kaWYgLyogRU5BQkxFKE1FRElBX1NFU1NJT04pICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5oCmluZGV4IDQxZjhmNmEyZWVhMzY3MjRiM2E2MjMxOGFhNmFjY2U1OGFkMGUyZDAuLmJlNmYx
NTNjMWU3NTdjYjQ5ZWU0NTBmOTk4Y2Q5ZWU1MWIxYmEzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lvbi5oCkBAIC04Niw2ICs4Niw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNraXBUb05leHRUcmFjaygpOwogICAgIHZvaWQgc2tpcFRv
UHJldmlvdXNUcmFjaygpOwogCisgICAgdm9pZCBjb250cm9sSXNFbmFibGVkRGlkQ2hhbmdlKCk7
CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGViNDg0ZTE3OGNiNDRmOTkxOGVkMmM1NGJhZmJmZmNiMTAz
MThhOGQuLjMzZDcxNWQzZjEyNjY5NzM1NGRiZTMxMTJiZjU0NTZhZTA5NWQ4Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMzUxNiw2ICszNTE2LDE2IEBAIHZvaWQgRG9jdW1lbnQ6OnVw
ZGF0ZUlzUGxheWluZ01lZGlhKHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKICAgICBpZiAoSFRN
TE1lZGlhRWxlbWVudCogc291cmNlRWxlbWVudCA9IEhUTUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRX
aXRoSUQoc291cmNlRWxlbWVudElEKSkgewogICAgICAgICBpZiAoc291cmNlRWxlbWVudC0+aXNQ
bGF5aW5nKCkpCiAgICAgICAgICAgICBzdGF0ZSB8PSBNZWRpYVByb2R1Y2VyOjpJc1NvdXJjZUVs
ZW1lbnRQbGF5aW5nOworCisgICAgICAgIGlmIChNZWRpYVNlc3Npb24qIHNlc3Npb24gPSBzb3Vy
Y2VFbGVtZW50LT5zZXNzaW9uKCkpIHsKKyAgICAgICAgICAgIGJvb2wgaXNOdWxsOworICAgICAg
ICAgICAgaWYgKE1lZGlhUmVtb3RlQ29udHJvbHMqIGNvbnRyb2xzID0gc2Vzc2lvbi0+Y29udHJv
bHMoaXNOdWxsKSkgeworICAgICAgICAgICAgICAgIGlmIChjb250cm9scy0+cHJldmlvdXNUcmFj
a0VuYWJsZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgfD0gTWVkaWFQcm9kdWNlcjo6
SXNQcmV2aW91c1RyYWNrQ29udHJvbEVuYWJsZWQ7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRy
b2xzLT5uZXh0VHJhY2tFbmFibGVkKCkpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlIHw9IE1l
ZGlhUHJvZHVjZXI6OklzTmV4dFRyYWNrQ29udHJvbEVuYWJsZWQ7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZWRpYVByb2R1Y2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJvZHVjZXIuaApp
bmRleCA5YjFmODQzNDRmMTY4NDc3MTMwZDg4MjQ5ZDM3NzYyYmE4ODg5YWFmLi45ZmNhYzRhYTUw
MWUxNDMwNDg1NDQxZTk1NmNiNjAwMGY4MDE4ZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL01lZGlhUHJvZHVjZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhUHJv
ZHVjZXIuaApAQCAtMzksNiArMzksOCBAQCBwdWJsaWM6CiAgICAgICAgIEV4dGVybmFsRGV2aWNl
QXV0b1BsYXlDYW5kaWRhdGUgPSAxIDw8IDQsCiAgICAgICAgIERpZFBsYXlUb0VuZCA9IDEgPDwg
NSwKICAgICAgICAgSXNTb3VyY2VFbGVtZW50UGxheWluZyA9IDEgPDwgNiwKKyAgICAgICAgSXNO
ZXh0VHJhY2tDb250cm9sRW5hYmxlZCA9IDEgPDwgNywKKyAgICAgICAgSXNQcmV2aW91c1RyYWNr
Q29udHJvbEVuYWJsZWQgPSAxIDw8IDgsCiAgICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIE1l
ZGlhU3RhdGVGbGFnczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmNwcAppbmRleCBkZGM0ODc1YjI0YmZlMzBkY2Zh
NWU3YzIyOTQ1ZDNkZTU1N2I4MGMxLi5mNTIxY2IyZTMwYTg4YWMwZGJiYjI2Mjk4MWMzOTI3MzMx
YzEyMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNz
aW9uRm9jdXNNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVk
aWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmNwcApAQCAtNzAsMTYgKzcwLDIzIEBAIGJvb2wgV2ViTWVk
aWFTZXNzaW9uRm9jdXNNYW5hZ2VyOjp2YWx1ZUZvclBsYXliYWNrQXR0cmlidXRlKFdLTWVkaWFT
ZXNzaW9uRm9jdXNNCiAgICAgcmV0dXJuIG1fcGxheWJhY2tBdHRyaWJ1dGVzICYgYXR0cmlidXRl
OwogfQogCi12b2lkIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlcjo6bWVkaWFFbGVtZW50SXNQ
bGF5aW5nRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSogcHJveHksIHVpbnQ2NF90IGVsZW1lbnRJRCwg
Ym9vbCBpc1BsYXlpbmcpCit2b2lkIFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlcjo6dXBkYXRl
UGxheWJhY2tBdHRyaWJ1dGUoV0tNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXJQbGF5YmFja0F0dHJp
YnV0ZSBhdHRyaWJ1dGUsIGJvb2wgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlKQorICAgICAgICBt
X3BsYXliYWNrQXR0cmlidXRlcyB8PSBhdHRyaWJ1dGU7CisgICAgZWxzZQorICAgICAgICBtX3Bs
YXliYWNrQXR0cmlidXRlcyAmPSB+YXR0cmlidXRlOworCisgICAgbV9jbGllbnQuZGlkQ2hhbmdl
UGxheWJhY2tBdHRyaWJ1dGUodGhpcywgYXR0cmlidXRlLCB2YWx1ZSk7Cit9CisKK3ZvaWQgV2Vi
TWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyOjp1cGRhdGVQbGF5YmFja0F0dHJpYnV0ZXNGcm9tTWVk
aWFTdGF0ZShXZWJQYWdlUHJveHkqIHByb3h5LCB1aW50NjRfdCBlbGVtZW50SUQsIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBmbGFncykKIHsKICAgICBpZiAobV9mb2N1
c2VkTWVkaWFFbGVtZW50KSB7CiAgICAgICAgIGlmIChwcm94eSA9PSBtX2ZvY3VzZWRNZWRpYUVs
ZW1lbnQtPmZpcnN0ICYmIGVsZW1lbnRJRCA9PSBtX2ZvY3VzZWRNZWRpYUVsZW1lbnQtPnNlY29u
ZCkgewotICAgICAgICAgICAgaWYgKGlzUGxheWluZykKLSAgICAgICAgICAgICAgICBtX3BsYXli
YWNrQXR0cmlidXRlcyB8PSBJc1BsYXlpbmc7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgbV9wbGF5YmFja0F0dHJpYnV0ZXMgJj0gfklzUGxheWluZzsKLQotICAgICAgICAgICAg
bV9jbGllbnQuZGlkQ2hhbmdlUGxheWJhY2tBdHRyaWJ1dGUodGhpcywgSXNQbGF5aW5nLCBpc1Bs
YXlpbmcpOworICAgICAgICAgICAgdXBkYXRlUGxheWJhY2tBdHRyaWJ1dGUoSXNQbGF5aW5nLCBm
bGFncyAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OklzU291cmNlRWxlbWVudFBsYXlpbmcpOwor
ICAgICAgICAgICAgdXBkYXRlUGxheWJhY2tBdHRyaWJ1dGUoSXNOZXh0VHJhY2tDb250cm9sRW5h
YmxlZCwgZmxhZ3MgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpJc05leHRUcmFja0NvbnRyb2xF
bmFibGVkKTsKKyAgICAgICAgICAgIHVwZGF0ZVBsYXliYWNrQXR0cmlidXRlKElzUHJldmlvdXNU
cmFja0NvbnRyb2xFbmFibGVkLCBmbGFncyAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OklzUHJl
dmlvdXNUcmFja0NvbnRyb2xFbmFibGVkKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXIu
aAppbmRleCAyMWVlNzIxMjAzNzAyZGFiMjQxOTYyODUzMjNlZDkxOWE4NzdkY2IwLi4wN2FjNDM2
MDhjNDgwNjliODQ4YmE4OTI0MWMzNDQwN2E5NDEzYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlci5oCkBAIC00Niw3
ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tNZWRp
YVNlc3Npb25Gb2N1c01hbmFnZXJDbGllbnRCYXNlKik7CiAKICAgICBib29sIHZhbHVlRm9yUGxh
eWJhY2tBdHRyaWJ1dGUoV0tNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXJQbGF5YmFja0F0dHJpYnV0
ZSkgY29uc3Q7Ci0gICAgdm9pZCBtZWRpYUVsZW1lbnRJc1BsYXlpbmdEaWRDaGFuZ2UoV2ViUGFn
ZVByb3h5KiwgdWludDY0X3QsIGJvb2wpOworICAgIHZvaWQgdXBkYXRlUGxheWJhY2tBdHRyaWJ1
dGVzRnJvbU1lZGlhU3RhdGUoV2ViUGFnZVByb3h5KiwgdWludDY0X3QsIFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiAKICAgICB2b2lkIHNldEZvY3VzZWRNZWRpYUVs
ZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QpOwogICAgIHZvaWQgY2xlYXJGb2N1c2VkTWVk
aWFFbGVtZW50KCk7CkBAIC02MSw2ICs2MSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRl
cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKIAorICAgIHZvaWQgdXBkYXRlUGxh
eWJhY2tBdHRyaWJ1dGUoV0tNZWRpYVNlc3Npb25Gb2N1c01hbmFnZXJQbGF5YmFja0F0dHJpYnV0
ZSwgYm9vbCk7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Rm9jdXNlZE1lZGlhRWxlbWVudD4gbV9m
b2N1c2VkTWVkaWFFbGVtZW50OwogICAgIFdLTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyUGxheWJh
Y2tBdHRyaWJ1dGVzIG1fcGxheWJhY2tBdHRyaWJ1dGVzIHsgMCB9OwogICAgIFdlYk1lZGlhU2Vz
c2lvbkZvY3VzTWFuYWdlckNsaWVudCBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWJlMTUzNjA4NmZiZmUxYTc2Y2UwZjJhNTU4NTNhMWRi
OWIzNjRiYS4uYjk0ZDkyZGJjMGEwODYzNTk1MGYwNTBhMTYyNTNjZjA4Y2Q5NjViMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU5NDIsNyArNTk0Miw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUsCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAg
ICAgV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyKiBmb2N1c01hbmFnZXIgPSBwcm9jZXNzKCku
cHJvY2Vzc1Bvb2woKS5zdXBwbGVtZW50PFdlYk1lZGlhU2Vzc2lvbkZvY3VzTWFuYWdlcj4oKTsK
ICAgICBBU1NFUlQoZm9jdXNNYW5hZ2VyKTsKLSAgICBmb2N1c01hbmFnZXItPm1lZGlhRWxlbWVu
dElzUGxheWluZ0RpZENoYW5nZSh0aGlzLCBzb3VyY2VFbGVtZW50SUQsIHN0YXRlICYgTWVkaWFQ
cm9kdWNlcjo6SXNTb3VyY2VFbGVtZW50UGxheWluZyk7CisgICAgZm9jdXNNYW5hZ2VyLT51cGRh
dGVQbGF5YmFja0F0dHJpYnV0ZXNGcm9tTWVkaWFTdGF0ZSh0aGlzLCBzb3VyY2VFbGVtZW50SUQs
IHN0YXRlKTsKICNlbmRpZgogCiAgICAgaWYgKHN0YXRlID09IG1fbWVkaWFTdGF0ZSkK
</data>
<flag name="review"
          id="283868"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>