<?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>149418</bug_id>
          
          <creation_ts>2015-09-21 15:04:09 -0700</creation_ts>
          <short_desc>HTMLOutputElement.htmlFor should be settable</short_desc>
          <delta_ts>2015-09-23 15:59:31 -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>DOM</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://html.spec.whatwg.org/multipage/forms.html#the-output-element</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>149480</dependson>
    
    <dependson>149481</dependson>
    
    <dependson>149502</dependson>
    
    <dependson>149503</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1127767</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-21 15:04:09 -0700</bug_when>
    <thetext>HTMLOutputElement.htmlFor should be settable as per the specification:
https://html.spec.whatwg.org/multipage/forms.html#the-output-element

It is supposed to call DOMSettableTokenList.setValue() with the input String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128072</commentid>
    <comment_count>1</comment_count>
      <attachid>261758</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-22 12:08:09 -0700</bug_when>
    <thetext>Created attachment 261758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128104</commentid>
    <comment_count>2</comment_count>
      <attachid>261758</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-22 14:24:48 -0700</bug_when>
    <thetext>Comment on attachment 261758
Patch

Clearing flags on attachment: 261758

Committed r190134: &lt;http://trac.webkit.org/changeset/190134&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128105</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-22 14:24:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128124</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-22 15:36:17 -0700</bug_when>
    <thetext>May have caused a crash on the bots:
Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       EXC_I386_GPFLT

Application Specific Information:
CRASHING TEST: fast/dom/HTMLScriptElement/script-set-src.html

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000011044b0c7 WebCore::JSDOMTokenListOwner::isReachableFromOpaqueRoots(JSC::Handle&lt;JSC::Unknown&gt;, void*, JSC::SlotVisitor&amp;) + 39
1   com.apple.JavaScriptCore      	0x000000010ee14774 JSC::WeakBlock::visit(JSC::HeapRootVisitor&amp;) + 212 (WeakBlock.cpp:123)
2   com.apple.JavaScriptCore      	0x000000010ecb97cb JSC::VisitWeakSet::ReturnType JSC::MarkedSpace::forEachBlock&lt;JSC::VisitWeakSet&gt;(JSC::VisitWeakSet&amp;) + 651 (MarkedSpace.h:242)
3   com.apple.JavaScriptCore      	0x000000010ecb8b21 JSC::MarkedSpace::visitWeakSets(JSC::HeapRootVisitor&amp;) + 145 (MarkedSpace.cpp:156)
4   com.apple.JavaScriptCore      	0x000000010eacc59a JSC::Heap::visitWeakHandles(JSC::HeapRootVisitor&amp;) + 106 (Heap.cpp:484)
5   com.apple.JavaScriptCore      	0x000000010eacbd5a JSC::Heap::markRoots(double, void*, void*, int (&amp;) [37]) + 1018 (Heap.cpp:563)
6   com.apple.JavaScriptCore      	0x000000010eacdccd JSC::Heap::collectImpl(JSC::HeapOperation, void*, void*, int (&amp;) [37]) + 733 (Heap.cpp:1011)
7   com.apple.JavaScriptCore      	0x000000010eacd9bd JSC::Heap::collect(JSC::HeapOperation) + 237 (Heap.cpp:962)
8   com.apple.JavaScriptCore      	0x000000010e82f89d JSC::GCActivityCallback::doWork() + 125 (GCActivityCallback.cpp:81)
9   com.apple.JavaScriptCore      	0x000000010ead341a JSC::HeapTimer::timerDidFire(__CFRunLoopTimer*, void*) + 186 (HeapTimer.cpp:101)
10  com.apple.CoreFoundation      	0x00007fff87e7c2e4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
11  com.apple.CoreFoundation      	0x00007fff87e7bf73 __CFRunLoopDoTimer + 1059
12  com.apple.CoreFoundation      	0x00007fff87eef53d __CFRunLoopDoTimers + 301
13  com.apple.CoreFoundation      	0x00007fff87e37608 __CFRunLoopRun + 2024
14  com.apple.CoreFoundation      	0x00007fff87e36bd8 CFRunLoopRunSpecific + 296
15  DumpRenderTree                	0x000000010e60846f runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) + 2144 (DumpRenderTree.mm:2031)
16  DumpRenderTree                	0x000000010e6079dc dumpRenderTree(int, char const**) + 3053 (DumpRenderTree.mm:1288)
17  DumpRenderTree                	0x000000010e608f9f DumpRenderTreeMain(int, char const**) + 1400 (DumpRenderTree.mm:1424)
18  libdyld.dylib                 	0x00007fff886f35c9 start + 1

I am looking into it a bit but it looks non-trivial so I may simply roll out for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128135</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-22 16:05:33 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 149481</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128196</commentid>
    <comment_count>6</comment_count>
      <attachid>261790</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-22 18:46:47 -0700</bug_when>
    <thetext>Created attachment 261790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128197</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-22 18:51:38 -0700</bug_when>
    <thetext>Changes since the previous patch that was rolled out:
- AttributeDOMTokenList now refs/unrefs its associated Element again. This is needed because DOMTokenList is using [GenerateIsReachable=ImplElementRoot]. This is what was causing the GC crashes.
- DOMSettableTokenList is no longer RefCounted. This is no longer needed as all call sites now use AttributeDOMTokenList and AttributeDOMTokenList handles its own ref-counting.
- Update HTMLLinkElement.sizes to use AttributeDOMTokenList instead of DOMSettableTokenList as it has an associated attribute (sizes). This fixes a bug as a result as the previous implementation would fail to update the associated sizes attribute value whenever HTMLLinkElement.sizes property was set by the JavaScript. I added a new layout test to cover this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128306</commentid>
    <comment_count>8</comment_count>
      <attachid>261790</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-23 07:32:56 -0700</bug_when>
    <thetext>Comment on attachment 261790
Patch

Clearing flags on attachment: 261790

Committed r190168: &lt;http://trac.webkit.org/changeset/190168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128307</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-23 07:33:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128321</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-09-23 08:55:56 -0700</bug_when>
    <thetext>This broke the Windows build:

WebCore.lib(AttributeDOMTokenList.obj) : error LNK2001: unresolved external symbol &quot;public: virtual void __thiscall WebCore::DOMSettableTokenList::ref(void)&quot; (?ref@DOMSettableTokenList@WebCore@@UAEXXZ) [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]
WebCore.lib(AttributeDOMTokenList.obj) : error LNK2001: unresolved external symbol &quot;public: virtual void __thiscall WebCore::DOMSettableTokenList::deref(void)&quot; (?deref@DOMSettableTokenList@WebCore@@UAEXXZ) [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKit\WebKit.vcxproj]

Please fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128323</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-23 09:01:07 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 149502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128351</commentid>
    <comment_count>12</comment_count>
      <attachid>261790</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-23 10:31:49 -0700</bug_when>
    <thetext>Comment on attachment 261790
Patch

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

&gt; Source/WebCore/html/DOMSettableTokenList.h:45
&gt;      virtual void ref() override;

Ah, I forgot to drop those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128355</commentid>
    <comment_count>13</comment_count>
      <attachid>261829</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-23 10:42:55 -0700</bug_when>
    <thetext>Created attachment 261829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128380</commentid>
    <comment_count>14</comment_count>
      <attachid>261829</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-23 13:40:38 -0700</bug_when>
    <thetext>Comment on attachment 261829
Patch

Rejecting attachment 261829 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 261829, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/203945</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128399</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-23 15:59:31 -0700</bug_when>
    <thetext>Committed r190189: &lt;http://trac.webkit.org/changeset/190189&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261758</attachid>
            <date>2015-09-22 12:08:09 -0700</date>
            <delta_ts>2015-09-22 18:46:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149418-20150922120751.patch</filename>
            <type>text/plain</type>
            <size>17151</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5MzAxZDAzMTZiZTNj
