<?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>105214</bug_id>
          
          <creation_ts>2012-12-17 13:34:38 -0800</creation_ts>
          <short_desc>AX: Allow requesting the full plain text for an object with textUnderElement()</short_desc>
          <delta_ts>2013-07-10 09:21:22 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>spena</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>792987</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-12-17 13:34:38 -0800</bug_when>
    <thetext>In order for these tests to pass:

accessibility/button-title-uses-inner-img-alt.html
accessibility/focusable-div.html [ Failure ]

...there need to be more GTK accessibility tests that cover textUnderElement in cases where it should return an object replacement character. Then we can try getting rid of a special case for GTK in AccessibilityRenderObject::textUnderElement().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905440</commentid>
    <comment_count>1</comment_count>
      <attachid>205917</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-02 08:25:11 -0700</bug_when>
    <thetext>Created attachment 205917
Patch proposal

This patch fixes the issue for GTK while (I believe) not disturbing other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906444</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Pena">spena</who>
    <bug_when>2013-07-05 10:20:07 -0700</bug_when>
    <thetext>I have just confirmed that fixing this patch gets the test accessibility/listitem-title.html passing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906450</commentid>
    <comment_count>3</comment_count>
      <attachid>206160</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-05 10:43:40 -0700</bug_when>
    <thetext>Created attachment 206160
Patch proposal

