<?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>147051</bug_id>
          
          <creation_ts>2015-07-17 14:42:58 -0700</creation_ts>
          <short_desc>Add support for new.target.</short_desc>
          <delta_ts>2015-07-21 13:23:50 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>keith_miller</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1110221</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-17 14:42:58 -0700</bug_when>
    <thetext>ES6 specifies a new expression new.target that is used to get the target of a &quot;new&quot; call, this is analogus to a this for constructors. For example, if someone called &quot;new function Foo() { print(new.target) }&quot; the resulting output would be the same as &quot;print(Foo.toString())&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110226</commentid>
    <comment_count>1</comment_count>
      <attachid>256992</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-17 14:54:03 -0700</bug_when>
    <thetext>Created attachment 256992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110227</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-17 14:55:56 -0700</bug_when>
    <thetext>Attachment 256992 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/JavaScriptCore/parser/Parser.cpp:2918:  Missing space before ( in if(  [whitespace/parens] [5]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110232</commentid>
    <comment_count>3</comment_count>
      <attachid>256994</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-17 14:59:44 -0700</bug_when>
    <thetext>Created attachment 256994
Patch

Fixed a url issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110387</commentid>
    <comment_count>4</comment_count>
      <attachid>256994</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-18 14:57:08 -0700</bug_when>
    <thetext>Comment on attachment 256994
Patch

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

Looks nice! only few nits.

&gt; Source/JavaScriptCore/parser/Parser.cpp:2929
&gt; +    if (newCount &amp;&amp; m_token.m_type == DOT) {

Let&apos;s use `match(DOT)`.

&gt; Source/JavaScriptCore/parser/Parser.cpp:2931
&gt; +        const Identifier* ident = m_token.m_data.ident;

Before extracting ident* from m_token, using `if (match(IDENT))` is preferable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110508</commentid>
    <comment_count>5</comment_count>
      <attachid>256994</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-07-19 12:03:03 -0700</bug_when>
    <thetext>Comment on attachment 256994
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:190
&gt; +RegisterID* TargetNode::emitBytecode(BytecodeGenerator&amp; generator, RegisterID* dst)

Nit: Can we call this NewTargetNode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110648</commentid>
    <comment_count>6</comment_count>
      <attachid>257097</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-20 10:34:59 -0700</bug_when>
    <thetext>Created attachment 257097
Patch

Made the changes recommended. Also, improved the error message if the user puts the wrong identifier after &quot;new.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110649</commentid>
    <comment_count>7</comment_count>
      <attachid>257098</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-20 10:37:28 -0700</bug_when>
    <thetext>Created attachment 257098
Patch

Had an extra period in the error message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110653</commentid>
    <comment_count>8</comment_count>
      <attachid>257099</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-20 10:45:40 -0700</bug_when>
    <thetext>Created attachment 257099
Patch

I realized that if I was going the node to NewTargetNode I should also change the expression generator to newTargetExpr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110698</commentid>
    <comment_count>9</comment_count>
      <attachid>257099</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-07-20 12:00:37 -0700</bug_when>
    <thetext>Comment on attachment 257099
Patch

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

&gt; Source/JavaScriptCore/parser/ASTBuilder.h:183
&gt; +    ExpressionNode* newTargetExpr(const JSTokenLocation location)

small nit: We usually try to name things that create AST nodes &quot;createX&quot;.
So here, &quot;createNewTargetNode&quot; or &quot;createNewTargetExpression&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110710</commentid>
    <comment_count>10</comment_count>
      <attachid>257099</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-20 12:21:41 -0700</bug_when>
    <thetext>Comment on attachment 257099
Patch

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

&gt;&gt; Source/JavaScriptCore/parser/ASTBuilder.h:183
&gt;&gt; +    ExpressionNode* newTargetExpr(const JSTokenLocation location)
&gt; 
&gt; small nit: We usually try to name things that create AST nodes &quot;createX&quot;.
&gt; So here, &quot;createNewTargetNode&quot; or &quot;createNewTargetExpression&quot;.

Is there a reason why thisExpr and superExpr don&apos;t follow this rule? I named my function &quot;newTargetExpr&quot; since new.target is similar to this but for constructors, so I was trying to emulate those functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110845</commentid>
    <comment_count>11</comment_count>
      <attachid>257099</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-20 17:32:46 -0700</bug_when>
    <thetext>Comment on attachment 257099
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/parser/ASTBuilder.h:183
&gt;&gt;&gt; +    ExpressionNode* newTargetExpr(const JSTokenLocation location)
&gt;&gt; 
&gt;&gt; small nit: We usually try to name things that create AST nodes &quot;createX&quot;.
&gt;&gt; So here, &quot;createNewTargetNode&quot; or &quot;createNewTargetExpression&quot;.
&gt; 
&gt; Is there a reason why thisExpr and superExpr don&apos;t follow this rule? I named my function &quot;newTargetExpr&quot; since new.target is similar to this but for constructors, so I was trying to emulate those functions.

Ah, I guess they are just overlooked ones. Could you rename them to createThisExpr, createSuperExpr etc. at the same time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110951</commentid>
    <comment_count>12</comment_count>
      <attachid>257099</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-21 09:50:33 -0700</bug_when>
    <thetext>Comment on attachment 257099
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/parser/ASTBuilder.h:183
&gt;&gt;&gt;&gt; +    ExpressionNode* newTargetExpr(const JSTokenLocation location)
&gt;&gt;&gt; 
&gt;&gt;&gt; small nit: We usually try to name things that create AST nodes &quot;createX&quot;.
&gt;&gt;&gt; So here, &quot;createNewTargetNode&quot; or &quot;createNewTargetExpression&quot;.
&gt;&gt; 
&gt;&gt; Is there a reason why thisExpr and superExpr don&apos;t follow this rule? I named my function &quot;newTargetExpr&quot; since new.target is similar to this but for constructors, so I was trying to emulate those functions.
&gt; 
&gt; Ah, I guess they are just overlooked ones. Could you rename them to createThisExpr, createSuperExpr etc. at the same time?

I&apos;m not a huge fan of mixing new code with refactors, in case things get rolled out. I&apos;ll throw another patch up with that fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110959</commentid>
    <comment_count>13</comment_count>
      <attachid>257099</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-21 10:29:02 -0700</bug_when>
    <thetext>Comment on attachment 257099
Patch

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

r+

&gt;&gt;&gt;&gt;&gt; Source/JavaScriptCore/parser/ASTBuilder.h:183
&gt;&gt;&gt;&gt;&gt; +    ExpressionNode* newTargetExpr(const JSTokenLocation location)
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; small nit: We usually try to name things that create AST nodes &quot;createX&quot;.
&gt;&gt;&gt;&gt; So here, &quot;createNewTargetNode&quot; or &quot;createNewTargetExpression&quot;.
&gt;&gt;&gt; 
&gt;&gt;&gt; Is there a reason why thisExpr and superExpr don&apos;t follow this rule? I named my function &quot;newTargetExpr&quot; since new.target is similar to this but for constructors, so I was trying to emulate those functions.
&gt;&gt; 
&gt;&gt; Ah, I guess they are just overlooked ones. Could you rename them to createThisExpr, createSuperExpr etc. at the same time?
&gt; 
&gt; I&apos;m not a huge fan of mixing new code with refactors, in case things get rolled out. I&apos;ll throw another patch up with that fix.

Make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110975</commentid>
    <comment_count>14</comment_count>
      <attachid>257099</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-21 11:20:00 -0700</bug_when>
    <thetext>Comment on attachment 257099
Patch

Clearing flags on attachment: 257099

Committed r187108: &lt;http://trac.webkit.org/changeset/187108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110976</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-21 11:20:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111031</commentid>
    <comment_count>16</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-07-21 13:23:50 -0700</bug_when>
    <thetext>rdar://problem/21880884</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256992</attachid>
            <date>2015-07-17 14:54:03 -0700</date>
            <delta_ts>2015-07-17 14:59:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Add-support-for-new.target.patch</filename>
            <type>text/plain</type>
            <size>11638</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSA0Mzg0YzJhYWRkMmFjMDhjNzdiMzYyNWU0OGU2YTM1OWNhMjMwZjZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IEZyaSwgMTcgSnVsIDIwMTUgMTQ6NTE6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBB
ZGQgc3VwcG9ydCBmb3IgbmV3LnRhcmdldC4KCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAzNyArKysrKysrKysrCiAuLi4vYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICB8ICA0ICstCiAuLi4vSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgICB8IDEwICsrKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggICAgICAgICAgfCAgNCArKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggICAgfCAgNSArKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oICAgICAgICAgICAgICAgfCAgOCAr
KysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCAgICAgICAgICAgIHwg
MTYgKysrKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oICAg
ICAgIHwgIDMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmggIHwgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFy
Z2V0LmpzICAgfCA3OSArKysrKysrKysrKysrKysrKysrKysrCiAxMCBmaWxlcyBjaGFuZ2VkLCAx
NjMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy10YXJnZXQuanMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwppbmRleCA0OGJlOThjLi5hOWQ0ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MCBAQAorMjAxNS0wNy0xNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldy50YXJnZXQg
c3ludGF4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9i
dWdpZD0xNDcwNTEmYWN0aW9uPWVudGVyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG5ldy50YXJnZXQuIEVzc2VudGlhbGx5
IHRoZSBpbXBsZW1lbnRhdGlvbiBpcywgYmVmb3JlIGNvbnN0cnVjdG9yIGNhbGxzLAorICAgICAg
ICB0aGUgdGFyZ2V0IG9mIGEgIm5ldyIgaXMgcGxhY2VkIHdoZXJlICJ0aGlzIiBub3JhbWxseSBn
b2VzIGluIHRoZSBjYWxsaW5nIGNvbnZlbnRpb24uCisgICAgICAgIFRoZW4gaW4gdGhlIGNvbnN0
cnVjdG9yIGJlZm9yZSBvYmplY3QgaXMgaW5pdGlhbGl6ZWQgd2UgbW92ZSB0aGUgdGFyZ2V0IG9m
IHRoZSAibmV3IgorICAgICAgICBpbnRvIGEgbG9jYWwgdmFyaWFibGUuCisKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpUYXJnZXROb2RlOjplbWl0Qnl0ZWNvZGUp
OgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxk
ZXI6OnRhcmdldEV4cHIpOgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6Cisg
ICAgICAgIChKU0M6OlRhcmdldE5vZGU6OlRhcmdldE5vZGUpOgorICAgICAgICAqIHBhcnNlci9O
b2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VNZW1iZXJFeHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJzZXIv
U3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjp0YXJnZXRFeHBy
KToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL25ldy10YXJnZXQuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAg
IChjYWxsKToKKyAgICAgICAgKENvbnN0cnVjdG9yLnN1YkNhbGwpOgorICAgICAgICAoQ29uc3Ry
dWN0b3IuU3ViQ29uc3RydWN0b3IpOgorICAgICAgICAoQ29uc3RydWN0b3IpOgorICAgICAgICAo
bm9Bc3NpZ24pOgorICAgICAgICAoZG9XZWlyZFRoaW5ncyk6CisgICAgICAgIChTdXBlckNsYXNz
KToKKyAgICAgICAgKFN1YkNsYXNzKToKKwogMjAxNS0wNy0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBGaXggYXJtdjcgYnVpbGQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCmluZGV4IGVmYmY4ZTcuLmZmMzEyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC01
MDUsMTAgKzUwNSwxMCBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0m
IHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5saW5rZQogICAgICAgICB9CiAgICAg
fQogICAgIAorICAgIG1fbmV3VGFyZ2V0UmVnaXN0ZXIgPSBhZGRWYXIoKTsKICAgICBpZiAoaXND
b25zdHJ1Y3RvcigpKSB7CisgICAgICAgIGVtaXRNb3ZlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsICZt
X3RoaXNSZWdpc3Rlcik7CiAgICAgICAgIGlmIChjb25zdHJ1Y3RvcktpbmQoKSA9PSBDb25zdHJ1
Y3RvcktpbmQ6OkRlcml2ZWQpIHsKLSAgICAgICAgICAgIG1fbmV3VGFyZ2V0UmVnaXN0ZXIgPSBh
ZGRWYXIoKTsKLSAgICAgICAgICAgIGVtaXRNb3ZlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsICZtX3Ro
aXNSZWdpc3Rlcik7CiAgICAgICAgICAgICBlbWl0TW92ZUVtcHR5VmFsdWUoJm1fdGhpc1JlZ2lz
dGVyKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBlbWl0Q3JlYXRlVGhpcygmbV90aGlz
UmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCmluZGV4IDZjYjU0ODYuLjNhOWVmNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE4NSw2
ICsxODUsMTYgQEAgc3RhdGljIFJlZ2lzdGVySUQqIGVtaXRTdXBlckJhc2VGb3JDYWxsZWUoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRC
eUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgaG9tZU9iamVjdC5nZXQoKSwgZ2VuZXJhdG9y
LnByb3BlcnR5TmFtZXMoKS51bmRlcnNjb3JlUHJvdG8pOwogfQogCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gVGFyZ2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworUmVnaXN0ZXJJRCogVGFyZ2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBpZiAoZHN0ID09
IGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlVG9EZXN0aW5hdGlvbklmTmVlZGVkKGRzdCwgZ2VuZXJh
dG9yLm5ld1RhcmdldCgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IFJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYm9vbCBS
ZXNvbHZlTm9kZTo6aXNQdXJlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDc2NmFhYzEuLmRj
YWVhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0x
ODAsNiArMTgwLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBuZXcgKG1fcGFy
c2VyQXJlbmEpIFN1cGVyTm9kZShsb2NhdGlvbik7CiAgICAgfQorICAgIEV4cHJlc3Npb25Ob2Rl
KiB0YXJnZXRFeHByKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbikKKyAgICB7CisgICAg
ICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRhcmdldE5vZGUobG9jYXRpb24pOworICAg
IH0KICAgICBFeHByZXNzaW9uTm9kZSogY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyKiBpZGVudCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIHN0YXJ0KQogICAgIHsKICAgICAgICAgaWYgKG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3Vt
ZW50cyA9PSAqaWRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oCmluZGV4IGUxZTg0ODcuLjNjY2UxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0xNzAsNiArMTcwLDExIEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgVGFyZ2V0Tm9kZTo6
VGFyZ2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uKQorICAgICAgICA6IEV4
cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgUmVzb2x2
ZU5vZGU6OlJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0
IElkZW50aWZpZXImIGlkZW50LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQpCiAgICAgICAg
IDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCAwOGFmNjQ3Li5kYzM3NTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC01NDIsNiArNTQyLDE0IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAgICAgfTsKIAorICAg
IGNsYXNzIFRhcmdldE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1
YmxpYzoKKyAgICAgICAgVGFyZ2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKKworICAg
IHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKyAgICB9OworCiAgICAg
Y2xhc3MgUmVzb2x2ZU5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRp
ZmllciYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKaW5kZXggOTJhZTlhYi4uMjA1ZThiZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMjkyNSwxMSArMjkyNSwyNSBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+Ojpw
YXJzZU1lbWJlckV4cHJlcwogICAgIGJvb2wgYmFzZUlzU3VwZXIgPSBmYWxzZTsKICNlbmRpZgog
CisgICAgYm9vbCBiYXNlSXNUYXJnZXQgPSBmYWxzZTsKKyAgICBpZiAobmV3Q291bnQgJiYgbV90
b2tlbi5tX3R5cGUgPT0gRE9UKSB7CisgICAgICAgIG5leHQoKTsKKyAgICAgICAgY29uc3QgSWRl
bnRpZmllciogaWRlbnQgPSBtX3Rva2VuLm1fZGF0YS5pZGVudDsKKyAgICAgICAgaWYgKG1fdG9r
ZW4ubV90eXBlID09IElERU5UICYmIG1fdm0tPnByb3BlcnR5TmFtZXMtPnRhcmdldCA9PSAqaWRl
bnQpIHsKKyAgICAgICAgICAgIHNlbWFudGljRmFpbElmRmFsc2UoY3VycmVudFNjb3BlKCktPmlz
RnVuY3Rpb24oKSwgIm5ldy50YXJnZXQgaXMgb25seSB2YWxpZCBpbnNpZGUgZnVuY3Rpb25zIik7
CisgICAgICAgICAgICBiYXNlSXNUYXJnZXQgPSB0cnVlOworICAgICAgICAgICAgYmFzZSA9IGNv
bnRleHQudGFyZ2V0RXhwcihsb2NhdGlvbik7CisgICAgICAgICAgICBuZXdDb3VudC0tOworICAg
ICAgICAgICAgbmV4dCgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZhaWxEdWVUb1Vu
ZXhwZWN0ZWRUb2tlbigpOworICAgIH0KKwogICAgIGlmIChiYXNlSXNTdXBlcikgewogICAgICAg
ICBiYXNlID0gY29udGV4dC5zdXBlckV4cHIobG9jYXRpb24pOwogICAgICAgICBuZXh0KCk7CiAg
ICAgICAgIGN1cnJlbnRTY29wZSgpLT5zZXROZWVkc1N1cGVyQmluZGluZygpOwotICAgIH0gZWxz
ZQorICAgIH0gZWxzZSBpZighYmFzZUlzVGFyZ2V0KQogICAgICAgICBiYXNlID0gcGFyc2VQcmlt
YXJ5RXhwcmVzc2lvbihjb250ZXh0KTsKIAogICAgIGZhaWxJZkZhbHNlKGJhc2UsICJDYW5ub3Qg
cGFyc2UgYmFzZSBleHByZXNzaW9uIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U3ludGF4Q2hlY2tlci5oCmluZGV4IDA3ZDNiMGUuLjA2MDZmMWQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJs
aWM6CiAgICAgICAgIFRoaXNFeHByLCBOdWxsRXhwciwgQm9vbEV4cHIsIFJlZ0V4cEV4cHIsIE9i
amVjdExpdGVyYWxFeHByLAogICAgICAgICBGdW5jdGlvbkV4cHIsIENsYXNzRXhwciwgU3VwZXJF
eHByLCBCcmFja2V0RXhwciwgRG90RXhwciwgQ2FsbEV4cHIsCiAgICAgICAgIE5ld0V4cHIsIFBy
ZUV4cHIsIFBvc3RFeHByLCBVbmFyeUV4cHIsIEJpbmFyeUV4cHIsCi0gICAgICAgIENvbmRpdGlv
bmFsRXhwciwgQXNzaWdubWVudEV4cHIsIFR5cGVvZkV4cHIsCisgICAgICAgIENvbmRpdGlvbmFs
RXhwciwgQXNzaWdubWVudEV4cHIsIFR5cGVvZkV4cHIsIFRhcmdldEV4cHIsCiAgICAgICAgIERl
bGV0ZUV4cHIsIEFycmF5TGl0ZXJhbEV4cHIsIEJpbmRpbmdEZXN0cnVjdHVyaW5nLAogICAgICAg
ICBBcnJheURlc3RydWN0dXJpbmcsIE9iamVjdERlc3RydWN0dXJpbmcsIFNvdXJjZUVsZW1lbnRz
UmVzdWx0LAogICAgICAgICBGdW5jdGlvbkJvZHlSZXN1bHQsIFNwcmVhZEV4cHIsIEFyZ3VtZW50
c1Jlc3VsdCwKQEAgLTE1Niw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgRXhwcmVzc2lvblR5cGUg
Y3JlYXRlVm9pZChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uVHlwZSkgeyByZXR1
cm4gVW5hcnlFeHByOyB9CiAgICAgRXhwcmVzc2lvblR5cGUgdGhpc0V4cHIoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgVGhpc1REWk1vZGUpIHsgcmV0dXJuIFRoaXNFeHByOyB9CiAgICAgRXhwcmVz
c2lvblR5cGUgc3VwZXJFeHByKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpIHsgcmV0dXJuIFN1cGVy
RXhwcjsgfQorICAgIEV4cHJlc3Npb25UeXBlIHRhcmdldEV4cHIoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJikgeyByZXR1cm4gVGFyZ2V0RXhwcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZVJl
c29sdmUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciosIGludCkgeyBy
ZXR1cm4gUmVzb2x2ZUV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVPYmplY3RMaXRl
cmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpIHsgcmV0dXJuIE9iamVjdExpdGVyYWxFeHByOyB9
CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBpbnQpIHsgcmV0dXJuIE9iamVjdExpdGVyYWxFeHByOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA0MWI5NGYx
Li5mZGE1Mjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmgKQEAgLTE2Niw2ICsxNjYsNyBAQAogICAgIG1hY3JvKHNvdXJjZUNvZGUp
IFwKICAgICBtYWNybyhzdGFjaykgXAogICAgIG1hY3JvKHN1YmFycmF5KSBcCisgICAgbWFjcm8o
dGFyZ2V0KSBcCiAgICAgbWFjcm8odGVzdCkgXAogICAgIG1hY3JvKHRoZW4pIFwKICAgICBtYWNy
byh0b0V4cG9uZW50aWFsKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL25ldy10YXJnZXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL25ldy10YXJnZXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdh
ODNmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvbmV3LXRhcmdldC5qcwpAQCAtMCwwICsxLDc5IEBACit2YXIgcGFzc2VkID0gdHJ1ZTsKK3Ry
eSB7CisgICAgZXZhbCgibmV3LnRhcmdldDsiKTsKKyAgICBwYXNzZWQgPSBmYWxzZTsKK30gY2F0
Y2goZSkge30KKwordGVzdChwYXNzZWQsIHRydWUsICJuZXcudGFyZ2V0IGNhbm5vdCBiZSBjYWxs
ZWQgaW4gZ2xvYmFsIHNjb3BlIik7CisKKy8vIFRlc3Qgd2l0aG91dCBjbGFzcyBzeW50YXgKKwor
ZnVuY3Rpb24gdGVzdChyZXN1bHQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgaWYgKHJlc3Vs
dCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogIiArIG1lc3NhZ2UgKyAiLiB3
YXM6ICIgKyByZXN1bHQgKyAiIHdhbnRlZDogIiArIGV4cGVjdGVkOworfQorCitmdW5jdGlvbiBj
YWxsKCkgeworICAgIHRlc3QobmV3LnRhcmdldCwgdW5kZWZpbmVkLCAibmV3LnRhcmdldCBzaG91
bGQgYmUgdW5kZWZpbmVkIGluIGEgZnVuY3Rpb24gY2FsbCIpOworfQorY2FsbCgpOworCitmdW5j
dGlvbiBDb25zdHJ1Y3RvcigpIHsKKyAgICB0ZXN0KG5ldy50YXJnZXQsIENvbnN0cnVjdG9yLCAi
bmV3LnRhcmdldCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgY29uc3RydWN0b3IiKTsKKyAgICBmdW5j
dGlvbiBzdWJDYWxsKCkgeworICAgICAgICB0ZXN0KG5ldy50YXJnZXQsIHVuZGVmaW5lZCwgIm5l
dy50YXJnZXQgc2hvdWxkIGJlIHVuZGVmaW5lZCBpbiBhIHN1YiBmdW5jdGlvbiBjYWxsIik7Cisg
ICAgfQorICAgIHN1YkNhbGwoKTsKKworICAgIGZ1bmN0aW9uIFN1YkNvbnN0cnVjdG9yKCkgewor
ICAgICAgICB0ZXN0KG5ldy50YXJnZXQsIFN1YkNvbnN0cnVjdG9yLCAibmV3LnRhcmdldCBzaG91
bGQgYmUgc3ViQ29uc3RydWN0b3IiKTsKKyAgICB9CisgICAgbmV3IFN1YkNvbnN0cnVjdG9yKCk7
CisKK30KK25ldyBDb25zdHJ1Y3RvcigpOworCitmdW5jdGlvbiBub0Fzc2lnbigpIHsKKyAgICBu
ZXcudGFyZ2V0ID0gMTsKK30KKwordHJ5IHsKKyAgICBuZXcgbm9Bc3NpZ24oKTsKKyAgICBwYXNz
ZWQgPSBmYWxzZTsKK30gY2F0Y2goZSkgeyB9Cit0cnkgeworICAgIG5vQXNzaWduKCk7CisgICAg
cGFzc2VkID0gZmFsc2U7Cit9IGNhdGNoKGUpIHsgfQorCit0ZXN0KHBhc3NlZCwgdHJ1ZSwgIm5l
dy50YXJnZXQgc2hvdWxkIG5vdCBiZSBhIHJlZmVyZW5jZSIpOworCisvLyBUaGlzIGlzIG1vc3Rs
eSB0byB0ZXN0IHRoYXQgY2FsbGluZyBuZXcgb24gbmV3LnRhcmdldCBkZW9zIHRoZSByaWdodCB0
aGluZy4KK2Z1bmN0aW9uIGRvV2VpcmRUaGluZ3MoYXJnKSB7CisgICAgaWYgKG5ldy50YXJnZXQp
IHsKKyAgICAgICAgaWYgKGFyZykKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcudGFyZ2V0
KDEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IG5ldy50YXJn
ZXQodHJ1ZSk7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBhcmc7Cit9CisKK3Rlc3QobmV3
IGRvV2VpcmRUaGluZ3MoZmFsc2UpLnZhbHVlLnZhbHVlLCAxLCAiY2FsbGluZyBuZXcgb24gbmV3
LnRhcmdldCBkaWQgc29tZXRoaW5nIHdlaXJkIik7CisKKy8vIFRlc3Qgd2l0aCBjbGFzcyBzeW50
YXgKKworY2xhc3MgU3VwZXJDbGFzcyB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHRo
aXMudGFyZ2V0ID0gbmV3LnRhcmdldDsKKyAgICB9Cit9CisKK2NsYXNzIFN1YkNsYXNzIGV4dGVu
ZHMgU3VwZXJDbGFzcyB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHN1cGVyKCk7Cisg
ICAgfQorfQorCit0ZXN0KG5ldyBTdXBlckNsYXNzKCkudGFyZ2V0LCBTdXBlckNsYXNzLCAibmV3
LnRhcmdldCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIGNsYXNzIGNvbnN0cnVjdG9yIik7Cit0
ZXN0KG5ldyBTdWJDbGFzcygpLnRhcmdldCwgU3ViQ2xhc3MsICJuZXcudGFyZ2V0IHNob3VsZCBu
b3QgY2hhbmdlIHdoZW4gcGFzc2VkIHRocm91Z2ggc3VwZXIoKSIpOwotLSAKMi4zLjggKEFwcGxl
IEdpdC01OCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256994</attachid>
            <date>2015-07-17 14:59:44 -0700</date>
            <delta_ts>2015-07-20 10:34:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Add-support-for-new.target.patch</filename>
            <type>text/plain</type>
            <size>11621</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSAzMTJlYTllNWMxNmM1M2ZjMmY5M2JlMDkzZTk5ZTIyZDJkYTE4M2IxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IEZyaSwgMTcgSnVsIDIwMTUgMTQ6NTE6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBB
ZGQgc3VwcG9ydCBmb3IgbmV3LnRhcmdldC4KCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAzNyArKysrKysrKysrCiAuLi4vYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICB8ICA0ICstCiAuLi4vSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgICB8IDEwICsrKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggICAgICAgICAgfCAgNCArKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggICAgfCAgNSArKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oICAgICAgICAgICAgICAgfCAgOCAr
KysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCAgICAgICAgICAgIHwg
MTYgKysrKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oICAg
ICAgIHwgIDMgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmggIHwgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFy
Z2V0LmpzICAgfCA3OSArKysrKysrKysrKysrKysrKysrKysrCiAxMCBmaWxlcyBjaGFuZ2VkLCAx
NjMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy10YXJnZXQuanMKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwppbmRleCA0OGJlOThjLi5iMjg4ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MCBAQAorMjAxNS0wNy0xNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldy50YXJnZXQg
c3ludGF4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ3MDUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIG5ldy50YXJnZXQuIEVzc2VudGlhbGx5IHRoZSBpbXBsZW1lbnRhdGlv
biBpcywgYmVmb3JlIGNvbnN0cnVjdG9yIGNhbGxzLAorICAgICAgICB0aGUgdGFyZ2V0IG9mIGEg
Im5ldyIgaXMgcGxhY2VkIHdoZXJlICJ0aGlzIiBub3JhbWxseSBnb2VzIGluIHRoZSBjYWxsaW5n
IGNvbnZlbnRpb24uCisgICAgICAgIFRoZW4gaW4gdGhlIGNvbnN0cnVjdG9yIGJlZm9yZSBvYmpl
Y3QgaXMgaW5pdGlhbGl6ZWQgd2UgbW92ZSB0aGUgdGFyZ2V0IG9mIHRoZSAibmV3IgorICAgICAg
ICBpbnRvIGEgbG9jYWwgdmFyaWFibGUuCisKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNv
ZGVHZW5lcmF0b3IpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgor
ICAgICAgICAoSlNDOjpUYXJnZXROb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIHBhcnNl
ci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OnRhcmdldEV4cHIpOgor
ICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OlRhcmdl
dE5vZGU6OlRhcmdldE5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAq
IHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VNZW1iZXJFeHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgor
ICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjp0YXJnZXRFeHByKToKKyAgICAgICAgKiBydW50
aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNzL25ldy10YXJn
ZXQuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgIChjYWxsKToKKyAgICAgICAg
KENvbnN0cnVjdG9yLnN1YkNhbGwpOgorICAgICAgICAoQ29uc3RydWN0b3IuU3ViQ29uc3RydWN0
b3IpOgorICAgICAgICAoQ29uc3RydWN0b3IpOgorICAgICAgICAobm9Bc3NpZ24pOgorICAgICAg
ICAoZG9XZWlyZFRoaW5ncyk6CisgICAgICAgIChTdXBlckNsYXNzKToKKyAgICAgICAgKFN1YkNs
YXNzKToKKwogMjAxNS0wNy0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2luXSBGaXggYXJtdjcgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGVm
YmY4ZTcuLmZmMzEyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC01MDUsMTAgKzUwNSwxMCBAQCBC
eXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBGdW5jdGlvbk5vZGUq
IGZ1bmN0aW9uTm9kZSwgVW5saW5rZQogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIG1fbmV3
VGFyZ2V0UmVnaXN0ZXIgPSBhZGRWYXIoKTsKICAgICBpZiAoaXNDb25zdHJ1Y3RvcigpKSB7Cisg
ICAgICAgIGVtaXRNb3ZlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsICZtX3RoaXNSZWdpc3Rlcik7CiAg
ICAgICAgIGlmIChjb25zdHJ1Y3RvcktpbmQoKSA9PSBDb25zdHJ1Y3RvcktpbmQ6OkRlcml2ZWQp
IHsKLSAgICAgICAgICAgIG1fbmV3VGFyZ2V0UmVnaXN0ZXIgPSBhZGRWYXIoKTsKLSAgICAgICAg
ICAgIGVtaXRNb3ZlKG1fbmV3VGFyZ2V0UmVnaXN0ZXIsICZtX3RoaXNSZWdpc3Rlcik7CiAgICAg
ICAgICAgICBlbWl0TW92ZUVtcHR5VmFsdWUoJm1fdGhpc1JlZ2lzdGVyKTsKICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICBlbWl0Q3JlYXRlVGhpcygmbV90aGlzUmVnaXN0ZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmlu
ZGV4IDZjYjU0ODYuLjNhOWVmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE4NSw2ICsxODUsMTYgQEAgc3RhdGlj
IFJlZ2lzdGVySUQqIGVtaXRTdXBlckJhc2VGb3JDYWxsZWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdl
bmVyYXRvcikKICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdU
ZW1wb3JhcnkoKSwgaG9tZU9iamVjdC5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS51
bmRlcnNjb3JlUHJvdG8pOwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
VGFyZ2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0
ZXJJRCogVGFyZ2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0
b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBpZiAoZHN0ID09IGdlbmVyYXRvci5pZ25vcmVk
UmVzdWx0KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGdlbmVyYXRv
ci5tb3ZlVG9EZXN0aW5hdGlvbklmTmVlZGVkKGRzdCwgZ2VuZXJhdG9yLm5ld1RhcmdldCgpKTsK
K30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlc29sdmVOb2RlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYm9vbCBSZXNvbHZlTm9kZTo6aXNQdXJl
KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDc2NmFhYzEuLmRjYWVhMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0xODAsNiArMTgwLDEwIEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFN1cGVyTm9k
ZShsb2NhdGlvbik7CiAgICAgfQorICAgIEV4cHJlc3Npb25Ob2RlKiB0YXJnZXRFeHByKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1f
cGFyc2VyQXJlbmEpIFRhcmdldE5vZGUobG9jYXRpb24pOworICAgIH0KICAgICBFeHByZXNzaW9u
Tm9kZSogY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25z
dCBJZGVudGlmaWVyKiBpZGVudCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0KQogICAgIHsK
ICAgICAgICAgaWYgKG1fdm0tPnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cyA9PSAqaWRlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmluZGV4
IGUxZTg0ODcuLjNjY2UxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0xNzAsNiArMTcwLDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgVGFyZ2V0Tm9kZTo6VGFyZ2V0Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0
aW9uKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgUmVzb2x2ZU5vZGU6OlJlc29sdmVOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUo
bG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAppbmRleCAwOGFmNjQ3Li5kYzM3NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oCkBAIC01NDIsNiArNTQyLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAgICAgfTsKIAorICAgIGNsYXNzIFRhcmdldE5vZGUg
ZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGFy
Z2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mKTsKKworICAgIHByaXZhdGU6CisgICAgICAg
IHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKyAgICB9OworCiAgICAgY2xhc3MgUmVzb2x2ZU5vZGUg
OiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgUmVzb2x2ZU5v
ZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBzdGFydCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
aW5kZXggOTJhZTlhYi4uODA2NmYxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcApAQCAtMjkyNSwxMSArMjkyNSwyNSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZU1lbWJlckV4cHJlcwog
ICAgIGJvb2wgYmFzZUlzU3VwZXIgPSBmYWxzZTsKICNlbmRpZgogCisgICAgYm9vbCBiYXNlSXNU
YXJnZXQgPSBmYWxzZTsKKyAgICBpZiAobmV3Q291bnQgJiYgbV90b2tlbi5tX3R5cGUgPT0gRE9U
KSB7CisgICAgICAgIG5leHQoKTsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQgPSBt
X3Rva2VuLm1fZGF0YS5pZGVudDsKKyAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID09IElERU5U
ICYmIG1fdm0tPnByb3BlcnR5TmFtZXMtPnRhcmdldCA9PSAqaWRlbnQpIHsKKyAgICAgICAgICAg
IHNlbWFudGljRmFpbElmRmFsc2UoY3VycmVudFNjb3BlKCktPmlzRnVuY3Rpb24oKSwgIm5ldy50
YXJnZXQgaXMgb25seSB2YWxpZCBpbnNpZGUgZnVuY3Rpb25zIik7CisgICAgICAgICAgICBiYXNl
SXNUYXJnZXQgPSB0cnVlOworICAgICAgICAgICAgYmFzZSA9IGNvbnRleHQudGFyZ2V0RXhwcihs
b2NhdGlvbik7CisgICAgICAgICAgICBuZXdDb3VudC0tOworICAgICAgICAgICAgbmV4dCgpOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGZhaWxEdWVUb1VuZXhwZWN0ZWRUb2tlbigpOwor
ICAgIH0KKwogICAgIGlmIChiYXNlSXNTdXBlcikgewogICAgICAgICBiYXNlID0gY29udGV4dC5z
dXBlckV4cHIobG9jYXRpb24pOwogICAgICAgICBuZXh0KCk7CiAgICAgICAgIGN1cnJlbnRTY29w
ZSgpLT5zZXROZWVkc1N1cGVyQmluZGluZygpOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSBpZiAo
IWJhc2VJc1RhcmdldCkKICAgICAgICAgYmFzZSA9IHBhcnNlUHJpbWFyeUV4cHJlc3Npb24oY29u
dGV4dCk7CiAKICAgICBmYWlsSWZGYWxzZShiYXNlLCAiQ2Fubm90IHBhcnNlIGJhc2UgZXhwcmVz
c2lvbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhD
aGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApp
bmRleCAwN2QzYjBlLi4wNjA2ZjFkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9TeW50YXhDaGVja2VyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgICAgICBUaGlz
RXhwciwgTnVsbEV4cHIsIEJvb2xFeHByLCBSZWdFeHBFeHByLCBPYmplY3RMaXRlcmFsRXhwciwK
ICAgICAgICAgRnVuY3Rpb25FeHByLCBDbGFzc0V4cHIsIFN1cGVyRXhwciwgQnJhY2tldEV4cHIs
IERvdEV4cHIsIENhbGxFeHByLAogICAgICAgICBOZXdFeHByLCBQcmVFeHByLCBQb3N0RXhwciwg
VW5hcnlFeHByLCBCaW5hcnlFeHByLAotICAgICAgICBDb25kaXRpb25hbEV4cHIsIEFzc2lnbm1l
bnRFeHByLCBUeXBlb2ZFeHByLAorICAgICAgICBDb25kaXRpb25hbEV4cHIsIEFzc2lnbm1lbnRF
eHByLCBUeXBlb2ZFeHByLCBUYXJnZXRFeHByLAogICAgICAgICBEZWxldGVFeHByLCBBcnJheUxp
dGVyYWxFeHByLCBCaW5kaW5nRGVzdHJ1Y3R1cmluZywKICAgICAgICAgQXJyYXlEZXN0cnVjdHVy
aW5nLCBPYmplY3REZXN0cnVjdHVyaW5nLCBTb3VyY2VFbGVtZW50c1Jlc3VsdCwKICAgICAgICAg
RnVuY3Rpb25Cb2R5UmVzdWx0LCBTcHJlYWRFeHByLCBBcmd1bWVudHNSZXN1bHQsCkBAIC0xNTYs
NiArMTU2LDcgQEAgcHVibGljOgogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZVZvaWQoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvblR5cGUpIHsgcmV0dXJuIFVuYXJ5RXhwcjsgfQog
ICAgIEV4cHJlc3Npb25UeXBlIHRoaXNFeHByKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFRoaXNU
RFpNb2RlKSB7IHJldHVybiBUaGlzRXhwcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIHN1cGVyRXhw
cihjb25zdCBKU1Rva2VuTG9jYXRpb24mKSB7IHJldHVybiBTdXBlckV4cHI7IH0KKyAgICBFeHBy
ZXNzaW9uVHlwZSB0YXJnZXRFeHByKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpIHsgcmV0dXJuIFRh
cmdldEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVSZXNvbHZlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQpIHsgcmV0dXJuIFJlc29sdmVFeHBy
OyB9CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2Vu
TG9jYXRpb24mKSB7IHJldHVybiBPYmplY3RMaXRlcmFsRXhwcjsgfQogICAgIEV4cHJlc3Npb25U
eXBlIGNyZWF0ZU9iamVjdExpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50KSB7IHJl
dHVybiBPYmplY3RMaXRlcmFsRXhwcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNDFiOTRmMS4uZmRhNTI4OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBA
IC0xNjYsNiArMTY2LDcgQEAKICAgICBtYWNybyhzb3VyY2VDb2RlKSBcCiAgICAgbWFjcm8oc3Rh
Y2spIFwKICAgICBtYWNybyhzdWJhcnJheSkgXAorICAgIG1hY3JvKHRhcmdldCkgXAogICAgIG1h
Y3JvKHRlc3QpIFwKICAgICBtYWNybyh0aGVuKSBcCiAgICAgbWFjcm8odG9FeHBvbmVudGlhbCkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFy
Z2V0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3YTgzZmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy10YXJnZXQuanMK
QEAgLTAsMCArMSw3OSBAQAordmFyIHBhc3NlZCA9IHRydWU7Cit0cnkgeworICAgIGV2YWwoIm5l
dy50YXJnZXQ7Iik7CisgICAgcGFzc2VkID0gZmFsc2U7Cit9IGNhdGNoKGUpIHt9CisKK3Rlc3Qo
cGFzc2VkLCB0cnVlLCAibmV3LnRhcmdldCBjYW5ub3QgYmUgY2FsbGVkIGluIGdsb2JhbCBzY29w
ZSIpOworCisvLyBUZXN0IHdpdGhvdXQgY2xhc3Mgc3ludGF4CisKK2Z1bmN0aW9uIHRlc3QocmVz
dWx0LCBleHBlY3RlZCwgbWVzc2FnZSkgeworICAgIGlmIChyZXN1bHQgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6ICIgKyBtZXNzYWdlICsgIi4gd2FzOiAiICsgcmVzdWx0ICsg
IiB3YW50ZWQ6ICIgKyBleHBlY3RlZDsKK30KKworZnVuY3Rpb24gY2FsbCgpIHsKKyAgICB0ZXN0
KG5ldy50YXJnZXQsIHVuZGVmaW5lZCwgIm5ldy50YXJnZXQgc2hvdWxkIGJlIHVuZGVmaW5lZCBp
biBhIGZ1bmN0aW9uIGNhbGwiKTsKK30KK2NhbGwoKTsKKworZnVuY3Rpb24gQ29uc3RydWN0b3Io
KSB7CisgICAgdGVzdChuZXcudGFyZ2V0LCBDb25zdHJ1Y3RvciwgIm5ldy50YXJnZXQgc2hvdWxk
IGJlIHRoZSBzYW1lIGFzIGNvbnN0cnVjdG9yIik7CisgICAgZnVuY3Rpb24gc3ViQ2FsbCgpIHsK
KyAgICAgICAgdGVzdChuZXcudGFyZ2V0LCB1bmRlZmluZWQsICJuZXcudGFyZ2V0IHNob3VsZCBi
ZSB1bmRlZmluZWQgaW4gYSBzdWIgZnVuY3Rpb24gY2FsbCIpOworICAgIH0KKyAgICBzdWJDYWxs
KCk7CisKKyAgICBmdW5jdGlvbiBTdWJDb25zdHJ1Y3RvcigpIHsKKyAgICAgICAgdGVzdChuZXcu
dGFyZ2V0LCBTdWJDb25zdHJ1Y3RvciwgIm5ldy50YXJnZXQgc2hvdWxkIGJlIHN1YkNvbnN0cnVj
dG9yIik7CisgICAgfQorICAgIG5ldyBTdWJDb25zdHJ1Y3RvcigpOworCit9CituZXcgQ29uc3Ry
dWN0b3IoKTsKKworZnVuY3Rpb24gbm9Bc3NpZ24oKSB7CisgICAgbmV3LnRhcmdldCA9IDE7Cit9
CisKK3RyeSB7CisgICAgbmV3IG5vQXNzaWduKCk7CisgICAgcGFzc2VkID0gZmFsc2U7Cit9IGNh
dGNoKGUpIHsgfQordHJ5IHsKKyAgICBub0Fzc2lnbigpOworICAgIHBhc3NlZCA9IGZhbHNlOwor
fSBjYXRjaChlKSB7IH0KKwordGVzdChwYXNzZWQsIHRydWUsICJuZXcudGFyZ2V0IHNob3VsZCBu
b3QgYmUgYSByZWZlcmVuY2UiKTsKKworLy8gVGhpcyBpcyBtb3N0bHkgdG8gdGVzdCB0aGF0IGNh
bGxpbmcgbmV3IG9uIG5ldy50YXJnZXQgZGVvcyB0aGUgcmlnaHQgdGhpbmcuCitmdW5jdGlvbiBk
b1dlaXJkVGhpbmdzKGFyZykgeworICAgIGlmIChuZXcudGFyZ2V0KSB7CisgICAgICAgIGlmIChh
cmcpCisgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3LnRhcmdldCgxKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBuZXcudGFyZ2V0KHRydWUpOworICAgIH0g
ZWxzZQorICAgICAgICByZXR1cm4gYXJnOworfQorCit0ZXN0KG5ldyBkb1dlaXJkVGhpbmdzKGZh
bHNlKS52YWx1ZS52YWx1ZSwgMSwgImNhbGxpbmcgbmV3IG9uIG5ldy50YXJnZXQgZGlkIHNvbWV0
aGluZyB3ZWlyZCIpOworCisvLyBUZXN0IHdpdGggY2xhc3Mgc3ludGF4CisKK2NsYXNzIFN1cGVy
Q2xhc3MgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICB0aGlzLnRhcmdldCA9IG5ldy50
YXJnZXQ7CisgICAgfQorfQorCitjbGFzcyBTdWJDbGFzcyBleHRlbmRzIFN1cGVyQ2xhc3Mgewor
ICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KK30KKwordGVzdChu
ZXcgU3VwZXJDbGFzcygpLnRhcmdldCwgU3VwZXJDbGFzcywgIm5ldy50YXJnZXQgc2hvdWxkIGJl
IHRoZSBzYW1lIGFzIHRoZSBjbGFzcyBjb25zdHJ1Y3RvciIpOwordGVzdChuZXcgU3ViQ2xhc3Mo
KS50YXJnZXQsIFN1YkNsYXNzLCAibmV3LnRhcmdldCBzaG91bGQgbm90IGNoYW5nZSB3aGVuIHBh
c3NlZCB0aHJvdWdoIHN1cGVyKCkiKTsKLS0gCjIuMy44IChBcHBsZSBHaXQtNTgpCgo=
</data>
<flag name="review"
          id="282101"
          type_id="1"
          status="-"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257097</attachid>
            <date>2015-07-20 10:34:59 -0700</date>
            <delta_ts>2015-07-20 10:37:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Add-support-for-new.target.patch</filename>
            <type>text/plain</type>
            <size>11766</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSBhNjhjODAwOGVlMDI0YWU2N2Y1ZWIzYjdiMjI4MDFmY2RlZGE2ZThmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMjAgSnVsIDIwMTUgMTA6MzA6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBB
ZGQgc3VwcG9ydCBmb3IgbmV3LnRhcmdldC4KCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAzNyArKysrKysrKysrCiAuLi4vYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICB8ICA0ICstCiAuLi4vSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgICB8IDEwICsrKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggICAgICAgICAgfCAgNCArKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggICAgfCAgNSArKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oICAgICAgICAgICAgICAgfCAgOCAr
KysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCAgICAgICAgICAgIHwg
MTkgKysrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCAg
ICAgICB8ICAzICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oICB8ICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXRh
cmdldC5qcyAgIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKwogMTAgZmlsZXMgY2hhbmdlZCwg
MTY2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggNDhiZTk4Yy4uZjIwYTdhOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTUtMDctMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcudGFyZ2V0
IHN5bnRheC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NzA1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBuZXcudGFyZ2V0LiBFc3NlbnRpYWxseSB0aGUgaW1wbGVtZW50YXRp
b24gaXMsIGJlZm9yZSBjb25zdHJ1Y3RvciBjYWxscywKKyAgICAgICAgdGhlIHRhcmdldCBvZiBh
ICJuZXciIGlzIHBsYWNlZCB3aGVyZSAidGhpcyIgbm9yYW1sbHkgZ29lcyBpbiB0aGUgY2FsbGlu
ZyBjb252ZW50aW9uLgorICAgICAgICBUaGVuIGluIHRoZSBjb25zdHJ1Y3RvciBiZWZvcmUgb2Jq
ZWN0IGlzIGluaXRpYWxpemVkIHdlIG1vdmUgdGhlIHRhcmdldCBvZiB0aGUgIm5ldyIKKyAgICAg
ICAgaW50byBhIGxvY2FsIHZhcmlhYmxlLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVj
b2RlR2VuZXJhdG9yKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoK
KyAgICAgICAgKEpTQzo6TmV3VGFyZ2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBw
YXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjp0YXJnZXRFeHBy
KToKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpO
ZXdUYXJnZXROb2RlOjpOZXdUYXJnZXROb2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoK
KyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVy
VHlwZT46OnBhcnNlTWVtYmVyRXhwcmVzc2lvbik6CisgICAgICAgICogcGFyc2VyL1N5bnRheENo
ZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6dGFyZ2V0RXhwcik6CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9uZXctdGFyZ2V0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoY2FsbCk6
CisgICAgICAgIChDb25zdHJ1Y3Rvci5zdWJDYWxsKToKKyAgICAgICAgKENvbnN0cnVjdG9yLlN1
YkNvbnN0cnVjdG9yKToKKyAgICAgICAgKENvbnN0cnVjdG9yKToKKyAgICAgICAgKG5vQXNzaWdu
KToKKyAgICAgICAgKGRvV2VpcmRUaGluZ3MpOgorICAgICAgICAoU3VwZXJDbGFzcyk6CisgICAg
ICAgIChTdWJDbGFzcyk6CisKIDIwMTUtMDctMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRml4IGFybXY3IGJ1aWxkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAppbmRleCBlZmJmOGU3Li5mZjMxMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtNTA1LDEwICs1
MDUsMTAgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVu
Y3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2UKICAgICAgICAgfQogICAgIH0KICAgICAK
KyAgICBtX25ld1RhcmdldFJlZ2lzdGVyID0gYWRkVmFyKCk7CiAgICAgaWYgKGlzQ29uc3RydWN0
b3IoKSkgeworICAgICAgICBlbWl0TW92ZShtX25ld1RhcmdldFJlZ2lzdGVyLCAmbV90aGlzUmVn
aXN0ZXIpOwogICAgICAgICBpZiAoY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5k
OjpEZXJpdmVkKSB7Ci0gICAgICAgICAgICBtX25ld1RhcmdldFJlZ2lzdGVyID0gYWRkVmFyKCk7
Ci0gICAgICAgICAgICBlbWl0TW92ZShtX25ld1RhcmdldFJlZ2lzdGVyLCAmbV90aGlzUmVnaXN0
ZXIpOwogICAgICAgICAgICAgZW1pdE1vdmVFbXB0eVZhbHVlKCZtX3RoaXNSZWdpc3Rlcik7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZW1pdENyZWF0ZVRoaXMoJm1fdGhpc1JlZ2lzdGVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAppbmRleCA2Y2I1NDg2Li44MGQ2NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xODUsNiArMTg1LDE2
IEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IpCiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5l
cmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0
eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIE5ld1RhcmdldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitSZWdpc3RlcklEKiBOZXdUYXJnZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIGlmIChkc3QgPT0gZ2Vu
ZXJhdG9yLmlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmVUb0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5lcmF0b3Iu
bmV3VGFyZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVz
b2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBib29sIFJlc29s
dmVOb2RlOjppc1B1cmUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggNzY2YWFjMS4uMjlhOWJi
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTE4MCw2
ICsxODAsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJB
cmVuYSkgU3VwZXJOb2RlKGxvY2F0aW9uKTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5vZGUqIHRh
cmdldEV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgTmV3VGFyZ2V0Tm9kZShsb2NhdGlvbik7CisgICAg
fQogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVSZXNvbHZlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXIqIGlkZW50LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgc3RhcnQpCiAgICAgewogICAgICAgICBpZiAobV92bS0+cHJvcGVydHlOYW1lcy0+YXJndW1l
bnRzID09ICppZGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29u
c3RydWN0b3JzLmgKaW5kZXggZTFlODQ4Ny4uZjVjMGZkMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTE3MCw2ICsxNzAsMTEgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBOZXdUYXJnZXROb2Rl
OjpOZXdUYXJnZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24pCisgICAgICAg
IDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBS
ZXNvbHZlTm9kZTo6UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCkKICAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2lkZW50KGlkZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDA4YWY2NDcuLmNmMWYzZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTU0Miw2ICs1NDIsMTQgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKICAgICB9Owog
CisgICAgY2xhc3MgTmV3VGFyZ2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7
CisgICAgcHVibGljOgorICAgICAgICBOZXdUYXJnZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworICAg
IH07CisKICAgICBjbGFzcyBSZXNvbHZlTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CiAg
ICAgcHVibGljOgogICAgICAgICBSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA5MmFlOWFiLi41YWNlZTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yOTI1LDExICsyOTI1LDI4
IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlTWVtYmVyRXhwcmVzCiAgICAgYm9vbCBiYXNlSXNTdXBlciA9IGZhbHNl
OwogI2VuZGlmCiAKKyAgICBib29sIGJhc2VJc1RhcmdldCA9IGZhbHNlOworICAgIGlmIChuZXdD
b3VudCAmJiBtYXRjaChET1QpKSB7CisgICAgICAgIG5leHQoKTsKKyAgICAgICAgaWYgKG1hdGNo
KElERU5UKSkgeworICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQgPSBtX3Rva2Vu
Lm1fZGF0YS5pZGVudDsKKyAgICAgICAgICAgIGlmIChtX3ZtLT5wcm9wZXJ0eU5hbWVzLT50YXJn
ZXQgPT0gKmlkZW50KSB7CisgICAgICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZGYWxzZShjdXJy
ZW50U2NvcGUoKS0+aXNGdW5jdGlvbigpLCAibmV3LnRhcmdldCBpcyBvbmx5IHZhbGlkIGluc2lk
ZSBmdW5jdGlvbnMiKTsKKyAgICAgICAgICAgICAgICBiYXNlSXNUYXJnZXQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGJhc2UgPSBjb250ZXh0LnRhcmdldEV4cHIobG9jYXRpb24pOworICAgICAg
ICAgICAgICAgIG5ld0NvdW50LS07CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgZmFpbFdpdGhNZXNzYWdlKCJcIm5ldy5cIiBjYW4g
b25seSBmb2xsb3dlZCB3aXRoIHRhcmdldC4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9rZW4oKTsKKyAgICB9CisKICAgICBpZiAoYmFzZUlzU3Vw
ZXIpIHsKICAgICAgICAgYmFzZSA9IGNvbnRleHQuc3VwZXJFeHByKGxvY2F0aW9uKTsKICAgICAg
ICAgbmV4dCgpOwogICAgICAgICBjdXJyZW50U2NvcGUoKS0+c2V0TmVlZHNTdXBlckJpbmRpbmco
KTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgaWYgKCFiYXNlSXNUYXJnZXQpCiAgICAgICAgIGJh
c2UgPSBwYXJzZVByaW1hcnlFeHByZXNzaW9uKGNvbnRleHQpOwogCiAgICAgZmFpbElmRmFsc2Uo
YmFzZSwgIkNhbm5vdCBwYXJzZSBiYXNlIGV4cHJlc3Npb24iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKaW5kZXggMDdkM2IwZS4uMDYwNmYxZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCkBAIC03NSw3
ICs3NSw3IEBAIHB1YmxpYzoKICAgICAgICAgVGhpc0V4cHIsIE51bGxFeHByLCBCb29sRXhwciwg
UmVnRXhwRXhwciwgT2JqZWN0TGl0ZXJhbEV4cHIsCiAgICAgICAgIEZ1bmN0aW9uRXhwciwgQ2xh
c3NFeHByLCBTdXBlckV4cHIsIEJyYWNrZXRFeHByLCBEb3RFeHByLCBDYWxsRXhwciwKICAgICAg
ICAgTmV3RXhwciwgUHJlRXhwciwgUG9zdEV4cHIsIFVuYXJ5RXhwciwgQmluYXJ5RXhwciwKLSAg
ICAgICAgQ29uZGl0aW9uYWxFeHByLCBBc3NpZ25tZW50RXhwciwgVHlwZW9mRXhwciwKKyAgICAg
ICAgQ29uZGl0aW9uYWxFeHByLCBBc3NpZ25tZW50RXhwciwgVHlwZW9mRXhwciwgVGFyZ2V0RXhw
ciwKICAgICAgICAgRGVsZXRlRXhwciwgQXJyYXlMaXRlcmFsRXhwciwgQmluZGluZ0Rlc3RydWN0
dXJpbmcsCiAgICAgICAgIEFycmF5RGVzdHJ1Y3R1cmluZywgT2JqZWN0RGVzdHJ1Y3R1cmluZywg
U291cmNlRWxlbWVudHNSZXN1bHQsCiAgICAgICAgIEZ1bmN0aW9uQm9keVJlc3VsdCwgU3ByZWFk
RXhwciwgQXJndW1lbnRzUmVzdWx0LApAQCAtMTU2LDYgKzE1Niw3IEBAIHB1YmxpYzoKICAgICBF
eHByZXNzaW9uVHlwZSBjcmVhdGVWb2lkKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Np
b25UeXBlKSB7IHJldHVybiBVbmFyeUV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSB0aGlzRXhw
cihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUaGlzVERaTW9kZSkgeyByZXR1cm4gVGhpc0V4cHI7
IH0KICAgICBFeHByZXNzaW9uVHlwZSBzdXBlckV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJikg
eyByZXR1cm4gU3VwZXJFeHByOyB9CisgICAgRXhwcmVzc2lvblR5cGUgdGFyZ2V0RXhwcihjb25z
dCBKU1Rva2VuTG9jYXRpb24mKSB7IHJldHVybiBUYXJnZXRFeHByOyB9CiAgICAgRXhwcmVzc2lv
blR5cGUgY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlm
aWVyKiwgaW50KSB7IHJldHVybiBSZXNvbHZlRXhwcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNy
ZWF0ZU9iamVjdExpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJikgeyByZXR1cm4gT2JqZWN0
TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVPYmplY3RMaXRlcmFsKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkgeyByZXR1cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
CmluZGV4IDQxYjk0ZjEuLmZkYTUyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtMTY2LDYgKzE2Niw3IEBACiAgICAgbWFj
cm8oc291cmNlQ29kZSkgXAogICAgIG1hY3JvKHN0YWNrKSBcCiAgICAgbWFjcm8oc3ViYXJyYXkp
IFwKKyAgICBtYWNybyh0YXJnZXQpIFwKICAgICBtYWNybyh0ZXN0KSBcCiAgICAgbWFjcm8odGhl
bikgXAogICAgIG1hY3JvKHRvRXhwb25lbnRpYWwpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXRhcmdldC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXRhcmdldC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kN2E4M2ZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzCkBAIC0wLDAgKzEsNzkgQEAKK3ZhciBwYXNz
ZWQgPSB0cnVlOwordHJ5IHsKKyAgICBldmFsKCJuZXcudGFyZ2V0OyIpOworICAgIHBhc3NlZCA9
IGZhbHNlOworfSBjYXRjaChlKSB7fQorCit0ZXN0KHBhc3NlZCwgdHJ1ZSwgIm5ldy50YXJnZXQg
Y2Fubm90IGJlIGNhbGxlZCBpbiBnbG9iYWwgc2NvcGUiKTsKKworLy8gVGVzdCB3aXRob3V0IGNs
YXNzIHN5bnRheAorCitmdW5jdGlvbiB0ZXN0KHJlc3VsdCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsK
KyAgICBpZiAocmVzdWx0ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiAiICsg
bWVzc2FnZSArICIuIHdhczogIiArIHJlc3VsdCArICIgd2FudGVkOiAiICsgZXhwZWN0ZWQ7Cit9
CisKK2Z1bmN0aW9uIGNhbGwoKSB7CisgICAgdGVzdChuZXcudGFyZ2V0LCB1bmRlZmluZWQsICJu
ZXcudGFyZ2V0IHNob3VsZCBiZSB1bmRlZmluZWQgaW4gYSBmdW5jdGlvbiBjYWxsIik7Cit9Citj
YWxsKCk7CisKK2Z1bmN0aW9uIENvbnN0cnVjdG9yKCkgeworICAgIHRlc3QobmV3LnRhcmdldCwg
Q29uc3RydWN0b3IsICJuZXcudGFyZ2V0IHNob3VsZCBiZSB0aGUgc2FtZSBhcyBjb25zdHJ1Y3Rv
ciIpOworICAgIGZ1bmN0aW9uIHN1YkNhbGwoKSB7CisgICAgICAgIHRlc3QobmV3LnRhcmdldCwg
dW5kZWZpbmVkLCAibmV3LnRhcmdldCBzaG91bGQgYmUgdW5kZWZpbmVkIGluIGEgc3ViIGZ1bmN0
aW9uIGNhbGwiKTsKKyAgICB9CisgICAgc3ViQ2FsbCgpOworCisgICAgZnVuY3Rpb24gU3ViQ29u
c3RydWN0b3IoKSB7CisgICAgICAgIHRlc3QobmV3LnRhcmdldCwgU3ViQ29uc3RydWN0b3IsICJu
ZXcudGFyZ2V0IHNob3VsZCBiZSBzdWJDb25zdHJ1Y3RvciIpOworICAgIH0KKyAgICBuZXcgU3Vi
Q29uc3RydWN0b3IoKTsKKworfQorbmV3IENvbnN0cnVjdG9yKCk7CisKK2Z1bmN0aW9uIG5vQXNz
aWduKCkgeworICAgIG5ldy50YXJnZXQgPSAxOworfQorCit0cnkgeworICAgIG5ldyBub0Fzc2ln
bigpOworICAgIHBhc3NlZCA9IGZhbHNlOworfSBjYXRjaChlKSB7IH0KK3RyeSB7CisgICAgbm9B
c3NpZ24oKTsKKyAgICBwYXNzZWQgPSBmYWxzZTsKK30gY2F0Y2goZSkgeyB9CisKK3Rlc3QocGFz
c2VkLCB0cnVlLCAibmV3LnRhcmdldCBzaG91bGQgbm90IGJlIGEgcmVmZXJlbmNlIik7CisKKy8v
IFRoaXMgaXMgbW9zdGx5IHRvIHRlc3QgdGhhdCBjYWxsaW5nIG5ldyBvbiBuZXcudGFyZ2V0IGRl
b3MgdGhlIHJpZ2h0IHRoaW5nLgorZnVuY3Rpb24gZG9XZWlyZFRoaW5ncyhhcmcpIHsKKyAgICBp
ZiAobmV3LnRhcmdldCkgeworICAgICAgICBpZiAoYXJnKQorICAgICAgICAgICAgdGhpcy52YWx1
ZSA9IG5ldy50YXJnZXQoMSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMudmFsdWUg
PSBuZXcgbmV3LnRhcmdldCh0cnVlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIGFyZzsK
K30KKwordGVzdChuZXcgZG9XZWlyZFRoaW5ncyhmYWxzZSkudmFsdWUudmFsdWUsIDEsICJjYWxs
aW5nIG5ldyBvbiBuZXcudGFyZ2V0IGRpZCBzb21ldGhpbmcgd2VpcmQiKTsKKworLy8gVGVzdCB3
aXRoIGNsYXNzIHN5bnRheAorCitjbGFzcyBTdXBlckNsYXNzIHsKKyAgICBjb25zdHJ1Y3Rvcigp
IHsKKyAgICAgICAgdGhpcy50YXJnZXQgPSBuZXcudGFyZ2V0OworICAgIH0KK30KKworY2xhc3Mg
U3ViQ2xhc3MgZXh0ZW5kcyBTdXBlckNsYXNzIHsKKyAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAg
ICAgc3VwZXIoKTsKKyAgICB9Cit9CisKK3Rlc3QobmV3IFN1cGVyQ2xhc3MoKS50YXJnZXQsIFN1
cGVyQ2xhc3MsICJuZXcudGFyZ2V0IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgY2xhc3MgY29u
c3RydWN0b3IiKTsKK3Rlc3QobmV3IFN1YkNsYXNzKCkudGFyZ2V0LCBTdWJDbGFzcywgIm5ldy50
YXJnZXQgc2hvdWxkIG5vdCBjaGFuZ2Ugd2hlbiBwYXNzZWQgdGhyb3VnaCBzdXBlcigpIik7Ci0t
IAoyLjMuOCAoQXBwbGUgR2l0LTU4KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257098</attachid>
            <date>2015-07-20 10:37:28 -0700</date>
            <delta_ts>2015-07-20 10:45:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Add-support-for-new.target.patch</filename>
            <type>text/plain</type>
            <size>11765</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSBjMWQ4ZjhjY2Q4NDM4ZjU2MzQ0MmRmMDNiOTAyODc1ZDIyMmJkMTI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMjAgSnVsIDIwMTUgMTA6MzA6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBB
ZGQgc3VwcG9ydCBmb3IgbmV3LnRhcmdldC4KCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAzNyArKysrKysrKysrCiAuLi4vYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICB8ICA0ICstCiAuLi4vSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgICB8IDEwICsrKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggICAgICAgICAgfCAgNCArKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggICAgfCAgNSArKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oICAgICAgICAgICAgICAgfCAgOCAr
KysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCAgICAgICAgICAgIHwg
MTkgKysrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCAg
ICAgICB8ICAzICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oICB8ICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXRh
cmdldC5qcyAgIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKwogMTAgZmlsZXMgY2hhbmdlZCwg
MTY2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggNDhiZTk4Yy4uZjIwYTdhOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTUtMDctMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcudGFyZ2V0
IHN5bnRheC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NzA1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBuZXcudGFyZ2V0LiBFc3NlbnRpYWxseSB0aGUgaW1wbGVtZW50YXRp
b24gaXMsIGJlZm9yZSBjb25zdHJ1Y3RvciBjYWxscywKKyAgICAgICAgdGhlIHRhcmdldCBvZiBh
ICJuZXciIGlzIHBsYWNlZCB3aGVyZSAidGhpcyIgbm9yYW1sbHkgZ29lcyBpbiB0aGUgY2FsbGlu
ZyBjb252ZW50aW9uLgorICAgICAgICBUaGVuIGluIHRoZSBjb25zdHJ1Y3RvciBiZWZvcmUgb2Jq
ZWN0IGlzIGluaXRpYWxpemVkIHdlIG1vdmUgdGhlIHRhcmdldCBvZiB0aGUgIm5ldyIKKyAgICAg
ICAgaW50byBhIGxvY2FsIHZhcmlhYmxlLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVj
b2RlR2VuZXJhdG9yKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoK
KyAgICAgICAgKEpTQzo6TmV3VGFyZ2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBw
YXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjp0YXJnZXRFeHBy
KToKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpO
ZXdUYXJnZXROb2RlOjpOZXdUYXJnZXROb2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoK
KyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVy
VHlwZT46OnBhcnNlTWVtYmVyRXhwcmVzc2lvbik6CisgICAgICAgICogcGFyc2VyL1N5bnRheENo
ZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6dGFyZ2V0RXhwcik6CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9uZXctdGFyZ2V0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoY2FsbCk6
CisgICAgICAgIChDb25zdHJ1Y3Rvci5zdWJDYWxsKToKKyAgICAgICAgKENvbnN0cnVjdG9yLlN1
YkNvbnN0cnVjdG9yKToKKyAgICAgICAgKENvbnN0cnVjdG9yKToKKyAgICAgICAgKG5vQXNzaWdu
KToKKyAgICAgICAgKGRvV2VpcmRUaGluZ3MpOgorICAgICAgICAoU3VwZXJDbGFzcyk6CisgICAg
ICAgIChTdWJDbGFzcyk6CisKIDIwMTUtMDctMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRml4IGFybXY3IGJ1aWxkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAppbmRleCBlZmJmOGU3Li5mZjMxMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtNTA1LDEwICs1
MDUsMTAgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVu
Y3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2UKICAgICAgICAgfQogICAgIH0KICAgICAK
KyAgICBtX25ld1RhcmdldFJlZ2lzdGVyID0gYWRkVmFyKCk7CiAgICAgaWYgKGlzQ29uc3RydWN0
b3IoKSkgeworICAgICAgICBlbWl0TW92ZShtX25ld1RhcmdldFJlZ2lzdGVyLCAmbV90aGlzUmVn
aXN0ZXIpOwogICAgICAgICBpZiAoY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5k
OjpEZXJpdmVkKSB7Ci0gICAgICAgICAgICBtX25ld1RhcmdldFJlZ2lzdGVyID0gYWRkVmFyKCk7
Ci0gICAgICAgICAgICBlbWl0TW92ZShtX25ld1RhcmdldFJlZ2lzdGVyLCAmbV90aGlzUmVnaXN0
ZXIpOwogICAgICAgICAgICAgZW1pdE1vdmVFbXB0eVZhbHVlKCZtX3RoaXNSZWdpc3Rlcik7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZW1pdENyZWF0ZVRoaXMoJm1fdGhpc1JlZ2lzdGVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAppbmRleCA2Y2I1NDg2Li44MGQ2NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xODUsNiArMTg1LDE2
IEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IpCiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5l
cmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0
eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIE5ld1RhcmdldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitSZWdpc3RlcklEKiBOZXdUYXJnZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIGlmIChkc3QgPT0gZ2Vu
ZXJhdG9yLmlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmVUb0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5lcmF0b3Iu
bmV3VGFyZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVz
b2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBib29sIFJlc29s
dmVOb2RlOjppc1B1cmUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggNzY2YWFjMS4uMjlhOWJi
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTE4MCw2
ICsxODAsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJB
cmVuYSkgU3VwZXJOb2RlKGxvY2F0aW9uKTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5vZGUqIHRh
cmdldEV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgTmV3VGFyZ2V0Tm9kZShsb2NhdGlvbik7CisgICAg
fQogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVSZXNvbHZlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXIqIGlkZW50LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgc3RhcnQpCiAgICAgewogICAgICAgICBpZiAobV92bS0+cHJvcGVydHlOYW1lcy0+YXJndW1l
bnRzID09ICppZGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29u
c3RydWN0b3JzLmgKaW5kZXggZTFlODQ4Ny4uZjVjMGZkMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTE3MCw2ICsxNzAsMTEgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBOZXdUYXJnZXROb2Rl
OjpOZXdUYXJnZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24pCisgICAgICAg
IDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBS
ZXNvbHZlTm9kZTo6UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCkKICAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2lkZW50KGlkZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDA4YWY2NDcuLmNmMWYzZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTU0Miw2ICs1NDIsMTQgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKICAgICB9Owog
CisgICAgY2xhc3MgTmV3VGFyZ2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7
CisgICAgcHVibGljOgorICAgICAgICBOZXdUYXJnZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworICAg
IH07CisKICAgICBjbGFzcyBSZXNvbHZlTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CiAg
ICAgcHVibGljOgogICAgICAgICBSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA5MmFlOWFiLi5hMzQzMzllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yOTI1LDExICsyOTI1LDI4
IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlTWVtYmVyRXhwcmVzCiAgICAgYm9vbCBiYXNlSXNTdXBlciA9IGZhbHNl
OwogI2VuZGlmCiAKKyAgICBib29sIGJhc2VJc1RhcmdldCA9IGZhbHNlOworICAgIGlmIChuZXdD
b3VudCAmJiBtYXRjaChET1QpKSB7CisgICAgICAgIG5leHQoKTsKKyAgICAgICAgaWYgKG1hdGNo
KElERU5UKSkgeworICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQgPSBtX3Rva2Vu
Lm1fZGF0YS5pZGVudDsKKyAgICAgICAgICAgIGlmIChtX3ZtLT5wcm9wZXJ0eU5hbWVzLT50YXJn
ZXQgPT0gKmlkZW50KSB7CisgICAgICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZGYWxzZShjdXJy
ZW50U2NvcGUoKS0+aXNGdW5jdGlvbigpLCAibmV3LnRhcmdldCBpcyBvbmx5IHZhbGlkIGluc2lk
ZSBmdW5jdGlvbnMiKTsKKyAgICAgICAgICAgICAgICBiYXNlSXNUYXJnZXQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGJhc2UgPSBjb250ZXh0LnRhcmdldEV4cHIobG9jYXRpb24pOworICAgICAg
ICAgICAgICAgIG5ld0NvdW50LS07CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgZmFpbFdpdGhNZXNzYWdlKCJcIm5ldy5cIiBjYW4g
b25seSBmb2xsb3dlZCB3aXRoIHRhcmdldCIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IGZhaWxEdWVUb1VuZXhwZWN0ZWRUb2tlbigpOworICAgIH0KKwogICAgIGlmIChiYXNlSXNTdXBl
cikgewogICAgICAgICBiYXNlID0gY29udGV4dC5zdXBlckV4cHIobG9jYXRpb24pOwogICAgICAg
ICBuZXh0KCk7CiAgICAgICAgIGN1cnJlbnRTY29wZSgpLT5zZXROZWVkc1N1cGVyQmluZGluZygp
OwotICAgIH0gZWxzZQorICAgIH0gZWxzZSBpZiAoIWJhc2VJc1RhcmdldCkKICAgICAgICAgYmFz
ZSA9IHBhcnNlUHJpbWFyeUV4cHJlc3Npb24oY29udGV4dCk7CiAKICAgICBmYWlsSWZGYWxzZShi
YXNlLCAiQ2Fubm90IHBhcnNlIGJhc2UgZXhwcmVzc2lvbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRleCAwN2QzYjBlLi4wNjA2ZjFkNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTc1LDcg
Kzc1LDcgQEAgcHVibGljOgogICAgICAgICBUaGlzRXhwciwgTnVsbEV4cHIsIEJvb2xFeHByLCBS
ZWdFeHBFeHByLCBPYmplY3RMaXRlcmFsRXhwciwKICAgICAgICAgRnVuY3Rpb25FeHByLCBDbGFz
c0V4cHIsIFN1cGVyRXhwciwgQnJhY2tldEV4cHIsIERvdEV4cHIsIENhbGxFeHByLAogICAgICAg
ICBOZXdFeHByLCBQcmVFeHByLCBQb3N0RXhwciwgVW5hcnlFeHByLCBCaW5hcnlFeHByLAotICAg
ICAgICBDb25kaXRpb25hbEV4cHIsIEFzc2lnbm1lbnRFeHByLCBUeXBlb2ZFeHByLAorICAgICAg
ICBDb25kaXRpb25hbEV4cHIsIEFzc2lnbm1lbnRFeHByLCBUeXBlb2ZFeHByLCBUYXJnZXRFeHBy
LAogICAgICAgICBEZWxldGVFeHByLCBBcnJheUxpdGVyYWxFeHByLCBCaW5kaW5nRGVzdHJ1Y3R1
cmluZywKICAgICAgICAgQXJyYXlEZXN0cnVjdHVyaW5nLCBPYmplY3REZXN0cnVjdHVyaW5nLCBT
b3VyY2VFbGVtZW50c1Jlc3VsdCwKICAgICAgICAgRnVuY3Rpb25Cb2R5UmVzdWx0LCBTcHJlYWRF
eHByLCBBcmd1bWVudHNSZXN1bHQsCkBAIC0xNTYsNiArMTU2LDcgQEAgcHVibGljOgogICAgIEV4
cHJlc3Npb25UeXBlIGNyZWF0ZVZvaWQoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lv
blR5cGUpIHsgcmV0dXJuIFVuYXJ5RXhwcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIHRoaXNFeHBy
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFRoaXNURFpNb2RlKSB7IHJldHVybiBUaGlzRXhwcjsg
fQogICAgIEV4cHJlc3Npb25UeXBlIHN1cGVyRXhwcihjb25zdCBKU1Rva2VuTG9jYXRpb24mKSB7
IHJldHVybiBTdXBlckV4cHI7IH0KKyAgICBFeHByZXNzaW9uVHlwZSB0YXJnZXRFeHByKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYpIHsgcmV0dXJuIFRhcmdldEV4cHI7IH0KICAgICBFeHByZXNzaW9u
VHlwZSBjcmVhdGVSZXNvbHZlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZp
ZXIqLCBpbnQpIHsgcmV0dXJuIFJlc29sdmVFeHByOyB9CiAgICAgRXhwcmVzc2lvblR5cGUgY3Jl
YXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mKSB7IHJldHVybiBPYmplY3RM
aXRlcmFsRXhwcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZU9iamVjdExpdGVyYWwoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50KSB7IHJldHVybiBPYmplY3RMaXRlcmFsRXhwcjsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgK
aW5kZXggNDFiOTRmMS4uZmRhNTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0xNjYsNiArMTY2LDcgQEAKICAgICBtYWNy
byhzb3VyY2VDb2RlKSBcCiAgICAgbWFjcm8oc3RhY2spIFwKICAgICBtYWNybyhzdWJhcnJheSkg
XAorICAgIG1hY3JvKHRhcmdldCkgXAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNybyh0aGVu
KSBcCiAgICAgbWFjcm8odG9FeHBvbmVudGlhbCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmQ3YTgzZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL25ldy10YXJnZXQuanMKQEAgLTAsMCArMSw3OSBAQAordmFyIHBhc3Nl
ZCA9IHRydWU7Cit0cnkgeworICAgIGV2YWwoIm5ldy50YXJnZXQ7Iik7CisgICAgcGFzc2VkID0g
ZmFsc2U7Cit9IGNhdGNoKGUpIHt9CisKK3Rlc3QocGFzc2VkLCB0cnVlLCAibmV3LnRhcmdldCBj
YW5ub3QgYmUgY2FsbGVkIGluIGdsb2JhbCBzY29wZSIpOworCisvLyBUZXN0IHdpdGhvdXQgY2xh
c3Mgc3ludGF4CisKK2Z1bmN0aW9uIHRlc3QocmVzdWx0LCBleHBlY3RlZCwgbWVzc2FnZSkgewor
ICAgIGlmIChyZXN1bHQgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6ICIgKyBt
ZXNzYWdlICsgIi4gd2FzOiAiICsgcmVzdWx0ICsgIiB3YW50ZWQ6ICIgKyBleHBlY3RlZDsKK30K
KworZnVuY3Rpb24gY2FsbCgpIHsKKyAgICB0ZXN0KG5ldy50YXJnZXQsIHVuZGVmaW5lZCwgIm5l
dy50YXJnZXQgc2hvdWxkIGJlIHVuZGVmaW5lZCBpbiBhIGZ1bmN0aW9uIGNhbGwiKTsKK30KK2Nh
bGwoKTsKKworZnVuY3Rpb24gQ29uc3RydWN0b3IoKSB7CisgICAgdGVzdChuZXcudGFyZ2V0LCBD
b25zdHJ1Y3RvciwgIm5ldy50YXJnZXQgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIGNvbnN0cnVjdG9y
Iik7CisgICAgZnVuY3Rpb24gc3ViQ2FsbCgpIHsKKyAgICAgICAgdGVzdChuZXcudGFyZ2V0LCB1
bmRlZmluZWQsICJuZXcudGFyZ2V0IHNob3VsZCBiZSB1bmRlZmluZWQgaW4gYSBzdWIgZnVuY3Rp
b24gY2FsbCIpOworICAgIH0KKyAgICBzdWJDYWxsKCk7CisKKyAgICBmdW5jdGlvbiBTdWJDb25z
dHJ1Y3RvcigpIHsKKyAgICAgICAgdGVzdChuZXcudGFyZ2V0LCBTdWJDb25zdHJ1Y3RvciwgIm5l
dy50YXJnZXQgc2hvdWxkIGJlIHN1YkNvbnN0cnVjdG9yIik7CisgICAgfQorICAgIG5ldyBTdWJD
b25zdHJ1Y3RvcigpOworCit9CituZXcgQ29uc3RydWN0b3IoKTsKKworZnVuY3Rpb24gbm9Bc3Np
Z24oKSB7CisgICAgbmV3LnRhcmdldCA9IDE7Cit9CisKK3RyeSB7CisgICAgbmV3IG5vQXNzaWdu
KCk7CisgICAgcGFzc2VkID0gZmFsc2U7Cit9IGNhdGNoKGUpIHsgfQordHJ5IHsKKyAgICBub0Fz
c2lnbigpOworICAgIHBhc3NlZCA9IGZhbHNlOworfSBjYXRjaChlKSB7IH0KKwordGVzdChwYXNz
ZWQsIHRydWUsICJuZXcudGFyZ2V0IHNob3VsZCBub3QgYmUgYSByZWZlcmVuY2UiKTsKKworLy8g
VGhpcyBpcyBtb3N0bHkgdG8gdGVzdCB0aGF0IGNhbGxpbmcgbmV3IG9uIG5ldy50YXJnZXQgZGVv
cyB0aGUgcmlnaHQgdGhpbmcuCitmdW5jdGlvbiBkb1dlaXJkVGhpbmdzKGFyZykgeworICAgIGlm
IChuZXcudGFyZ2V0KSB7CisgICAgICAgIGlmIChhcmcpCisgICAgICAgICAgICB0aGlzLnZhbHVl
ID0gbmV3LnRhcmdldCgxKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy52YWx1ZSA9
IG5ldyBuZXcudGFyZ2V0KHRydWUpOworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gYXJnOwor
fQorCit0ZXN0KG5ldyBkb1dlaXJkVGhpbmdzKGZhbHNlKS52YWx1ZS52YWx1ZSwgMSwgImNhbGxp
bmcgbmV3IG9uIG5ldy50YXJnZXQgZGlkIHNvbWV0aGluZyB3ZWlyZCIpOworCisvLyBUZXN0IHdp
dGggY2xhc3Mgc3ludGF4CisKK2NsYXNzIFN1cGVyQ2xhc3MgeworICAgIGNvbnN0cnVjdG9yKCkg
eworICAgICAgICB0aGlzLnRhcmdldCA9IG5ldy50YXJnZXQ7CisgICAgfQorfQorCitjbGFzcyBT
dWJDbGFzcyBleHRlbmRzIFN1cGVyQ2xhc3MgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAg
ICBzdXBlcigpOworICAgIH0KK30KKwordGVzdChuZXcgU3VwZXJDbGFzcygpLnRhcmdldCwgU3Vw
ZXJDbGFzcywgIm5ldy50YXJnZXQgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBjbGFzcyBjb25z
dHJ1Y3RvciIpOwordGVzdChuZXcgU3ViQ2xhc3MoKS50YXJnZXQsIFN1YkNsYXNzLCAibmV3LnRh
cmdldCBzaG91bGQgbm90IGNoYW5nZSB3aGVuIHBhc3NlZCB0aHJvdWdoIHN1cGVyKCkiKTsKLS0g
CjIuMy44IChBcHBsZSBHaXQtNTgpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257099</attachid>
            <date>2015-07-20 10:45:40 -0700</date>
            <delta_ts>2015-07-21 11:20:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Add-support-for-new.target.patch</filename>
            <type>text/plain</type>
            <size>11794</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">RnJvbSAxNzRiY2Q4ZGMyY2I4ZDJhZmEzNGY2MzZjMzlhYmU2OWNhMDg1MGNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZWl0aCBNaWxsZXIgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+
CkRhdGU6IE1vbiwgMjAgSnVsIDIwMTUgMTA6MzA6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSBB
ZGQgc3VwcG9ydCBmb3IgbmV3LnRhcmdldC4KCi0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAzNyArKysrKysrKysrCiAuLi4vYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCAgICAgICAgICAgICB8ICA0ICstCiAuLi4vSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgICB8IDEwICsrKwogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggICAgICAgICAgfCAgNCArKwogU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggICAgfCAgNSArKwog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oICAgICAgICAgICAgICAgfCAgOCAr
KysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCAgICAgICAgICAgIHwg
MTkgKysrKystCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCAg
ICAgICB8ICAzICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oICB8ICAxICsKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXRh
cmdldC5qcyAgIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKwogMTAgZmlsZXMgY2hhbmdlZCwg
MTY2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggNDhiZTk4Yy4uZDlkYTNmNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTUtMDctMjAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcudGFyZ2V0
IHN5bnRheC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0NzA1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBuZXcudGFyZ2V0LiBFc3NlbnRpYWxseSB0aGUgaW1wbGVtZW50YXRp
b24gaXMsIGJlZm9yZSBjb25zdHJ1Y3RvciBjYWxscywKKyAgICAgICAgdGhlIHRhcmdldCBvZiBh
ICJuZXciIGlzIHBsYWNlZCB3aGVyZSAidGhpcyIgbm9yYW1sbHkgZ29lcyBpbiB0aGUgY2FsbGlu
ZyBjb252ZW50aW9uLgorICAgICAgICBUaGVuIGluIHRoZSBjb25zdHJ1Y3RvciBiZWZvcmUgb2Jq
ZWN0IGlzIGluaXRpYWxpemVkIHdlIG1vdmUgdGhlIHRhcmdldCBvZiB0aGUgIm5ldyIKKyAgICAg
ICAgaW50byBhIGxvY2FsIHZhcmlhYmxlLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVj
b2RlR2VuZXJhdG9yKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoK
KyAgICAgICAgKEpTQzo6TmV3VGFyZ2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBw
YXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpuZXdUYXJnZXRF
eHByKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlND
OjpOZXdUYXJnZXROb2RlOjpOZXdUYXJnZXROb2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMu
aDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlTWVtYmVyRXhwcmVzc2lvbik6CisgICAgICAgICogcGFyc2VyL1N5bnRh
eENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6bmV3VGFyZ2V0RXhwcik6
CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9uZXctdGFyZ2V0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
Y2FsbCk6CisgICAgICAgIChDb25zdHJ1Y3Rvci5zdWJDYWxsKToKKyAgICAgICAgKENvbnN0cnVj
dG9yLlN1YkNvbnN0cnVjdG9yKToKKyAgICAgICAgKENvbnN0cnVjdG9yKToKKyAgICAgICAgKG5v
QXNzaWduKToKKyAgICAgICAgKGRvV2VpcmRUaGluZ3MpOgorICAgICAgICAoU3VwZXJDbGFzcyk6
CisgICAgICAgIChTdWJDbGFzcyk6CisKIDIwMTUtMDctMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRml4IGFybXY3IGJ1aWxkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcAppbmRleCBlZmJmOGU3Li5mZjMxMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtNTA1
LDEwICs1MDUsMTAgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2
bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2UKICAgICAgICAgfQogICAgIH0K
ICAgICAKKyAgICBtX25ld1RhcmdldFJlZ2lzdGVyID0gYWRkVmFyKCk7CiAgICAgaWYgKGlzQ29u
c3RydWN0b3IoKSkgeworICAgICAgICBlbWl0TW92ZShtX25ld1RhcmdldFJlZ2lzdGVyLCAmbV90
aGlzUmVnaXN0ZXIpOwogICAgICAgICBpZiAoY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0
b3JLaW5kOjpEZXJpdmVkKSB7Ci0gICAgICAgICAgICBtX25ld1RhcmdldFJlZ2lzdGVyID0gYWRk
VmFyKCk7Ci0gICAgICAgICAgICBlbWl0TW92ZShtX25ld1RhcmdldFJlZ2lzdGVyLCAmbV90aGlz
UmVnaXN0ZXIpOwogICAgICAgICAgICAgZW1pdE1vdmVFbXB0eVZhbHVlKCZtX3RoaXNSZWdpc3Rl
cik7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZW1pdENyZWF0ZVRoaXMoJm1fdGhpc1Jl
Z2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAppbmRleCA2Y2I1NDg2Li44MGQ2NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xODUsNiAr
MTg1LDE2IEBAIHN0YXRpYyBSZWdpc3RlcklEKiBlbWl0U3VwZXJCYXNlRm9yQ2FsbGVlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IpCiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0R2V0QnlJ
ZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGhvbWVPYmplY3QuZ2V0KCksIGdlbmVyYXRvci5w
cm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIE5ld1RhcmdldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitSZWdpc3RlcklEKiBOZXdUYXJnZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIGlmIChkc3Qg
PT0gZ2VuZXJhdG9yLmlnbm9yZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmVUb0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBnZW5l
cmF0b3IubmV3VGFyZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBib29s
IFJlc29sdmVOb2RlOjppc1B1cmUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggNzY2YWFjMS4u
MjI0ZWFmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWls
ZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAg
LTE4MCw2ICsxODAsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyAobV9w
YXJzZXJBcmVuYSkgU3VwZXJOb2RlKGxvY2F0aW9uKTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5v
ZGUqIG5ld1RhcmdldEV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgTmV3VGFyZ2V0Tm9kZShsb2NhdGlv
bik7CisgICAgfQogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVSZXNvbHZlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXIqIGlkZW50LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgc3RhcnQpCiAgICAgewogICAgICAgICBpZiAobV92bS0+cHJvcGVydHlOYW1l
cy0+YXJndW1lbnRzID09ICppZGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggZTFlODQ4Ny4uZjVjMGZkMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTE3MCw2ICsx
NzAsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBOZXdU
YXJnZXROb2RlOjpOZXdUYXJnZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24p
CisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgeworICAgIH0KKwogICAg
IGlubGluZSBSZXNvbHZlTm9kZTo6UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBs
b2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBz
dGFydCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2lk
ZW50KGlkZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDA4YWY2NDcu
LmNmMWYzZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTU0Miw2ICs1
NDIsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsK
ICAgICB9OwogCisgICAgY2xhc3MgTmV3VGFyZ2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNz
aW9uTm9kZSB7CisgICAgcHVibGljOgorICAgICAgICBOZXdUYXJnZXROb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJy
aWRlOworICAgIH07CisKICAgICBjbGFzcyBSZXNvbHZlTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9u
Tm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA5MmFlOWFiLi40ODFh
ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yOTI1LDEx
ICsyOTI1LDI4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24g
UGFyc2VyPExleGVyVHlwZT46OnBhcnNlTWVtYmVyRXhwcmVzCiAgICAgYm9vbCBiYXNlSXNTdXBl
ciA9IGZhbHNlOwogI2VuZGlmCiAKKyAgICBib29sIGJhc2VJc05ld1RhcmdldCA9IGZhbHNlOwor
ICAgIGlmIChuZXdDb3VudCAmJiBtYXRjaChET1QpKSB7CisgICAgICAgIG5leHQoKTsKKyAgICAg
ICAgaWYgKG1hdGNoKElERU5UKSkgeworICAgICAgICAgICAgY29uc3QgSWRlbnRpZmllciogaWRl
bnQgPSBtX3Rva2VuLm1fZGF0YS5pZGVudDsKKyAgICAgICAgICAgIGlmIChtX3ZtLT5wcm9wZXJ0
eU5hbWVzLT50YXJnZXQgPT0gKmlkZW50KSB7CisgICAgICAgICAgICAgICAgc2VtYW50aWNGYWls
SWZGYWxzZShjdXJyZW50U2NvcGUoKS0+aXNGdW5jdGlvbigpLCAibmV3LnRhcmdldCBpcyBvbmx5
IHZhbGlkIGluc2lkZSBmdW5jdGlvbnMiKTsKKyAgICAgICAgICAgICAgICBiYXNlSXNOZXdUYXJn
ZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJhc2UgPSBjb250ZXh0Lm5ld1RhcmdldEV4cHIo
bG9jYXRpb24pOworICAgICAgICAgICAgICAgIG5ld0NvdW50LS07CisgICAgICAgICAgICAgICAg
bmV4dCgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgZmFpbFdpdGhNZXNz
YWdlKCJcIm5ldy5cIiBjYW4gb25seSBmb2xsb3dlZCB3aXRoIHRhcmdldCIpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGZhaWxEdWVUb1VuZXhwZWN0ZWRUb2tlbigpOworICAgIH0KKwog
ICAgIGlmIChiYXNlSXNTdXBlcikgewogICAgICAgICBiYXNlID0gY29udGV4dC5zdXBlckV4cHIo
bG9jYXRpb24pOwogICAgICAgICBuZXh0KCk7CiAgICAgICAgIGN1cnJlbnRTY29wZSgpLT5zZXRO
ZWVkc1N1cGVyQmluZGluZygpOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSBpZiAoIWJhc2VJc05l
d1RhcmdldCkKICAgICAgICAgYmFzZSA9IHBhcnNlUHJpbWFyeUV4cHJlc3Npb24oY29udGV4dCk7
CiAKICAgICBmYWlsSWZGYWxzZShiYXNlLCAiQ2Fubm90IHBhcnNlIGJhc2UgZXhwcmVzc2lvbiIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2Vy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRleCAw
N2QzYjBlLi5lYWMyMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1N5bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRh
eENoZWNrZXIuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFRoaXNFeHByLCBO
dWxsRXhwciwgQm9vbEV4cHIsIFJlZ0V4cEV4cHIsIE9iamVjdExpdGVyYWxFeHByLAogICAgICAg
ICBGdW5jdGlvbkV4cHIsIENsYXNzRXhwciwgU3VwZXJFeHByLCBCcmFja2V0RXhwciwgRG90RXhw
ciwgQ2FsbEV4cHIsCiAgICAgICAgIE5ld0V4cHIsIFByZUV4cHIsIFBvc3RFeHByLCBVbmFyeUV4
cHIsIEJpbmFyeUV4cHIsCi0gICAgICAgIENvbmRpdGlvbmFsRXhwciwgQXNzaWdubWVudEV4cHIs
IFR5cGVvZkV4cHIsCisgICAgICAgIENvbmRpdGlvbmFsRXhwciwgQXNzaWdubWVudEV4cHIsIFR5
cGVvZkV4cHIsIE5ld1RhcmdldEV4cHIsCiAgICAgICAgIERlbGV0ZUV4cHIsIEFycmF5TGl0ZXJh
bEV4cHIsIEJpbmRpbmdEZXN0cnVjdHVyaW5nLAogICAgICAgICBBcnJheURlc3RydWN0dXJpbmcs
IE9iamVjdERlc3RydWN0dXJpbmcsIFNvdXJjZUVsZW1lbnRzUmVzdWx0LAogICAgICAgICBGdW5j
dGlvbkJvZHlSZXN1bHQsIFNwcmVhZEV4cHIsIEFyZ3VtZW50c1Jlc3VsdCwKQEAgLTE1Niw2ICsx
NTYsNyBAQCBwdWJsaWM6CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlVm9pZChjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBFeHByZXNzaW9uVHlwZSkgeyByZXR1cm4gVW5hcnlFeHByOyB9CiAgICAg
RXhwcmVzc2lvblR5cGUgdGhpc0V4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGhpc1REWk1v
ZGUpIHsgcmV0dXJuIFRoaXNFeHByOyB9CiAgICAgRXhwcmVzc2lvblR5cGUgc3VwZXJFeHByKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYpIHsgcmV0dXJuIFN1cGVyRXhwcjsgfQorICAgIEV4cHJlc3Np
b25UeXBlIG5ld1RhcmdldEV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJikgeyByZXR1cm4gTmV3
VGFyZ2V0RXhwcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZVJlc29sdmUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciosIGludCkgeyByZXR1cm4gUmVzb2x2ZUV4
cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVPYmplY3RMaXRlcmFsKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYpIHsgcmV0dXJuIE9iamVjdExpdGVyYWxFeHByOyB9CiAgICAgRXhwcmVzc2lv
blR5cGUgY3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQpIHsg
cmV0dXJuIE9iamVjdExpdGVyYWxFeHByOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA0MWI5NGYxLi5mZGE1Mjg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgK
QEAgLTE2Niw2ICsxNjYsNyBAQAogICAgIG1hY3JvKHNvdXJjZUNvZGUpIFwKICAgICBtYWNybyhz
dGFjaykgXAogICAgIG1hY3JvKHN1YmFycmF5KSBcCisgICAgbWFjcm8odGFyZ2V0KSBcCiAgICAg
bWFjcm8odGVzdCkgXAogICAgIG1hY3JvKHRoZW4pIFwKICAgICBtYWNybyh0b0V4cG9uZW50aWFs
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy10
YXJnZXQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy10YXJnZXQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdhODNmZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LXRhcmdldC5q
cwpAQCAtMCwwICsxLDc5IEBACit2YXIgcGFzc2VkID0gdHJ1ZTsKK3RyeSB7CisgICAgZXZhbCgi
bmV3LnRhcmdldDsiKTsKKyAgICBwYXNzZWQgPSBmYWxzZTsKK30gY2F0Y2goZSkge30KKwordGVz
dChwYXNzZWQsIHRydWUsICJuZXcudGFyZ2V0IGNhbm5vdCBiZSBjYWxsZWQgaW4gZ2xvYmFsIHNj
b3BlIik7CisKKy8vIFRlc3Qgd2l0aG91dCBjbGFzcyBzeW50YXgKKworZnVuY3Rpb24gdGVzdChy
ZXN1bHQsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CisgICAgaWYgKHJlc3VsdCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93ICJFcnJvcjogIiArIG1lc3NhZ2UgKyAiLiB3YXM6ICIgKyByZXN1bHQg
KyAiIHdhbnRlZDogIiArIGV4cGVjdGVkOworfQorCitmdW5jdGlvbiBjYWxsKCkgeworICAgIHRl
c3QobmV3LnRhcmdldCwgdW5kZWZpbmVkLCAibmV3LnRhcmdldCBzaG91bGQgYmUgdW5kZWZpbmVk
IGluIGEgZnVuY3Rpb24gY2FsbCIpOworfQorY2FsbCgpOworCitmdW5jdGlvbiBDb25zdHJ1Y3Rv
cigpIHsKKyAgICB0ZXN0KG5ldy50YXJnZXQsIENvbnN0cnVjdG9yLCAibmV3LnRhcmdldCBzaG91
bGQgYmUgdGhlIHNhbWUgYXMgY29uc3RydWN0b3IiKTsKKyAgICBmdW5jdGlvbiBzdWJDYWxsKCkg
eworICAgICAgICB0ZXN0KG5ldy50YXJnZXQsIHVuZGVmaW5lZCwgIm5ldy50YXJnZXQgc2hvdWxk
IGJlIHVuZGVmaW5lZCBpbiBhIHN1YiBmdW5jdGlvbiBjYWxsIik7CisgICAgfQorICAgIHN1YkNh
bGwoKTsKKworICAgIGZ1bmN0aW9uIFN1YkNvbnN0cnVjdG9yKCkgeworICAgICAgICB0ZXN0KG5l
dy50YXJnZXQsIFN1YkNvbnN0cnVjdG9yLCAibmV3LnRhcmdldCBzaG91bGQgYmUgc3ViQ29uc3Ry
dWN0b3IiKTsKKyAgICB9CisgICAgbmV3IFN1YkNvbnN0cnVjdG9yKCk7CisKK30KK25ldyBDb25z
dHJ1Y3RvcigpOworCitmdW5jdGlvbiBub0Fzc2lnbigpIHsKKyAgICBuZXcudGFyZ2V0ID0gMTsK
K30KKwordHJ5IHsKKyAgICBuZXcgbm9Bc3NpZ24oKTsKKyAgICBwYXNzZWQgPSBmYWxzZTsKK30g
Y2F0Y2goZSkgeyB9Cit0cnkgeworICAgIG5vQXNzaWduKCk7CisgICAgcGFzc2VkID0gZmFsc2U7
Cit9IGNhdGNoKGUpIHsgfQorCit0ZXN0KHBhc3NlZCwgdHJ1ZSwgIm5ldy50YXJnZXQgc2hvdWxk
IG5vdCBiZSBhIHJlZmVyZW5jZSIpOworCisvLyBUaGlzIGlzIG1vc3RseSB0byB0ZXN0IHRoYXQg
Y2FsbGluZyBuZXcgb24gbmV3LnRhcmdldCBkZW9zIHRoZSByaWdodCB0aGluZy4KK2Z1bmN0aW9u
IGRvV2VpcmRUaGluZ3MoYXJnKSB7CisgICAgaWYgKG5ldy50YXJnZXQpIHsKKyAgICAgICAgaWYg
KGFyZykKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcudGFyZ2V0KDEpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IG5ldy50YXJnZXQodHJ1ZSk7CisgICAg
fSBlbHNlCisgICAgICAgIHJldHVybiBhcmc7Cit9CisKK3Rlc3QobmV3IGRvV2VpcmRUaGluZ3Mo
ZmFsc2UpLnZhbHVlLnZhbHVlLCAxLCAiY2FsbGluZyBuZXcgb24gbmV3LnRhcmdldCBkaWQgc29t
ZXRoaW5nIHdlaXJkIik7CisKKy8vIFRlc3Qgd2l0aCBjbGFzcyBzeW50YXgKKworY2xhc3MgU3Vw
ZXJDbGFzcyB7CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHRoaXMudGFyZ2V0ID0gbmV3
LnRhcmdldDsKKyAgICB9Cit9CisKK2NsYXNzIFN1YkNsYXNzIGV4dGVuZHMgU3VwZXJDbGFzcyB7
CisgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorfQorCit0ZXN0
KG5ldyBTdXBlckNsYXNzKCkudGFyZ2V0LCBTdXBlckNsYXNzLCAibmV3LnRhcmdldCBzaG91bGQg
YmUgdGhlIHNhbWUgYXMgdGhlIGNsYXNzIGNvbnN0cnVjdG9yIik7Cit0ZXN0KG5ldyBTdWJDbGFz
cygpLnRhcmdldCwgU3ViQ2xhc3MsICJuZXcudGFyZ2V0IHNob3VsZCBub3QgY2hhbmdlIHdoZW4g
cGFzc2VkIHRocm91Z2ggc3VwZXIoKSIpOwotLSAKMi4zLjggKEFwcGxlIEdpdC01OCkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>