MjYwYjE1MjFmYjQzMzVlMGUzMmY5MDBjYy4uMGMzYjYxMDJlMWU2YTE0N2UwNGU1ZDQxNjZiMDAz
MTQ1OGQyNmFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE1LTA5LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSFRNTE91dHB1dEVsZW1lbnQu
aHRtbEZvciBzaG91bGQgYmUgc2V0dGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEhUTUxPdXRwdXRFbGVtZW50Lmh0bWxGb3Igc2hvdWxkIGJlIHNl
dHRhYmxlIGFzIHBlciB0aGUgbGF0ZXN0IEhUTUwKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAg
ICAgICAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1s
I3RoZS1vdXRwdXQtZWxlbWVudAorCisgICAgICAgIEl0IGlzIHN1cHBvc2VkIHRvIGNhbGwgRE9N
U2V0dGFibGVUb2tlbkxpc3Quc2V0VmFsdWUoKSB3aXRoIHRoZSBpbnB1dAorICAgICAgICBTdHJp
bmcuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGlzIGJ5IGFkZGluZyBbUHV0Rm9yd2Fy
ZHM9dmFsdWVdCisgICAgICAgIElETCBleHRlbmRlZCBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGhp
cyBhbGlnbnMgb3VyIGJlaGF2aW9yIHdpdGggdGhlIHNwZWNpZmljYXRpb24sIEZpcmVmb3ggYW5k
IENocm9tZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNsYXNzTGlzdCk6
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
Y2xhc3NMaXN0KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnNldENsYXNzTGlzdCk6CisgICAgICAgICogaHRtbC9B
dHRyaWJ1dGVET01Ub2tlbkxpc3QuaDoKKyAgICAgICAgKiBodG1sL0RPTVNldHRhYmxlVG9rZW5M
aXN0Lmg6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCk6CisgICAgICAgICogaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCk6CisgICAgICAgICogaHRt
bC9IVE1MTGlua0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPdXRwdXRFbGVtZW50OjpIVE1MT3V0cHV0RWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3V0cHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE91dHB1dEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTE91dHB1dEVsZW1lbnQuaWRsOgorCiAyMDE1LTA5LTIyICBFcmljIENhcmxzb24g
IDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgMzItYml0IFlv
c2VtaXRlIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBlM2YyMWMzYjFhMzk5
YjM3NjZmMDQ5MmE4OGZiMmZjYmY0MmZlMzc5Li45ZGM4NDZhNTdkNDdmYWYzN2U1ZGYwZDE1YjMy
MzQyYjgyZmExMmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNzE2LDcgKzI3MTYsNyBA
QCBET01Ub2tlbkxpc3QmIEVsZW1lbnQ6OmNsYXNzTGlzdCgpCiB7CiAgICAgRWxlbWVudFJhcmVE
YXRhJiBkYXRhID0gZW5zdXJlRWxlbWVudFJhcmVEYXRhKCk7CiAgICAgaWYgKCFkYXRhLmNsYXNz
TGlzdCgpKQotICAgICAgICBkYXRhLnNldENsYXNzTGlzdChzdGQ6Om1ha2VfdW5pcXVlPEF0dHJp
YnV0ZURPTVRva2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6Y2xhc3NBdHRyKSk7CisgICAgICAg
IGRhdGEuc2V0Q2xhc3NMaXN0KEF0dHJpYnV0ZURPTVRva2VuTGlzdDo6Y3JlYXRlKCp0aGlzLCBI
VE1MTmFtZXM6OmNsYXNzQXR0cikpOwogICAgIHJldHVybiAqZGF0YS5jbGFzc0xpc3QoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IDU5ODFjZjRhZjY0NDU5MWZk
YjhkNDRmNDk3OTA3NzliYmJhMWQ4YjcuLjA5OWU2YTI4YjA5NzQ2OGI1NmJhODQzNTVkNWQyZGEx
MjMwM2ZjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTkzLDcgKzkz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29tcHV0ZWRTdHlsZShSZWY8UmVuZGVyU3R5bGU+
JiYgY29tcHV0ZWRTdHlsZSkgeyBtX2NvbXB1dGVkU3R5bGUgPSBXVEY6Om1vdmUoY29tcHV0ZWRT
dHlsZSk7IH0KIAogICAgIEF0dHJpYnV0ZURPTVRva2VuTGlzdCogY2xhc3NMaXN0KCkgY29uc3Qg
eyByZXR1cm4gbV9jbGFzc0xpc3QuZ2V0KCk7IH0KLSAgICB2b2lkIHNldENsYXNzTGlzdChzdGQ6
OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0PiBjbGFzc0xpc3QpIHsgbV9jbGFzc0xp
c3QgPSBXVEY6Om1vdmUoY2xhc3NMaXN0KTsgfQorICAgIHZvaWQgc2V0Q2xhc3NMaXN0KFJlZlB0
cjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+JiYgY2xhc3NMaXN0KSB7IG1fY2xhc3NMaXN0ID0gV1RG
Ojptb3ZlKGNsYXNzTGlzdCk7IH0KIAogICAgIERhdGFzZXRET01TdHJpbmdNYXAqIGRhdGFzZXQo
KSBjb25zdCB7IHJldHVybiBtX2RhdGFzZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldERhdGFzZXQo
c3RkOjp1bmlxdWVfcHRyPERhdGFzZXRET01TdHJpbmdNYXA+IGRhdGFzZXQpIHsgbV9kYXRhc2V0
ID0gV1RGOjptb3ZlKGRhdGFzZXQpOyB9CkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY29tcHV0ZWRTdHlsZTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxEYXRhc2V0RE9NU3RyaW5nTWFwPiBtX2RhdGFzZXQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PEF0dHJpYnV0ZURPTVRva2VuTGlzdD4gbV9jbGFzc0xpc3Q7CisgICAgUmVmUHRyPEF0dHJpYnV0
ZURPTVRva2VuTGlzdD4gbV9jbGFzc0xpc3Q7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IG1fc2hh
ZG93Um9vdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1h
cDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwCmlu
ZGV4IDg4ZWM2ZjQ2NjRlZDM3NWU4NTA0MTk1NTlmMzUxZTcyZDcwYWYwNTguLjIxNjRkOGEzNDgz
YjAwZmYwNDlkNGJlMTNkNjhiNjlmZTNlMjk1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgQXR0cmlidXRlRE9N
VG9rZW5MaXN0OjpBdHRyaWJ1dGVET01Ub2tlbkxpc3QoRWxlbWVudCYgZWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTmEKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9hdHRyaWJ1dGVO
YW1lKGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgc2V0VmFsdWUobV9lbGVtZW50LmdldEF0dHJpYnV0
ZShtX2F0dHJpYnV0ZU5hbWUpKTsKKyAgICBzZXRWYWx1ZUludGVybmFsKG1fZWxlbWVudC5nZXRB
dHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lKSk7CiB9CiAKIHZvaWQgQXR0cmlidXRlRE9NVG9rZW5M
aXN0OjphdHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSkK
QEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBBdHRyaWJ1dGVET01Ub2tlbkxpc3Q6OmF0dHJpYnV0ZVZh
bHVlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVlKQogICAgIGlmIChtX2lzVXBk
YXRpbmdBdHRyaWJ1dGVWYWx1ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRE9NVG9rZW5MaXN0
OjpzZXRWYWx1ZShuZXdWYWx1ZSk7CisgICAgc2V0VmFsdWVJbnRlcm5hbChuZXdWYWx1ZSk7CiB9
CiAKIHZvaWQgQXR0cmlidXRlRE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5oCmluZGV4IDM0MTMw
ZmQwYzdiZGE2NTZkYTFjMDJhZGFmMGNhNGRkMWNkZWE1M2IuLmU3MzVlYTk2ZDYzOTM4ZWYxODc3
N2IxOTU5ZjZlYzVhZTFlNzRmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0
cmlidXRlRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVE
T01Ub2tlbkxpc3QuaApAQCAtMjYsMTkgKzI2LDIyIEBACiAjaWZuZGVmIEF0dHJpYnV0ZURPTVRv
a2VuTGlzdF9oCiAjZGVmaW5lIEF0dHJpYnV0ZURPTVRva2VuTGlzdF9oCiAKLSNpbmNsdWRlICJE
T01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdHRyaWJ1dGVE
T01Ub2tlbkxpc3QgZmluYWwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0IHsKK2NsYXNzIEF0dHJpYnV0
ZURPTVRva2VuTGlzdCBmaW5hbCA6IHB1YmxpYyBET01TZXR0YWJsZVRva2VuTGlzdCB7CiBwdWJs
aWM6Ci0gICAgQXR0cmlidXRlRE9NVG9rZW5MaXN0KEVsZW1lbnQmLCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKTsKKyAgICBzdGF0aWMgUmVmPEF0dHJpYnV0ZURPTVRva2VuTGlz
dD4gY3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdHRyaWJ1dGVET01U
b2tlbkxpc3QoZWxlbWVudCwgYXR0cmlidXRlTmFtZSkpOworICAgIH0KKwogICAgIHZvaWQgYXR0
cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZSB7IG1fZWxlbWVudC5yZWYoKTsgfQotICAgIHZp
cnR1YWwgdm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgbV9lbGVtZW50LmRlcmVmKCk7IH0KKyAgICBB
dHRyaWJ1dGVET01Ub2tlbkxpc3QoRWxlbWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUpOwogCiAgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gJm1fZWxlbWVudDsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBZnRlclRv
a2VuQ2hhbmdlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVNldHRhYmxlVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwCmluZGV4IDQ1ZDNiMzk1ZTVmMTJiNjk3ZTU5ZDNjOGQ5NmI4Y2FjNzgwMDFk
ZTUuLjhkMzJkYzUwNzBkMzYzZmRhYzcyZjFlMGI5YWVmNTkwNWI2YzFiYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCkBAIC0zOCw0ICszOCwxMCBA
QCB2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpkZXJlZigpCiAgICAgUmVmQ291bnRlZDxET01T
ZXR0YWJsZVRva2VuTGlzdD46OmRlcmVmKCk7CiB9CiAKK3ZvaWQgRE9NU2V0dGFibGVUb2tlbkxp
c3Q6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgc2V0VmFsdWVJbnRlcm5h
bCh2YWx1ZSk7CisgICAgdXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxl
VG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgK
aW5kZXggMTU5ZWI1MTc5YTUwZjg2NTFhZTMwMmFhOTgyN2YyZDEyZGRiZWRkZS4uM2Y2MDBmMTlm
M2MyMWMzMDZhMjFjNWZjOWNjZWQ5YjE2MjJmMjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NU2V0dGFibGVUb2tlbkxpc3QuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIERPTVNldHRhYmxlVG9r
ZW5MaXN0IGZpbmFsIDogcHVibGljIERPTVRva2VuTGlzdCwgcHVibGljIFJlZkNvdW50ZWQ8RE9N
U2V0dGFibGVUb2tlbkxpc3Q+IHsKK2NsYXNzIERPTVNldHRhYmxlVG9rZW5MaXN0IDogcHVibGlj
IERPTVRva2VuTGlzdCwgcHVibGljIFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPERP
TVNldHRhYmxlVG9rZW5MaXN0PiBjcmVhdGUoKQpAQCAtNDMsMTIgKzQzLDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NU2V0dGFibGVUb2tlbkxpc3QpOwogICAg
IH0KIAorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CisKICAgICAvLyBNYWtlIHB1
YmxpYy4KICAgICB1c2luZyBET01Ub2tlbkxpc3Q6OnZhbHVlOwotICAgIHVzaW5nIERPTVRva2Vu
TGlzdDo6c2V0VmFsdWU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92
ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIG92ZXJyaWRlIGZpbmFsOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwCmluZGV4IGM4NmUwZTI0NzYwZDZjMThhYmRlNGM0YzUyZmMwZDdjNTE0OTdlMzguLmFjYjQ1
Njc0YmMwYjY5NTk2MWM0MjhlNDJiZmY4MDY0NTlmNWU0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIERP
TVRva2VuTGlzdDo6dmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hlZFZhbHVlOwogfQog
Ci12b2lkIERPTVRva2VuTGlzdDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
RE9NVG9rZW5MaXN0OjpzZXRWYWx1ZUludGVybmFsKGNvbnN0IFdURjo6U3RyaW5nJiB2YWx1ZSkK
IHsKICAgICAvLyBDbGVhciB0b2tlbnMgYnV0IG5vdCBjYXBhY2l0eS4KICAgICBtX3Rva2Vucy5z
aHJpbmsoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAppbmRleCBkYzZkZGZlZWEzYWE3
YWRiM2M2ZWM4MzYwYWQ1YjA2ZDhjMGNhNTM3Li5hMjdkNDdiZGU5Mzc2OTc3YTdjZWM0NTliNWFk
MDEzMDFhMTMyZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIERPTVRva2VuTGlzdCgpID0gZGVmYXVsdDsK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5n
Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpIHsgbV9jYWNo
ZWRWYWx1ZSA9IG51bGxBdG9tOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAKaW5kZXggMDUzZWM0NWM3M2QxM2VjYWFmYmEzZTA5OWRjNTMzYTExM2I3NTdiZC4u
ZWY0MzlhZmJiNGI3N2U0YWRhZThkZDMzNWY4OTU4NzJlMWNkNzc5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMxNiw3ICszMTYsNyBAQCBib29sIEhU
TUxBbmNob3JFbGVtZW50OjpoYXNSZWwodWludDMyX3QgcmVsYXRpb24pIGNvbnN0CiBET01Ub2tl
bkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlz
dCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9r
ZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyKTsKKyAgICAgICAgbV9yZWxMaXN0ID0g
QXR0cmlidXRlRE9NVG9rZW5MaXN0OjpjcmVhdGUoKnRoaXMsIEhUTUxOYW1lczo6cmVsQXR0cik7
CiAgICAgcmV0dXJuICptX3JlbExpc3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaAppbmRleCBmZDlkOTY2OTBiZjNjODUyZDAyMGJkODIyNzIzYWIyMjFiY2UwMzk0
Li5jMWZjZGYyNDllYzJkZTE1OTJjNmI3N2JjYmRlNjZmMjUwNjgyY2M5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToK
ICAgICB1aW50MzJfdCBtX2xpbmtSZWxhdGlvbnMgOiAzMDsKICAgICBtdXRhYmxlIExpbmtIYXNo
IG1fY2FjaGVkVmlzaXRlZExpbmtIYXNoOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEF0dHJpYnV0
ZURPTVRva2VuTGlzdD4gbV9yZWxMaXN0OworICAgIFJlZlB0cjxBdHRyaWJ1dGVET01Ub2tlbkxp
c3Q+IG1fcmVsTGlzdDsKIH07CiAKIGlubGluZSBMaW5rSGFzaCBIVE1MQW5jaG9yRWxlbWVudDo6
dmlzaXRlZExpbmtIYXNoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50
LmNwcAppbmRleCBhYzE5ZmNhYjNmZjQ4YWI1OThmMzcyMjgxYzcwMjQ1MjYxMTg1MzA4Li43NTAz
NDZiOGZhZjJjMmIxYjU1ZmE2ZGYyZmFlZDkxYWJiODQyMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBIVE1MTGlua0Vs
ZW1lbnQ6OmRpc3BhdGNoUGVuZGluZ0V2ZW50KExpbmtFdmVudFNlbmRlciogZXZlbnRTZW5kZXIp
CiBET01Ub2tlbkxpc3QmIEhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFt
X3JlbExpc3QpIAotICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPEF0dHJpYnV0
ZURPTVRva2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6cmVsQXR0cik7CisgICAgICAgIG1fcmVs
TGlzdCA9IEF0dHJpYnV0ZURPTVRva2VuTGlzdDo6Y3JlYXRlKCp0aGlzLCBIVE1MTmFtZXM6OnJl
bEF0dHIpOwogICAgIHJldHVybiAqbV9yZWxMaXN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaAppbmRleCAwOTExMjVlZWEyMmE2ZTU1MDg5N2JmNmM0OTg2MzNkNGMxNDMz
ZDBmLi5iZTM0ODIxMDBmNzA2NDYxNzM3ODQyOTY4ZGRjOGY2ODAyYjIxODliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2YXRlOgog
CiAgICAgUGVuZGluZ1NoZWV0VHlwZSBtX3BlbmRpbmdTaGVldFR5cGU7CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0PiBtX3JlbExpc3Q7CisgICAgUmVmUHRyPEF0
dHJpYnV0ZURPTVRva2VuTGlzdD4gbV9yZWxMaXN0OwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcAppbmRleCA2N2IyNWU4YzQwNWQ4
ZmQ1NDdiMmZmMWJhMzRhNjJhZWJhNzc1NjQwLi5lYmY3NjZiMTE1OTk0MmRiMTBlOWZhMjQ5MTM1
Y2E5OTcwNjlhOWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNw
cApAQCAtMzcsMTIgKzM3LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKKwogaW5saW5lIEhUTUxPdXRwdXRFbGVtZW50OjpIVE1MT3V0cHV0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQs
IEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX2lzRGVmYXVsdFZhbHVlTW9kZSh0cnVlKQog
ICAgICwgbV9pc1NldFRleHRDb250ZW50SW5Qcm9ncmVzcyhmYWxzZSkKICAgICAsIG1fZGVmYXVs
dFZhbHVlKCIiKQotICAgICwgbV90b2tlbnMoRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgp
KQorICAgICwgbV90b2tlbnMoQXR0cmlidXRlRE9NVG9rZW5MaXN0OjpjcmVhdGUoKnRoaXMsIGZv
ckF0dHIpKQogewogfQogCkBAIC02NCwxNyArNjYsMTIgQEAgYm9vbCBIVE1MT3V0cHV0RWxlbWVu
dDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CiAKIHZvaWQgSFRNTE91dHB1dEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCiB7Ci0gICAgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpmb3JBdHRyKQotICAgICAgICBz
ZXRGb3IodmFsdWUpOworICAgIGlmIChuYW1lID09IGZvckF0dHIpCisgICAgICAgIG1fdG9rZW5z
LT5hdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIGVsc2UKICAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCi12b2lk
IEhUTUxPdXRwdXRFbGVtZW50OjpzZXRGb3IoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBt
X3Rva2Vucy0+c2V0VmFsdWUodmFsdWUpOwotfQotCiB2b2lkIEhUTUxPdXRwdXRFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIHsKICAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE91dHB1dEVsZW1lbnQuaAppbmRleCAwYzBmMTVlZDdkOGNlMGQyZWEzYjhjYmJiYzQz
NWY5ZWI1MDk0NmI0Li41NzZlM2Y3M2ZkMDg5M2NiZTM0OWYwYjdhN2JmY2QyYzhhNTIxZjIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCkBAIC0zMSw3ICszMSw3IEBA
CiAjaWZuZGVmIEhUTUxPdXRwdXRFbGVtZW50X2gKICNkZWZpbmUgSFRNTE91dHB1dEVsZW1lbnRf
aAogCi0jaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKyNpbmNsdWRlICJBdHRyaWJ1
dGVET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDcgKzQ0LDYgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGRlZmF1bHRWYWx1ZSgpIGNvbnN0
OwogICAgIHZvaWQgc2V0RGVmYXVsdFZhbHVlKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0
Rm9yKGNvbnN0IFN0cmluZyYpOwogICAgIERPTVNldHRhYmxlVG9rZW5MaXN0JiBodG1sRm9yKCkg
eyByZXR1cm4gbV90b2tlbnMuZ2V0KCk7IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29u
dGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpAQCAt
NjYsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0RlZmF1bHRWYWx1ZU1vZGU7CiAg
ICAgYm9vbCBtX2lzU2V0VGV4dENvbnRlbnRJblByb2dyZXNzOwogICAgIFN0cmluZyBtX2RlZmF1
bHRWYWx1ZTsKLSAgICBSZWY8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1fdG9rZW5zOworICAgIFJl
ZjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+IG1fdG9rZW5zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGwKaW5kZXggNGYxYzZjM2Zi
NThjMDgzNDUwYjUxMWNiZjljN2Y0NDQ2NjhjZmJiMy4uYmRjYjBiZDM0MzY4NGY2ZTczNGZhMmQ1
MjYwMTQ0OWU4MjUxMjQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0
cHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVu
dC5pZGwKQEAgLTIzLDkgKzIzLDcgQEAKICAqLwogCiBpbnRlcmZhY2UgSFRNTE91dHB1dEVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgc3VwcG9zZWQgdG8gYmU6
Ci0gICAgLy8gW1B1dEZvcndhcmRzPXZhbHVlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2V0dGFi
bGVUb2tlbkxpc3QgaHRtbEZvcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2V0dGFibGVU
b2tlbkxpc3QgaHRtbEZvcjsKKyAgICBbUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TZXR0YWJsZVRva2VuTGlzdCBodG1sRm9yOwogCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIG5hbWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggODQ4NTI4YTk0OWRkMzhhYWZmMTE1YTAzYjU5ZDE2MjJkY2Y1ZWRj
Mi4uNzkxMmMwZDc0OTYwNTc4MDFkZjUzMTZlYzUxMTY5NGQzMjJmYzVjYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDE4IEBACiAyMDE1LTA5LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
KyAgICAgICAgSFRNTE91dHB1dEVsZW1lbnQuaHRtbEZvciBzaG91bGQgYmUgc2V0dGFibGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTQxOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBleGlz
dGluZyBsYXlvdXQgdGVzdCBub3cgdGhhdCBIVE1MT3V0cHV0RWxlbWVudC5odG1sRm9yIGlzCisg
ICAgICAgIHNldHRhYmxlLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQv
ZG9tLXNldHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5q
czoKKworMjAxNS0wOS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgc2V2ZXJhbCBXM0MgaHRtbCB0ZXN0cyBvbiBpT1Mg
YWZ0ZXIgcjE5MDEwNiBhbmQgcjE5MDA4NS4KIAogICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11
bGF0b3IvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRw
dXRFbGVtZW50L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LWV4
cGVjdGVkLnR4dAppbmRleCBiM2IyOWY3YzkzYWI1OTcwNDAyNmM1ODQxYjZmMTFiNTk0MTM0ZTMx
Li45ZTdlYTkwZDM2NDcxOTdmZTY3OTQyMWFhZDgyYWJmY2QyNzZmZTNjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4t
bGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVs
ZW1lbnQvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsMTAg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiAtIFRlc3RzIGZyb20gaHR0cDovL3NpbW9u
Lmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0LwotUEFTUyBT
dHJpbmcoZWxlbWVudC5odG1sRm9yKSBpcyAieCIKK1BBU1MgZWxlbWVudC5odG1sRm9yLl9fcHJv
dG9fXyBpcyBET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUKK1BBU1MgU3RyaW5nKGVsZW1l
bnQuaHRtbEZvcikgaXMgInkgeiIKK1BBU1MgZWxlbWVudC5nZXRBdHRyaWJ1dGUoImZvciIpIGlz
ICJ5IHoiCitQQVNTIFN0cmluZyhlbGVtZW50Lmh0bWxGb3IpIGlzICJyIHMgdCIKIFBBU1MgZWxl
bWVudC5odG1sRm9yLmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5sZW5ndGggaXMg
MQogUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVuZ3RoIGlzIDEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUt
dG9rZW4tbGlzdC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L3Nj
cmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5qcwppbmRleCA0NGRjNjc4Mzg4MTA3
YzE0NjFhZGVhZTA3ZjBmNDQwMTc1NzQ4MmQ4Li5mZDBmOTg4YTg0ZGFhMmY0YzgwZTc5NTE5NjJl
ODJmNTlmNGY3NzliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0
RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QuanMKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0
YWJsZS10b2tlbi1saXN0LmpzCkBAIC0xNCwxMCArMTQsMTQgQEAgZnVuY3Rpb24gY3JlYXRlRWxl
bWVudCh0b2tlbkxpc3QpCiAKIGRlYnVnKCctIFRlc3RzIGZyb20gaHR0cDovL3NpbW9uLmh0bWw1
Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0LycpOwogCi0vLyBIVE1M
T3V0cHV0RWxlbWVudDo6aHRtbEZvciBpcyByZWFkb25seSBhdHRyaWJ1dGUuCisvLyBIVE1MT3V0
cHV0RWxlbWVudDo6aHRtbEZvciBzaG91bGQgYmUgc2V0dGFibGUuCiBjcmVhdGVFbGVtZW50KCd4
Jyk7Ci1lbGVtZW50Lmh0bWxGb3IgPSAneSc7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ1N0cmlu
ZyhlbGVtZW50Lmh0bWxGb3IpJywgJ3gnKTsKK3Nob3VsZEJlKCdlbGVtZW50Lmh0bWxGb3IuX19w
cm90b19fJywgJ0RPTVNldHRhYmxlVG9rZW5MaXN0LnByb3RvdHlwZScpOworZWxlbWVudC5odG1s
Rm9yID0gJ3kgIHonOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdTdHJpbmcoZWxlbWVudC5odG1s
Rm9yKScsICd5IHonKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5nZXRBdHRyaWJ1
dGUoImZvciIpJywgJ3kgeicpOworZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2ZvcicsICdyIHMgdCcp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdTdHJpbmcoZWxlbWVudC5odG1sRm9yKScsICdyIHMg
dCcpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGlu
Zy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDEuaHRtCiBjcmVhdGVFbGVtZW50KCcnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261790</attachid>
            <date>2015-09-22 18:46:47 -0700</date>
            <delta_ts>2015-09-23 10:42:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149418-20150922184629.patch</filename>
            <type>text/plain</type>
            <size>19688</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk1ZWUxODJiOWNkNDZl