(In reply to comment #2)
&gt; I have just confirmed that fixing this patch gets the test accessibility/listitem-title.html passing.

That&apos;s right. I&apos;ve already pushed a commit skipping that one and associating it to this bug, so I&apos;m now updating the patch here to include the unskipping of it, once it gets reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907247</commentid>
    <comment_count>4</comment_count>
      <attachid>206160</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-07-09 17:26:01 -0700</bug_when>
    <thetext>Comment on attachment 206160
Patch proposal

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        AX: Need more GTK accessibility tests of the object replacement character

This title is misleading I think for what it does

&gt; Source/WebCore/ChangeLog:8
&gt; +        Allow specifying different funtion modes for textUnderElement(),

funtion -&gt; function

&gt; Source/WebCore/ChangeLog:11
&gt; +        element (without omitting any child in the subtree), needed for

the portion of this sentence - &quot;, needed for...&quot; Should be its own sentence

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1509
&gt; +    if (mode == TextUnderElementModeFullText)

I think these modes should be called

TextUnderElementIncludeAllChildren
TextUnderElementSkipIgnoredChildren (Default)

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:147
&gt; +    virtual String textUnderElement(AccessibilityTextUnderElementMode) const;

this should take a default value so that we don&apos;t need to modify every instances
TextUnderElementMode = ..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907323</commentid>
    <comment_count>5</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-10 02:10:25 -0700</bug_when>
    <thetext>Thanks for the review, Chris. I will provide an updated patch asap.

(In reply to comment #4)
&gt; (From update of attachment 206160 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206160&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        AX: Need more GTK accessibility tests of the object replacement character
&gt; 
&gt; This title is misleading I think for what it does

Yes, that&apos;s right. I&apos;m now changing it to something that will hopefully be more accurate

&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Allow specifying different funtion modes for textUnderElement(),
&gt; 
&gt; funtion -&gt; function

Ok.

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        element (without omitting any child in the subtree), needed for
&gt; 
&gt; the portion of this sentence - &quot;, needed for...&quot; Should be its own sentence

Ok.

&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1509
&gt; &gt; +    if (mode == TextUnderElementModeFullText)
&gt; 
&gt; I think these modes should be called
&gt; 
&gt; TextUnderElementIncludeAllChildren
&gt; TextUnderElementSkipIgnoredChildren (Default)

Agreed. It definitely sounds better and looks more clear

&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:147
&gt; &gt; +    virtual String textUnderElement(AccessibilityTextUnderElementMode) const;
&gt; 
&gt; this should take a default value so that we don&apos;t need to modify every instances
&gt; TextUnderElementMode = ..

Ok. I&apos;ll add that then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907335</commentid>
    <comment_count>6</comment_count>
      <attachid>206377</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-10 03:53:08 -0700</bug_when>
    <thetext>Created attachment 206377
Patch proposal

I believe this patch addresses all the issues pointed out before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907385</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-10 09:21:22 -0700</bug_when>
    <thetext>Committed r152537: &lt;http://trac.webkit.org/changeset/152537&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205917</attachid>
            <date>2013-07-02 08:25:11 -0700</date>
            <delta_ts>2013-07-05 10:43:40 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2013-07-02-Mario-Sanchez-Prada-mario.prada-samsung.c.patch</filename>
            <type>text/plain</type>
            <size>20271</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBkM2M4ZDZmODg3MTg0MTliZGFmNmYyNTM0ODJhZWQ0ODY4NTBkMjVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogVHVlLCAyIEp1bCAyMDEzIDE1OjA3OjM2ICswMTAwClN1YmplY3Q6IFtQ
QVRDSF0gMjAxMy0wNy0wMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1
bmcuY29tPgoKICAgICAgICBBWDogTmVlZCBtb3JlIEdUSyBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9m
IHRoZSBvYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCiAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTIxNAoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgQWxsb3cgc3BlY2lmeWluZyBkaWZmZXJlbnQgZnVudGlvbiBt
b2RlcyBmb3IgdGV4dFVuZGVyRWxlbWVudCgpLAogICAgICAgIHNvIHdlIGNhbiBlZmZlY3RpdmVs
eSBhc2sgZm9yIHRoZSAibm9ybWFsIiByZXN1bHQgKGUuZyB0byByZXRyaWV2ZQogICAgICAgIHRl
c3QgdG8gYmUgZXhwb3NlZCBhcyB0aGUgJ3RpdGxlJykgb3IgZm9yIHRoZSBmdWxsIHRleHQgdW5k
ZXIgdGhlCiAgICAgICAgZWxlbWVudCAod2l0aG91dCBvbWl0dGluZyBhbnkgY2hpbGQgaW4gdGhl
IHN1YnRyZWUpLCBuZWVkZWQgZm9yCiAgICAgICAgdGhlIGltcGxlbWVudGF0aW9uIG9mIGF0a190
ZXh0X2dldF90ZXh0KCkgZnVuY3Rpb24gaW4gR1RLL0VGTC4KCiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDogQWRkIG5ldyBlbnVtZXJhdGlvbiB0bwogICAgICAg
IHNwZWNpZnkgdGhlIGRpZmZlcmVudCBtb2RlcyBmb3IgdGV4dFVuZGVyRWxlbWVudCgpLgogICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTogQWRk
ZWQgcGFyYW1ldGVyLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpzaG91bGRVc2VBY2Nlc3NpYmxpdHlPYmplY3RJ
bm5lclRleHQpOiBBbHdheXMgcmV0dXJuCiAgICAgICAgJ3RydWUnIHdoZW4gdXNpbmcgdGhlICJm
dWxsIHRleHQiIG1vZGUuCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojp0ZXh0VW5kZXJFbGVtZW50KTogVXBkYXRlZCBjYWxsCiAgICAgICAgdG8gc2hvdWxkVXNlQWNj
ZXNzaWJsaXR5T2JqZWN0SW5uZXJUZXh0KCkuCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dCk6IFVwZGF0ZWQgY2FsbCB0bwogICAgICAgIHRleHRV
bmRlckVsZW1lbnQoKSwgcHJlc2VydmluZyB0aGUgcHJldmlvdXMgYmVoYXZpb3IuCiAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZSk6IERpdHRvLgogICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5nVmFsdWUpOiBEaXR0by4K
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKCiAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgogICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTog
UmVtb3ZlZAogICAgICAgIEdUSyBzcGVjaWZpYyBjb2RlIGFuZCBleHBhbmQgdGhlIHVzYWdlIG9m
IHRleHQgaXRlcmF0b3JzIGJleW9uZAogICAgICAgIHRleHQgcmVuZGVyIG9iamVjdHMsIHVzaW5n
IGl0IGFsc28gd2hlbiBpbiB0aGUgImZ1bGwgdGV4dCIgbW9kZS4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUpOiBVcGRhdGVkIGNhbGwgdG8K
ICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCksIHByZXNlcnZpbmcgdGhlIHByZXZpb3VzIGJlaGF2
aW9yLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpuYW1lRm9y
TVNBQSk6IERpdHRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Lmg6CgogICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9iamVj
dEF0ay5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldExlbmd0
aEZvclRleHRSYW5nZSk6IERpdHRvLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dlYktp
dEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcDoKICAgICAgICAod2Via2l0QWNjZXNzaWJsZVRl
eHRHZXRUZXh0KTogVXBkYXRlZCBjYWxsIHRvIHRleHRVbmRlckVsZW1lbnQoKSwKICAgICAgICB1
c2luZyB0aGUgImZ1bGwgdGV4dCIgbW9kZS4KICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdl
dE5hbWUpOiBVcGRhdGVkIGNhbGwgdG8gdGV4dFVuZGVyRWxlbWVudCgpLAogICAgICAgIHVzaW5n
IHRoZSAibm9ybWFsIiBtb2RlLiBUaGlzIGNoYW5nZSBhY3R1YWxseSBtYWtlcyBwb3NzaWJsZSB0
bwogICAgICAgIHJlbW92ZSB0d28gdGVzdHMgdGhhdCB3ZXJlIGV4cGVjdGVkIHRvIGZhaWwgc28g
ZmFyIGluIEdUSy4KCjIwMTMtMDctMDIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFk
YUBzYW1zdW5nLmNvbT4KCiAgICAgICAgQVg6IE5lZWQgbW9yZSBHVEsgYWNjZXNzaWJpbGl0eSB0
ZXN0cyBvZiB0aGUgb2JqZWN0IHJlcGxhY2VtZW50IGNoYXJhY3RlcgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyMTQKCiAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFJlbW92ZWQgdGVzdHMgdGhhdCBhcmUgbm90IGxv
bmdlciBleHBlY3RlZCB0byBmYWlsLgoKICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOiBSZW1vdmVkIHRlc3RzLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgfCAgICAyIC0KIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0OCArKysrKysrKysrKysrKysr
KysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwICAgICAg
fCAgIDI0ICsrKysrKy0tLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmggICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmggfCAgICA3ICsrLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgIDMwICsrKystLS0tLS0tLQogLi4uL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oICAgICAgfCAgICAyICstCiAuLi4vYWNj
ZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAgICB8ICAgIDIgKy0KIC4u
Li9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwICAgICAgICAgIHwgICAgNCAr
LQogLi4uL2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgICAgICAgICAgICAgfCAg
ICAyICstCiAxMSBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMWRiMTgyNjUuLmUzMWQwOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
My0wNy0wMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgor
CisgICAgICAgIEFYOiBOZWVkIG1vcmUgR1RLIGFjY2Vzc2liaWxpdHkgdGVzdHMgb2YgdGhlIG9i
amVjdCByZXBsYWNlbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNTIxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgdGVzdHMgdGhhdCBhcmUgbm90IGxvbmdlciBleHBl
Y3RlZCB0byBmYWlsLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6
IFJlbW92ZWQgdGVzdHMuCisKIDIwMTMtMDYtMjcgIFNpbW9uIFBlbmEgIDxzaW1vbi5wZW5hQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBVbnNraXAg
dGVzdHMgbm8gbG9uZ2VyIHRpbWluZyBvdXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGY5ZTZmOWUuLmZmZTBhZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC04MjMsOSArODIzLDcgQEAgd2Via2l0Lm9yZy9i
Lzk4MzU3IGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvOTgzNTkgYWNjZXNzaWJpbGl0eS9hcmlhLXRleHQtcm9sZS5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvOTgzNjAgYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2Ut
bWFwcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNjEgYWNjZXNzaWJpbGl0eS9i
dXR0b24tcHJlc3MtYWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMDUyMTQg
YWNjZXNzaWJpbGl0eS9idXR0b24tdGl0bGUtdXNlcy1pbm5lci1pbWctYWx0Lmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi85ODM2MyBhY2Nlc3NpYmlsaXR5L2NhbnZhcy1mYWxsYmFjay1j
b250ZW50LTIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzEwNTIxNCBhY2Nlc3NpYmls
aXR5L2ZvY3VzYWJsZS1kaXYuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzcwIGFj
Y2Vzc2liaWxpdHkvbG9hZGluZy1pZnJhbWUtc2VuZHMtbm90aWZpY2F0aW9uLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi85ODM3MSBhY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXVw
ZGF0ZXMtYXh0cmVlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM3MiBhY2Nlc3Np
YmlsaXR5L29uY2xpY2staGFuZGxlcnMuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDlh
NGMzZGIuLjU0NmNhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMy0wNy0wMiAg
TWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgorCisgICAgICAg
IEFYOiBOZWVkIG1vcmUgR1RLIGFjY2Vzc2liaWxpdHkgdGVzdHMgb2YgdGhlIG9iamVjdCByZXBs
YWNlbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTIxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFsbG93IHNwZWNpZnlpbmcgZGlmZmVyZW50IGZ1bnRpb24gbW9kZXMgZm9yIHRl
eHRVbmRlckVsZW1lbnQoKSwKKyAgICAgICAgc28gd2UgY2FuIGVmZmVjdGl2ZWx5IGFzayBmb3Ig
dGhlICJub3JtYWwiIHJlc3VsdCAoZS5nIHRvIHJldHJpZXZlCisgICAgICAgIHRlc3QgdG8gYmUg
ZXhwb3NlZCBhcyB0aGUgJ3RpdGxlJykgb3IgZm9yIHRoZSBmdWxsIHRleHQgdW5kZXIgdGhlCisg
ICAgICAgIGVsZW1lbnQgKHdpdGhvdXQgb21pdHRpbmcgYW55IGNoaWxkIGluIHRoZSBzdWJ0cmVl
KSwgbmVlZGVkIGZvcgorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gb2YgYXRrX3RleHRfZ2V0
X3RleHQoKSBmdW5jdGlvbiBpbiBHVEsvRUZMLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0Lmg6IEFkZCBuZXcgZW51bWVyYXRpb24gdG8KKyAgICAgICAgc3Bl
Y2lmeSB0aGUgZGlmZmVyZW50IG1vZGVzIGZvciB0ZXh0VW5kZXJFbGVtZW50KCkuCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTogQWRkZWQg
cGFyYW1ldGVyLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRVc2VBY2Nlc3NpYmxpdHlPYmplY3RJ
bm5lclRleHQpOiBBbHdheXMgcmV0dXJuCisgICAgICAgICd0cnVlJyB3aGVuIHVzaW5nIHRoZSAi
ZnVsbCB0ZXh0IiBtb2RlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OnRleHRVbmRlckVsZW1lbnQpOiBVcGRhdGVkIGNhbGwKKyAgICAgICAgdG8gc2hvdWxkVXNl
QWNjZXNzaWJsaXR5T2JqZWN0SW5uZXJUZXh0KCkuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6dmlzaWJsZVRleHQpOiBVcGRhdGVkIGNhbGwgdG8KKyAgICAgICAg
dGV4dFVuZGVyRWxlbWVudCgpLCBwcmVzZXJ2aW5nIHRoZSBwcmV2aW91cyBiZWhhdmlvci4KKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKTog
RGl0dG8uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
OgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRl
ckVsZW1lbnQpOiBSZW1vdmVkCisgICAgICAgIEdUSyBzcGVjaWZpYyBjb2RlIGFuZCBleHBhbmQg
dGhlIHVzYWdlIG9mIHRleHQgaXRlcmF0b3JzIGJleW9uZAorICAgICAgICB0ZXh0IHJlbmRlciBv
YmplY3RzLCB1c2luZyBpdCBhbHNvIHdoZW4gaW4gdGhlICJmdWxsIHRleHQiIG1vZGUuCisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSk6IFVw
ZGF0ZWQgY2FsbCB0bworICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCksIHByZXNlcnZpbmcgdGhl
IHByZXZpb3VzIGJlaGF2aW9yLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6bmFtZUZvck1TQUEpOiBEaXR0by4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRr
L0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6Z2V0TGVuZ3RoRm9yVGV4dFJhbmdlKTogRGl0dG8uCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHA6CisgICAg
ICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldFRleHQpOiBVcGRhdGVkIGNhbGwgdG8gdGV4dFVu
ZGVyRWxlbWVudCgpLAorICAgICAgICB1c2luZyB0aGUgImZ1bGwgdGV4dCIgbW9kZS4KKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHA6Cisg
ICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlR2V0TmFtZSk6IFVwZGF0ZWQgY2FsbCB0byB0ZXh0VW5k
ZXJFbGVtZW50KCksCisgICAgICAgIHVzaW5nIHRoZSAibm9ybWFsIiBtb2RlLiBUaGlzIGNoYW5n
ZSBhY3R1YWxseSBtYWtlcyBwb3NzaWJsZSB0bworICAgICAgICByZW1vdmUgdHdvIHRlc3RzIHRo
YXQgd2VyZSBleHBlY3RlZCB0byBmYWlsIHNvIGZhciBpbiBHVEsuCisKIDIwMTMtMDYtMjcgIFNl
b2tqdSBLd29uICA8c2Vva2p1Lmt3b25AZ21haWwuY29tPgogCiAgICAgICAgIFJlbW92aW5nIHRo
ZSByZWR1bmRhbnQgY2hlY2tzIGFmdGVyIHIxNTIwNzgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggMGY4
MjEyNC4uNWQyMjQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTEyNzksNyArMTI3OSw3IEBAIHZv
aWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0KFZlY3RvcjxBY2Nlc3NpYmls
aXR5VGV4dD4mIHRleHRPcmRlcikKICAgICAgICAgdXNlVGV4dFVuZGVyRWxlbWVudCA9IHRydWU7
CiAgICAgCiAgICAgaWYgKHVzZVRleHRVbmRlckVsZW1lbnQpIHsKLSAgICAgICAgU3RyaW5nIHRl
eHQgPSB0ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gdGV4dFVuZGVy
RWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZU5vcm1hbCk7CiAgICAgICAgIGlmICghdGV4dC5p
c0VtcHR5KCkpCiAgICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0
KHRleHQsIENoaWxkcmVuVGV4dCkpOwogICAgIH0KQEAgLTE1MDMsOCArMTUwMywxMiBAQCB1bnNp
Z25lZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdAog
CiAvLyBXaGVuIGJ1aWxkaW5nIHRoZSB0ZXh0VW5kZXJFbGVtZW50IGZvciBhbiBvYmplY3QsIGRl
dGVybWluZSB3aGV0aGVyIG9yIG5vdAogLy8gd2Ugc2hvdWxkIGluY2x1ZGUgdGhlIGlubmVyIHRl
eHQgb2YgdGhpcyBnaXZlbiBkZXNjZW5kYW50IG9iamVjdCBvciBza2lwIGl0Lgotc3RhdGljIGJv
b2wgc2hvdWxkVXNlQWNjZXNzaWJsaXR5T2JqZWN0SW5uZXJUZXh0KEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaikKK3N0YXRpYyBib29sIHNob3VsZFVzZUFjY2Vzc2libGl0eU9iamVjdElubmVyVGV4
dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50
TW9kZSBtb2RlKQogeworICAgIC8vIERvIG5vdCB1c2UgYW55IGhldXJpc3RpYyBpZiB3ZSBhcmUg
ZXhwbGljaXRseSBhc2tpbmcgZm9yIHRoZSBmdWxsIHRleHQuCisgICAgaWYgKG1vZGUgPT0gVGV4
dFVuZGVyRWxlbWVudE1vZGVGdWxsVGV4dCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICAv
LyBDb25zaWRlciB0aGlzIGh5cG90aGV0aWNhbCBleGFtcGxlOgogICAgIC8vIDxkaXYgdGFiaW5k
ZXg9MD4KICAgICAvLyAgIDxoMj4KQEAgLTE1NDEsNyArMTU0NSw3IEBAIHN0YXRpYyBib29sIHNo
b3VsZFVzZUFjY2Vzc2libGl0eU9iamVjdElubmVyVGV4dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmopCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OnRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlIG1v
ZGUpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKICAgICBpZiAobm9k
ZSAmJiBub2RlLT5pc1RleHROb2RlKCkpCkBAIC0xNTQ5LDcgKzE1NTMsNyBAQCBTdHJpbmcgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQoKSBjb25zdAogCiAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwogICAgIGZvciAoQWNjZXNzaWJpbGl0eU9iamVjdCogY2hpbGQg
PSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0g
ICAgICAgIGlmICghc2hvdWxkVXNlQWNjZXNzaWJsaXR5T2JqZWN0SW5uZXJUZXh0KGNoaWxkKSkK
KyAgICAgICAgaWYgKCFzaG91bGRVc2VBY2Nlc3NpYmxpdHlPYmplY3RJbm5lclRleHQoY2hpbGQs
IG1vZGUpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKGNoaWxkLT5pc0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0KCkpIHsKQEAgLTE1NjMsNyArMTU2Nyw3IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBTdHJpbmcgY2hpbGRUZXh0ID0gY2hpbGQtPnRl
eHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgU3RyaW5nIGNoaWxkVGV4dCA9IGNoaWxkLT50ZXh0
VW5kZXJFbGVtZW50KG1vZGUpOwogICAgICAgICBpZiAoY2hpbGRUZXh0Lmxlbmd0aCgpKSB7CiAg
ICAgICAgICAgICBpZiAoYnVpbGRlci5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnICcpOwpAQCAtMTYxMSw3ICsxNjE1LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojp0aXRsZSgpIGNvbnN0CiAgICAgY2FzZSBNZW51SXRlbVJvbGU6CiAgICAgY2Fz
ZSBSYWRpb0J1dHRvblJvbGU6CiAgICAgY2FzZSBUYWJSb2xlOgotICAgICAgICByZXR1cm4gdGV4
dFVuZGVyRWxlbWVudCgpOworICAgICAgICByZXR1cm4gdGV4dFVuZGVyRWxlbWVudChUZXh0VW5k
ZXJFbGVtZW50TW9kZU5vcm1hbCk7CiAgICAgLy8gU1ZHUm9vdHMgc2hvdWxkIG5vdCB1c2UgdGhl
IHRleHQgdW5kZXIgaXRzZWxmIGFzIGEgdGl0bGUuIFRoYXQgY291bGQgaW5jbHVkZSB0aGUgdGV4
dCBvZiBvYmplY3RzIGxpa2UgPHRleHQ+LgogICAgIGNhc2UgU1ZHUm9vdFJvbGU6CiAgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKQEAgLTE2MjAsMTIgKzE2MjQsMTIgQEAgU3RyaW5nIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojp0aXRsZSgpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGlzSGVhZGlu
ZygpIHx8IGlzTGluaygpKQotICAgICAgICByZXR1cm4gdGV4dFVuZGVyRWxlbWVudCgpOworICAg
ICAgICByZXR1cm4gdGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZU5vcm1hbCk7
CiAKICAgICAvLyBJZiBpdCdzIGZvY3VzYWJsZSBidXQgaXQncyBub3QgY29udGVudCBlZGl0YWJs
ZSBvciBhIGtub3duIGNvbnRyb2wgdHlwZSwgdGhlbiBpdCB3aWxsIGFwcGVhciB0byAgICAgICAg
ICAgICAgICAgIAogICAgIC8vIHRoZSB1c2VyIGFzIGEgc2luZ2xlIGF0b21pYyBvYmplY3QsIHNv
IHdlIHNob3VsZCB1c2UgaXRzIHRleHQgYXMgdGhlIGRlZmF1bHQgdGl0bGUuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgaWYgKGlzR2VuZXJpY0ZvY3VzYWJsZUVsZW1lbnQoKSkK
LSAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIHRleHRV
bmRlckVsZW1lbnQoVGV4dFVuZGVyRWxlbWVudE1vZGVOb3JtYWwpOwogCiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQpAQCAtMTY2MSwxMiArMTY2NSwxMiBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICBpZiAoYXJpYVJvbGVBdHRyaWJ1dGUo
KSA9PSBTdGF0aWNUZXh0Um9sZSkgewogICAgICAgICBTdHJpbmcgc3RhdGljVGV4dCA9IHRleHQo
KTsKICAgICAgICAgaWYgKCFzdGF0aWNUZXh0Lmxlbmd0aCgpKQotICAgICAgICAgICAgc3RhdGlj
VGV4dCA9IHRleHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgICAgIHN0YXRpY1RleHQgPSB0ZXh0
VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlTm9ybWFsKTsKICAgICAgICAgcmV0dXJu
IHN0YXRpY1RleHQ7CiAgICAgfQogCiAgICAgaWYgKG5vZGUtPmlzVGV4dE5vZGUoKSkKLSAgICAg
ICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIHRleHRVbmRlckVs
ZW1lbnQoVGV4dFVuZGVyRWxlbWVudE1vZGVOb3JtYWwpOwogCiAgICAgaWYgKG5vZGUtPmhhc1Rh
Z05hbWUoc2VsZWN0VGFnKSkgewogICAgICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0RWxl
bWVudCA9IHRvSFRNTFNlbGVjdEVsZW1lbnQobm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5kZXggNTU2NDFl
Yi4uMDNhMzNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlCdXR0b25TdGF0ZSBjaGVja2JveE9yUmFkaW9WYWx1ZSgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCB1bnNpZ25lZCBoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0
OwotICAgIHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50
TW9kZSkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdDsKICAgICB2aXJ0
dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA0NDg3M2EwLi4xZDAyODgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aApAQCAtMjM5LDYgKzIzOSwxMSBAQCBzdHJ1Y3QgQWNjZXNzaWJpbGl0eVRleHQgewogICAgICAg
ICB0ZXh0RWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwogICAgIH0KIH07CisKK2VudW0gQWNjZXNz
aWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlIHsKKyAgICBUZXh0VW5kZXJFbGVtZW50TW9kZU5v
cm1hbCwKKyAgICBUZXh0VW5kZXJFbGVtZW50TW9kZUZ1bGxUZXh0Cit9OwogICAgIAogZW51bSBB
Y2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gewogICAgIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvblZl
cnRpY2FsLApAQCAtNTg1LDcgKzU5MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1ldGhvZHMgZm9y
IGRldGVybWluaW5nIGFjY2Vzc2liaWxpdHkgdGV4dC4KICAgICB2aXJ0dWFsIFN0cmluZyBzdHJp
bmdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcg
dGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVh
bCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1v
ZGUpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgdGV4dCgp
IGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBpbnQgdGV4dExlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBhcmlhTGFiZWxlZEJ5QXR0
cmlidXRlKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IGZiZjNhYjQuLjkwYzcwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNjI1LDcgKzYy
NSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCgpIGNvbnN0
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6dGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1v
ZGUgbW9kZSkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKQEAgLTY0NCwyMyArNjQ0LDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OnRleHRVbmRlckVsZW1lbnQoKSBjb25zdAogICAgIH0KICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oR1RLKQotICAgIC8vIE9uIEdUSywgYWx3YXlzIHVzZSBhIHRleHQgaXRlcmF0b3IgaW4g
b3JkZXIgdG8gZ2V0IGVtYmVkZGVkIG9iamVjdCBjaGFyYWN0ZXJzLgotICAgIC8vIFRPRE86IEFk
ZCBzdXBwb3J0IGZvciBlbWJlZGRlZCBvYmplY3QgY2hhcmFjdGVycyB0byB0aGUgb3RoZXIgY29k
ZXBhdGhzIHRoYXQgdHJ5Ci0gICAgLy8gdG8gYnVpbGQgdGhlIGFjY2Vzc2libGUgdGV4dCByZWN1
cnNpdmVseSwgc28gdGhpcyBzcGVjaWFsIGNhc2UgaXNuJ3QgbmVlZGVkLgotICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyMTQKLSAgICBpZiAoTm9kZSog
bm9kZSA9IHRoaXMtPm5vZGUoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbm9kZS0+
ZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewotICAgICAgICAgICAgLy8gY2F0Y2ggc3RhbGUgV2ViQ29y
ZUFYT2JqZWN0IChzZWUgPHJkYXI6Ly9wcm9ibGVtLzM5NjAxOTY+KQotICAgICAgICAgICAgaWYg
KGZyYW1lLT5kb2N1bWVudCgpICE9IG5vZGUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIFN0cmluZygpOwotCi0gICAgICAgICAgICByZXR1cm4gcGxhaW5UZXh0KHJhbmdlT2ZD
b250ZW50cyhub2RlKS5nZXQoKSwgdGV4dEl0ZXJhdG9yQmVoYXZpb3JGb3JUZXh0UmFuZ2UoKSk7
Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChtX3JlbmRlcmVyLT5pc1RleHQo
KSkgeworICAgIC8vIFdlIHVzZSBhIHRleHQgaXRlcmF0b3IgZm9yIHRleHQgb2JqZWN0cyBBTkQg
Zm9yIHRob3NlIGNhc2VzIHdoZXJlIHdlIGFyZQorICAgIC8vIGV4cGxpY2l0bHkgYXNraW5nIGZv
ciB0aGUgZnVsbCB0ZXh0IHVuZGVyIGEgZ2l2ZW4gZWxlbWVudC4KKyAgICBpZiAobV9yZW5kZXJl
ci0+aXNUZXh0KCkgfHwgbW9kZSA9PSBUZXh0VW5kZXJFbGVtZW50TW9kZUZ1bGxUZXh0KSB7CiAg
ICAgICAgIC8vIElmIHBvc3NpYmxlLCB1c2UgYSB0ZXh0IGl0ZXJhdG9yIHRvIGdldCB0aGUgdGV4
dCwgc28gdGhhdCB3aGl0ZXNwYWNlCiAgICAgICAgIC8vIGlzIGhhbmRsZWQgY29uc2lzdGVudGx5
LgogICAgICAgICBpZiAoTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKSkgewpAQCAtNjgyLDcgKzY2
OCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50
KCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcocmVuZGVyVGV4dE9iamVjdC0+dGV4
dCgpKTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0
ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0
ZXh0VW5kZXJFbGVtZW50KG1vZGUpOwogfQogCiBOb2RlKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojpub2RlKCkgY29uc3QKQEAgLTcwMywxMiArNjg5LDEyIEBAIFN0cmluZyBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0CiAgICAgaWYgKGFyaWFSb2xlQXR0
cmlidXRlKCkgPT0gU3RhdGljVGV4dFJvbGUpIHsKICAgICAgICAgU3RyaW5nIHN0YXRpY1RleHQg
PSB0ZXh0KCk7CiAgICAgICAgIGlmICghc3RhdGljVGV4dC5sZW5ndGgoKSkKLSAgICAgICAgICAg
IHN0YXRpY1RleHQgPSB0ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgICAgICBzdGF0aWNUZXh0
ID0gdGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZU5vcm1hbCk7CiAgICAgICAg
IHJldHVybiBzdGF0aWNUZXh0OwogICAgIH0KICAgICAgICAgCiAgICAgaWYgKG1fcmVuZGVyZXIt
PmlzVGV4dCgpKQotICAgICAgICByZXR1cm4gdGV4dFVuZGVyRWxlbWVudCgpOworICAgICAgICBy
ZXR1cm4gdGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZU5vcm1hbCk7CiAgICAg
CiAgICAgaWYgKGNzc0JveCAmJiBjc3NCb3gtPmlzTWVudUxpc3QoKSkgewogICAgICAgICAvLyBS
ZW5kZXJNZW51TGlzdCB3aWxsIGdvIHN0cmFpZ2h0IHRvIHRoZSB0ZXh0KCkgb2YgaXRzIHNlbGVj
dGVkIGl0ZW0uCkBAIC0zMjc3LDcgKzMyNjMsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6Omhhc1VuZGVybGluZSgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6bmFtZUZvck1TQUEoKSBjb25zdAogewogICAgIGlmIChtX3JlbmRlcmVyICYmIG1fcmVu
ZGVyZXItPmlzVGV4dCgpKQotICAgICAgICByZXR1cm4gdGV4dFVuZGVyRWxlbWVudCgpOworICAg
ICAgICByZXR1cm4gdGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZU5vcm1hbCk7
CiAKICAgICByZXR1cm4gdGl0bGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggNmQyZmIwMi4u
Zjk5ZDI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTE0NCw3ICsxNDQsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbigpIGNvbnN0OwogICAgIHZpcnR1
YWwgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgaGVscFRl
eHQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KCkgY29uc3Q7
CisgICAgdmlydHVhbCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVu
ZGVyRWxlbWVudE1vZGUpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIHRleHQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGludCB0ZXh0TGVuZ3RoKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcg
c2VsZWN0ZWRUZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCmluZGV4IGMzOThkNTUu
LmJmNjkzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgdW5z
aWduZWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6Z2V0TGVuZ3RoRm9yVGV4dFJhbmdlKCkgY29uc3QK
ICAgICAvLyBHZXQgdGhlIHRleHQgbGVuZ3RoIGZyb20gdGhlIGVsZW1lbnRzIHVuZGVyIHRoZQog
ICAgIC8vIGFjY2Vzc2liaWxpdHkgb2JqZWN0IGlmIHRoZSB2YWx1ZSBpcyBzdGlsbCB6ZXJvLgog
ICAgIGlmICghdGV4dExlbmd0aCAmJiBhbGxvd3NUZXh0UmFuZ2VzKCkpCi0gICAgICAgIHRleHRM
ZW5ndGggPSB0ZXh0VW5kZXJFbGVtZW50KCkubGVuZ3RoKCk7CisgICAgICAgIHRleHRMZW5ndGgg
PSB0ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlRnVsbFRleHQpLmxlbmd0aCgp
OwogCiAgICAgcmV0dXJuIHRleHRMZW5ndGg7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
VGV4dC5jcHAKaW5kZXggZTBiYzczMi4uOTVkNzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VUZXh0LmNwcApAQCAtNTMzLDcgKzUzMyw3IEBAIHN0YXRpYyBnY2hhciogd2Via2l0QWNj
ZXNzaWJsZVRleHRHZXRUZXh0KEF0a1RleHQqIHRleHQsIGdpbnQgc3RhcnRPZmZzZXQsIGdpbnQK
ICAgICBpZiAoZW5kT2Zmc2V0ID09IC0xKSB7CiAgICAgICAgIGVuZCA9IGNvcmVPYmplY3QtPnN0
cmluZ1ZhbHVlKCkubGVuZ3RoKCk7CiAgICAgICAgIGlmICghZW5kKQotICAgICAgICAgICAgZW5k
ID0gY29yZU9iamVjdC0+dGV4dFVuZGVyRWxlbWVudCgpLmxlbmd0aCgpOworICAgICAgICAgICAg
ZW5kID0gY29yZU9iamVjdC0+dGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZUZ1
bGxUZXh0KS5sZW5ndGgoKTsKICAgICB9CiAKICAgICBTdHJpbmcgcmV0OwpAQCAtNTQyLDcgKzU0
Miw3IEBAIHN0YXRpYyBnY2hhciogd2Via2l0QWNjZXNzaWJsZVRleHRHZXRUZXh0KEF0a1RleHQq
IHRleHQsIGdpbnQgc3RhcnRPZmZzZXQsIGdpbnQKICAgICBlbHNlIHsKICAgICAgICAgcmV0ID0g
Y29yZU9iamVjdC0+c3RyaW5nVmFsdWUoKTsKICAgICAgICAgaWYgKCFyZXQpCi0gICAgICAgICAg
ICByZXQgPSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgICAgICByZXQg
PSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlRnVsbFRl
eHQpOwogICAgIH0KIAogICAgIGlmICghcmV0Lmxlbmd0aCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlV3Jh
cHBlckF0ay5jcHAKaW5kZXggYTNlN2MyMy4uMjA3ZDcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFw
cGVyQXRrLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBjb25zdCBnY2hhciogd2Via2l0
QWNjZXNzaWJsZUdldE5hbWUoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBUcnkgdGV4dCB1bmRlciB0aGUgbm9kZS4KLSAgICAgICAgU3RyaW5nIHRleHRVbmRlciA9
IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgU3RyaW5nIHRleHRVbmRl
ciA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQoVGV4dFVuZGVyRWxlbWVudE1vZGVOb3Jt
YWwpOwogICAgICAgICBpZiAodGV4dFVuZGVyLmxlbmd0aCgpKQogICAgICAgICAgICAgcmV0dXJu
IGNhY2hlQW5kUmV0dXJuQXRrUHJvcGVydHkob2JqZWN0LCBBdGtDYWNoZWRBY2Nlc3NpYmxlTmFt
ZSwgdGV4dFVuZGVyKTsKICAgICB9Ci0tIAoxLjcuMTAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206160</attachid>
            <date>2013-07-05 10:43:40 -0700</date>
            <delta_ts>2013-07-10 03:53:08 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2013-07-05-Mario-Sanchez-Prada-mario.prada-samsung.c.patch</filename>
            <type>text/plain</type>
            <size>20455</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAzZjMxNGRlMTlkZDQ0YjUzYzE1OTZjYjZlMWQ0MWJiZGE0ZDZkOWYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogRnJpLCA1IEp1bCAyMDEzIDE4OjM5OjQ4ICswMTAwClN1YmplY3Q6IFtQ
QVRDSF0gMjAxMy0wNy0wNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1
bmcuY29tPgoKICAgICAgICBBWDogTmVlZCBtb3JlIEdUSyBhY2Nlc3NpYmlsaXR5IHRlc3RzIG9m
IHRoZSBvYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCiAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTIxNAoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgQWxsb3cgc3BlY2lmeWluZyBkaWZmZXJlbnQgZnVudGlvbiBt
b2RlcyBmb3IgdGV4dFVuZGVyRWxlbWVudCgpLAogICAgICAgIHNvIHdlIGNhbiBlZmZlY3RpdmVs
eSBhc2sgZm9yIHRoZSAibm9ybWFsIiByZXN1bHQgKGUuZyB0byByZXRyaWV2ZQogICAgICAgIHRl
c3QgdG8gYmUgZXhwb3NlZCBhcyB0aGUgJ3RpdGxlJykgb3IgZm9yIHRoZSBmdWxsIHRleHQgdW5k
ZXIgdGhlCiAgICAgICAgZWxlbWVudCAod2l0aG91dCBvbWl0dGluZyBhbnkgY2hpbGQgaW4gdGhl
IHN1YnRyZWUpLCBuZWVkZWQgZm9yCiAgICAgICAgdGhlIGltcGxlbWVudGF0aW9uIG9mIGF0a190
ZXh0X2dldF90ZXh0KCkgZnVuY3Rpb24gaW4gR1RLL0VGTC4KCiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDogQWRkIG5ldyBlbnVtZXJhdGlvbiB0bwogICAgICAg
IHNwZWNpZnkgdGhlIGRpZmZlcmVudCBtb2RlcyBmb3IgdGV4dFVuZGVyRWxlbWVudCgpLgogICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTogQWRk
ZWQgcGFyYW1ldGVyLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpzaG91bGRVc2VBY2Nlc3NpYmxpdHlPYmplY3RJ
bm5lclRleHQpOiBBbHdheXMgcmV0dXJuCiAgICAgICAgJ3RydWUnIHdoZW4gdXNpbmcgdGhlICJm
dWxsIHRleHQiIG1vZGUuCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
Ojp0ZXh0VW5kZXJFbGVtZW50KTogVXBkYXRlZCBjYWxsCiAgICAgICAgdG8gc2hvdWxkVXNlQWNj
ZXNzaWJsaXR5T2JqZWN0SW5uZXJUZXh0KCkuCiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dCk6IFVwZGF0ZWQgY2FsbCB0bwogICAgICAgIHRleHRV
bmRlckVsZW1lbnQoKSwgcHJlc2VydmluZyB0aGUgcHJldmlvdXMgYmVoYXZpb3IuCiAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0aXRsZSk6IERpdHRvLgogICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c3RyaW5nVmFsdWUpOiBEaXR0by4K
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKCiAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgogICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTog
UmVtb3ZlZAogICAgICAgIEdUSyBzcGVjaWZpYyBjb2RlIGFuZCBleHBhbmQgdGhlIHVzYWdlIG9m
IHRleHQgaXRlcmF0b3JzIGJleW9uZAogICAgICAgIHRleHQgcmVuZGVyIG9iamVjdHMsIHVzaW5n
IGl0IGFsc28gd2hlbiBpbiB0aGUgImZ1bGwgdGV4dCIgbW9kZS4KICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUpOiBVcGRhdGVkIGNhbGwgdG8K
ICAgICAgICB0ZXh0VW5kZXJFbGVtZW50KCksIHByZXNlcnZpbmcgdGhlIHByZXZpb3VzIGJlaGF2
aW9yLgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpuYW1lRm9y
TVNBQSk6IERpdHRvLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0Lmg6CgogICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9iamVj
dEF0ay5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldExlbmd0
aEZvclRleHRSYW5nZSk6IERpdHRvLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dlYktp
dEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcDoKICAgICAgICAod2Via2l0QWNjZXNzaWJsZVRl
eHRHZXRUZXh0KTogVXBkYXRlZCBjYWxsIHRvIHRleHRVbmRlckVsZW1lbnQoKSwKICAgICAgICB1
c2luZyB0aGUgImZ1bGwgdGV4dCIgbW9kZS4KICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdl
dE5hbWUpOiBVcGRhdGVkIGNhbGwgdG8gdGV4dFVuZGVyRWxlbWVudCgpLAogICAgICAgIHVzaW5n
IHRoZSAibm9ybWFsIiBtb2RlLiBUaGlzIGNoYW5nZSBhY3R1YWxseSBtYWtlcyBwb3NzaWJsZSB0
bwogICAgICAgIHJlbW92ZSB0d28gdGVzdHMgdGhhdCB3ZXJlIGV4cGVjdGVkIHRvIGZhaWwgc28g
ZmFyIGluIEdUSy4KCjIwMTMtMDctMDUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFk
YUBzYW1zdW5nLmNvbT4KCiAgICAgICAgQVg6IE5lZWQgbW9yZSBHVEsgYWNjZXNzaWJpbGl0eSB0
ZXN0cyBvZiB0aGUgb2JqZWN0IHJlcGxhY2VtZW50IGNoYXJhY3RlcgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyMTQKCiAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFJlbW92ZWQgdGVzdHMgdGhhdCBhcmUgbm90IGxv
bmdlciBleHBlY3RlZCB0byBmYWlsLgoKICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOiBSZW1vdmVkIHRlc3RzLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgfCAgICAzIC0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDggKysrKysrKysrKysrKysr
KysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgICAyNCArKysrKystLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oICAgICAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIHwgICAgNyArKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgICAzMCArKysrLS0tLS0tLS0KIC4uLi9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCAgICAgIHwgICAgMiArLQogLi4uL2Fj
Y2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwICAgfCAgICAyICstCiAu
Li4vYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCAgICAgICAgICB8ICAgIDQg
Ky0KIC4uLi9hdGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwICAgICAgICAgICAgIHwg
ICAgMiArLQogMTEgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGVhNGMwNDAuLjI2YWY0ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAogMjAx
My0wNy0wNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgog
CisgICAgICAgIEFYOiBOZWVkIG1vcmUgR1RLIGFjY2Vzc2liaWxpdHkgdGVzdHMgb2YgdGhlIG9i
amVjdCByZXBsYWNlbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNTIxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgdGVzdHMgdGhhdCBhcmUgbm90IGxvbmdlciBleHBl
Y3RlZCB0byBmYWlsLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6
IFJlbW92ZWQgdGVzdHMuCisKKzIwMTMtMDctMDUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJp
by5wcmFkYUBzYW1zdW5nLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4gVXBk
YXRlZCBUZXN0RXhwZWN0YXRpb25zIGZpbGUuCiAKICAgICAgICAgQWRkZWQgYWNjZXNzaWJpbGl0
eS9saXN0aXRlbS1saXN0Lmh0bWwgdG8gdGhlIGxpc3Qgb2YgZXhwZWN0ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzI0ZDdiOS4uMjRkOTc3ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgzMiwxMCArODMy
LDcgQEAgd2Via2l0Lm9yZy9iLzk4MzU3IGFjY2Vzc2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNTkgYWNjZXNzaWJpbGl0eS9hcmlhLXRleHQt
cm9sZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNjAgYWNjZXNzaWJpbGl0eS9h
cmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgz
NjEgYWNjZXNzaWJpbGl0eS9idXR0b24tcHJlc3MtYWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi8xMDUyMTQgYWNjZXNzaWJpbGl0eS9idXR0b24tdGl0bGUtdXNlcy1pbm5lci1p
bWctYWx0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85ODM2MyBhY2Nlc3NpYmlsaXR5
L2NhbnZhcy1mYWxsYmFjay1jb250ZW50LTIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
LzEwNTIxNCBhY2Nlc3NpYmlsaXR5L2ZvY3VzYWJsZS1kaXYuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzEwNTIxNCBhY2Nlc3NpYmlsaXR5L2xpc3RpdGVtLXRpdGxlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi85ODM3MCBhY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXNl
bmRzLW5vdGlmaWNhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgzNzEgYWNj
ZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvOTgzNzIgYWNjZXNzaWJpbGl0eS9vbmNsaWNrLWhhbmRsZXJzLmh0bWwg
WyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YTYzZWNhLi5iZGNkMTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTEgQEAKKzIwMTMtMDctMDUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5w
cmFkYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBBWDogTmVlZCBtb3JlIEdUSyBhY2Nlc3NpYmls
aXR5IHRlc3RzIG9mIHRoZSBvYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBzcGVjaWZ5aW5nIGRp
ZmZlcmVudCBmdW50aW9uIG1vZGVzIGZvciB0ZXh0VW5kZXJFbGVtZW50KCksCisgICAgICAgIHNv
IHdlIGNhbiBlZmZlY3RpdmVseSBhc2sgZm9yIHRoZSAibm9ybWFsIiByZXN1bHQgKGUuZyB0byBy
ZXRyaWV2ZQorICAgICAgICB0ZXN0IHRvIGJlIGV4cG9zZWQgYXMgdGhlICd0aXRsZScpIG9yIGZv
ciB0aGUgZnVsbCB0ZXh0IHVuZGVyIHRoZQorICAgICAgICBlbGVtZW50ICh3aXRob3V0IG9taXR0
aW5nIGFueSBjaGlsZCBpbiB0aGUgc3VidHJlZSksIG5lZWRlZCBmb3IKKyAgICAgICAgdGhlIGlt
cGxlbWVudGF0aW9uIG9mIGF0a190ZXh0X2dldF90ZXh0KCkgZnVuY3Rpb24gaW4gR1RLL0VGTC4K
KworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOiBBZGQgbmV3
IGVudW1lcmF0aW9uIHRvCisgICAgICAgIHNwZWNpZnkgdGhlIGRpZmZlcmVudCBtb2RlcyBmb3Ig
dGV4dFVuZGVyRWxlbWVudCgpLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudCk6IEFkZGVkIHBhcmFtZXRlci4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2hvdWxkVXNlQWNjZXNzaWJsaXR5T2JqZWN0SW5uZXJUZXh0KTogQWx3YXlzIHJldHVybgorICAg
ICAgICAndHJ1ZScgd2hlbiB1c2luZyB0aGUgImZ1bGwgdGV4dCIgbW9kZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTogVXBkYXRl
ZCBjYWxsCisgICAgICAgIHRvIHNob3VsZFVzZUFjY2Vzc2libGl0eU9iamVjdElubmVyVGV4dCgp
LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnZpc2libGVUZXh0
KTogVXBkYXRlZCBjYWxsIHRvCisgICAgICAgIHRleHRVbmRlckVsZW1lbnQoKSwgcHJlc2Vydmlu
ZyB0aGUgcHJldmlvdXMgYmVoYXZpb3IuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6dGl0bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0OjpzdHJpbmdWYWx1ZSk6IERpdHRvLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KTogUmVtb3ZlZAorICAgICAgICBH
VEsgc3BlY2lmaWMgY29kZSBhbmQgZXhwYW5kIHRoZSB1c2FnZSBvZiB0ZXh0IGl0ZXJhdG9ycyBi
ZXlvbmQKKyAgICAgICAgdGV4dCByZW5kZXIgb2JqZWN0cywgdXNpbmcgaXQgYWxzbyB3aGVuIGlu
IHRoZSAiZnVsbCB0ZXh0IiBtb2RlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c3RyaW5nVmFsdWUpOiBVcGRhdGVkIGNhbGwgdG8KKyAgICAgICAgdGV4dFVu
ZGVyRWxlbWVudCgpLCBwcmVzZXJ2aW5nIHRoZSBwcmV2aW91cyBiZWhhdmlvci4KKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5hbWVGb3JNU0FBKTogRGl0dG8u
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldExlbmd0aEZvclRleHRS
YW5nZSk6IERpdHRvLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNz
aWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZVRleHRHZXRU
ZXh0KTogVXBkYXRlZCBjYWxsIHRvIHRleHRVbmRlckVsZW1lbnQoKSwKKyAgICAgICAgdXNpbmcg
dGhlICJmdWxsIHRleHQiIG1vZGUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0
QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdldE5h
bWUpOiBVcGRhdGVkIGNhbGwgdG8gdGV4dFVuZGVyRWxlbWVudCgpLAorICAgICAgICB1c2luZyB0
aGUgIm5vcm1hbCIgbW9kZS4gVGhpcyBjaGFuZ2UgYWN0dWFsbHkgbWFrZXMgcG9zc2libGUgdG8K
KyAgICAgICAgcmVtb3ZlIHR3byB0ZXN0cyB0aGF0IHdlcmUgZXhwZWN0ZWQgdG8gZmFpbCBzbyBm
YXIgaW4gR1RLLgorCiAyMDEzLTA3LTA1ICBCZW5qYW1pbiBEdXBvbnQgICA8YmR1cG9udEBuZHMu
Y29tPgogCiAgICAgICAgIFNlZ21lbnRhdGlvbiBmYXVsdCBvY2N1cnJlZCB3aGVuIElDVSBkYXRh
IGxpYnJhcnkgZG9lc24ndCBlbWJlZCB0aGUgZXhwZWN0ZWQgZW5jb2RpbmcuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Qu
Y3BwCmluZGV4IGYwODc2ZTUuLjY1N2MwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0xMjc5LDcg
KzEyNzksNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4dChWZWN0
b3I8QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0T3JkZXIpCiAgICAgICAgIHVzZVRleHRVbmRlckVs
ZW1lbnQgPSB0cnVlOwogICAgIAogICAgIGlmICh1c2VUZXh0VW5kZXJFbGVtZW50KSB7Ci0gICAg
ICAgIFN0cmluZyB0ZXh0ID0gdGV4dFVuZGVyRWxlbWVudCgpOworICAgICAgICBTdHJpbmcgdGV4
dCA9IHRleHRVbmRlckVsZW1lbnQoVGV4dFVuZGVyRWxlbWVudE1vZGVOb3JtYWwpOwogICAgICAg
ICBpZiAoIXRleHQuaXNFbXB0eSgpKQogICAgICAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nl
c3NpYmlsaXR5VGV4dCh0ZXh0LCBDaGlsZHJlblRleHQpKTsKICAgICB9CkBAIC0xNTAzLDggKzE1
MDMsMTIgQEAgdW5zaWduZWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmhpZXJhcmNoaWNhbExl
dmVsKCkgY29uc3QKIAogLy8gV2hlbiBidWlsZGluZyB0aGUgdGV4dFVuZGVyRWxlbWVudCBmb3Ig
YW4gb2JqZWN0LCBkZXRlcm1pbmUgd2hldGhlciBvciBub3QKIC8vIHdlIHNob3VsZCBpbmNsdWRl
IHRoZSBpbm5lciB0ZXh0IG9mIHRoaXMgZ2l2ZW4gZGVzY2VuZGFudCBvYmplY3Qgb3Igc2tpcCBp
dC4KLXN0YXRpYyBib29sIHNob3VsZFVzZUFjY2Vzc2libGl0eU9iamVjdElubmVyVGV4dChBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmopCitzdGF0aWMgYm9vbCBzaG91bGRVc2VBY2Nlc3NpYmxpdHlP
YmplY3RJbm5lclRleHQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBY2Nlc3NpYmlsaXR5VGV4
dFVuZGVyRWxlbWVudE1vZGUgbW9kZSkKIHsKKyAgICAvLyBEbyBub3QgdXNlIGFueSBoZXVyaXN0
aWMgaWYgd2UgYXJlIGV4cGxpY2l0bHkgYXNraW5nIGZvciB0aGUgZnVsbCB0ZXh0LgorICAgIGlm
IChtb2RlID09IFRleHRVbmRlckVsZW1lbnRNb2RlRnVsbFRleHQpCisgICAgICAgIHJldHVybiB0
cnVlOworCiAgICAgLy8gQ29uc2lkZXIgdGhpcyBoeXBvdGhldGljYWwgZXhhbXBsZToKICAgICAv
LyA8ZGl2IHRhYmluZGV4PTA+CiAgICAgLy8gICA8aDI+CkBAIC0xNTQxLDcgKzE1NDUsNyBAQCBz
dGF0aWMgYm9vbCBzaG91bGRVc2VBY2Nlc3NpYmxpdHlPYmplY3RJbm5lclRleHQoQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqKQogICAgIHJldHVybiB0cnVlOwogfQogCi1TdHJpbmcgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJF
bGVtZW50TW9kZSBtb2RlKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCk7
CiAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNUZXh0Tm9kZSgpKQpAQCAtMTU0OSw3ICsxNTUzLDcg
QEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KCkgY29u
c3QKIAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBmb3IgKEFjY2Vzc2liaWxpdHlP
YmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkgewotICAgICAgICBpZiAoIXNob3VsZFVzZUFjY2Vzc2libGl0eU9iamVjdElubmVy
VGV4dChjaGlsZCkpCisgICAgICAgIGlmICghc2hvdWxkVXNlQWNjZXNzaWJsaXR5T2JqZWN0SW5u
ZXJUZXh0KGNoaWxkLCBtb2RlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlm
IChjaGlsZC0+aXNBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCgpKSB7CkBAIC0xNTYzLDcgKzE1Njcs
NyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQoKSBj
b25zdAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgU3RyaW5nIGNoaWxkVGV4
dCA9IGNoaWxkLT50ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgIFN0cmluZyBjaGlsZFRleHQg
PSBjaGlsZC0+dGV4dFVuZGVyRWxlbWVudChtb2RlKTsKICAgICAgICAgaWYgKGNoaWxkVGV4dC5s
ZW5ndGgoKSkgewogICAgICAgICAgICAgaWYgKGJ1aWxkZXIubGVuZ3RoKCkpCiAgICAgICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKQEAgLTE2MTEsNyArMTYxNSw3IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUoKSBjb25zdAogICAgIGNhc2UgTWVudUl0ZW1S
b2xlOgogICAgIGNhc2UgUmFkaW9CdXR0b25Sb2xlOgogICAgIGNhc2UgVGFiUm9sZToKLSAgICAg
ICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIHRleHRVbmRlckVs
ZW1lbnQoVGV4dFVuZGVyRWxlbWVudE1vZGVOb3JtYWwpOwogICAgIC8vIFNWR1Jvb3RzIHNob3Vs
ZCBub3QgdXNlIHRoZSB0ZXh0IHVuZGVyIGl0c2VsZiBhcyBhIHRpdGxlLiBUaGF0IGNvdWxkIGlu
Y2x1ZGUgdGhlIHRleHQgb2Ygb2JqZWN0cyBsaWtlIDx0ZXh0Pi4KICAgICBjYXNlIFNWR1Jvb3RS
b2xlOgogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xNjIwLDEyICsxNjI0LDEyIEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGl0bGUoKSBjb25zdAogICAgIH0KIAogICAg
IGlmIChpc0hlYWRpbmcoKSB8fCBpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIHRleHRVbmRlckVs
ZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoVGV4dFVuZGVyRWxlbWVu
dE1vZGVOb3JtYWwpOwogCiAgICAgLy8gSWYgaXQncyBmb2N1c2FibGUgYnV0IGl0J3Mgbm90IGNv
bnRlbnQgZWRpdGFibGUgb3IgYSBrbm93biBjb250cm9sIHR5cGUsIHRoZW4gaXQgd2lsbCBhcHBl
YXIgdG8gICAgICAgICAgICAgICAgICAKICAgICAvLyB0aGUgdXNlciBhcyBhIHNpbmdsZSBhdG9t
aWMgb2JqZWN0LCBzbyB3ZSBzaG91bGQgdXNlIGl0cyB0ZXh0IGFzIHRoZSBkZWZhdWx0IHRpdGxl
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgIGlmIChpc0dlbmVyaWNGb2N1c2Fi
bGVFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiB0ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAg
IHJldHVybiB0ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlTm9ybWFsKTsKIAog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KQEAgLTE2NjEsMTIgKzE2NjUsMTIgQEAgU3RyaW5nIEFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0CiAgICAgaWYgKGFyaWFS
b2xlQXR0cmlidXRlKCkgPT0gU3RhdGljVGV4dFJvbGUpIHsKICAgICAgICAgU3RyaW5nIHN0YXRp
Y1RleHQgPSB0ZXh0KCk7CiAgICAgICAgIGlmICghc3RhdGljVGV4dC5sZW5ndGgoKSkKLSAgICAg
ICAgICAgIHN0YXRpY1RleHQgPSB0ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgICAgICBzdGF0
aWNUZXh0ID0gdGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZU5vcm1hbCk7CiAg
ICAgICAgIHJldHVybiBzdGF0aWNUZXh0OwogICAgIH0KIAogICAgIGlmIChub2RlLT5pc1RleHRO
b2RlKCkpCi0gICAgICAgIHJldHVybiB0ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgIHJldHVy
biB0ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlTm9ybWFsKTsKIAogICAgIGlm
IChub2RlLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpIHsKICAgICAgICAgSFRNTFNlbGVjdEVsZW1l
bnQqIHNlbGVjdEVsZW1lbnQgPSB0b0hUTUxTZWxlY3RFbGVtZW50KG5vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5o
CmluZGV4IDU1NjQxZWIuLjAzYTMzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTEyMCw3ICsxMjAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5QnV0dG9uU3RhdGUgY2hlY2tib3hP
clJhZGlvVmFsdWUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdW5zaWduZWQgaGllcmFyY2hpY2Fs
TGV2ZWwoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KCkgY29u
c3Q7CisgICAgdmlydHVhbCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4
dFVuZGVyRWxlbWVudE1vZGUpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxp
dHlEZXNjcmlwdGlvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgdGl0bGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggNDQ4NzNhMC4u
MWQwMjg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKQEAgLTIzOSw2ICsyMzksMTEgQEAgc3RydWN0IEFjY2Vzc2liaWxpdHlU
ZXh0IHsKICAgICAgICAgdGV4dEVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKICAgICB9CiB9Owor
CitlbnVtIEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSB7CisgICAgVGV4dFVuZGVy
RWxlbWVudE1vZGVOb3JtYWwsCisgICAgVGV4dFVuZGVyRWxlbWVudE1vZGVGdWxsVGV4dAorfTsK
ICAgICAKIGVudW0gQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIHsKICAgICBBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb25WZXJ0aWNhbCwKQEAgLTU4NSw3ICs1OTAsNyBAQCBwdWJsaWM6CiAKICAgICAv
LyBNZXRob2RzIGZvciBkZXRlcm1pbmluZyBhY2Nlc3NpYmlsaXR5IHRleHQuCiAgICAgdmlydHVh
bCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHZp
cnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsg
fQorICAgIHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRV
bmRlckVsZW1lbnRNb2RlKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwg
U3RyaW5nIHRleHQoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgaW50
IHRleHRMZW5ndGgoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgYXJp
YUxhYmVsZWRCeUF0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCAwNWZkMjI5Li42ZjVmNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAK
QEAgLTYyNSw3ICs2MjUsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGVs
cFRleHQoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQoKSBjb25zdAorU3RyaW5nIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRV
bmRlckVsZW1lbnRNb2RlIG1vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3JlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC02NDQsMjMgKzY0NCw5IEBAIFN0cmluZyBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0VW5kZXJFbGVtZW50KCkgY29uc3QKICAgICB9CiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAvLyBPbiBHVEssIGFsd2F5cyB1c2UgYSB0ZXh0
IGl0ZXJhdG9yIGluIG9yZGVyIHRvIGdldCBlbWJlZGRlZCBvYmplY3QgY2hhcmFjdGVycy4KLSAg
ICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgZW1iZWRkZWQgb2JqZWN0IGNoYXJhY3RlcnMgdG8g
dGhlIG90aGVyIGNvZGVwYXRocyB0aGF0IHRyeQotICAgIC8vIHRvIGJ1aWxkIHRoZSBhY2Nlc3Np
YmxlIHRleHQgcmVjdXJzaXZlbHksIHNvIHRoaXMgc3BlY2lhbCBjYXNlIGlzbid0IG5lZWRlZC4K
LSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjE0Ci0g
ICAgaWYgKE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsKLSAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCkpIHsKLSAgICAgICAgICAgIC8vIGNhdGNo
IHN0YWxlIFdlYkNvcmVBWE9iamVjdCAoc2VlIDxyZGFyOi8vcHJvYmxlbS8zOTYwMTk2PikKLSAg
ICAgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAhPSBub2RlLT5kb2N1bWVudCgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgICAgICAgICAgcmV0dXJuIHBsYWlu
VGV4dChyYW5nZU9mQ29udGVudHMobm9kZSkuZ2V0KCksIHRleHRJdGVyYXRvckJlaGF2aW9yRm9y
VGV4dFJhbmdlKCkpOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAobV9yZW5k
ZXJlci0+aXNUZXh0KCkpIHsKKyAgICAvLyBXZSB1c2UgYSB0ZXh0IGl0ZXJhdG9yIGZvciB0ZXh0
IG9iamVjdHMgQU5EIGZvciB0aG9zZSBjYXNlcyB3aGVyZSB3ZSBhcmUKKyAgICAvLyBleHBsaWNp
dGx5IGFza2luZyBmb3IgdGhlIGZ1bGwgdGV4dCB1bmRlciBhIGdpdmVuIGVsZW1lbnQuCisgICAg
aWYgKG1fcmVuZGVyZXItPmlzVGV4dCgpIHx8IG1vZGUgPT0gVGV4dFVuZGVyRWxlbWVudE1vZGVG
dWxsVGV4dCkgewogICAgICAgICAvLyBJZiBwb3NzaWJsZSwgdXNlIGEgdGV4dCBpdGVyYXRvciB0
byBnZXQgdGhlIHRleHQsIHNvIHRoYXQgd2hpdGVzcGFjZQogICAgICAgICAvLyBpcyBoYW5kbGVk
IGNvbnNpc3RlbnRseS4KICAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsK
QEAgLTY4Miw3ICs2NjgsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4
dFVuZGVyRWxlbWVudCgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHJlbmRlclRl
eHRPYmplY3QtPnRleHQoKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudChtb2RlKTsKIH0KIAogTm9kZSogQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6bm9kZSgpIGNvbnN0CkBAIC03MDMsMTIgKzY4OSwxMiBAQCBTdHJp
bmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUoKSBjb25zdAogICAgIGlm
IChhcmlhUm9sZUF0dHJpYnV0ZSgpID09IFN0YXRpY1RleHRSb2xlKSB7CiAgICAgICAgIFN0cmlu
ZyBzdGF0aWNUZXh0ID0gdGV4dCgpOwogICAgICAgICBpZiAoIXN0YXRpY1RleHQubGVuZ3RoKCkp
Ci0gICAgICAgICAgICBzdGF0aWNUZXh0ID0gdGV4dFVuZGVyRWxlbWVudCgpOworICAgICAgICAg
ICAgc3RhdGljVGV4dCA9IHRleHRVbmRlckVsZW1lbnQoVGV4dFVuZGVyRWxlbWVudE1vZGVOb3Jt
YWwpOwogICAgICAgICByZXR1cm4gc3RhdGljVGV4dDsKICAgICB9CiAgICAgICAgIAogICAgIGlm
IChtX3JlbmRlcmVyLT5pc1RleHQoKSkKLSAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQo
KTsKKyAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoVGV4dFVuZGVyRWxlbWVudE1vZGVO
b3JtYWwpOwogICAgIAogICAgIGlmIChjc3NCb3ggJiYgY3NzQm94LT5pc01lbnVMaXN0KCkpIHsK
ICAgICAgICAgLy8gUmVuZGVyTWVudUxpc3Qgd2lsbCBnbyBzdHJhaWdodCB0byB0aGUgdGV4dCgp
IG9mIGl0cyBzZWxlY3RlZCBpdGVtLgpAQCAtMzI3OCw3ICszMjY0LDcgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpoYXNVbmRlcmxpbmUoKSBjb25zdAogU3RyaW5nIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6Om5hbWVGb3JNU0FBKCkgY29uc3QKIHsKICAgICBpZiAobV9yZW5k
ZXJlciAmJiBtX3JlbmRlcmVyLT5pc1RleHQoKSkKLSAgICAgICAgcmV0dXJuIHRleHRVbmRlckVs
ZW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIHRleHRVbmRlckVsZW1lbnQoVGV4dFVuZGVyRWxlbWVu
dE1vZGVOb3JtYWwpOwogCiAgICAgcmV0dXJuIHRpdGxlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmlu
ZGV4IDZkMmZiMDIuLmY5OWQyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0xNDQsNyArMTQ0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24oKSBjb25z
dDsKICAgICB2aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
U3RyaW5nIGhlbHBUZXh0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgdGV4dFVuZGVyRWxl
bWVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNz
aWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyB0
ZXh0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgdGV4dExlbmd0aCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgU3RyaW5nIHNlbGVjdGVkVGV4dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcApp
bmRleCBjMzk4ZDU1Li5iZjY5MzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcApAQCAtMTY0LDcg
KzE2NCw3IEBAIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmdldExlbmd0aEZvclRleHRS
YW5nZSgpIGNvbnN0CiAgICAgLy8gR2V0IHRoZSB0ZXh0IGxlbmd0aCBmcm9tIHRoZSBlbGVtZW50
cyB1bmRlciB0aGUKICAgICAvLyBhY2Nlc3NpYmlsaXR5IG9iamVjdCBpZiB0aGUgdmFsdWUgaXMg
c3RpbGwgemVyby4KICAgICBpZiAoIXRleHRMZW5ndGggJiYgYWxsb3dzVGV4dFJhbmdlcygpKQot
ICAgICAgICB0ZXh0TGVuZ3RoID0gdGV4dFVuZGVyRWxlbWVudCgpLmxlbmd0aCgpOworICAgICAg
ICB0ZXh0TGVuZ3RoID0gdGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVtZW50TW9kZUZ1bGxU
ZXh0KS5sZW5ndGgoKTsKIAogICAgIHJldHVybiB0ZXh0TGVuZ3RoOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFj
ZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNz
aWJsZUludGVyZmFjZVRleHQuY3BwCmluZGV4IGFlMmY4OGQuLmQ0YmUyZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZh
Y2VUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRB
Y2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKQEAgLTUzNSw3ICs1MzUsNyBAQCBzdGF0aWMgZ2No
YXIqIHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0VGV4dChBdGtUZXh0KiB0ZXh0LCBnaW50IHN0YXJ0
T2Zmc2V0LCBnaW50CiAgICAgaWYgKGVuZE9mZnNldCA9PSAtMSkgewogICAgICAgICBlbmQgPSBj
b3JlT2JqZWN0LT5zdHJpbmdWYWx1ZSgpLmxlbmd0aCgpOwogICAgICAgICBpZiAoIWVuZCkKLSAg
ICAgICAgICAgIGVuZCA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQoKS5sZW5ndGgoKTsK
KyAgICAgICAgICAgIGVuZCA9IGNvcmVPYmplY3QtPnRleHRVbmRlckVsZW1lbnQoVGV4dFVuZGVy
RWxlbWVudE1vZGVGdWxsVGV4dCkubGVuZ3RoKCk7CiAgICAgfQogCiAgICAgU3RyaW5nIHJldDsK
QEAgLTU0NCw3ICs1NDQsNyBAQCBzdGF0aWMgZ2NoYXIqIHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0
VGV4dChBdGtUZXh0KiB0ZXh0LCBnaW50IHN0YXJ0T2Zmc2V0LCBnaW50CiAgICAgZWxzZSB7CiAg
ICAgICAgIHJldCA9IGNvcmVPYmplY3QtPnN0cmluZ1ZhbHVlKCk7CiAgICAgICAgIGlmICghcmV0
KQotICAgICAgICAgICAgcmV0ID0gY29yZU9iamVjdC0+dGV4dFVuZGVyRWxlbWVudCgpOworICAg
ICAgICAgICAgcmV0ID0gY29yZU9iamVjdC0+dGV4dFVuZGVyRWxlbWVudChUZXh0VW5kZXJFbGVt
ZW50TW9kZUZ1bGxUZXh0KTsKICAgICB9CiAKICAgICBpZiAoIXJldC5sZW5ndGgoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJs
ZVdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0
QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCmluZGV4IGM0YjMyYTAuLjY3ZjZlNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVXcmFw
cGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRB
Y2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgY29uc3Qg
Z2NoYXIqIHdlYmtpdEFjY2Vzc2libGVHZXROYW1lKEF0a09iamVjdCogb2JqZWN0KQogICAgICAg
ICB9CiAKICAgICAgICAgLy8gVHJ5IHRleHQgdW5kZXIgdGhlIG5vZGUuCi0gICAgICAgIFN0cmlu
ZyB0ZXh0VW5kZXIgPSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgIFN0
cmluZyB0ZXh0VW5kZXIgPSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVs
ZW1lbnRNb2RlTm9ybWFsKTsKICAgICAgICAgaWYgKHRleHRVbmRlci5sZW5ndGgoKSkKICAgICAg
ICAgICAgIHJldHVybiBjYWNoZUFuZFJldHVybkF0a1Byb3BlcnR5KG9iamVjdCwgQXRrQ2FjaGVk
QWNjZXNzaWJsZU5hbWUsIHRleHRVbmRlcik7CiAgICAgfQotLSAKMS43LjEwLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206377</attachid>
            <date>2013-07-10 03:53:08 -0700</date>
            <delta_ts>2013-07-10 09:07:10 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-AX-Allow-requesting-the-full-plain-text-for-an-objec.patch</filename>
            <type>text/plain</type>
            <size>13516</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA4ZTc3OTJlY2IxODk2NGIwMWM3YjQwNjgyMmVhY2Q5NDNiZjVjYmZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogV2VkLCAxMCBKdWwgMjAxMyAxMDowMTo0NiArMDEwMApTdWJqZWN0OiBb
UEFUQ0hdIEFYOiBBbGxvdyByZXF1ZXN0aW5nIHRoZSBmdWxsIHBsYWluIHRleHQgZm9yIGFuIG9i
amVjdCB3aXRoCiB0ZXh0VW5kZXJFbGVtZW50KCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDUyMTQKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKysrKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgfCAgICAzIC0tCiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKysrKysrKysrKysrKysr
KysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAg
IHwgICAxMiArKysrLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmggICAgICAgIHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmggfCAgICA3ICsrKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwICAgIHwgICAyNCArKystLS0tLS0tLS0KIC4uLi9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCAgICAgIHwgICAgMiArLQogLi4uL2FjY2Vz
c2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwICAgfCAgICAyICstCiAuLi4v
YXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCAgICAgICAgICB8ICAgIDQgKy0K
IDEwIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBlYTRjMDQwLi5iYmQxZjM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDctMTAg
IE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBBWDogQWxsb3cgcmVxdWVzdGluZyB0aGUgZnVsbCBwbGFpbiB0ZXh0IGZvciBhbiBvYmplY3Qg
d2l0aCB0ZXh0VW5kZXJFbGVtZW50KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNTIxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbW92ZWQgdGVzdHMgdGhhdCBhcmUgbm90IGxvbmdlciBleHBlY3Rl
ZCB0byBmYWlsLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFJl
bW92ZWQgdGVzdHMuCisKIDIwMTMtMDctMDUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5w
cmFkYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4gVXBkYXRl
ZCBUZXN0RXhwZWN0YXRpb25zIGZpbGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDcyNGQ3YjkuLjI0ZDk3N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC04MzIsMTAgKzgzMiw3IEBAIHdlYmtpdC5vcmcvYi85
ODM1NyBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzk4MzU5IGFjY2Vzc2liaWxpdHkvYXJpYS10ZXh0LXJvbGUuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzk4MzYwIGFjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdlLW1h
cHMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzYxIGFjY2Vzc2liaWxpdHkvYnV0
dG9uLXByZXNzLWFjdGlvbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTA1MjE0IGFj
Y2Vzc2liaWxpdHkvYnV0dG9uLXRpdGxlLXVzZXMtaW5uZXItaW1nLWFsdC5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvOTgzNjMgYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29u
dGVudC0yLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMDUyMTQgYWNjZXNzaWJpbGl0
eS9mb2N1c2FibGUtZGl2Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMDUyMTQgYWNj
ZXNzaWJpbGl0eS9saXN0aXRlbS10aXRsZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
OTgzNzAgYWNjZXNzaWJpbGl0eS9sb2FkaW5nLWlmcmFtZS1zZW5kcy1ub3RpZmljYXRpb24uaHRt
bCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MzcxIGFjY2Vzc2liaWxpdHkvbG9hZGluZy1p
ZnJhbWUtdXBkYXRlcy1heHRyZWUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4Mzcy
IGFjY2Vzc2liaWxpdHkvb25jbGljay1oYW5kbGVycy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOWE2M2VjYS4uMTFkYzUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEz
LTA3LTEwICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgQVg6IEFsbG93IHJlcXVlc3RpbmcgdGhlIGZ1bGwgcGxhaW4gdGV4dCBmb3IgYW4g
b2JqZWN0IHdpdGggdGV4dFVuZGVyRWxlbWVudCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBzcGVjaWZ5aW5nIGRpZmZlcmVudCBmdW5jdGlv
biBtb2RlcyBmb3IgdGV4dFVuZGVyRWxlbWVudCgpLAorICAgICAgICBzbyB3ZSBjYW4gZWZmZWN0
aXZlbHkgYXNrIGZvciB0aGUgIm5vcm1hbCIgcmVzdWx0IChlLmcgdG8gcmV0cmlldmUKKyAgICAg
ICAgdGVzdCB0byBiZSBleHBvc2VkIGFzIHRoZSAndGl0bGUnKSBvciBmb3IgdGhlIGZ1bGwgdGV4
dCB1bmRlciB0aGUKKyAgICAgICAgZWxlbWVudCAod2l0aG91dCBvbWl0dGluZyBhbnkgY2hpbGQg
aW4gdGhlIHN1YnRyZWUpLiBUaGlzIGlzCisgICAgICAgIG5lZWRlZCBmb3IgdGhlIGltcGxlbWVu
dGF0aW9uIG9mIGF0a190ZXh0X2dldF90ZXh0KCkgaW4gR1RLL0VGTC4KKworICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOiBBZGQgbmV3IGVudW1lcmF0aW9uIHRv
CisgICAgICAgIHNwZWNpZnkgdGhlIGRpZmZlcmVudCBtb2RlcyBmb3IgdGV4dFVuZGVyRWxlbWVu
dCgpLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6dGV4dFVuZGVyRWxl
bWVudCk6IEFkZGVkIHBhcmFtZXRlci4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVXNlQWNjZXNz
aWJsaXR5T2JqZWN0SW5uZXJUZXh0KTogQWx3YXlzIHJldHVybgorICAgICAgICAndHJ1ZScgd2hl
biB1c2luZyB0aGUgImluY2x1ZGUgYWxsIGNoaWxkcmVuIiBtb2RlLgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQpOiBVcGRhdGVkIGNh
bGwKKyAgICAgICAgdG8gc2hvdWxkVXNlQWNjZXNzaWJsaXR5T2JqZWN0SW5uZXJUZXh0KCkuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQp
OiBSZW1vdmVkCisgICAgICAgIEdUSyBzcGVjaWZpYyBjb2RlIGFuZCBleHBhbmQgdGhlIHVzYWdl
IG9mIHRleHQgaXRlcmF0b3JzIGJleW9uZAorICAgICAgICB0ZXh0IHJlbmRlciBvYmplY3RzLCB1
c2luZyBpdCBhbHNvIHdoZW4gaW4gdGhlICJpbmNsdWRlIGFsbAorICAgICAgICBjaGlsZHJlbiIg
bW9kZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aDoKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Z2V0TGVuZ3RoRm9y
VGV4dFJhbmdlKTogVXBkYXRlZAorICAgICAgICBjYWxsIHRvIHRleHRVbmRlckVsZW1lbnQoKSwg
cHJlc2VydmluZyB0aGUgcHJldmlvdXMgYmVoYXZpb3IuCisKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHA6CisgICAgICAgICh3ZWJr
aXRBY2Nlc3NpYmxlVGV4dEdldFRleHQpOiBVcGRhdGVkIGNhbGwgdG8gdGV4dFVuZGVyRWxlbWVu
dCgpLAorICAgICAgICB1c2luZyB0aGUgImluY2x1ZGUgYWxsIGNoaWxkcmVuIiBtb2RlLgorCiAy
MDEzLTA3LTA1ICBCZW5qYW1pbiBEdXBvbnQgICA8YmR1cG9udEBuZHMuY29tPgogCiAgICAgICAg
IFNlZ21lbnRhdGlvbiBmYXVsdCBvY2N1cnJlZCB3aGVuIElDVSBkYXRhIGxpYnJhcnkgZG9lc24n
dCBlbWJlZCB0aGUgZXhwZWN0ZWQgZW5jb2RpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGYwODc2
ZTUuLjgwNjM4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0xNTAzLDggKzE1MDMsMTIgQEAgdW5z
aWduZWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmhpZXJhcmNoaWNhbExldmVsKCkgY29uc3QK
IAogLy8gV2hlbiBidWlsZGluZyB0aGUgdGV4dFVuZGVyRWxlbWVudCBmb3IgYW4gb2JqZWN0LCBk
ZXRlcm1pbmUgd2hldGhlciBvciBub3QKIC8vIHdlIHNob3VsZCBpbmNsdWRlIHRoZSBpbm5lciB0
ZXh0IG9mIHRoaXMgZ2l2ZW4gZGVzY2VuZGFudCBvYmplY3Qgb3Igc2tpcCBpdC4KLXN0YXRpYyBi
b29sIHNob3VsZFVzZUFjY2Vzc2libGl0eU9iamVjdElubmVyVGV4dChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmopCitzdGF0aWMgYm9vbCBzaG91bGRVc2VBY2Nlc3NpYmxpdHlPYmplY3RJbm5lclRl
eHQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVu
dE1vZGUgbW9kZSkKIHsKKyAgICAvLyBEbyBub3QgdXNlIGFueSBoZXVyaXN0aWMgaWYgd2UgYXJl
IGV4cGxpY2l0bHkgYXNraW5nIHRvIGluY2x1ZGUgYWxsIHRoZSBjaGlsZHJlbi4KKyAgICBpZiAo
bW9kZSA9PSBUZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1ZGVBbGxDaGlsZHJlbikKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKICAgICAvLyBDb25zaWRlciB0aGlzIGh5cG90aGV0aWNhbCBleGFtcGxl
OgogICAgIC8vIDxkaXYgdGFiaW5kZXg9MD4KICAgICAvLyAgIDxoMj4KQEAgLTE1NDEsNyArMTU0
NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFVzZUFjY2Vzc2libGl0eU9iamVjdElubmVyVGV4dChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVN0cmluZyBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0CitTdHJpbmcg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRl
eHRVbmRlckVsZW1lbnRNb2RlIG1vZGUpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMt
Pm5vZGUoKTsKICAgICBpZiAobm9kZSAmJiBub2RlLT5pc1RleHROb2RlKCkpCkBAIC0xNTQ5LDcg
KzE1NTMsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnRleHRVbmRlckVsZW1l
bnQoKSBjb25zdAogCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwogICAgIGZvciAoQWNjZXNz
aWJpbGl0eU9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghc2hvdWxkVXNlQWNjZXNzaWJsaXR5T2Jq
ZWN0SW5uZXJUZXh0KGNoaWxkKSkKKyAgICAgICAgaWYgKCFzaG91bGRVc2VBY2Nlc3NpYmxpdHlP
YmplY3RJbm5lclRleHQoY2hpbGQsIG1vZGUpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgaWYgKGNoaWxkLT5pc0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KCkpIHsKQEAgLTE1NjMs
NyArMTU2Nyw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dFVuZGVyRWxl
bWVudCgpIGNvbnN0CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBTdHJpbmcg
Y2hpbGRUZXh0ID0gY2hpbGQtPnRleHRVbmRlckVsZW1lbnQoKTsKKyAgICAgICAgU3RyaW5nIGNo
aWxkVGV4dCA9IGNoaWxkLT50ZXh0VW5kZXJFbGVtZW50KG1vZGUpOwogICAgICAgICBpZiAoY2hp
bGRUZXh0Lmxlbmd0aCgpKSB7CiAgICAgICAgICAgICBpZiAoYnVpbGRlci5sZW5ndGgoKSkKICAg
ICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDU1NjQx
ZWIuLmJjNzA4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5QnV0dG9uU3RhdGUgY2hlY2tib3hPclJhZGlvVmFsdWUo
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgdW5zaWduZWQgaGllcmFyY2hpY2FsTGV2ZWwoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KCkgY29uc3Q7CisgICAgdmly
dHVhbCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVu
dE1vZGUgPSBUZXh0VW5kZXJFbGVtZW50TW9kZVNraXBJZ25vcmVkQ2hpbGRyZW4pIGNvbnN0Owog
ICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0OwogICAg
IHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgdGl0
bGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKaW5kZXggNDQ4NzNhMC4uNjgwZTM2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTIzOSw2ICsy
MzksMTEgQEAgc3RydWN0IEFjY2Vzc2liaWxpdHlUZXh0IHsKICAgICAgICAgdGV4dEVsZW1lbnRz
LmFwcGVuZChlbGVtZW50KTsKICAgICB9CiB9OworCitlbnVtIEFjY2Vzc2liaWxpdHlUZXh0VW5k
ZXJFbGVtZW50TW9kZSB7CisgICAgVGV4dFVuZGVyRWxlbWVudE1vZGVTa2lwSWdub3JlZENoaWxk
cmVuLAorICAgIFRleHRVbmRlckVsZW1lbnRNb2RlSW5jbHVkZUFsbENoaWxkcmVuCit9OwogICAg
IAogZW51bSBBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24gewogICAgIEFjY2Vzc2liaWxpdHlPcmll
bnRhdGlvblZlcnRpY2FsLApAQCAtNTg1LDcgKzU5MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1l
dGhvZHMgZm9yIGRldGVybWluaW5nIGFjY2Vzc2liaWxpdHkgdGV4dC4KICAgICB2aXJ0dWFsIFN0
cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9Ci0gICAgdmlydHVh
bCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9Cisg
ICAgdmlydHVhbCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVy
RWxlbWVudE1vZGUgPSBUZXh0VW5kZXJFbGVtZW50TW9kZVNraXBJZ25vcmVkQ2hpbGRyZW4pIGNv
bnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgdGV4dCgpIGNvbnN0
IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBpbnQgdGV4dExlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBhcmlhTGFiZWxlZEJ5QXR0cmlidXRl
KCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDA1
ZmQyMjkuLmNjZjllZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNjI1LDcgKzYyNSw3IEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCgpIGNvbnN0CiAgICAg
cmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUgbW9k
ZSkgY29uc3QKIHsKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKQEAgLTY0NCwyMyArNjQ0LDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnRleHRVbmRlckVsZW1lbnQoKSBjb25zdAogICAgIH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
R1RLKQotICAgIC8vIE9uIEdUSywgYWx3YXlzIHVzZSBhIHRleHQgaXRlcmF0b3IgaW4gb3JkZXIg
dG8gZ2V0IGVtYmVkZGVkIG9iamVjdCBjaGFyYWN0ZXJzLgotICAgIC8vIFRPRE86IEFkZCBzdXBw
b3J0IGZvciBlbWJlZGRlZCBvYmplY3QgY2hhcmFjdGVycyB0byB0aGUgb3RoZXIgY29kZXBhdGhz
IHRoYXQgdHJ5Ci0gICAgLy8gdG8gYnVpbGQgdGhlIGFjY2Vzc2libGUgdGV4dCByZWN1cnNpdmVs
eSwgc28gdGhpcyBzcGVjaWFsIGNhc2UgaXNuJ3QgbmVlZGVkLgotICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyMTQKLSAgICBpZiAoTm9kZSogbm9kZSA9
IHRoaXMtPm5vZGUoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKSkgewotICAgICAgICAgICAgLy8gY2F0Y2ggc3RhbGUgV2ViQ29yZUFYT2Jq
ZWN0IChzZWUgPHJkYXI6Ly9wcm9ibGVtLzM5NjAxOTY+KQotICAgICAgICAgICAgaWYgKGZyYW1l
LT5kb2N1bWVudCgpICE9IG5vZGUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwotCi0gICAgICAgICAgICByZXR1cm4gcGxhaW5UZXh0KHJhbmdlT2ZDb250ZW50
cyhub2RlKS5nZXQoKSwgdGV4dEl0ZXJhdG9yQmVoYXZpb3JGb3JUZXh0UmFuZ2UoKSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChtX3JlbmRlcmVyLT5pc1RleHQoKSkgewor
ICAgIC8vIFdlIHVzZSBhIHRleHQgaXRlcmF0b3IgZm9yIHRleHQgb2JqZWN0cyBBTkQgZm9yIHRo
b3NlIGNhc2VzIHdoZXJlIHdlIGFyZQorICAgIC8vIGV4cGxpY2l0bHkgYXNraW5nIGZvciB0aGUg
ZnVsbCB0ZXh0IHVuZGVyIGEgZ2l2ZW4gZWxlbWVudC4KKyAgICBpZiAobV9yZW5kZXJlci0+aXNU
ZXh0KCkgfHwgbW9kZSA9PSBUZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1ZGVBbGxDaGlsZHJlbikg
ewogICAgICAgICAvLyBJZiBwb3NzaWJsZSwgdXNlIGEgdGV4dCBpdGVyYXRvciB0byBnZXQgdGhl
IHRleHQsIHNvIHRoYXQgd2hpdGVzcGFjZQogICAgICAgICAvLyBpcyBoYW5kbGVkIGNvbnNpc3Rl
bnRseS4KICAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSB0aGlzLT5ub2RlKCkpIHsKQEAgLTY4Miw3
ICs2NjgsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dFVuZGVyRWxl
bWVudCgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHJlbmRlclRleHRPYmplY3Qt
PnRleHQoKSk7CiAgICAgfQogICAgIAotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6dGV4dFVuZGVyRWxlbWVudChtb2RlKTsKIH0KIAogTm9kZSogQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6bm9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDZkMmZiMDIuLmM0NTEy
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0xNDQsNyArMTQ0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0
cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGhlbHBUZXh0KCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudCgpIGNvbnN0OworICAg
IHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVs
ZW1lbnRNb2RlID0gVGV4dFVuZGVyRWxlbWVudE1vZGVTa2lwSWdub3JlZENoaWxkcmVuKSBjb25z
dDsKICAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgdGV4
dExlbmd0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIHNlbGVjdGVkVGV4dCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvQWNjZXNzaWJp
bGl0eU9iamVjdEF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nl
c3NpYmlsaXR5T2JqZWN0QXRrLmNwcAppbmRleCBjMzk4ZDU1Li44YmFjMDljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0QXRrLmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHVuc2lnbmVkIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmdldExlbmd0aEZvclRleHRSYW5nZSgpIGNvbnN0CiAgICAgLy8gR2V0IHRoZSB0ZXh0
IGxlbmd0aCBmcm9tIHRoZSBlbGVtZW50cyB1bmRlciB0aGUKICAgICAvLyBhY2Nlc3NpYmlsaXR5
IG9iamVjdCBpZiB0aGUgdmFsdWUgaXMgc3RpbGwgemVyby4KICAgICBpZiAoIXRleHRMZW5ndGgg
JiYgYWxsb3dzVGV4dFJhbmdlcygpKQotICAgICAgICB0ZXh0TGVuZ3RoID0gdGV4dFVuZGVyRWxl
bWVudCgpLmxlbmd0aCgpOworICAgICAgICB0ZXh0TGVuZ3RoID0gdGV4dFVuZGVyRWxlbWVudChU
ZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1ZGVBbGxDaGlsZHJlbikubGVuZ3RoKCk7CiAKICAgICBy
ZXR1cm4gdGV4dExlbmd0aDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcApp
bmRleCBhZTJmODhkLi4zMzk0Yzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQu
Y3BwCkBAIC01MzUsNyArNTM1LDcgQEAgc3RhdGljIGdjaGFyKiB3ZWJraXRBY2Nlc3NpYmxlVGV4
dEdldFRleHQoQXRrVGV4dCogdGV4dCwgZ2ludCBzdGFydE9mZnNldCwgZ2ludAogICAgIGlmIChl
bmRPZmZzZXQgPT0gLTEpIHsKICAgICAgICAgZW5kID0gY29yZU9iamVjdC0+c3RyaW5nVmFsdWUo
KS5sZW5ndGgoKTsKICAgICAgICAgaWYgKCFlbmQpCi0gICAgICAgICAgICBlbmQgPSBjb3JlT2Jq
ZWN0LT50ZXh0VW5kZXJFbGVtZW50KCkubGVuZ3RoKCk7CisgICAgICAgICAgICBlbmQgPSBjb3Jl
T2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlSW5jbHVkZUFsbENo
aWxkcmVuKS5sZW5ndGgoKTsKICAgICB9CiAKICAgICBTdHJpbmcgcmV0OwpAQCAtNTQ0LDcgKzU0
NCw3IEBAIHN0YXRpYyBnY2hhciogd2Via2l0QWNjZXNzaWJsZVRleHRHZXRUZXh0KEF0a1RleHQq
IHRleHQsIGdpbnQgc3RhcnRPZmZzZXQsIGdpbnQKICAgICBlbHNlIHsKICAgICAgICAgcmV0ID0g
Y29yZU9iamVjdC0+c3RyaW5nVmFsdWUoKTsKICAgICAgICAgaWYgKCFyZXQpCi0gICAgICAgICAg
ICByZXQgPSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KCk7CisgICAgICAgICAgICByZXQg
PSBjb3JlT2JqZWN0LT50ZXh0VW5kZXJFbGVtZW50KFRleHRVbmRlckVsZW1lbnRNb2RlSW5jbHVk
ZUFsbENoaWxkcmVuKTsKICAgICB9CiAKICAgICBpZiAoIXJldC5sZW5ndGgoKSkgewotLSAKMS43
LjEwLjQKCg==
</data>
<flag name="review"
          id="228049"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>