MGJhMzc3NDEwYTdiNTk3ZmE2YTNlYzI5ZS4uNTExMGFhYTFmMzUxNTI1NjI4Mjk0N2IyMThiMmE4
NzYwYTQ1ZjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcxIEBACiAyMDE1LTA5LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgSFRNTE91dHB1dEVsZW1lbnQu
aHRtbEZvciBzaG91bGQgYmUgc2V0dGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEhUTUxPdXRwdXRFbGVtZW50Lmh0bWxGb3Igc2hvdWxkIGJlIHNl
dHRhYmxlIGFzIHBlciB0aGUgbGF0ZXN0IEhUTUwKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAg
ICAgICAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1s
I3RoZS1vdXRwdXQtZWxlbWVudAorCisgICAgICAgIEl0IGlzIHN1cHBvc2VkIHRvIGNhbGwgRE9N
U2V0dGFibGVUb2tlbkxpc3Quc2V0VmFsdWUoKSB3aXRoIHRoZSBpbnB1dAorICAgICAgICBTdHJp
bmcuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGlzIGJ5IGFkZGluZyBbUHV0Rm9yd2Fy
ZHM9dmFsdWVdCisgICAgICAgIElETCBleHRlbmRlZCBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGhp
cyBhbGlnbnMgb3VyIGJlaGF2aW9yIHdpdGggdGhlIHNwZWNpZmljYXRpb24sIEZpcmVmb3ggYW5k
IENocm9tZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0LgorCisgICAgICAgICogaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXR0cmlidXRlRE9NVG9rZW5MaXN0OjpBdHRyaWJ1dGVET01Ub2tl
bkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cmlidXRlRE9NVG9rZW5MaXN0OjphdHRyaWJ1
dGVWYWx1ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0Lmg6
CisgICAgICAgIC0gSGF2ZSBBdHRyaWJ1dGVET01Ub2tlbkxpc3Qgc3ViY2xhc3MgRE9NU2V0dGFi
bGVUb2tlbkxpc3QgaW5zdGVhZCBvZgorICAgICAgICBET01Ub2tlbkxpc3Qgc28gdGhhdCBpdCBj
YW4gYmUgdXNlZCBpbiBwbGFjZXMgd2hlcmUgdGhlIElETCBleHBlY3RzCisgICAgICAgIHVzIHRv
IHJldHVybiBhIERPTVNldHRhYmxlVG9rZW5MaXN0IChlLmcuIEhUTUxPdXRwdXRFbGVtZW50Lmh0
bWxGb3IpLgorICAgICAgICAtIE1hcmsgQXR0cmlidXRlRE9NVG9rZW5MaXN0IGFzIGZhc3QgYWxs
b2NhdGVkLgorCisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6c2V0VmFsdWUpOgorICAgICAgICAq
IGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaDoKKyAgICAgICAgLSBNb3ZlIHNldFZhbHVlKCkg
ZnJvbSBET01Ub2tlbkxpc3QgdG8gRE9NU2V0dGFibGVUb2tlbkxpc3QKKyAgICAgICAgICBhcyBp
dCBpcyBvbmx5IG5lZWRlZCBieSBET01TZXR0YWJsZVRva2VuTGlzdC4KKyAgICAgICAgLSBHZXQg
cmlkIG9mIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIGFzIGFsbCBjYWxsIHNpdGVzIGFyZSB1c2luZwor
ICAgICAgICAgIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBub3cuCisgICAgICAgIC0gU3RvcCBpbmhl
cml0aW5nIFJlZkNvdW50ZWQgYXMgQXR0cmlidXRlRE9NVG9rZW5MaXN0IGhhbmRsZXMgaXRzCisg
ICAgICAgICAgb3duIHJlZmNvdW50aW5nLgorCisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpzZXRWYWx1ZUludGVybmFsKToK
KyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOgorICAgICAgICBSZW5hbWUgc2V0VmFsdWUo
KSB0byBzZXRWYWx1ZUludGVybmFsKCkgYXMgdGhpcyB2ZXJzaW9uIGRvZXMgbm90CisgICAgICAg
IHVwZGF0ZSB0aGUgYXNzb2NpYXRlZCBhdHRyaWJ1dGUgdmFsdWUsIG9ubHkgdGhlIHRva2Vucy4K
KworICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxMaW5rRWxlbWVudC5oOgorICAgICAgICAtIEhhdmUgSFRNTExpbmtFbGVtZW50LnNpemVzIHVz
ZSBhbiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgaW5zdGVhZCBvZgorICAgICAgICAgIGEgRE9NU2V0
dGFibGVUb2tlbkxpc3QgYXMgdGhlcmUgaXMgYW4gYXNzb2NpYXRlZCBhdHRyaWJ1dGUuIFRoZQor
ICAgICAgICAgIHByZXZpb3VzIGNvZGUgaGFkIGEgYnVnIGhhcyBzZXR0aW5nIEhUTUxMaW5rRWxl
bWVudC5zaXplcyB3b3VsZCBub3QKKyAgICAgICAgICB1cGRhdGUgdGhlIGFzc29jaWF0ZWQgJ3Np
emVzJyBhdHRyaWJ1dGUuIFN3aXRjaGluZyB0byB1c2luZworICAgICAgICAgIEF0dHJpYnV0ZURP
TVRva2VuTGlzdCBmaXhlcyB0aGlzIGFuZCBhIG5ldyBsYXlvdXQgdGVzdCBoYXMgYmVlbiBhZGRl
ZAorICAgICAgICAgIHRvIGNvdmVyIHRoaXMuCisgICAgICAgIC0gQ3JlYXRlIHRoZSBBdHRyaWJ1
dGVET01Ub2tlbkxpc3QgbGF6aWx5IHRvIGF2b2lkIHVwZGF0aW5nIGl0IGV2ZXJ5CisgICAgICAg
ICAgdGltZSB0aGUgc2l6ZXMgYXR0cmlidXRlIGNoYW5nZXMgdW50aWwgaXQgaXMgYWN0dWFsbHkg
YWNjZXNzZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50Lmg6CisgICAgICAgIC0gSGF2ZSBIVE1MTGlua0Vs
ZW1lbnQuaHRtbEZvciB1c2UgYW4gQXR0cmlidXRlRE9NVG9rZW5MaXN0IGluc3RlYWQgb2YKKyAg
ICAgICAgICBhIERPTVNldHRhYmxlVG9rZW5MaXN0IGFzIHRoZXJlIGlzIGFuIGFzc29jaWF0ZWQg
YXR0cmlidXRlLgorICAgICAgICAtIENyZWF0ZSB0aGUgQXR0cmlidXRlRE9NVG9rZW5MaXN0IGxh
emlseSB0byBhdm9pZCB1cGRhdGluZyBpdCBldmVyeQorICAgICAgICAgIHRpbWUgdGhlIHNpemVz
IGF0dHJpYnV0ZSBjaGFuZ2VzIHVudGlsIGl0IGlzIGFjdHVhbGx5IGFjY2Vzc2VkLgorCisgICAg
ICAgICogaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGw6CisgICAgICAgIEFkZCBbUHV0Rm9yd2Fy
ZHM9dmFsdWVdIG9uIHRoZSBodG1sRm9yIGF0dHJpYnV0ZSwgYXMgcGVyIHRoZQorICAgICAgICBI
VE1MIHNwZWNpZmljYXRpb24uCisKKzIwMTUtMDktMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKwogICAgICAgICBEcm9wIHVubmVjZXNzYXJ5IGFuY2VzdG9yIHRyYXZlcnNhbCBp
biBSYW5nZTo6c2VsZWN0Tm9kZSgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDk0ODIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9B
dHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVE
T01Ub2tlbkxpc3QuY3BwCmluZGV4IDg4ZWM2ZjQ2NjRlZDM3NWU4NTA0MTk1NTlmMzUxZTcyZDcw
YWYwNTguLjIxNjRkOGEzNDgzYjAwZmYwNDlkNGJlMTNkNjhiNjlmZTNlMjk1NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKQEAgLTM0LDcgKzM0
LDcgQEAgQXR0cmlidXRlRE9NVG9rZW5MaXN0OjpBdHRyaWJ1dGVET01Ub2tlbkxpc3QoRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmEKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQog
ICAgICwgbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpCiB7Ci0gICAgc2V0VmFsdWUobV9l
bGVtZW50LmdldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUpKTsKKyAgICBzZXRWYWx1ZUludGVy
bmFsKG1fZWxlbWVudC5nZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lKSk7CiB9CiAKIHZvaWQg
QXR0cmlidXRlRE9NVG9rZW5MaXN0OjphdHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBuZXdWYWx1ZSkKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBBdHRyaWJ1dGVET01Ub2tl
bkxpc3Q6OmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld1ZhbHVl
KQogICAgIGlmIChtX2lzVXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZShuZXdWYWx1ZSk7CisgICAgc2V0VmFsdWVJbnRl
cm5hbChuZXdWYWx1ZSk7CiB9CiAKIHZvaWQgQXR0cmlidXRlRE9NVG9rZW5MaXN0Ojp1cGRhdGVB
ZnRlclRva2VuQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0cmli
dXRlRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2Vu
TGlzdC5oCmluZGV4IDM0MTMwZmQwYzdiZGE2NTZkYTFjMDJhZGFmMGNhNGRkMWNkZWE1M2IuLmY2
NTNiZmUzOTM4ODVhYTQwODJlMmEwN2YwMDIwMDIyNjY2ZTBkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaApAQCAtMjYsMTIgKzI2LDEzIEBACiAjaWZu
ZGVmIEF0dHJpYnV0ZURPTVRva2VuTGlzdF9oCiAjZGVmaW5lIEF0dHJpYnV0ZURPTVRva2VuTGlz
dF9oCiAKLSNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJET01TZXR0YWJsZVRv
a2VuTGlzdC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgZmluYWwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0
IHsKK2NsYXNzIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBmaW5hbCA6IHB1YmxpYyBET01TZXR0YWJs
ZVRva2VuTGlzdCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
QXR0cmlidXRlRE9NVG9rZW5MaXN0KEVsZW1lbnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lKTsKICAgICB2b2lkIGF0dHJpYnV0ZVZhbHVlQ2hhbmdlZChjb25zdCBBdG9taWNT
dHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tl
bkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAK
aW5kZXggNDVkM2IzOTVlNWYxMmI2OTdlNTlkM2M4ZDk2YjhjYWM3ODAwMWRlNS4uM2VhYzE1NDY0
YmUyZTlkNGRkZjcyZDgwMGQ5NjY4YWM3MGY0ZmNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKQEAgLTI4LDE0ICsyOCwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJlZigpCit2b2lkIERP
TVNldHRhYmxlVG9rZW5MaXN0OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAg
IFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+OjpyZWYoKTsKLX0KLQotdm9pZCBET01T
ZXR0YWJsZVRva2VuTGlzdDo6ZGVyZWYoKQotewotICAgIFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVU
b2tlbkxpc3Q+OjpkZXJlZigpOworICAgIHNldFZhbHVlSW50ZXJuYWwodmFsdWUpOworICAgIHVw
ZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCmluZGV4IDE1OWViNTE3OWE1
MGY4NjUxYWUzMDJhYTk4MjdmMmQxMmRkYmVkZGUuLjA3N2FiMWUzNzE1NGQyZDEwNzE1MWNlN2Mw
ODE4YWM5ZTU0NTNlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFi
bGVUb2tlbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5M
aXN0LmgKQEAgLTI4LDI0ICsyOCwxOSBAQAogCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAj
aW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotY2xhc3MgRE9NU2V0dGFibGVUb2tl
bkxpc3QgZmluYWwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0LCBwdWJsaWMgUmVmQ291bnRlZDxET01T
ZXR0YWJsZVRva2VuTGlzdD4geworY2xhc3MgRE9NU2V0dGFibGVUb2tlbkxpc3QgOiBwdWJsaWMg
RE9NVG9rZW5MaXN0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPERPTVNldHRhYmxlVG9rZW5MaXN0PiBjcmVhdGUoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NU2V0dGFibGVUb2tlbkxpc3QpOwotICAgIH0KKyAg
ICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgLy8gTWFrZSBwdWJsaWMuCiAg
ICAgdXNpbmcgRE9NVG9rZW5MaXN0Ojp2YWx1ZTsKLSAgICB1c2luZyBET01Ub2tlbkxpc3Q6OnNl
dFZhbHVlOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkZXJlZigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
T01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmlu
ZGV4IGM4NmUwZTI0NzYwZDZjMThhYmRlNGM0YzUyZmMwZDdjNTE0OTdlMzguLmFjYjQ1Njc0YmMw
YjY5NTk2MWM0MjhlNDJiZmY4MDY0NTlmNWU0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIERPTVRva2Vu
TGlzdDo6dmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hlZFZhbHVlOwogfQogCi12b2lk
IERPTVRva2VuTGlzdDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgRE9NVG9r
ZW5MaXN0OjpzZXRWYWx1ZUludGVybmFsKGNvbnN0IFdURjo6U3RyaW5nJiB2YWx1ZSkKIHsKICAg
ICAvLyBDbGVhciB0b2tlbnMgYnV0IG5vdCBjYXBhY2l0eS4KICAgICBtX3Rva2Vucy5zaHJpbmso
MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAppbmRleCBkYzZkZGZlZWEzYWE3YWRiM2M2
ZWM4MzYwYWQ1YjA2ZDhjMGNhNTM3Li5hMjdkNDdiZGU5Mzc2OTc3YTdjZWM0NTliNWFkMDEzMDFh
MTMyZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKQEAgLTYxLDcgKzYxLDcgQEAg
cHVibGljOgogcHJvdGVjdGVkOgogICAgIERPTVRva2VuTGlzdCgpID0gZGVmYXVsdDsKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpIHsgbV9jYWNoZWRWYWx1
ZSA9IG51bGxBdG9tOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApp
bmRleCBhYzE5ZmNhYjNmZjQ4YWI1OThmMzcyMjgxYzcwMjQ1MjYxMTg1MzA4Li4zYWJiMmNlNWI0
MDNlMGRiMDVlNjFkOTFiYTIyNTUwZTAxNjgwMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuY3BwCkBAIC02OSw3ICs2OSw2IEBAIHN0YXRpYyBMaW5rRXZlbnRTZW5kZXIm
IGxpbmtMb2FkRXZlbnRTZW5kZXIoKQogaW5saW5lIEhUTUxMaW5rRWxlbWVudDo6SFRNTExpbmtF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKICAgICAsIG1fbGlua0xvYWRlcigqdGhpcykKLSAgICAsIG1fc2l6ZXMoRE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmNyZWF0ZSgpKQogICAgICwgbV9kaXNhYmxlZFN0YXRlKFVuc2V0KQogICAgICwg
bV9sb2FkaW5nKGZhbHNlKQogICAgICwgbV9jcmVhdGVkQnlQYXJzZXIoY3JlYXRlZEJ5UGFyc2Vy
KQpAQCAtMTU5LDcgKzE1OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgaWYgKG5hbWUgPT0gc2l6ZXNBdHRyKSB7Ci0gICAgICAgIG1fc2l6
ZXMtPnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgaWYgKG1fc2l6ZXMpCisgICAgICAgICAgICBt
X3NpemVzLT5hdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgICAgICBwcm9jZXNzKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNjcsNiArMzY3LDEzIEBAIGJvb2wgSFRNTExp
bmtFbGVtZW50OjpzdHlsZVNoZWV0SXNMb2FkaW5nKCkgY29uc3QKICAgICByZXR1cm4gbV9zaGVl
dC0+Y29udGVudHMoKS5pc0xvYWRpbmcoKTsKIH0KIAorRE9NU2V0dGFibGVUb2tlbkxpc3QmIEhU
TUxMaW5rRWxlbWVudDo6c2l6ZXMoKQoreworICAgIGlmICghbV9zaXplcykKKyAgICAgICAgbV9z
aXplcyA9IHN0ZDo6bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywgc2l6
ZXNBdHRyKTsKKyAgICByZXR1cm4gKm1fc2l6ZXM7Cit9CisKIHZvaWQgSFRNTExpbmtFbGVtZW50
OjpsaW5rTG9hZGVkKCkKIHsKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKSk7CkBAIC00NzUsOSArNDgyLDkgQEAgSWNv
blR5cGUgSFRNTExpbmtFbGVtZW50OjppY29uVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVs
QXR0cmlidXRlLmljb25UeXBlOwogfQogCi1TdHJpbmcgSFRNTExpbmtFbGVtZW50OjppY29uU2l6
ZXMoKSBjb25zdAorU3RyaW5nIEhUTUxMaW5rRWxlbWVudDo6aWNvblNpemVzKCkKIHsKLSAgICBy
ZXR1cm4gbV9zaXplcy0+dG9TdHJpbmcoKTsKKyAgICByZXR1cm4gc2l6ZXMoKS50b1N0cmluZygp
OwogfQogCiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6YWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxz
KExpc3RIYXNoU2V0PFVSTD4mIHVybHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuaAppbmRleCAwOTExMjVlZWEyMmE2ZTU1MDg5N2JmNmM0OTg2MzNkNGMxNDMzZDBmLi4z
ZmE4MTY0MWIyMmNjMzExMzRlNzNlY2FmM2Q3ZGJlNTgzOTA4ZGFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTI0LDEwICsyNCwxMCBAQAogI2lmbmRlZiBIVE1MTGlu
a0VsZW1lbnRfaAogI2RlZmluZSBIVE1MTGlua0VsZW1lbnRfaAogCisjaW5jbHVkZSAiQXR0cmli
dXRlRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUg
IkNhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRs
ZS5oIgotI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiSFRNTEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJMaW5rTG9hZGVyLmgiCiAjaW5jbHVkZSAiTGlua0xvYWRlckNs
aWVudC5oIgpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgSWNvblR5cGUgaWNvblR5cGUo
KSBjb25zdDsKIAogICAgIC8vIHRoZSBpY29uIHNpemUgc3RyaW5nIGFzIHBhcnNlZCBmcm9tIHRo
ZSBIVE1MIGF0dHJpYnV0ZQotICAgIFN0cmluZyBpY29uU2l6ZXMoKSBjb25zdDsKKyAgICBTdHJp
bmcgaWNvblNpemVzKCk7CiAKICAgICBDU1NTdHlsZVNoZWV0KiBzaGVldCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2hlZXQuZ2V0KCk7IH0KIApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGlzRGlzYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVkU3RhdGUgPT0gRGlzYWJs
ZWQ7IH0KICAgICBib29sIGlzRW5hYmxlZFZpYVNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlz
YWJsZWRTdGF0ZSA9PSBFbmFibGVkVmlhU2NyaXB0OyB9Ci0gICAgRE9NU2V0dGFibGVUb2tlbkxp
c3QmIHNpemVzKCkgeyByZXR1cm4gbV9zaXplcy5nZXQoKTsgfQorICAgIERPTVNldHRhYmxlVG9r
ZW5MaXN0JiBzaXplcygpOwogCiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdFdmVudChMaW5rRXZl
bnRTZW5kZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBlbmRpbmdMb2FkRXZlbnRzKCk7
CkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX3R5cGU7CiAgICAg
U3RyaW5nIG1fbWVkaWE7Ci0gICAgUmVmPERPTVNldHRhYmxlVG9rZW5MaXN0PiBtX3NpemVzOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+IG1fc2l6ZXM7CiAgICAg
RGlzYWJsZWRTdGF0ZSBtX2Rpc2FibGVkU3RhdGU7CiAgICAgTGlua1JlbEF0dHJpYnV0ZSBtX3Jl
bEF0dHJpYnV0ZTsKICAgICBib29sIG1fbG9hZGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3V0cHV0RWxlbWVudC5jcHAKaW5kZXggNjdiMjVlOGM0MDVkOGZkNTQ3YjJmZjFiYTM0YTYyYWVi
YTc3NTY0MC4uMmY2YmE3YjMzZWVhZGMxZTNkMGI1YWEyODg2YTBlOTE0M2Q0YmIxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKQEAgLTM3LDEyICszNywxMyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisK
IGlubGluZSBIVE1MT3V0cHV0RWxlbWVudDo6SFRNTE91dHB1dEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZv
cm0pCiAgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3Jt
KQogICAgICwgbV9pc0RlZmF1bHRWYWx1ZU1vZGUodHJ1ZSkKICAgICAsIG1faXNTZXRUZXh0Q29u
dGVudEluUHJvZ3Jlc3MoZmFsc2UpCiAgICAgLCBtX2RlZmF1bHRWYWx1ZSgiIikKLSAgICAsIG1f
dG9rZW5zKERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKSkKIHsKIH0KIApAQCAtNjQsMTcg
KzY1LDEzIEBAIGJvb2wgSFRNTE91dHB1dEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAog
CiB2b2lkIEhUTUxPdXRwdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewotICAgIGlmIChuYW1lID09
IEhUTUxOYW1lczo6Zm9yQXR0cikKLSAgICAgICAgc2V0Rm9yKHZhbHVlKTsKLSAgICBlbHNlCisg
ICAgaWYgKG5hbWUgPT0gZm9yQXR0cikgeworICAgICAgICBpZiAobV90b2tlbnMpCisgICAgICAg
ICAgICBtX3Rva2Vucy0+YXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKKyAgICB9IGVsc2UK
ICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogfQogCi12b2lkIEhUTUxPdXRwdXRFbGVtZW50OjpzZXRGb3IoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKLXsKLSAgICBtX3Rva2Vucy0+c2V0VmFsdWUodmFsdWUpOwotfQotCiB2b2lkIEhUTUxP
dXRwdXRFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkK
IHsKICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsK
QEAgLTEyOSw2ICsxMjYsMTMgQEAgdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6c2V0RGVmYXVsdFZh
bHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgICAgIHNldFRleHRDb250ZW50SW50ZXJuYWwo
dmFsdWUpOwogfQogCitET01TZXR0YWJsZVRva2VuTGlzdCYgSFRNTE91dHB1dEVsZW1lbnQ6Omh0
bWxGb3IoKQoreworICAgIGlmICghbV90b2tlbnMpCisgICAgICAgIG1fdG9rZW5zID0gc3RkOjpt
YWtlX3VuaXF1ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0aGlzLCBmb3JBdHRyKTsKKyAgICBy
ZXR1cm4gKm1fdG9rZW5zOworfQorCiB2b2lkIEhUTUxPdXRwdXRFbGVtZW50OjpzZXRUZXh0Q29u
dGVudEludGVybmFsKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgQVNTRVJUKCFtX2lzU2V0
VGV4dENvbnRlbnRJblByb2dyZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1l
bnQuaAppbmRleCAwYzBmMTVlZDdkOGNlMGQyZWEzYjhjYmJiYzQzNWY5ZWI1MDk0NmI0Li40OTIy
NTY2NmRkNzdiMzcyZWVlNDk5NjA4M2YxMDc4MmE5NDlmYjgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3V0cHV0RWxlbWVudC5oCkBAIC0zMSw3ICszMSw3IEBACiAjaWZuZGVmIEhUTUxPdXRw
dXRFbGVtZW50X2gKICNkZWZpbmUgSFRNTE91dHB1dEVsZW1lbnRfaAogCi0jaW5jbHVkZSAiRE9N
U2V0dGFibGVUb2tlbkxpc3QuaCIKKyNpbmNsdWRlICJBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIK
ICNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQ0LDggKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3Ry
aW5nJik7CiAgICAgU3RyaW5nIGRlZmF1bHRWYWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVm
YXVsdFZhbHVlKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0Rm9yKGNvbnN0IFN0cmluZyYp
OwotICAgIERPTVNldHRhYmxlVG9rZW5MaXN0JiBodG1sRm9yKCkgeyByZXR1cm4gbV90b2tlbnMu
Z2V0KCk7IH0KKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCYgaHRtbEZvcigpOwogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiAKQEAgLTY2LDcgKzY1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aXNEZWZhdWx0VmFsdWVNb2RlOwogICAgIGJvb2wgbV9pc1NldFRleHRDb250ZW50SW5Qcm9ncmVz
czsKICAgICBTdHJpbmcgbV9kZWZhdWx0VmFsdWU7Ci0gICAgUmVmPERPTVNldHRhYmxlVG9rZW5M
aXN0PiBtX3Rva2VuczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0
PiBtX3Rva2VuczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE91dHB1dEVsZW1lbnQuaWRsCmluZGV4IDRmMWM2YzNmYjU4YzA4MzQ1MGI1MTFjYmY5YzdmNDQ0
NjY4Y2ZiYjMuLmJkY2IwYmQzNDM2ODRmNmU3MzRmYTJkNTI2MDE0NDllODI1MTI0M2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaWRsCkBAIC0yMyw5ICsyMyw3IEBA
CiAgKi8KIAogaW50ZXJmYWNlIEhUTUxPdXRwdXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHN1cHBvc2VkIHRvIGJlOgotICAgIC8vIFtQdXRGb3J3YXJkcz12
YWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVNldHRhYmxlVG9rZW5MaXN0IGh0bWxGb3I7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVNldHRhYmxlVG9rZW5MaXN0IGh0bWxGb3I7CisgICAg
W1B1dEZvcndhcmRzPXZhbHVlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2V0dGFibGVUb2tlbkxp
c3QgaHRtbEZvcjsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9y
bTsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDljYTQx
ZjY0MmE5ZTYwMWNiMWY0Yjg4Y2QzZDEwNGViYjhiZTkyYmQuLjFjODU5NjNjZDk4ODk2MmIyOWY3
NTM1ZjI1Nzc1MDcyZTlhMGU0ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wOS0yMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUxPdXRwdXRFbGVt
ZW50Lmh0bWxGb3Igc2hvdWxkIGJlIHNldHRhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk0MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zaXplcy1z
ZXR0ZXIuaHRtbDogQWRkZWQKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc2l6
ZXMtc2V0dGVyLWV4cGVjdGVkLnR4dDogQWRkZWQKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IHRv
IG1ha2Ugc3VyZSB0aGF0IHNldHRpbmcgSFRNTExpbmtFbGVtZW50LnNpemVzIGFjdHVhbGx5Cisg
ICAgICAgIHVwZGF0ZXMgdGhlICdzaXplcycgYXNzb2NpYXRlZCBhdHRyaWJ1dGUuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvc2NyaXB0
LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LmpzOgorICAgICAgICBVcGRhdGUgZXhpc3Rp
bmcgbGF5b3V0IHRlc3Qgbm93IHRoYXQgSFRNTE91dHB1dEVsZW1lbnQuaHRtbEZvciBpcworICAg
ICAgICBzZXR0YWJsZS4KKwogMjAxNS0wOS0yMiAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRVM2XSBJbXByb3ZlIFR5cGUgUHJvZmls
ZXIgU3VwcG9ydCBmb3IgQXJyb3cgRnVuY3Rpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc2l6ZXMtc2V0dGVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9zaXplcy1zZXR0ZXItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhlOWMzOGRkMzg4MWY2MTBjODI4ZjQ2ZjM5ZTlmMTMzMjFjMTVhY2MKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc2l6
ZXMtc2V0dGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IHRoZSBI
VE1MTGlua0VsZW1lbnQuc2l6ZXMgc2V0dGVyIHVwZGF0ZXMgdGhlIGFzc29jaWF0ZWQgc2l6ZXMg
YXR0cmlidXRlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxpbmsuc2l6
ZXMuX19wcm90b19fIGlzIERPTVNldHRhYmxlVG9rZW5MaXN0LnByb3RvdHlwZQorbGluay5zaXpl
cyA9ICcxMHgxMCAgMjB4MjAnCitQQVNTIFN0cmluZyhsaW5rLnNpemVzKSBpcyAiMTB4MTAgMjB4
MjAiCitQQVNTIGxpbmsuZ2V0QXR0cmlidXRlKCdzaXplcycpIGlzICIxMHgxMCAyMHgyMCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc2l6ZXMtc2V0dGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc2l6ZXMtc2V0dGVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGQ0YjM1ZjljMTE1NmZiOGFjMzgxOGI1MzRjNWRhZDdhMjJjNTJhNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9z
aXplcy1zZXR0ZXIuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0aGUgSFRNTExp
bmtFbGVtZW50LnNpemVzIHNldHRlciB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIHNpemVzIGF0dHJp
YnV0ZSIpOworCit2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsKK3No
b3VsZEJlKCJsaW5rLnNpemVzLl9fcHJvdG9fXyIsICJET01TZXR0YWJsZVRva2VuTGlzdC5wcm90
b3R5cGUiKTsKK2V2YWxBbmRMb2coImxpbmsuc2l6ZXMgPSAnMTB4MTAgIDIweDIwJyIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcobGluay5zaXplcykiLCAiMTB4MTAgMjB4MjAiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGluay5nZXRBdHRyaWJ1dGUoJ3NpemVzJykiLCAiMTB4
MTAgMjB4MjAiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRva2Vu
LWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1l
bnQvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0CmluZGV4IGIzYjI5ZjdjOTNh
YjU5NzA0MDI2YzU4NDFiNmYxMWI1OTQxMzRlMzEuLjllN2VhOTBkMzY0NzE5N2ZlNjc5NDIxYWFk
ODJhYmZjZDI3NmZlM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRw
dXRFbGVtZW50L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4tbGlz
dC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiAKIC0gVGVzdHMgZnJvbSBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVm
bGVjdGluZy9ET01Ub2tlbkxpc3QvCi1QQVNTIFN0cmluZyhlbGVtZW50Lmh0bWxGb3IpIGlzICJ4
IgorUEFTUyBlbGVtZW50Lmh0bWxGb3IuX19wcm90b19fIGlzIERPTVNldHRhYmxlVG9rZW5MaXN0
LnByb3RvdHlwZQorUEFTUyBTdHJpbmcoZWxlbWVudC5odG1sRm9yKSBpcyAieSB6IgorUEFTUyBl
bGVtZW50LmdldEF0dHJpYnV0ZSgiZm9yIikgaXMgInkgeiIKK1BBU1MgU3RyaW5nKGVsZW1lbnQu
aHRtbEZvcikgaXMgInIgcyB0IgogUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVuZ3RoIGlzIDAKIFBB
U1MgZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAxCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5sZW5n
dGggaXMgMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1l
bnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tl
bi1saXN0LmpzCmluZGV4IDQ0ZGM2NzgzODgxMDdjMTQ2MWFkZWFlMDdmMGY0NDAxNzU3NDgyZDgu
LmZkMGY5ODhhODRkYWEyZjRjODBlNzk1MTk2MmU4MmY1OWY0Zjc3OWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0
dGFibGUtdG9rZW4tbGlzdC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0
RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QuanMKQEAgLTE0LDEw
ICsxNCwxNCBAQCBmdW5jdGlvbiBjcmVhdGVFbGVtZW50KHRva2VuTGlzdCkKIAogZGVidWcoJy0g
VGVzdHMgZnJvbSBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGlu
Zy9ET01Ub2tlbkxpc3QvJyk7CiAKLS8vIEhUTUxPdXRwdXRFbGVtZW50OjpodG1sRm9yIGlzIHJl
YWRvbmx5IGF0dHJpYnV0ZS4KKy8vIEhUTUxPdXRwdXRFbGVtZW50OjpodG1sRm9yIHNob3VsZCBi
ZSBzZXR0YWJsZS4KIGNyZWF0ZUVsZW1lbnQoJ3gnKTsKLWVsZW1lbnQuaHRtbEZvciA9ICd5JzsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygnU3RyaW5nKGVsZW1lbnQuaHRtbEZvciknLCAneCcpOwor
c2hvdWxkQmUoJ2VsZW1lbnQuaHRtbEZvci5fX3Byb3RvX18nLCAnRE9NU2V0dGFibGVUb2tlbkxp
c3QucHJvdG90eXBlJyk7CitlbGVtZW50Lmh0bWxGb3IgPSAneSAgeic7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ1N0cmluZyhlbGVtZW50Lmh0bWxGb3IpJywgJ3kgeicpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdlbGVtZW50LmdldEF0dHJpYnV0ZSgiZm9yIiknLCAneSB6Jyk7CitlbGVtZW50
LnNldEF0dHJpYnV0ZSgnZm9yJywgJ3IgcyB0Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ1N0
cmluZyhlbGVtZW50Lmh0bWxGb3IpJywgJ3IgcyB0Jyk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5odG1s
NS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAwMS5o
dG0KIGNyZWF0ZUVsZW1lbnQoJycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261829</attachid>
            <date>2015-09-23 10:42:55 -0700</date>
            <delta_ts>2015-09-23 13:40:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149418-20150923104236.patch</filename>
            <type>text/plain</type>
            <size>19743</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJmNTIzMGVlNmU4MTdi
NGQyZDM3ODk2NmY1ZDdjNTkyYjNiNGU2OS4uMzk1ZTZiMzBmNTg4YjFlMzQzYzVmYzdjYmI3ODky
MWEzODAxNTFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE1LTA5LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgSFRNTE91dHB1dEVsZW1lbnQu
aHRtbEZvciBzaG91bGQgYmUgc2V0dGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0OTQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEhUTUxPdXRwdXRFbGVtZW50Lmh0bWxGb3Igc2hvdWxkIGJlIHNl
dHRhYmxlIGFzIHBlciB0aGUgbGF0ZXN0IEhUTUwKKyAgICAgICAgc3BlY2lmaWNhdGlvbjoKKyAg
ICAgICAgLSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1s
I3RoZS1vdXRwdXQtZWxlbWVudAorCisgICAgICAgIEl0IGlzIHN1cHBvc2VkIHRvIGNhbGwgRE9N
U2V0dGFibGVUb2tlbkxpc3Quc2V0VmFsdWUoKSB3aXRoIHRoZSBpbnB1dAorICAgICAgICBTdHJp
bmcuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGlzIGJ5IGFkZGluZyBbUHV0Rm9yd2Fy
ZHM9dmFsdWVdCisgICAgICAgIElETCBleHRlbmRlZCBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGhp
cyBhbGlnbnMgb3VyIGJlaGF2aW9yIHdpdGggdGhlIHNwZWNpZmljYXRpb24sIEZpcmVmb3ggYW5k
IENocm9tZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0LgorCisgICAgICAgICogaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXR0cmlidXRlRE9NVG9rZW5MaXN0OjpBdHRyaWJ1dGVET01Ub2tl
bkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cmlidXRlRE9NVG9rZW5MaXN0OjphdHRyaWJ1
dGVWYWx1ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0Lmg6
CisgICAgICAgIC0gSGF2ZSBBdHRyaWJ1dGVET01Ub2tlbkxpc3Qgc3ViY2xhc3MgRE9NU2V0dGFi
bGVUb2tlbkxpc3QgaW5zdGVhZCBvZgorICAgICAgICBET01Ub2tlbkxpc3Qgc28gdGhhdCBpdCBj
YW4gYmUgdXNlZCBpbiBwbGFjZXMgd2hlcmUgdGhlIElETCBleHBlY3RzCisgICAgICAgIHVzIHRv
IHJldHVybiBhIERPTVNldHRhYmxlVG9rZW5MaXN0IChlLmcuIEhUTUxPdXRwdXRFbGVtZW50Lmh0
bWxGb3IpLgorICAgICAgICAtIE1hcmsgQXR0cmlidXRlRE9NVG9rZW5MaXN0IGFzIGZhc3QgYWxs
b2NhdGVkLgorCisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6c2V0VmFsdWUpOgorICAgICAgICAq
IGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaDoKKyAgICAgICAgLSBNb3ZlIHNldFZhbHVlKCkg
ZnJvbSBET01Ub2tlbkxpc3QgdG8gRE9NU2V0dGFibGVUb2tlbkxpc3QKKyAgICAgICAgICBhcyBp
dCBpcyBvbmx5IG5lZWRlZCBieSBET01TZXR0YWJsZVRva2VuTGlzdC4KKyAgICAgICAgLSBHZXQg
cmlkIG9mIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIGFzIGFsbCBjYWxsIHNpdGVzIGFyZSB1c2luZwor
ICAgICAgICAgIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBub3cuCisgICAgICAgIC0gU3RvcCBpbmhl
cml0aW5nIFJlZkNvdW50ZWQgYXMgQXR0cmlidXRlRE9NVG9rZW5MaXN0IGhhbmRsZXMgaXRzCisg
ICAgICAgICAgb3duIHJlZmNvdW50aW5nLgorCisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpzZXRWYWx1ZUludGVybmFsKToK
KyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOgorICAgICAgICBSZW5hbWUgc2V0VmFsdWUo
KSB0byBzZXRWYWx1ZUludGVybmFsKCkgYXMgdGhpcyB2ZXJzaW9uIGRvZXMgbm90CisgICAgICAg
IHVwZGF0ZSB0aGUgYXNzb2NpYXRlZCBhdHRyaWJ1dGUgdmFsdWUsIG9ubHkgdGhlIHRva2Vucy4K
KworICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hU
TUxMaW5rRWxlbWVudC5oOgorICAgICAgICAtIEhhdmUgSFRNTExpbmtFbGVtZW50LnNpemVzIHVz
ZSBhbiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgaW5zdGVhZCBvZgorICAgICAgICAgIGEgRE9NU2V0
dGFibGVUb2tlbkxpc3QgYXMgdGhlcmUgaXMgYW4gYXNzb2NpYXRlZCBhdHRyaWJ1dGUuIFRoZQor
ICAgICAgICAgIHByZXZpb3VzIGNvZGUgaGFkIGEgYnVnIGhhcyBzZXR0aW5nIEhUTUxMaW5rRWxl
bWVudC5zaXplcyB3b3VsZCBub3QKKyAgICAgICAgICB1cGRhdGUgdGhlIGFzc29jaWF0ZWQgJ3Np
emVzJyBhdHRyaWJ1dGUuIFN3aXRjaGluZyB0byB1c2luZworICAgICAgICAgIEF0dHJpYnV0ZURP
TVRva2VuTGlzdCBmaXhlcyB0aGlzIGFuZCBhIG5ldyBsYXlvdXQgdGVzdCBoYXMgYmVlbiBhZGRl
ZAorICAgICAgICAgIHRvIGNvdmVyIHRoaXMuCisgICAgICAgIC0gQ3JlYXRlIHRoZSBBdHRyaWJ1
dGVET01Ub2tlbkxpc3QgbGF6aWx5IHRvIGF2b2lkIHVwZGF0aW5nIGl0IGV2ZXJ5CisgICAgICAg
ICAgdGltZSB0aGUgc2l6ZXMgYXR0cmlidXRlIGNoYW5nZXMgdW50aWwgaXQgaXMgYWN0dWFsbHkg
YWNjZXNzZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBodG1sL0hUTUxPdXRwdXRFbGVtZW50Lmg6CisgICAgICAgIC0gSGF2ZSBIVE1MTGlua0Vs
ZW1lbnQuaHRtbEZvciB1c2UgYW4gQXR0cmlidXRlRE9NVG9rZW5MaXN0IGluc3RlYWQgb2YKKyAg
ICAgICAgICBhIERPTVNldHRhYmxlVG9rZW5MaXN0IGFzIHRoZXJlIGlzIGFuIGFzc29jaWF0ZWQg
YXR0cmlidXRlLgorICAgICAgICAtIENyZWF0ZSB0aGUgQXR0cmlidXRlRE9NVG9rZW5MaXN0IGxh
emlseSB0byBhdm9pZCB1cGRhdGluZyBpdCBldmVyeQorICAgICAgICAgIHRpbWUgdGhlIHNpemVz
IGF0dHJpYnV0ZSBjaGFuZ2VzIHVudGlsIGl0IGlzIGFjdHVhbGx5IGFjY2Vzc2VkLgorCisgICAg
ICAgICogaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGw6CisgICAgICAgIEFkZCBbUHV0Rm9yd2Fy
ZHM9dmFsdWVdIG9uIHRoZSBodG1sRm9yIGF0dHJpYnV0ZSwgYXMgcGVyIHRoZQorICAgICAgICBI
VE1MIHNwZWNpZmljYXRpb24uCisKIDIwMTUtMDktMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTWFjIHByb2R1Y3Rpb24gYnVpbGQgZml4IGF0dGVtcHQgYWZ0
ZXIgcjE5MDE1NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0cmlidXRlRE9N
VG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0
LmNwcAppbmRleCA4OGVjNmY0NjY0ZWQzNzVlODUwNDE5NTU5ZjM1MWU3MmQ3MGFmMDU4Li4yMTY0
ZDhhMzQ4M2IwMGZmMDQ5ZDRiZTEzZDY4YjY5ZmUzZTI5NTUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwCkBAIC0zNCw3ICszNCw3IEBAIEF0dHJp
YnV0ZURPTVRva2VuTGlzdDo6QXR0cmlidXRlRE9NVG9rZW5MaXN0KEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fYXR0
cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1lKQogewotICAgIHNldFZhbHVlKG1fZWxlbWVudC5nZXRB
dHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lKSk7CisgICAgc2V0VmFsdWVJbnRlcm5hbChtX2VsZW1l
bnQuZ2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSkpOwogfQogCiB2b2lkIEF0dHJpYnV0ZURP
TVRva2VuTGlzdDo6YXR0cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
VmFsdWUpCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgQXR0cmlidXRlRE9NVG9rZW5MaXN0OjphdHRy
aWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSkKICAgICBpZiAo
bV9pc1VwZGF0aW5nQXR0cmlidXRlVmFsdWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIERPTVRv
a2VuTGlzdDo6c2V0VmFsdWUobmV3VmFsdWUpOworICAgIHNldFZhbHVlSW50ZXJuYWwobmV3VmFs
dWUpOwogfQogCiB2b2lkIEF0dHJpYnV0ZURPTVRva2VuTGlzdDo6dXBkYXRlQWZ0ZXJUb2tlbkNo
YW5nZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2Vu
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaAppbmRl
eCAzNDEzMGZkMGM3YmRhNjU2ZGExYzAyYWRhZjBjYTRkZDFjZGVhNTNiLi5mNjUzYmZlMzkzODg1
YWE0MDgyZTJhMDdmMDAyMDAyMjY2NmUwZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0
cmlidXRlRE9NVG9rZW5MaXN0LmgKQEAgLTI2LDEyICsyNiwxMyBAQAogI2lmbmRlZiBBdHRyaWJ1
dGVET01Ub2tlbkxpc3RfaAogI2RlZmluZSBBdHRyaWJ1dGVET01Ub2tlbkxpc3RfaAogCi0jaW5j
bHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXR0
cmlidXRlRE9NVG9rZW5MaXN0IGZpbmFsIDogcHVibGljIERPTVRva2VuTGlzdCB7CitjbGFzcyBB
dHRyaWJ1dGVET01Ub2tlbkxpc3QgZmluYWwgOiBwdWJsaWMgRE9NU2V0dGFibGVUb2tlbkxpc3Qg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEF0dHJpYnV0ZURP
TVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSk7
CiAgICAgdm9pZCBhdHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCmluZGV4IDQ1ZDNi
Mzk1ZTVmMTJiNjk3ZTU5ZDNjOGQ5NmI4Y2FjNzgwMDFkZTUuLjNlYWMxNTQ2NGJlMmU5ZDRkZGY3
MmQ4MDBkOTY2OGFjNzBmNGZjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFi
bGVUb2tlbkxpc3QuY3BwCkBAIC0yOCwxNCArMjgsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi12b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpyZWYoKQordm9pZCBET01TZXR0YWJsZVRv
a2VuTGlzdDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBSZWZDb3VudGVk
PERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6cmVmKCk7Ci19Ci0KLXZvaWQgRE9NU2V0dGFibGVUb2tl
bkxpc3Q6OmRlcmVmKCkKLXsKLSAgICBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6
ZGVyZWYoKTsKKyAgICBzZXRWYWx1ZUludGVybmFsKHZhbHVlKTsKKyAgICB1cGRhdGVBZnRlclRv
a2VuQ2hhbmdlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaAppbmRleCAxNTllYjUxNzlhNTBmODY1MWFlMzAy
YWE5ODI3ZjJkMTJkZGJlZGRlLi4wNTZhODlhOGY2ZmJjZGFjYTgyODM1N2VhMDMxOGQ3YWFmMWI5
ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCkBAIC0y
OCwyNyArMjgsMTkgQEAKIAogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIlNw
YWNlU3BsaXRTdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIERPTVNldHRhYmxlVG9rZW5MaXN0IGZpbmFs
IDogcHVibGljIERPTVRva2VuTGlzdCwgcHVibGljIFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tl
bkxpc3Q+IHsKK2NsYXNzIERPTVNldHRhYmxlVG9rZW5MaXN0IDogcHVibGljIERPTVRva2VuTGlz
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxET01TZXR0YWJsZVRva2VuTGlzdD4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERPTVNldHRhYmxlVG9rZW5MaXN0KTsKLSAgICB9CisgICAgdm9pZCBzZXRW
YWx1ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIE1ha2UgcHVibGljLgogICAgIHVzaW5nIERP
TVRva2VuTGlzdDo6dmFsdWU7Ci0gICAgdXNpbmcgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZTsKLQot
ICAgIHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWYo
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NVG9rZW5MaXN0LmNwcAppbmRleCBjODZlMGUyNDc2MGQ2YzE4YWJkZTRjNGM1MmZjMGQ3YzUx
NDk3ZTM4Li5hY2I0NTY3NGJjMGI2OTU5NjFjNDI4ZTQyYmZmODA2NDU5ZjVlNGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBET01Ub2tlbkxpc3Q6OnZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gbV9jYWNo
ZWRWYWx1ZTsKIH0KIAotdm9pZCBET01Ub2tlbkxpc3Q6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYg
dmFsdWUpCit2b2lkIERPTVRva2VuTGlzdDo6c2V0VmFsdWVJbnRlcm5hbChjb25zdCBXVEY6OlN0
cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gQ2xlYXIgdG9rZW5zIGJ1dCBub3QgY2FwYWNpdHkuCiAg
ICAgbV90b2tlbnMuc2hyaW5rKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
T01Ub2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKaW5kZXgg
ZGM2ZGRmZWVhM2FhN2FkYjNjNmVjODM2MGFkNWIwNmQ4YzBjYTUzNy4uYTI3ZDQ3YmRlOTM3Njk3
N2E3Y2VjNDU5YjVhZDAxMzAxYTEzMmU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01Ub2tlbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5o
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBET01Ub2tlbkxpc3Qo
KSA9IGRlZmF1bHQ7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSgpIGNvbnN0OwotICAg
IHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzZXRWYWx1ZUludGVybmFs
KGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFmdGVyVG9rZW5DaGFu
Z2UoKSB7IG1fY2FjaGVkVmFsdWUgPSBudWxsQXRvbTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMaW5rRWxlbWVudC5jcHAKaW5kZXggYzQwYWZiZTY0NzhkZmY1M2FjODJiNzQ3N2QzNjdmN2My
NjJiOWNlZS4uNDA0NTQzOTNmMTI5ZDZjNGY3OTc0MzQ1Y2E0ZGRkZWI2YzE3ZjU2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtNjksNyArNjksNiBAQCBzdGF0
aWMgTGlua0V2ZW50U2VuZGVyJiBsaW5rTG9hZEV2ZW50U2VuZGVyKCkKIGlubGluZSBIVE1MTGlu
a0VsZW1lbnQ6OkhUTUxMaW5rRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2xpbmtMb2FkZXIoKnRoaXMpCi0gICAgLCBt
X3NpemVzKERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKSkKICAgICAsIG1fZGlzYWJsZWRT
dGF0ZShVbnNldCkKICAgICAsIG1fbG9hZGluZyhmYWxzZSkKICAgICAsIG1fY3JlYXRlZEJ5UGFy
c2VyKGNyZWF0ZWRCeVBhcnNlcikKQEAgLTE1OSw3ICsxNTgsOCBAQCB2b2lkIEhUTUxMaW5rRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChuYW1lID09IHNpemVzQXR0
cikgewotICAgICAgICBtX3NpemVzLT5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGlmIChtX3Np
emVzKQorICAgICAgICAgICAgbV9zaXplcy0+YXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsK
ICAgICAgICAgcHJvY2VzcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzY3LDYgKzM2
NywxMyBAQCBib29sIEhUTUxMaW5rRWxlbWVudDo6c3R5bGVTaGVldElzTG9hZGluZygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fc2hlZXQtPmNvbnRlbnRzKCkuaXNMb2FkaW5nKCk7CiB9CiAKK0RPTVNl
dHRhYmxlVG9rZW5MaXN0JiBIVE1MTGlua0VsZW1lbnQ6OnNpemVzKCkKK3sKKyAgICBpZiAoIW1f
c2l6ZXMpCisgICAgICAgIG1fc2l6ZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEF0dHJpYnV0ZURPTVRv
a2VuTGlzdD4oKnRoaXMsIHNpemVzQXR0cik7CisgICAgcmV0dXJuICptX3NpemVzOworfQorCiB2
b2lkIEhUTUxMaW5rRWxlbWVudDo6bGlua0xvYWRlZCgpCiB7CiAgICAgZGlzcGF0Y2hFdmVudChF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwpAQCAt
NDc1LDkgKzQ4Miw5IEBAIEljb25UeXBlIEhUTUxMaW5rRWxlbWVudDo6aWNvblR5cGUoKSBjb25z
dAogICAgIHJldHVybiBtX3JlbEF0dHJpYnV0ZS5pY29uVHlwZTsKIH0KIAotU3RyaW5nIEhUTUxM
aW5rRWxlbWVudDo6aWNvblNpemVzKCkgY29uc3QKK1N0cmluZyBIVE1MTGlua0VsZW1lbnQ6Omlj
b25TaXplcygpCiB7Ci0gICAgcmV0dXJuIG1fc2l6ZXMtPnRvU3RyaW5nKCk7CisgICAgcmV0dXJu
IHNpemVzKCkudG9TdHJpbmcoKTsKIH0KIAogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmFkZFN1YnJl
c291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JiB1cmxzKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5kZXggMDkxMTI1ZWVhMjJhNmU1NTA4OTdiZjZj
NDk4NjMzZDRjMTQzM2QwZi4uM2ZhODE2NDFiMjJjYzMxMTM0ZTczZWNhZjNkN2RiZTU4MzkwOGRh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCkBAIC0yNCwxMCArMjQsMTAg
QEAKICNpZm5kZWYgSFRNTExpbmtFbGVtZW50X2gKICNkZWZpbmUgSFRNTExpbmtFbGVtZW50X2gK
IAorI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkNTU1N0eWxl
U2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5o
IgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiTGlua0xvYWRlci5oIgogI2lu
Y2x1ZGUgIkxpbmtMb2FkZXJDbGllbnQuaCIKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAg
IEljb25UeXBlIGljb25UeXBlKCkgY29uc3Q7CiAKICAgICAvLyB0aGUgaWNvbiBzaXplIHN0cmlu
ZyBhcyBwYXJzZWQgZnJvbSB0aGUgSFRNTCBhdHRyaWJ1dGUKLSAgICBTdHJpbmcgaWNvblNpemVz
KCkgY29uc3Q7CisgICAgU3RyaW5nIGljb25TaXplcygpOwogCiAgICAgQ1NTU3R5bGVTaGVldCog
c2hlZXQoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0LmdldCgpOyB9CiAKQEAgLTY1LDcgKzY1LDcg
QEAgcHVibGljOgogCiAgICAgYm9vbCBpc0Rpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNh
YmxlZFN0YXRlID09IERpc2FibGVkOyB9CiAgICAgYm9vbCBpc0VuYWJsZWRWaWFTY3JpcHQoKSBj
b25zdCB7IHJldHVybiBtX2Rpc2FibGVkU3RhdGUgPT0gRW5hYmxlZFZpYVNjcmlwdDsgfQotICAg
IERPTVNldHRhYmxlVG9rZW5MaXN0JiBzaXplcygpIHsgcmV0dXJuIG1fc2l6ZXMuZ2V0KCk7IH0K
KyAgICBET01TZXR0YWJsZVRva2VuTGlzdCYgc2l6ZXMoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2hQ
ZW5kaW5nRXZlbnQoTGlua0V2ZW50U2VuZGVyKik7CiAgICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hQ
ZW5kaW5nTG9hZEV2ZW50cygpOwpAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAKICAgICBT
dHJpbmcgbV90eXBlOwogICAgIFN0cmluZyBtX21lZGlhOwotICAgIFJlZjxET01TZXR0YWJsZVRv
a2VuTGlzdD4gbV9zaXplczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5M
aXN0PiBtX3NpemVzOwogICAgIERpc2FibGVkU3RhdGUgbV9kaXNhYmxlZFN0YXRlOwogICAgIExp
bmtSZWxBdHRyaWJ1dGUgbV9yZWxBdHRyaWJ1dGU7CiAgICAgYm9vbCBtX2xvYWRpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCmluZGV4IDY3YjI1ZThjNDA1ZDhm
ZDU0N2IyZmYxYmEzNGE2MmFlYmE3NzU2NDAuLjJmNmJhN2IzM2VlYWRjMWUzZDBiNWFhMjg4NmEw
ZTkxNDNkNGJiMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3Bw
CkBAIC0zNywxMiArMzcsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOworCiBpbmxpbmUgSFRNTE91dHB1dEVsZW1lbnQ6OkhUTUxPdXRwdXRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwg
SFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCwgZm9ybSkKICAgICAsIG1faXNEZWZhdWx0VmFsdWVNb2RlKHRydWUpCiAg
ICAgLCBtX2lzU2V0VGV4dENvbnRlbnRJblByb2dyZXNzKGZhbHNlKQogICAgICwgbV9kZWZhdWx0
VmFsdWUoIiIpCi0gICAgLCBtX3Rva2VucyhET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCkp
CiB7CiB9CiAKQEAgLTY0LDE3ICs2NSwxMyBAQCBib29sIEhUTUxPdXRwdXRFbGVtZW50OjpzdXBw
b3J0c0ZvY3VzKCkgY29uc3QKIAogdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
IHsKLSAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OmZvckF0dHIpCi0gICAgICAgIHNldEZvcih2
YWx1ZSk7Ci0gICAgZWxzZQorICAgIGlmIChuYW1lID09IGZvckF0dHIpIHsKKyAgICAgICAgaWYg
KG1fdG9rZW5zKQorICAgICAgICAgICAgbV90b2tlbnMtPmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCh2
YWx1ZSk7CisgICAgfSBlbHNlCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAotdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6c2V0
Rm9yKGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgbV90b2tlbnMtPnNldFZhbHVlKHZhbHVl
KTsKLX0KLQogdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJiBjaGFuZ2UpCiB7CiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKGNoYW5nZSk7CkBAIC0xMjksNiArMTI2LDEzIEBAIHZvaWQgSFRNTE91dHB1dEVs
ZW1lbnQ6OnNldERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgICAgICBzZXRU
ZXh0Q29udGVudEludGVybmFsKHZhbHVlKTsKIH0KIAorRE9NU2V0dGFibGVUb2tlbkxpc3QmIEhU
TUxPdXRwdXRFbGVtZW50OjpodG1sRm9yKCkKK3sKKyAgICBpZiAoIW1fdG9rZW5zKQorICAgICAg
ICBtX3Rva2VucyA9IHN0ZDo6bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhp
cywgZm9yQXR0cik7CisgICAgcmV0dXJuICptX3Rva2VuczsKK30KKwogdm9pZCBIVE1MT3V0cHV0
RWxlbWVudDo6c2V0VGV4dENvbnRlbnRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHZhbHVlKQogewog
ICAgIEFTU0VSVCghbV9pc1NldFRleHRDb250ZW50SW5Qcm9ncmVzcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKaW5kZXggMGMwZjE1ZWQ3ZDhjZTBkMmVhM2I4Y2JiYmM0
MzVmOWViNTA5NDZiNC4uNDkyMjU2NjZkZDc3YjM3MmVlZTQ5OTYwODNmMTA3ODJhOTQ5ZmI4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaApAQCAtMzEsNyArMzEsNyBA
QAogI2lmbmRlZiBIVE1MT3V0cHV0RWxlbWVudF9oCiAjZGVmaW5lIEhUTUxPdXRwdXRFbGVtZW50
X2gKIAotI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiQXR0cmli
dXRlRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw4ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBkZWZhdWx0VmFsdWUoKSBjb25z
dDsKICAgICB2b2lkIHNldERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHNl
dEZvcihjb25zdCBTdHJpbmcmKTsKLSAgICBET01TZXR0YWJsZVRva2VuTGlzdCYgaHRtbEZvcigp
IHsgcmV0dXJuIG1fdG9rZW5zLmdldCgpOyB9CisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QmIGh0
bWxGb3IoKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCkBAIC02Niw3ICs2NSw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzRGVmYXVsdFZhbHVlTW9kZTsKICAgICBib29sIG1faXNTZXRU
ZXh0Q29udGVudEluUHJvZ3Jlc3M7CiAgICAgU3RyaW5nIG1fZGVmYXVsdFZhbHVlOwotICAgIFJl
ZjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV90b2tlbnM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF0
dHJpYnV0ZURPTVRva2VuTGlzdD4gbV90b2tlbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmlkbAppbmRleCA0ZjFjNmMzZmI1OGMw
ODM0NTBiNTExY2JmOWM3ZjQ0NDY2OGNmYmIzLi5iZGNiMGJkMzQzNjg0ZjZlNzM0ZmEyZDUyNjAx
NDQ5ZTgyNTEyNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRF
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50Lmlk
bApAQCAtMjMsOSArMjMsNyBAQAogICovCiAKIGludGVyZmFjZSBIVE1MT3V0cHV0RWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyBzdXBwb3NlZCB0byBiZToKLSAg
ICAvLyBbUHV0Rm9yd2FyZHM9dmFsdWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TZXR0YWJsZVRv
a2VuTGlzdCBodG1sRm9yOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TZXR0YWJsZVRva2Vu
TGlzdCBodG1sRm9yOworICAgIFtQdXRGb3J3YXJkcz12YWx1ZV0gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVNldHRhYmxlVG9rZW5MaXN0IGh0bWxGb3I7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
SFRNTEZvcm1FbGVtZW50IGZvcm07CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
bmFtZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0ZWM0NGI1ZWViY2JhYzdjNjI3MzFjYjUyMjY3MzE4YWRlNDQ5MzE2Li5h
ZTc2YjEzMjkwMTYyMWQ2OTgzM2NlMTlmNDBjZDIwYTI4NTkyMDg2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MjIgQEAKIDIwMTUtMDktMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAg
ICAgICBIVE1MT3V0cHV0RWxlbWVudC5odG1sRm9yIHNob3VsZCBiZSBzZXR0YWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5NDE4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvc2l6ZXMtc2V0dGVyLmh0bWw6IEFkZGVkCisgICAgICAgICogZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3NpemVzLXNldHRlci1leHBlY3RlZC50eHQ6IEFkZGVkCisgICAgICAg
IEFkZCBsYXlvdXQgdGVzdCB0byBtYWtlIHN1cmUgdGhhdCBzZXR0aW5nIEhUTUxMaW5rRWxlbWVu
dC5zaXplcyBhY3R1YWxseQorICAgICAgICB1cGRhdGVzIHRoZSAnc2l6ZXMnIGFzc29jaWF0ZWQg
YXR0cmlidXRlLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9tLXNl
dHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxP
dXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5qczoKKyAg
ICAgICAgVXBkYXRlIGV4aXN0aW5nIGxheW91dCB0ZXN0IG5vdyB0aGF0IEhUTUxPdXRwdXRFbGVt
ZW50Lmh0bWxGb3IgaXMKKyAgICAgICAgc2V0dGFibGUuCisKKzIwMTUtMDktMjMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBSYW5nZSdzIHNldFN0YXJ0QmVmb3Jl
KCkgLyBzZXRTdGFydEFmdGVyKCkgLyBzZXRFbmRCZWZvcmUoKSAvIHNldEVuZEFmdGVyKCkgZG8g
bm90IG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk0OTAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3NpemVzLXNldHRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc2l6ZXMtc2V0dGVyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZTljMzhkZDM4ODFmNjEwYzgyOGY0NmYzOWU5ZjEzMzIxYzE1YWNjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3NpemVz
LXNldHRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhhdCB0aGUgSFRN
TExpbmtFbGVtZW50LnNpemVzIHNldHRlciB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIHNpemVzIGF0
dHJpYnV0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBsaW5rLnNpemVz
Ll9fcHJvdG9fXyBpcyBET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUKK2xpbmsuc2l6ZXMg
PSAnMTB4MTAgIDIweDIwJworUEFTUyBTdHJpbmcobGluay5zaXplcykgaXMgIjEweDEwIDIweDIw
IgorUEFTUyBsaW5rLmdldEF0dHJpYnV0ZSgnc2l6ZXMnKSBpcyAiMTB4MTAgMjB4MjAiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3NpemVzLXNldHRlci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3NpemVzLXNldHRlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhkNGIzNWY5YzExNTZmYjhhYzM4MThiNTM0YzVkYWQ3YTIyYzUyYTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvc2l6
ZXMtc2V0dGVyLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdGhlIEhUTUxMaW5r
RWxlbWVudC5zaXplcyBzZXR0ZXIgdXBkYXRlcyB0aGUgYXNzb2NpYXRlZCBzaXplcyBhdHRyaWJ1
dGUiKTsKKwordmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7CitzaG91
bGRCZSgibGluay5zaXplcy5fX3Byb3RvX18iLCAiRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90
eXBlIik7CitldmFsQW5kTG9nKCJsaW5rLnNpemVzID0gJzEweDEwICAyMHgyMCciKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKGxpbmsuc2l6ZXMpIiwgIjEweDEwIDIweDIwIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImxpbmsuZ2V0QXR0cmlidXRlKCdzaXplcycpIiwgIjEweDEw
IDIweDIwIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2RvbS1zZXR0YWJsZS10b2tlbi1s
aXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50
L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LWV4cGVjdGVkLnR4dAppbmRleCBiM2IyOWY3YzkzYWI1
OTcwNDAyNmM1ODQxYjZmMTFiNTk0MTM0ZTMxLi45ZTdlYTkwZDM2NDcxOTdmZTY3OTQyMWFhZDgy
YWJmY2QyNzZmZTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0
RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRva2VuLWxpc3Qt
ZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
CiAtIFRlc3RzIGZyb20gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxl
Y3RpbmcvRE9NVG9rZW5MaXN0LwotUEFTUyBTdHJpbmcoZWxlbWVudC5odG1sRm9yKSBpcyAieCIK
K1BBU1MgZWxlbWVudC5odG1sRm9yLl9fcHJvdG9fXyBpcyBET01TZXR0YWJsZVRva2VuTGlzdC5w
cm90b3R5cGUKK1BBU1MgU3RyaW5nKGVsZW1lbnQuaHRtbEZvcikgaXMgInkgeiIKK1BBU1MgZWxl
bWVudC5nZXRBdHRyaWJ1dGUoImZvciIpIGlzICJ5IHoiCitQQVNTIFN0cmluZyhlbGVtZW50Lmh0
bWxGb3IpIGlzICJyIHMgdCIKIFBBU1MgZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAwCiBQQVNT
IGVsZW1lbnQuaHRtbEZvci5sZW5ndGggaXMgMQogUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVuZ3Ro
IGlzIDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50
L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4t
bGlzdC5qcwppbmRleCA0NGRjNjc4Mzg4MTA3YzE0NjFhZGVhZTA3ZjBmNDQwMTc1NzQ4MmQ4Li5m
ZDBmOTg4YTg0ZGFhMmY0YzgwZTc5NTE5NjJlODJmNTlmNGY3NzliIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9tLXNldHRh
YmxlLXRva2VuLWxpc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVs
ZW1lbnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LmpzCkBAIC0xNCwxMCAr
MTQsMTQgQEAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0b2tlbkxpc3QpCiAKIGRlYnVnKCctIFRl
c3RzIGZyb20gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3Rpbmcv
RE9NVG9rZW5MaXN0LycpOwogCi0vLyBIVE1MT3V0cHV0RWxlbWVudDo6aHRtbEZvciBpcyByZWFk
b25seSBhdHRyaWJ1dGUuCisvLyBIVE1MT3V0cHV0RWxlbWVudDo6aHRtbEZvciBzaG91bGQgYmUg
c2V0dGFibGUuCiBjcmVhdGVFbGVtZW50KCd4Jyk7Ci1lbGVtZW50Lmh0bWxGb3IgPSAneSc7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ1N0cmluZyhlbGVtZW50Lmh0bWxGb3IpJywgJ3gnKTsKK3No
b3VsZEJlKCdlbGVtZW50Lmh0bWxGb3IuX19wcm90b19fJywgJ0RPTVNldHRhYmxlVG9rZW5MaXN0
LnByb3RvdHlwZScpOworZWxlbWVudC5odG1sRm9yID0gJ3kgIHonOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdTdHJpbmcoZWxlbWVudC5odG1sRm9yKScsICd5IHonKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnZWxlbWVudC5nZXRBdHRyaWJ1dGUoImZvciIpJywgJ3kgeicpOworZWxlbWVudC5z
ZXRBdHRyaWJ1dGUoJ2ZvcicsICdyIHMgdCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdTdHJp
bmcoZWxlbWVudC5odG1sRm9yKScsICdyIHMgdCcpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUu
b3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDEuaHRt
CiBjcmVhdGVFbGVtZW50KCcnKTsK
</data>
<flag name="commit-queue"
          id="287025"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>