<?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>155780</bug_id>
          
          <creation_ts>2016-03-22 18:01:45 -0700</creation_ts>
          <short_desc>Adopt new SPI from DataDetectorsCore to decide link behavior</short_desc>
          <delta_ts>2016-03-24 16:57:00 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1177247</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-22 18:01:45 -0700</bug_when>
    <thetext>We now have SPI from DD core, to understand how different types of DD links should be handled.

rdar://problem/25303631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177248</commentid>
    <comment_count>1</comment_count>
      <attachid>274719</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-22 18:08:04 -0700</bug_when>
    <thetext>Created attachment 274719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177249</commentid>
    <comment_count>2</comment_count>
      <attachid>274720</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-22 18:31:09 -0700</bug_when>
    <thetext>Created attachment 274720
Patch2

Fixing iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177251</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-22 18:32:47 -0700</bug_when>
    <thetext>Attachment 274720 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:18:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 5 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>1177257</commentid>
    <comment_count>4</comment_count>
      <attachid>274722</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-22 18:51:49 -0700</bug_when>
    <thetext>Created attachment 274722
Patch3

One more attempt to fix the build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177258</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-22 18:54:08 -0700</bug_when>
    <thetext>Attachment 274722 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:18:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 5 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>1177354</commentid>
    <comment_count>6</comment_count>
      <attachid>274722</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-23 08:40:58 -0700</bug_when>
    <thetext>Comment on attachment 274722
Patch3

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

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:58
&gt;  bool DataDetection::isDataDetectorLink(Element* element)

Since this dereferences the pointer without checking for null, the argument type should be Element&amp;, not Element*. Same for callers. Or it should do a check that is null-safe, like calling is&lt;&gt; without the *.

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:63
&gt; +    return [softLink_DataDetectorsCore_DDURLTapAndHoldSchemes() containsObject:(NSString *)downcast&lt;HTMLAnchorElement&gt;(*element).href().protocol()];

What about case folding? Do we need to call convertToASCIILowercase here?

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:86
&gt; +    if (softLink_DataDetectorsCore_DDShouldImmediatelyShowActionSheetForURL(downcast&lt;HTMLAnchorElement&gt;(*element).href()))
&gt; +        return true;

Does the data detector function do the right thing with scheme/protocol case sensitivity in this function?

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:88
&gt; +    String resultAttribute = element-&gt;getAttribute(dataDetectorsAttributeResultKey);

Should be fastGetAttribute. Return type is const AtomicString&amp; and we should not normally use String unless we have a reason. Can just use resultAttribute.string() below.

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:102
&gt; +    if (softLink_DataDetectorsCore_DDShouldImmediatelyShowActionSheetForResult(result))
&gt;          return true;
&gt;      return false;

Normally we prefer &quot;return x&quot; to &quot;if (x) return true; return false;&quot;

&gt; Source/WebCore/platform/spi/cocoa/DataDetectorsCoreSPI.h:102
&gt; +- (DDResultRef) coreResult;

Stray space here after &quot;)&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177523</commentid>
    <comment_count>7</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-23 16:10:04 -0700</bug_when>
    <thetext>Thanks for the feedback. I&apos;ve changed all the functions to take a reference.

&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:63
&gt; &gt; +    return [softLink_DataDetectorsCore_DDURLTapAndHoldSchemes() containsObject:(NSString *)downcast&lt;HTMLAnchorElement&gt;(*element).href().protocol()];
&gt; 
&gt; What about case folding? Do we need to call convertToASCIILowercase here?
&gt; 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:86
I&apos;ll check if the DD core function does it properly otherwise I&apos;ll add it.

&gt; &gt; +    if (softLink_DataDetectorsCore_DDShouldImmediatelyShowActionSheetForURL(downcast&lt;HTMLAnchorElement&gt;(*element).href()))
&gt; &gt; +        return true;
&gt; 
&gt; Does the data detector function do the right thing with scheme/protocol case
&gt; sensitivity in this function?
&gt;
Same here.
 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:88
&gt; &gt; +    String resultAttribute = element-&gt;getAttribute(dataDetectorsAttributeResultKey);
&gt; 
&gt; Should be fastGetAttribute. Return type is const AtomicString&amp; and we should
&gt; not normally use String unless we have a reason. Can just use
&gt; resultAttribute.string() below.
&gt; 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:102
&gt; &gt; +    if (softLink_DataDetectorsCore_DDShouldImmediatelyShowActionSheetForResult(result))
&gt; &gt;          return true;
&gt; &gt;      return false;
&gt; 
Sure.
&gt; Normally we prefer &quot;return x&quot; to &quot;if (x) return true; return false;&quot;
&gt; 
&gt; &gt; Source/WebCore/platform/spi/cocoa/DataDetectorsCoreSPI.h:102
&gt; &gt; +- (DDResultRef) coreResult;
&gt; 
&gt; Stray space here after &quot;)&quot;.
ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177552</commentid>
    <comment_count>8</comment_count>
      <attachid>274799</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-23 17:36:57 -0700</bug_when>
    <thetext>Created attachment 274799
Patch4

Addresses comments and fixes Mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177553</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-23 17:38:18 -0700</bug_when>
    <thetext>Attachment 274799 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:18:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 8 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>1177803</commentid>
    <comment_count>10</comment_count>
      <attachid>274799</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-03-24 16:11:23 -0700</bug_when>
    <thetext>Comment on attachment 274799
Patch4

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

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:162
&gt; +    return element.getAttribute(dataDetectorsAttributeTypeKey) == &quot;calendar-event&quot;;

This should use fastGetAttribute() and probably use equalLettersIgnoringASCIICase().

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:167
&gt; +    return element.getAttribute(dataDetectorsAttributeResultKey);

This should use fastGetAttribute() and probably use equalLettersIgnoringASCIICase().

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:178
&gt; +    const AtomicString&amp; resultAttribute = element.getAttribute(dataDetectorsAttributeResultKey);

This should use fastGetAttribute().

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:184
&gt; +    DDResultRef result = [[results objectAtIndex:resultIndices[0].toInt()] coreResult];

What is guaranteeing that resultIndices[0] will exist?

&gt; Source/WebCore/editing/cocoa/DataDetection.mm:186
&gt; +    for (size_t i = 1; i &lt; resultIndices.size(); i++) {

This could use a modern for-loop.  for (auto&amp; string : resultIndices) ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177808</commentid>
    <comment_count>11</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-24 16:22:41 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 274799 [details]
&gt; Patch4
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=274799&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:162
&gt; &gt; +    return element.getAttribute(dataDetectorsAttributeTypeKey) == &quot;calendar-event&quot;;
&gt; 
&gt; This should use fastGetAttribute() and probably use
&gt; equalLettersIgnoringASCIICase().
&gt; 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:167
&gt; &gt; +    return element.getAttribute(dataDetectorsAttributeResultKey);
&gt; 
&gt; This should use fastGetAttribute() and probably use
&gt; equalLettersIgnoringASCIICase().
&gt;

I&apos;ll use fastGetAttribute and declare the constants as QualifiedName.
I have full control over case, I create the attributes.
 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:184
&gt; &gt; +    DDResultRef result = [[results objectAtIndex:resultIndices[0].toInt()] coreResult];
&gt; 
&gt; What is guaranteeing that resultIndices[0] will exist?
I&apos;ve checked above that this was a DD link with results, therefore I have a result array.
&gt; 
&gt; &gt; Source/WebCore/editing/cocoa/DataDetection.mm:186
&gt; &gt; +    for (size_t i = 1; i &lt; resultIndices.size(); i++) {
&gt; 
&gt; This could use a modern for-loop.  for (auto&amp; string : resultIndices) ...
How can I do that not starting from the first element? My loop starts from 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177816</commentid>
    <comment_count>12</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2016-03-24 16:57:00 -0700</bug_when>
    <thetext>Committed revision 198653.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274719</attachid>
            <date>2016-03-22 18:08:04 -0700</date>
            <delta_ts>2016-03-22 18:31:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>use-ddcore-spi.txt</filename>
            <type>text/plain</type>
            <size>6807</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTIyICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgbmV3IFNQSSBmcm9t
IERhdGFEZXRlY3RvcnNDb3JlIHRvIGRlY2lkZSBsaW5rIGJlaGF2aW9yLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzgwCisgICAgICAgIHJkYXI6
Ly9wcm9ibGVtLzI1MzAzNjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaXNEYXRhRGV0ZWN0b3JMaW5rIGFuZCBzaG91bGRDYW5jZWxEZWZhdWx0QWN0
aW9uIG5vdworICAgICAgICB1c2UgdGhlIFNQSSBwcm92aWRlZCBieSBEYXRhRGV0ZWN0b3JzQ29y
ZSB0byBkZWNpZGUKKyAgICAgICAgd2hhdCBpcyB0aGUgbGluayBiZWhhdmlvciB3aGVuIHRoZSB1
c2VyIHRhcHMgb24gaXQuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjppc0RhdGFEZXRlY3Rvckxpbmsp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6c2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsu
bW06CisKIDIwMTYtMDMtMjIgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KIAogICAgICAgICBVc2UgcmVmZXJlbmNlcyBpbnN0ZWFkIG9mIHBvaW50ZXJzIGZvciBhYnNv
bHV0ZSBwb3NpdGlvbmluZyBjb2RlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9EYXRhRGV0ZWN0aW9uLm1tCShyZXZpc2lvbiAxOTg1NTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDE0
ICs1NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGJvb2wgRGF0YURldGVjdGlvbjo6aXNE
YXRhRGV0ZWN0b3JMaW5rKEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBiZSBhYmxlIHRvIGFzayB0aGlzIGZyb20gRGF0YURldGVjdG9yc0NvcmUgd2hlbiByZGFy
Oi8vcHJvYmxlbS8yNTIwNjA2MiBpcyBmaXhlZC4KICAgICBpZiAoIWlzPEhUTUxBbmNob3JFbGVt
ZW50PigqZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChlbGVtZW50
LT5nZXRBdHRyaWJ1dGUoZGF0YURldGVjdG9yc1VSTFNjaGVtZSkgPT0gInRydWUiKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBVUkwgdXJsID0gZG93bmNhc3Q8SFRNTEFuY2hvckVsZW1lbnQ+
KCplbGVtZW50KS5ocmVmKCk7Ci0gICAgcmV0dXJuIHVybC5wcm90b2NvbElzKCJtYWlsdG8iKSB8
fCB1cmwucHJvdG9jb2xJcygidGVsIik7CisgICAgcmV0dXJuIFtzb2Z0TGlua19EYXRhRGV0ZWN0
b3JzQ29yZV9ERFVSTFRhcEFuZEhvbGRTY2hlbWVzKCkgY29udGFpbnNPYmplY3Q6KE5TU3RyaW5n
ICopZG93bmNhc3Q8SFRNTEFuY2hvckVsZW1lbnQ+KCplbGVtZW50KS5ocmVmKCkucHJvdG9jb2wo
KV07CiB9CiAKIGJvb2wgRGF0YURldGVjdGlvbjo6cmVxdWlyZXNFeHRlbmRlZENvbnRleHQoRWxl
bWVudCogZWxlbWVudCkKQEAgLTgzLDEzICs3OSwyNSBAQCBib29sIERhdGFEZXRlY3Rpb246OnNo
b3VsZENhbmNlbERlZmF1bHRBCiAgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOwogICAgIHJldHVy
biBmYWxzZTsKICNlbHNlCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIHJldHJp
ZXZlIHRoaXMgaW5mb3JtYXRpb24gZnJvbSBEYXRhRGV0ZWN0b3JzQ29yZSB3aGVuIHJkYXI6Ly9w
cm9ibGVtLzI1MTY5MTMzIGlzIGZpeGVkLgotICAgIGlmICghaXM8SFRNTEFuY2hvckVsZW1lbnQ+
KCplbGVtZW50KSkKKyAgICBpZiAoIWlzRGF0YURldGVjdG9yTGluayhlbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChlbGVtZW50LT5nZXRBdHRyaWJ1dGUoZGF0YURldGVj
dG9yc1VSTFNjaGVtZSkgIT0gInRydWUiKQorCisgICAgaWYgKHNvZnRMaW5rX0RhdGFEZXRlY3Rv
cnNDb3JlX0REU2hvdWxkSW1tZWRpYXRlbHlTaG93QWN0aW9uU2hlZXRGb3JVUkwoZG93bmNhc3Q8
SFRNTEFuY2hvckVsZW1lbnQ+KCplbGVtZW50KS5ocmVmKCkpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIFN0cmluZyByZXN1bHRBdHRyaWJ1dGUgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUo
ZGF0YURldGVjdG9yc0F0dHJpYnV0ZVJlc3VsdEtleSk7CisgICAgaWYgKHJlc3VsdEF0dHJpYnV0
ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTdHJpbmcgdHlwZSA9IGVs
ZW1lbnQtPmdldEF0dHJpYnV0ZShkYXRhRGV0ZWN0b3JzQXR0cmlidXRlVHlwZUtleSk7Ci0gICAg
aWYgKHR5cGUgPT0gIm1pc2MiIHx8IHR5cGUgPT0gImNhbGVuZGFyLWV2ZW50IiB8fCB0eXBlID09
ICJ0ZWxlcGhvbmUiKQorICAgIE5TQXJyYXkgKnJlc3VsdHMgPSBlbGVtZW50LT5kb2N1bWVudCgp
LmZyYW1lKCktPmRhdGFEZXRlY3Rpb25SZXN1bHRzKCk7CisgICAgVmVjdG9yPFN0cmluZz4gcmVz
dWx0SW5kaWNlczsKKyAgICByZXN1bHRBdHRyaWJ1dGUuc3BsaXQoJy8nLCByZXN1bHRJbmRpY2Vz
KTsKKyAgICBERFJlc3VsdFJlZiByZXN1bHQgPSBbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDpyZXN1
bHRJbmRpY2VzWzBdLnRvSW50KCldIGNvcmVSZXN1bHRdOworICAgIC8vIEhhbmRsZSB0aGUgY2Fz
ZSBvZiBhIHNpZ25hdHVyZSBibG9jaywgd2hlcmUgd2UgbmVlZCB0byBjaGVjayB0aGUgY29ycmVj
dCBzdWJyZXN1bHQuCisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCByZXN1bHRJbmRpY2VzLnNp
emUoKTsgaSsrKSB7CisgICAgICAgIHJlc3VsdHMgPSAoTlNBcnJheSAqKXNvZnRMaW5rX0RhdGFE
ZXRlY3RvcnNDb3JlX0REUmVzdWx0R2V0U3ViUmVzdWx0cyhyZXN1bHQpOworICAgICAgICByZXN1
bHQgPSAoRERSZXN1bHRSZWYpW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDpyZXN1bHRJbmRpY2VzW2ld
LnRvSW50KCldOworICAgIH0KKyAgICBpZiAoc29mdExpbmtfRGF0YURldGVjdG9yc0NvcmVfRERT
aG91bGRJbW1lZGlhdGVseVNob3dBY3Rpb25TaGVldEZvclJlc3VsdChyZXN1bHQpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNv
ZnRMaW5rLmgJKHJldmlzaW9uIDE5ODU1MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiAr
NDgsOSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBECiBTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERSZXN1
bHRHZXRTdWJSZXN1bHRzLCBDRkFycmF5UmVmLCAoRERSZXN1bHRSZWYgcmVzdWx0KSwgKHJlc3Vs
dCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBEYXRhRGV0ZWN0b3Jz
Q29yZSwgRERSZXN1bHRHZXRRdWVyeVJhbmdlRm9yVVJMaWZpY2F0aW9uLCBERFF1ZXJ5UmFuZ2Us
IChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFVSTFN0cmluZ0ZvclJlc3VsdCwg
TlNTdHJpbmcgKiwgKEREUmVzdWx0UmVmIGN1cnJlbnRSZXN1bHQsIE5TU3RyaW5nICogcmVzdWx0
SWRlbnRpZmllciwgRERVUkxpZmllclBob25lTnVtYmVyRGV0ZWN0aW9uVHlwZXMgaW5jbHVkaW5n
VGVsR3JvdXBzLCBOU0RhdGUgKiByZWZlcmVuY2VEYXRlLCBOU1RpbWVab25lICogcmVmZXJlbmNl
VGltZVpvbmUpLCAoY3VycmVudFJlc3VsdCwgcmVzdWx0SWRlbnRpZmllciwgaW5jbHVkaW5nVGVs
R3JvdXBzLCByZWZlcmVuY2VEYXRlLCByZWZlcmVuY2VUaW1lWm9uZSkpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERVUkxUYXBBbmRI
b2xkU2NoZW1lcywgTlNBcnJheSAqLCAoKSwgKCkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERTaG91bGRJbW1lZGlhdGVseVNob3dB
Y3Rpb25TaGVldEZvclVSTCwgQk9PTCwgKE5TVVJMICp1cmwpLCAodXJsKSkKK1NPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNob3VsZElt
bWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9yUmVzdWx0LCBCT09MLCAoRERSZXN1bHRSZWYgcmVz
dWx0KSwgKHJlc3VsdCkpCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1JfSEVBREVSKFdlYkNvcmUsIERh
dGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlckh0dHBVUkxLZXksIENGU3RyaW5nUmVmKQogU09GVF9M
SU5LX1BPSU5URVJfRk9SX0hFQURFUihXZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERCaW5k
ZXJXZWJVUkxLZXksIENGU3RyaW5nUmVmKQogU09GVF9MSU5LX1BPSU5URVJfRk9SX0hFQURFUihX
ZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERCaW5kZXJNYWlsVVJMS2V5LCBDRlN0cmluZ1Jl
ZikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3Jl
U29mdExpbmsubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
RGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbQkocmV2aXNpb24gMTk4NTUyKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbQkod29y
a2luZyBjb3B5KQpAQCAtNDcsNiArNDcsOSBAQCBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShXZWJDb3JlLCBECiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBEYXRh
RGV0ZWN0b3JzQ29yZSwgRERSZXN1bHRHZXRTdWJSZXN1bHRzLCBDRkFycmF5UmVmLCAoRERSZXN1
bHRSZWYgcmVzdWx0KSwgKHJlc3VsdCkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShX
ZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERSZXN1bHRHZXRRdWVyeVJhbmdlRm9yVVJMaWZp
Y2F0aW9uLCBERFF1ZXJ5UmFuZ2UsIChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkKIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBE
RFVSTFN0cmluZ0ZvclJlc3VsdCwgTlNTdHJpbmcgKiwgKEREUmVzdWx0UmVmIGN1cnJlbnRSZXN1
bHQsIE5TU3RyaW5nICogcmVzdWx0SWRlbnRpZmllciwgRERVUkxpZmllclBob25lTnVtYmVyRGV0
ZWN0aW9uVHlwZXMgaW5jbHVkaW5nVGVsR3JvdXBzLCBOU0RhdGUgKiByZWZlcmVuY2VEYXRlLCBO
U1RpbWVab25lICogcmVmZXJlbmNlVGltZVpvbmUpLCAoY3VycmVudFJlc3VsdCwgcmVzdWx0SWRl
bnRpZmllciwgaW5jbHVkaW5nVGVsR3JvdXBzLCByZWZlcmVuY2VEYXRlLCByZWZlcmVuY2VUaW1l
Wm9uZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBEYXRhRGV0ZWN0
b3JzQ29yZSwgRERVUkxUYXBBbmRIb2xkU2NoZW1lcywgTlNBcnJheSAqLCAoKSwgKCkpCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERT
aG91bGRJbW1lZGlhdGVseVNob3dBY3Rpb25TaGVldEZvclVSTCwgQk9PTCwgKE5TVVJMICp1cmwp
LCAodXJsKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRl
Y3RvcnNDb3JlLCBERFNob3VsZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9yUmVzdWx0LCBC
T09MLCAoRERSZXN1bHRSZWYgcmVzdWx0KSwgKHJlc3VsdCkpCiBTT0ZUX0xJTktfUE9JTlRFUl9G
T1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlckh0dHBVUkxLZXks
IENGU3RyaW5nUmVmKQogU09GVF9MSU5LX1BPSU5URVJfRk9SX1NPVVJDRShXZWJDb3JlLCBEYXRh
RGV0ZWN0b3JzQ29yZSwgRERCaW5kZXJXZWJVUkxLZXksIENGU3RyaW5nUmVmKQogU09GVF9MSU5L
X1BPSU5URVJfRk9SX1NPVVJDRShXZWJDb3JlLCBEYXRhRGV0ZWN0b3JzQ29yZSwgRERCaW5kZXJN
YWlsVVJMS2V5LCBDRlN0cmluZ1JlZikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274720</attachid>
            <date>2016-03-22 18:31:09 -0700</date>
            <delta_ts>2016-03-22 18:51:49 -0700</delta_ts>
            <desc>Patch2</desc>
            <filename>use-ddcore-spi.txt</filename>
            <type>text/plain</type>
            <size>7420</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAzLTIyICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgbmV3IFNQSSBmcm9t
IERhdGFEZXRlY3RvcnNDb3JlIHRvIGRlY2lkZSBsaW5rIGJlaGF2aW9yLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzgwCisgICAgICAgIHJkYXI6
Ly9wcm9ibGVtLzI1MzAzNjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaXNEYXRhRGV0ZWN0b3JMaW5rIGFuZCBzaG91bGRDYW5jZWxEZWZhdWx0QWN0
aW9uIG5vdworICAgICAgICB1c2UgdGhlIFNQSSBwcm92aWRlZCBieSBEYXRhRGV0ZWN0b3JzQ29y
ZSB0byBkZWNpZGUKKyAgICAgICAgd2hhdCBpcyB0aGUgbGluayBiZWhhdmlvciB3aGVuIHRoZSB1
c2VyIHRhcHMgb24gaXQuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjppc0RhdGFEZXRlY3Rvckxpbmsp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6c2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsu
bW06CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgK
KwogMjAxNi0wMy0yMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSByZWZlcmVuY2VzIGluc3RlYWQgb2YgcG9pbnRlcnMgZm9yIGFic29sdXRl
IHBvc2l0aW9uaW5nIGNvZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0
YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW0JKHJldmlzaW9uIDE5ODU1MikKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsMTQgKzU3
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBEYXRhRGV0ZWN0aW9uOjppc0RhdGFE
ZXRlY3RvckxpbmsoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGJlIGFibGUgdG8gYXNrIHRoaXMgZnJvbSBEYXRhRGV0ZWN0b3JzQ29yZSB3aGVuIHJkYXI6Ly9w
cm9ibGVtLzI1MjA2MDYyIGlzIGZpeGVkLgogICAgIGlmICghaXM8SFRNTEFuY2hvckVsZW1lbnQ+
KCplbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGVsZW1lbnQtPmdl
dEF0dHJpYnV0ZShkYXRhRGV0ZWN0b3JzVVJMU2NoZW1lKSA9PSAidHJ1ZSIpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIFVSTCB1cmwgPSBkb3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4oKmVs
ZW1lbnQpLmhyZWYoKTsKLSAgICByZXR1cm4gdXJsLnByb3RvY29sSXMoIm1haWx0byIpIHx8IHVy
bC5wcm90b2NvbElzKCJ0ZWwiKTsKKyAgICByZXR1cm4gW3NvZnRMaW5rX0RhdGFEZXRlY3RvcnND
b3JlX0REVVJMVGFwQW5kSG9sZFNjaGVtZXMoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilk
b3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4oKmVsZW1lbnQpLmhyZWYoKS5wcm90b2NvbCgpXTsK
IH0KIAogYm9vbCBEYXRhRGV0ZWN0aW9uOjpyZXF1aXJlc0V4dGVuZGVkQ29udGV4dChFbGVtZW50
KiBlbGVtZW50KQpAQCAtODMsMTMgKzc5LDI1IEBAIGJvb2wgRGF0YURldGVjdGlvbjo6c2hvdWxk
Q2FuY2VsRGVmYXVsdEEKICAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CiAgICAgcmV0dXJuIGZh
bHNlOwogI2Vsc2UKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gcmV0cmlldmUg
dGhpcyBpbmZvcm1hdGlvbiBmcm9tIERhdGFEZXRlY3RvcnNDb3JlIHdoZW4gcmRhcjovL3Byb2Js
ZW0vMjUxNjkxMzMgaXMgZml4ZWQuCi0gICAgaWYgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4oKmVs
ZW1lbnQpKQorICAgIGlmICghaXNEYXRhRGV0ZWN0b3JMaW5rKGVsZW1lbnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGVsZW1lbnQtPmdldEF0dHJpYnV0ZShkYXRhRGV0ZWN0b3Jz
VVJMU2NoZW1lKSAhPSAidHJ1ZSIpCisKKyAgICBpZiAoc29mdExpbmtfRGF0YURldGVjdG9yc0Nv
cmVfRERTaG91bGRJbW1lZGlhdGVseVNob3dBY3Rpb25TaGVldEZvclVSTChkb3duY2FzdDxIVE1M
QW5jaG9yRWxlbWVudD4oKmVsZW1lbnQpLmhyZWYoKSkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgU3RyaW5nIHJlc3VsdEF0dHJpYnV0ZSA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShkYXRh
RGV0ZWN0b3JzQXR0cmlidXRlUmVzdWx0S2V5KTsKKyAgICBpZiAocmVzdWx0QXR0cmlidXRlLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFN0cmluZyB0eXBlID0gZWxlbWVu
dC0+Z2V0QXR0cmlidXRlKGRhdGFEZXRlY3RvcnNBdHRyaWJ1dGVUeXBlS2V5KTsKLSAgICBpZiAo
dHlwZSA9PSAibWlzYyIgfHwgdHlwZSA9PSAiY2FsZW5kYXItZXZlbnQiIHx8IHR5cGUgPT0gInRl
bGVwaG9uZSIpCisgICAgTlNBcnJheSAqcmVzdWx0cyA9IGVsZW1lbnQtPmRvY3VtZW50KCkuZnJh
bWUoKS0+ZGF0YURldGVjdGlvblJlc3VsdHMoKTsKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHRJ
bmRpY2VzOworICAgIHJlc3VsdEF0dHJpYnV0ZS5zcGxpdCgnLycsIHJlc3VsdEluZGljZXMpOwor
ICAgIEREUmVzdWx0UmVmIHJlc3VsdCA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OnJlc3VsdElu
ZGljZXNbMF0udG9JbnQoKV0gY29yZVJlc3VsdF07CisgICAgLy8gSGFuZGxlIHRoZSBjYXNlIG9m
IGEgc2lnbmF0dXJlIGJsb2NrLCB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrIHRoZSBjb3JyZWN0IHN1
YnJlc3VsdC4KKyAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IHJlc3VsdEluZGljZXMuc2l6ZSgp
OyBpKyspIHsKKyAgICAgICAgcmVzdWx0cyA9IChOU0FycmF5ICopc29mdExpbmtfRGF0YURldGVj
dG9yc0NvcmVfRERSZXN1bHRHZXRTdWJSZXN1bHRzKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdCA9
IChERFJlc3VsdFJlZilbcmVzdWx0cyBvYmplY3RBdEluZGV4OnJlc3VsdEluZGljZXNbaV0udG9J
bnQoKV07CisgICAgfQorICAgIGlmIChzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFNob3Vs
ZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9yUmVzdWx0KHJlc3VsdCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExp
bmsuaAkocmV2aXNpb24gMTk4NTUyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
RGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw5
IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIEQKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFJlc3VsdEdl
dFN1YlJlc3VsdHMsIENGQXJyYXlSZWYsIChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3Jl
LCBERFJlc3VsdEdldFF1ZXJ5UmFuZ2VGb3JVUkxpZmljYXRpb24sIEREUXVlcnlSYW5nZSwgKERE
UmVzdWx0UmVmIHJlc3VsdCksIChyZXN1bHQpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREVVJMU3RyaW5nRm9yUmVzdWx0LCBOU1N0
cmluZyAqLCAoRERSZXN1bHRSZWYgY3VycmVudFJlc3VsdCwgTlNTdHJpbmcgKiByZXN1bHRJZGVu
dGlmaWVyLCBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25UeXBlcyBpbmNsdWRpbmdUZWxH
cm91cHMsIE5TRGF0ZSAqIHJlZmVyZW5jZURhdGUsIE5TVGltZVpvbmUgKiByZWZlcmVuY2VUaW1l
Wm9uZSksIChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBpbmNsdWRpbmdUZWxHcm91
cHMsIHJlZmVyZW5jZURhdGUsIHJlZmVyZW5jZVRpbWVab25lKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFVSTFRhcEFuZEhvbGRT
Y2hlbWVzLCBOU0FycmF5ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNob3VsZEltbWVkaWF0ZWx5U2hvd0FjdGlv
blNoZWV0Rm9yVVJMLCBCT09MLCAoTlNVUkwgKnVybCksICh1cmwpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREU2hvdWxkSW1tZWRp
YXRlbHlTaG93QWN0aW9uU2hlZXRGb3JSZXN1bHQsIEJPT0wsIChERFJlc3VsdFJlZiByZXN1bHQp
LCAocmVzdWx0KSkKIFNPRlRfTElOS19QT0lOVEVSX0ZPUl9IRUFERVIoV2ViQ29yZSwgRGF0YURl
dGVjdG9yc0NvcmUsIEREQmluZGVySHR0cFVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktf
UE9JTlRFUl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlcldl
YlVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1JfSEVBREVSKFdlYkNv
cmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlck1haWxVUkxLZXksIENGU3RyaW5nUmVmKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0
TGluay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9EYXRh
RGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCShyZXZpc2lvbiAxOTg1NTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw2ICs0Nyw5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIEQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRl
Y3RvcnNDb3JlLCBERFJlc3VsdEdldFN1YlJlc3VsdHMsIENGQXJyYXlSZWYsIChERFJlc3VsdFJl
ZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFJlc3VsdEdldFF1ZXJ5UmFuZ2VGb3JVUkxpZmljYXRp
b24sIEREUXVlcnlSYW5nZSwgKEREUmVzdWx0UmVmIHJlc3VsdCksIChyZXN1bHQpKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREVVJM
U3RyaW5nRm9yUmVzdWx0LCBOU1N0cmluZyAqLCAoRERSZXN1bHRSZWYgY3VycmVudFJlc3VsdCwg
TlNTdHJpbmcgKiByZXN1bHRJZGVudGlmaWVyLCBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rp
b25UeXBlcyBpbmNsdWRpbmdUZWxHcm91cHMsIE5TRGF0ZSAqIHJlZmVyZW5jZURhdGUsIE5TVGlt
ZVpvbmUgKiByZWZlcmVuY2VUaW1lWm9uZSksIChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlm
aWVyLCBpbmNsdWRpbmdUZWxHcm91cHMsIHJlZmVyZW5jZURhdGUsIHJlZmVyZW5jZVRpbWVab25l
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnND
b3JlLCBERFVSTFRhcEFuZEhvbGRTY2hlbWVzLCBOU0FycmF5ICosICgpLCAoKSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNob3Vs
ZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9yVVJMLCBCT09MLCAoTlNVUkwgKnVybCksICh1
cmwpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9y
c0NvcmUsIEREU2hvdWxkSW1tZWRpYXRlbHlTaG93QWN0aW9uU2hlZXRGb3JSZXN1bHQsIEJPT0ws
IChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRfTElOS19QT0lOVEVSX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREQmluZGVySHR0cFVSTEtleSwgQ0ZT
dHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRl
Y3RvcnNDb3JlLCBEREJpbmRlcldlYlVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9J
TlRFUl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlck1haWxV
UkxLZXksIENGU3RyaW5nUmVmKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2Nv
Y29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgJKHJldmlzaW9uIDE5ODU1
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29y
ZVNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5Nyw3IEBAIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IEREVVJMU2NoZW1lOwogCiBAaW50ZXJmYWNlIEREU2Nhbm5lclJlc3VsdCA6IE5TT2Jq
ZWN0IDxOU0NvZGluZywgTlNTZWN1cmVDb2Rpbmc+CiArIChOU0FycmF5ICopcmVzdWx0c0Zyb21D
b3JlUmVzdWx0czooQ0ZBcnJheVJlZiljb3JlUmVzdWx0czsKKy0gKEREUmVzdWx0UmVmKSBjb3Jl
UmVzdWx0OwogQGVuZAogCiAjZGVmaW5lIEREUmVzdWx0UHJvcGVydHlQYXNzaXZlRGlzcGxheSAg
ICgxIDw8IDApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274722</attachid>
            <date>2016-03-22 18:51:49 -0700</date>
            <delta_ts>2016-03-23 17:36:57 -0700</delta_ts>
            <desc>Patch3</desc>
            <filename>use-ddcore-spi.txt</filename>
            <type>text/plain</type>
            <size>7855</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODU2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAzLTIyICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgbmV3IFNQSSBmcm9t
IERhdGFEZXRlY3RvcnNDb3JlIHRvIGRlY2lkZSBsaW5rIGJlaGF2aW9yLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzgwCisgICAgICAgIHJkYXI6
Ly9wcm9ibGVtLzI1MzAzNjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaXNEYXRhRGV0ZWN0b3JMaW5rIGFuZCBzaG91bGRDYW5jZWxEZWZhdWx0QWN0
aW9uIG5vdworICAgICAgICB1c2UgdGhlIFNQSSBwcm92aWRlZCBieSBEYXRhRGV0ZWN0b3JzQ29y
ZSB0byBkZWNpZGUKKyAgICAgICAgd2hhdCBpcyB0aGUgbGluayBiZWhhdmlvciB3aGVuIHRoZSB1
c2VyIHRhcHMgb24gaXQuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjppc0RhdGFEZXRlY3Rvckxpbmsp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6c2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsu
bW06CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgK
KwogMjAxNi0wMy0yMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSByZWZlcmVuY2VzIGluc3RlYWQgb2YgcG9pbnRlcnMgZm9yIGFic29sdXRl
IHBvc2l0aW9uaW5nIGNvZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0
YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RhdGFEZXRlY3Rpb24ubW0JKHJldmlzaW9uIDE5ODU1MikKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsMTQgKzU3
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBEYXRhRGV0ZWN0aW9uOjppc0RhdGFE
ZXRlY3RvckxpbmsoRWxlbWVudCogZWxlbWVudCkKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGJlIGFibGUgdG8gYXNrIHRoaXMgZnJvbSBEYXRhRGV0ZWN0b3JzQ29yZSB3aGVuIHJkYXI6Ly9w
cm9ibGVtLzI1MjA2MDYyIGlzIGZpeGVkLgogICAgIGlmICghaXM8SFRNTEFuY2hvckVsZW1lbnQ+
KCplbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGVsZW1lbnQtPmdl
dEF0dHJpYnV0ZShkYXRhRGV0ZWN0b3JzVVJMU2NoZW1lKSA9PSAidHJ1ZSIpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIFVSTCB1cmwgPSBkb3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4oKmVs
ZW1lbnQpLmhyZWYoKTsKLSAgICByZXR1cm4gdXJsLnByb3RvY29sSXMoIm1haWx0byIpIHx8IHVy
bC5wcm90b2NvbElzKCJ0ZWwiKTsKKyAgICByZXR1cm4gW3NvZnRMaW5rX0RhdGFEZXRlY3RvcnND
b3JlX0REVVJMVGFwQW5kSG9sZFNjaGVtZXMoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilk
b3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4oKmVsZW1lbnQpLmhyZWYoKS5wcm90b2NvbCgpXTsK
IH0KIAogYm9vbCBEYXRhRGV0ZWN0aW9uOjpyZXF1aXJlc0V4dGVuZGVkQ29udGV4dChFbGVtZW50
KiBlbGVtZW50KQpAQCAtODMsMTMgKzc5LDI1IEBAIGJvb2wgRGF0YURldGVjdGlvbjo6c2hvdWxk
Q2FuY2VsRGVmYXVsdEEKICAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CiAgICAgcmV0dXJuIGZh
bHNlOwogI2Vsc2UKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gcmV0cmlldmUg
dGhpcyBpbmZvcm1hdGlvbiBmcm9tIERhdGFEZXRlY3RvcnNDb3JlIHdoZW4gcmRhcjovL3Byb2Js
ZW0vMjUxNjkxMzMgaXMgZml4ZWQuCi0gICAgaWYgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4oKmVs
ZW1lbnQpKQorICAgIGlmICghaXNEYXRhRGV0ZWN0b3JMaW5rKGVsZW1lbnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGVsZW1lbnQtPmdldEF0dHJpYnV0ZShkYXRhRGV0ZWN0b3Jz
VVJMU2NoZW1lKSAhPSAidHJ1ZSIpCisKKyAgICBpZiAoc29mdExpbmtfRGF0YURldGVjdG9yc0Nv
cmVfRERTaG91bGRJbW1lZGlhdGVseVNob3dBY3Rpb25TaGVldEZvclVSTChkb3duY2FzdDxIVE1M
QW5jaG9yRWxlbWVudD4oKmVsZW1lbnQpLmhyZWYoKSkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgU3RyaW5nIHJlc3VsdEF0dHJpYnV0ZSA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShkYXRh
RGV0ZWN0b3JzQXR0cmlidXRlUmVzdWx0S2V5KTsKKyAgICBpZiAocmVzdWx0QXR0cmlidXRlLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFN0cmluZyB0eXBlID0gZWxlbWVu
dC0+Z2V0QXR0cmlidXRlKGRhdGFEZXRlY3RvcnNBdHRyaWJ1dGVUeXBlS2V5KTsKLSAgICBpZiAo
dHlwZSA9PSAibWlzYyIgfHwgdHlwZSA9PSAiY2FsZW5kYXItZXZlbnQiIHx8IHR5cGUgPT0gInRl
bGVwaG9uZSIpCisgICAgTlNBcnJheSAqcmVzdWx0cyA9IGVsZW1lbnQtPmRvY3VtZW50KCkuZnJh
bWUoKS0+ZGF0YURldGVjdGlvblJlc3VsdHMoKTsKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHRJ
bmRpY2VzOworICAgIHJlc3VsdEF0dHJpYnV0ZS5zcGxpdCgnLycsIHJlc3VsdEluZGljZXMpOwor
ICAgIEREUmVzdWx0UmVmIHJlc3VsdCA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OnJlc3VsdElu
ZGljZXNbMF0udG9JbnQoKV0gY29yZVJlc3VsdF07CisgICAgLy8gSGFuZGxlIHRoZSBjYXNlIG9m
IGEgc2lnbmF0dXJlIGJsb2NrLCB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrIHRoZSBjb3JyZWN0IHN1
YnJlc3VsdC4KKyAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IHJlc3VsdEluZGljZXMuc2l6ZSgp
OyBpKyspIHsKKyAgICAgICAgcmVzdWx0cyA9IChOU0FycmF5ICopc29mdExpbmtfRGF0YURldGVj
dG9yc0NvcmVfRERSZXN1bHRHZXRTdWJSZXN1bHRzKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdCA9
IChERFJlc3VsdFJlZilbcmVzdWx0cyBvYmplY3RBdEluZGV4OnJlc3VsdEluZGljZXNbaV0udG9J
bnQoKV07CisgICAgfQorICAgIGlmIChzb2Z0TGlua19EYXRhRGV0ZWN0b3JzQ29yZV9ERFNob3Vs
ZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9yUmVzdWx0KHJlc3VsdCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExp
bmsuaAkocmV2aXNpb24gMTk4NTUyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
RGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw5
IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIEQKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFJlc3VsdEdl
dFN1YlJlc3VsdHMsIENGQXJyYXlSZWYsIChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkK
IFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3Jl
LCBERFJlc3VsdEdldFF1ZXJ5UmFuZ2VGb3JVUkxpZmljYXRpb24sIEREUXVlcnlSYW5nZSwgKERE
UmVzdWx0UmVmIHJlc3VsdCksIChyZXN1bHQpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREVVJMU3RyaW5nRm9yUmVzdWx0LCBOU1N0
cmluZyAqLCAoRERSZXN1bHRSZWYgY3VycmVudFJlc3VsdCwgTlNTdHJpbmcgKiByZXN1bHRJZGVu
dGlmaWVyLCBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25UeXBlcyBpbmNsdWRpbmdUZWxH
cm91cHMsIE5TRGF0ZSAqIHJlZmVyZW5jZURhdGUsIE5TVGltZVpvbmUgKiByZWZlcmVuY2VUaW1l
Wm9uZSksIChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBpbmNsdWRpbmdUZWxHcm91
cHMsIHJlZmVyZW5jZURhdGUsIHJlZmVyZW5jZVRpbWVab25lKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFVSTFRhcEFuZEhvbGRT
Y2hlbWVzLCBOU0FycmF5ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVS
KFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNob3VsZEltbWVkaWF0ZWx5U2hvd0FjdGlv
blNoZWV0Rm9yVVJMLCBCT09MLCAoTlNVUkwgKnVybCksICh1cmwpKQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREU2hvdWxkSW1tZWRp
YXRlbHlTaG93QWN0aW9uU2hlZXRGb3JSZXN1bHQsIEJPT0wsIChERFJlc3VsdFJlZiByZXN1bHQp
LCAocmVzdWx0KSkKIFNPRlRfTElOS19QT0lOVEVSX0ZPUl9IRUFERVIoV2ViQ29yZSwgRGF0YURl
dGVjdG9yc0NvcmUsIEREQmluZGVySHR0cFVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktf
UE9JTlRFUl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlcldl
YlVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1JfSEVBREVSKFdlYkNv
cmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlck1haWxVUkxLZXksIENGU3RyaW5nUmVmKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0
TGluay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9EYXRh
RGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCShyZXZpc2lvbiAxOTg1NTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw2ICs0Nyw5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdl
YkNvcmUsIEQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRl
Y3RvcnNDb3JlLCBERFJlc3VsdEdldFN1YlJlc3VsdHMsIENGQXJyYXlSZWYsIChERFJlc3VsdFJl
ZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFJlc3VsdEdldFF1ZXJ5UmFuZ2VGb3JVUkxpZmljYXRp
b24sIEREUXVlcnlSYW5nZSwgKEREUmVzdWx0UmVmIHJlc3VsdCksIChyZXN1bHQpKQogU09GVF9M
SU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREVVJM
U3RyaW5nRm9yUmVzdWx0LCBOU1N0cmluZyAqLCAoRERSZXN1bHRSZWYgY3VycmVudFJlc3VsdCwg
TlNTdHJpbmcgKiByZXN1bHRJZGVudGlmaWVyLCBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rp
b25UeXBlcyBpbmNsdWRpbmdUZWxHcm91cHMsIE5TRGF0ZSAqIHJlZmVyZW5jZURhdGUsIE5TVGlt
ZVpvbmUgKiByZWZlcmVuY2VUaW1lWm9uZSksIChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlm
aWVyLCBpbmNsdWRpbmdUZWxHcm91cHMsIHJlZmVyZW5jZURhdGUsIHJlZmVyZW5jZVRpbWVab25l
KSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnND
b3JlLCBERFVSTFRhcEFuZEhvbGRTY2hlbWVzLCBOU0FycmF5ICosICgpLCAoKSkKK1NPRlRfTElO
S19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNob3Vs
ZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9yVVJMLCBCT09MLCAoTlNVUkwgKnVybCksICh1
cmwpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9y
c0NvcmUsIEREU2hvdWxkSW1tZWRpYXRlbHlTaG93QWN0aW9uU2hlZXRGb3JSZXN1bHQsIEJPT0ws
IChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRfTElOS19QT0lOVEVSX0ZPUl9T
T1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREQmluZGVySHR0cFVSTEtleSwgQ0ZT
dHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRl
Y3RvcnNDb3JlLCBEREJpbmRlcldlYlVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9J
TlRFUl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlck1haWxV
UkxLZXksIENGU3RyaW5nUmVmKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2Nv
Y29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgJKHJldmlzaW9uIDE5ODU1
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29y
ZVNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIERhdGFEZXRl
Y3RvcnNDb3JlU1BJX2gKICNkZWZpbmUgRGF0YURldGVjdG9yc0NvcmVTUElfaAogCit0eXBlZGVm
IHN0cnVjdCBfX0REUmVzdWx0ICpERFJlc3VsdFJlZjsKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAKICNpbXBvcnQgPERhdGFEZXRlY3RvcnNDb3JlL0REQmluZGVyS2V5c19Qcml2YXRl
Lmg+CkBAIC05Nyw2ICs5OSw3IEBAIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IEREVVJMU2NoZW1l
OwogCiBAaW50ZXJmYWNlIEREU2Nhbm5lclJlc3VsdCA6IE5TT2JqZWN0IDxOU0NvZGluZywgTlNT
ZWN1cmVDb2Rpbmc+CiArIChOU0FycmF5ICopcmVzdWx0c0Zyb21Db3JlUmVzdWx0czooQ0ZBcnJh
eVJlZiljb3JlUmVzdWx0czsKKy0gKEREUmVzdWx0UmVmKSBjb3JlUmVzdWx0OwogQGVuZAogCiAj
ZGVmaW5lIEREUmVzdWx0UHJvcGVydHlQYXNzaXZlRGlzcGxheSAgICgxIDw8IDApCkBAIC0xMTMs
NyArMTE2LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX19ERFF1ZXJ5UmFuZ2UgewogCiAjZW5kaWYgLy8g
IVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKLXR5cGVkZWYgc3RydWN0IF9fRERSZXN1bHQgKkRE
UmVzdWx0UmVmOwogdHlwZWRlZiBzdHJ1Y3QgX19ERFNjYW5RdWVyeSAqRERTY2FuUXVlcnlSZWY7
CiB0eXBlZGVmIHN0cnVjdCBfX0REU2Nhbm5lciAqRERTY2FubmVyUmVmOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274799</attachid>
            <date>2016-03-23 17:36:57 -0700</date>
            <delta_ts>2016-03-24 16:11:23 -0700</delta_ts>
            <desc>Patch4</desc>
            <filename>use-ddcore-spi.txt</filename>
            <type>text/plain</type>
            <size>14166</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODYwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAzLTIyICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgbmV3IFNQSSBmcm9t
IERhdGFEZXRlY3RvcnNDb3JlIHRvIGRlY2lkZSBsaW5rIGJlaGF2aW9yLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzgwCisgICAgICAgIHJkYXI6
Ly9wcm9ibGVtLzI1MzAzNjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaXNEYXRhRGV0ZWN0b3JMaW5rIGFuZCBzaG91bGRDYW5jZWxEZWZhdWx0QWN0
aW9uIG5vdworICAgICAgICB1c2UgdGhlIFNQSSBwcm92aWRlZCBieSBEYXRhRGV0ZWN0b3JzQ29y
ZSB0byBkZWNpZGUKKyAgICAgICAgd2hhdCBpcyB0aGUgbGluayBiZWhhdmlvciB3aGVuIHRoZSB1
c2VyIHRhcHMgb24gaXQuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24u
bW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0aW9uOjppc0RhdGFEZXRlY3Rvckxpbmsp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdGlvbjo6c2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGlu
ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsu
bW06CisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgK
KwogMjAxNi0wMy0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5ODUzOC4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGF0YURldGVjdGlvbi5oCShyZXZpc2lvbiAxOTg2MDcp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsMTAgKzU4LDEyIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmV0YWluUHRyPEREQWN0aW9uQ29udGV4dD4gZGV0ZWN0SXRlbUFyb3VuZEhpdFRlc3RS
ZXN1bHQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIEZsb2F0UmVjdCYgZGV0ZWN0ZWREYXRhQm91bmRp
bmdCb3gsIFJlZlB0cjxSYW5nZT4mIGRldGVjdGVkRGF0YVJhbmdlKTsKICNlbmRpZgogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBOU0FycmF5ICpkZXRlY3RDb250ZW50SW5SYW5nZShSZWZQdHI8
UmFuZ2U+JiBjb250ZXh0UmFuZ2UsIERhdGFEZXRlY3RvclR5cGVzKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc0RhdGFEZXRlY3RvckxpbmsoRWxlbWVudCopOwotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9ySWRlbnRpZmllcihFbGVtZW50Kik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkQ2FuY2VsRGVmYXVsdEFjdGlv
bihFbGVtZW50Kik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcmVxdWlyZXNFeHRl
bmRlZENvbnRleHQoRWxlbWVudCopOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc0RhdGFEZXRlY3RvckxpbmsoRWxlbWVudCYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YURldGVjdG9ySWRlbnRpZmllcihFbGVtZW50Jik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkQ2FuY2VsRGVmYXVsdEFjdGlv
bihFbGVtZW50Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgcmVxdWlyZXNFeHRl
bmRlZENvbnRleHQoRWxlbWVudCYpOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RhdGFEZXRlY3Rpb24ubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EYXRhRGV0ZWN0aW9u
Lm1tCShyZXZpc2lvbiAxOTg2MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Rh
dGFEZXRlY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTU1LDQ2ICs1NSw2IEBAIGNvbnN0IGNo
YXIgKmRhdGFEZXRlY3RvcnNBdHRyaWJ1dGVSZXN1bHQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1ib29sIERhdGFEZXRlY3Rpb246OmlzRGF0YURldGVjdG9yTGluayhFbGVtZW50KiBlbGVtZW50
KQotewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBhc2sgdGhpcyBmcm9tIERh
dGFEZXRlY3RvcnNDb3JlIHdoZW4gcmRhcjovL3Byb2JsZW0vMjUyMDYwNjIgaXMgZml4ZWQuCi0g
ICAgaWYgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4oKmVsZW1lbnQpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoZWxlbWVudC0+Z2V0QXR0cmlidXRlKGRhdGFEZXRlY3RvcnNVUkxT
Y2hlbWUpID09ICJ0cnVlIikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgVVJMIHVybCA9IGRv
d25jYXN0PEhUTUxBbmNob3JFbGVtZW50PigqZWxlbWVudCkuaHJlZigpOwotICAgIHJldHVybiB1
cmwucHJvdG9jb2xJcygibWFpbHRvIikgfHwgdXJsLnByb3RvY29sSXMoInRlbCIpOwotfQotCi1i
b29sIERhdGFEZXRlY3Rpb246OnJlcXVpcmVzRXh0ZW5kZWRDb250ZXh0KEVsZW1lbnQqIGVsZW1l
bnQpCi17Ci0gICAgcmV0dXJuIGVsZW1lbnQtPmdldEF0dHJpYnV0ZShkYXRhRGV0ZWN0b3JzQXR0
cmlidXRlVHlwZUtleSkgPT0gImNhbGVuZGFyLWV2ZW50IjsKLX0KLQotU3RyaW5nIERhdGFEZXRl
Y3Rpb246OmRhdGFEZXRlY3RvcklkZW50aWZpZXIoRWxlbWVudCogZWxlbWVudCkKLXsKLSAgICBy
ZXR1cm4gZWxlbWVudC0+Z2V0QXR0cmlidXRlKGRhdGFEZXRlY3RvcnNBdHRyaWJ1dGVSZXN1bHRL
ZXkpOwotfQotCi1ib29sIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRBY3Rpb24o
RWxlbWVudCogZWxlbWVudCkKLXsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgVU5VU0VEX1BBUkFN
KGVsZW1lbnQpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbHNlCi0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBiZSBhYmxlIHRvIHJldHJpZXZlIHRoaXMgaW5mb3JtYXRpb24gZnJvbSBEYXRhRGV0ZWN0
b3JzQ29yZSB3aGVuIHJkYXI6Ly9wcm9ibGVtLzI1MTY5MTMzIGlzIGZpeGVkLgotICAgIGlmICgh
aXM8SFRNTEFuY2hvckVsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChlbGVtZW50LT5nZXRBdHRyaWJ1dGUoZGF0YURldGVjdG9yc1VSTFNjaGVtZSkgIT0g
InRydWUiKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgU3RyaW5nIHR5cGUgPSBlbGVtZW50
LT5nZXRBdHRyaWJ1dGUoZGF0YURldGVjdG9yc0F0dHJpYnV0ZVR5cGVLZXkpOwotICAgIGlmICh0
eXBlID09ICJtaXNjIiB8fCB0eXBlID09ICJjYWxlbmRhci1ldmVudCIgfHwgdHlwZSA9PSAidGVs
ZXBob25lIikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlm
Ci19Ci0KICNpZiBQTEFURk9STShNQUMpCiAKIHN0YXRpYyBSZXRhaW5QdHI8RERBY3Rpb25Db250
ZXh0PiBkZXRlY3RJdGVtQXRQb3NpdGlvbldpdGhSYW5nZShWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b24sIFJlZlB0cjxSYW5nZT4gY29udGV4dFJhbmdlLCBGbG9hdFJlY3QmIGRldGVjdGVkRGF0YUJv
dW5kaW5nQm94LCBSZWZQdHI8UmFuZ2U+JiBkZXRlY3RlZERhdGFSYW5nZSkKQEAgLTE4OSw3ICsx
NDksNDcgQEAgUmV0YWluUHRyPEREQWN0aW9uQ29udGV4dD4gRGF0YURldGVjdGlvbgogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAogI2lmIFBMQVRGT1JNKElPUykKK2Jvb2wgRGF0YURldGVjdGlv
bjo6aXNEYXRhRGV0ZWN0b3JMaW5rKEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKCFpczxI
VE1MQW5jaG9yRWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAK
KyAgICByZXR1cm4gW3NvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3JlX0REVVJMVGFwQW5kSG9sZFNj
aGVtZXMoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilkb3duY2FzdDxIVE1MQW5jaG9yRWxl
bWVudD4oZWxlbWVudCkuaHJlZigpLnByb3RvY29sKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2Uo
KV07Cit9CisKK2Jvb2wgRGF0YURldGVjdGlvbjo6cmVxdWlyZXNFeHRlbmRlZENvbnRleHQoRWxl
bWVudCYgZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoZGF0YURl
dGVjdG9yc0F0dHJpYnV0ZVR5cGVLZXkpID09ICJjYWxlbmRhci1ldmVudCI7Cit9CisKK1N0cmlu
ZyBEYXRhRGV0ZWN0aW9uOjpkYXRhRGV0ZWN0b3JJZGVudGlmaWVyKEVsZW1lbnQmIGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKGRhdGFEZXRlY3RvcnNBdHRyaWJ1
dGVSZXN1bHRLZXkpOworfQorCitib29sIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1
bHRBY3Rpb24oRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoIWlzRGF0YURldGVjdG9yTGlu
ayhlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChzb2Z0TGlu
a19EYXRhRGV0ZWN0b3JzQ29yZV9ERFNob3VsZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9y
VVJMKGRvd25jYXN0PEhUTUxBbmNob3JFbGVtZW50PihlbGVtZW50KS5ocmVmKCkpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHJlc3VsdEF0dHJp
YnV0ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKGRhdGFEZXRlY3RvcnNBdHRyaWJ1dGVSZXN1bHRL
ZXkpOworICAgIGlmIChyZXN1bHRBdHRyaWJ1dGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgTlNBcnJheSAqcmVzdWx0cyA9IGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgp
LT5kYXRhRGV0ZWN0aW9uUmVzdWx0cygpOworICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdEluZGlj
ZXM7CisgICAgcmVzdWx0QXR0cmlidXRlLnN0cmluZygpLnNwbGl0KCcvJywgcmVzdWx0SW5kaWNl
cyk7CisgICAgRERSZXN1bHRSZWYgcmVzdWx0ID0gW1tyZXN1bHRzIG9iamVjdEF0SW5kZXg6cmVz
dWx0SW5kaWNlc1swXS50b0ludCgpXSBjb3JlUmVzdWx0XTsKKyAgICAvLyBIYW5kbGUgdGhlIGNh
c2Ugb2YgYSBzaWduYXR1cmUgYmxvY2ssIHdoZXJlIHdlIG5lZWQgdG8gY2hlY2sgdGhlIGNvcnJl
Y3Qgc3VicmVzdWx0LgorICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgcmVzdWx0SW5kaWNlcy5z
aXplKCk7IGkrKykgeworICAgICAgICByZXN1bHRzID0gKE5TQXJyYXkgKilzb2Z0TGlua19EYXRh
RGV0ZWN0b3JzQ29yZV9ERFJlc3VsdEdldFN1YlJlc3VsdHMocmVzdWx0KTsKKyAgICAgICAgcmVz
dWx0ID0gKEREUmVzdWx0UmVmKVtyZXN1bHRzIG9iamVjdEF0SW5kZXg6cmVzdWx0SW5kaWNlc1tp
XS50b0ludCgpXTsKKyAgICB9CisgICAgcmV0dXJuIHNvZnRMaW5rX0RhdGFEZXRlY3RvcnNDb3Jl
X0REU2hvdWxkSW1tZWRpYXRlbHlTaG93QWN0aW9uU2hlZXRGb3JSZXN1bHQocmVzdWx0KTsKK30K
Kwogc3RhdGljIEJPT0wgcmVzdWx0SXNVUkwoRERSZXN1bHRSZWYgcmVzdWx0KQogewogICAgIGlm
ICghcmVzdWx0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvRGF0YURldGVj
dG9yc0NvcmVTb2Z0TGluay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsuaAkocmV2aXNpb24gMTk4NjA3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5o
CSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw5IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdlYkNvcmUsIEQKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUs
IERhdGFEZXRlY3RvcnNDb3JlLCBERFJlc3VsdEdldFN1YlJlc3VsdHMsIENGQXJyYXlSZWYsIChE
RFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVB
REVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFJlc3VsdEdldFF1ZXJ5UmFuZ2VGb3JV
UkxpZmljYXRpb24sIEREUXVlcnlSYW5nZSwgKEREUmVzdWx0UmVmIHJlc3VsdCksIChyZXN1bHQp
KQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgRGF0YURldGVjdG9yc0Nv
cmUsIEREVVJMU3RyaW5nRm9yUmVzdWx0LCBOU1N0cmluZyAqLCAoRERSZXN1bHRSZWYgY3VycmVu
dFJlc3VsdCwgTlNTdHJpbmcgKiByZXN1bHRJZGVudGlmaWVyLCBERFVSTGlmaWVyUGhvbmVOdW1i
ZXJEZXRlY3Rpb25UeXBlcyBpbmNsdWRpbmdUZWxHcm91cHMsIE5TRGF0ZSAqIHJlZmVyZW5jZURh
dGUsIE5TVGltZVpvbmUgKiByZWZlcmVuY2VUaW1lWm9uZSksIChjdXJyZW50UmVzdWx0LCByZXN1
bHRJZGVudGlmaWVyLCBpbmNsdWRpbmdUZWxHcm91cHMsIHJlZmVyZW5jZURhdGUsIHJlZmVyZW5j
ZVRpbWVab25lKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFE
ZXRlY3RvcnNDb3JlLCBERFVSTFRhcEFuZEhvbGRTY2hlbWVzLCBOU0FycmF5ICosICgpLCAoKSkK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3Jl
LCBERFNob3VsZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0Rm9yVVJMLCBCT09MLCAoTlNVUkwg
KnVybCksICh1cmwpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgRGF0
YURldGVjdG9yc0NvcmUsIEREU2hvdWxkSW1tZWRpYXRlbHlTaG93QWN0aW9uU2hlZXRGb3JSZXN1
bHQsIEJPT0wsIChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRfTElOS19QT0lO
VEVSX0ZPUl9IRUFERVIoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREQmluZGVySHR0cFVS
TEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1JfSEVBREVSKFdlYkNvcmUs
IERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlcldlYlVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZU
X0xJTktfUE9JTlRFUl9GT1JfSEVBREVSKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJp
bmRlck1haWxVUkxLZXksIENGU3RyaW5nUmVmKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvRGF0YURldGVjdG9yc0NvcmVTb2Z0TGluay5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCShy
ZXZpc2lvbiAxOTg2MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9EYXRhRGV0
ZWN0b3JzQ29yZVNvZnRMaW5rLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw5IEBAIFNP
RlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIEQKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFJlc3VsdEdldFN1YlJl
c3VsdHMsIENGQXJyYXlSZWYsIChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVzdWx0KSkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFJl
c3VsdEdldFF1ZXJ5UmFuZ2VGb3JVUkxpZmljYXRpb24sIEREUXVlcnlSYW5nZSwgKEREUmVzdWx0
UmVmIHJlc3VsdCksIChyZXN1bHQpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREVVJMU3RyaW5nRm9yUmVzdWx0LCBOU1N0cmluZyAq
LCAoRERSZXN1bHRSZWYgY3VycmVudFJlc3VsdCwgTlNTdHJpbmcgKiByZXN1bHRJZGVudGlmaWVy
LCBERFVSTGlmaWVyUGhvbmVOdW1iZXJEZXRlY3Rpb25UeXBlcyBpbmNsdWRpbmdUZWxHcm91cHMs
IE5TRGF0ZSAqIHJlZmVyZW5jZURhdGUsIE5TVGltZVpvbmUgKiByZWZlcmVuY2VUaW1lWm9uZSks
IChjdXJyZW50UmVzdWx0LCByZXN1bHRJZGVudGlmaWVyLCBpbmNsdWRpbmdUZWxHcm91cHMsIHJl
ZmVyZW5jZURhdGUsIHJlZmVyZW5jZVRpbWVab25lKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
U09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFVSTFRhcEFuZEhvbGRTY2hlbWVz
LCBOU0FycmF5ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIERhdGFEZXRlY3RvcnNDb3JlLCBERFNob3VsZEltbWVkaWF0ZWx5U2hvd0FjdGlvblNoZWV0
Rm9yVVJMLCBCT09MLCAoTlNVUkwgKnVybCksICh1cmwpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9yc0NvcmUsIEREU2hvdWxkSW1tZWRpYXRlbHlT
aG93QWN0aW9uU2hlZXRGb3JSZXN1bHQsIEJPT0wsIChERFJlc3VsdFJlZiByZXN1bHQpLCAocmVz
dWx0KSkKIFNPRlRfTElOS19QT0lOVEVSX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgRGF0YURldGVjdG9y
c0NvcmUsIEREQmluZGVySHR0cFVSTEtleSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRF
Ul9GT1JfU09VUkNFKFdlYkNvcmUsIERhdGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlcldlYlVSTEtl
eSwgQ0ZTdHJpbmdSZWYpCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1JfU09VUkNFKFdlYkNvcmUsIERh
dGFEZXRlY3RvcnNDb3JlLCBEREJpbmRlck1haWxVUkxLZXksIENGU3RyaW5nUmVmKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0RhdGFEZXRl
Y3RvcnNDb3JlU1BJLmgJKHJldmlzaW9uIDE5ODYwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3JzQ29yZVNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw4IEBACiAjaWZuZGVmIERhdGFEZXRlY3RvcnNDb3JlU1BJX2gKICNkZWZpbmUgRGF0
YURldGVjdG9yc0NvcmVTUElfaAogCit0eXBlZGVmIHN0cnVjdCBfX0REUmVzdWx0ICpERFJlc3Vs
dFJlZjsKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpbXBvcnQgPERhdGFEZXRl
Y3RvcnNDb3JlL0REQmluZGVyS2V5c19Qcml2YXRlLmg+CkBAIC05Nyw2ICs5OSw3IEBAIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IEREVVJMU2NoZW1lOwogCiBAaW50ZXJmYWNlIEREU2Nhbm5lclJl
c3VsdCA6IE5TT2JqZWN0IDxOU0NvZGluZywgTlNTZWN1cmVDb2Rpbmc+CiArIChOU0FycmF5ICop
cmVzdWx0c0Zyb21Db3JlUmVzdWx0czooQ0ZBcnJheVJlZiljb3JlUmVzdWx0czsKKy0gKEREUmVz
dWx0UmVmKWNvcmVSZXN1bHQ7CiBAZW5kCiAKICNkZWZpbmUgRERSZXN1bHRQcm9wZXJ0eVBhc3Np
dmVEaXNwbGF5ICAgKDEgPDwgMCkKQEAgLTExMyw3ICsxMTYsNiBAQCB0eXBlZGVmIHN0cnVjdCBf
X0REUXVlcnlSYW5nZSB7CiAKICNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAot
dHlwZWRlZiBzdHJ1Y3QgX19ERFJlc3VsdCAqRERSZXN1bHRSZWY7CiB0eXBlZGVmIHN0cnVjdCBf
X0REU2NhblF1ZXJ5ICpERFNjYW5RdWVyeVJlZjsKIHR5cGVkZWYgc3RydWN0IF9fRERTY2FubmVy
ICpERFNjYW5uZXJSZWY7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODYwNykKKysrIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisy
MDE2LTAzLTIzICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRvcHQgbmV3IFNQSSBmcm9tIERhdGFEZXRlY3RvcnNDb3JlIHRvIGRlY2lkZSBsaW5rIGJlaGF2
aW9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1
NzgwCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI1MzAzNjMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCB1c2Ugb2YgZGF0YSBkZXRlY3Rp
b24gZnVuY3Rpb25zIHRvIHRha2UKKyAgICAgICAgYSByZWZlcmVuY2UgdG8gRWxlbWVudCBpbnN0
ZWFkIG9mIGEgcG9pbnRlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlVGFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTYtMDMtMjMgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWluaUJyb3dzZXIg
ZG9lc24ndCB1c2UgYWNjZWxlcmF0ZWQgZHJhd2luZyBpbiBXZWJLaXQyIHdpbmRvd3MgaWYgYSBX
ZWJLaXQxIHdpbmRvdyB3YXMgb3BlbmVkIGZpcnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCShyZXZpc2lvbiAxOTg2
MDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRs
ZVRhcChjb25zdCBJbnRQb2ludCYgCiAKICAgICBpZiAoIWZyYW1lUmVzcG9uZGluZ1RvQ2xpY2sg
fHwgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQgPCBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgq
ZnJhbWVSZXNwb25kaW5nVG9DbGljayktPmZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVy
RGlkQ29tbWl0TG9hZCgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZE5vdEhhbmRsZVRhcEFzQ2xpY2soYWRqdXN0ZWRJbnRQb2ludCkpOwotICAgIGVsc2UgaWYgKGlz
PEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xpY2spICYmIERhdGFEZXRlY3Rpb246OnNob3Vs
ZENhbmNlbERlZmF1bHRBY3Rpb24oJmRvd25jYXN0PEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1Rv
Q2xpY2spKSkgeworICAgIGVsc2UgaWYgKGlzPEVsZW1lbnQ+KCpub2RlUmVzcG9uZGluZ1RvQ2xp
Y2spICYmIERhdGFEZXRlY3Rpb246OnNob3VsZENhbmNlbERlZmF1bHRBY3Rpb24oZG93bmNhc3Q8
RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykpKSB7CiAgICAgICAgIHJlcXVlc3RQb3Np
dGlvbkluZm9ybWF0aW9uKGFkanVzdGVkSW50UG9pbnQpOwogICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soYWRqdXN0ZWRJbnRQb2ludCkp
OwogICAgIH0gZWxzZQpAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tbWl0UG90
ZW50aWFsVGFwKHVpbnQ2NF8KICAgICB9CiAKICAgICBpZiAobV9wb3RlbnRpYWxUYXBOb2RlID09
IG5vZGVSZXNwb25kaW5nVG9DbGljaykgewotICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGVS
ZXNwb25kaW5nVG9DbGljaykgJiYgRGF0YURldGVjdGlvbjo6c2hvdWxkQ2FuY2VsRGVmYXVsdEFj
dGlvbigmZG93bmNhc3Q8RWxlbWVudD4oKm5vZGVSZXNwb25kaW5nVG9DbGljaykpKSB7CisgICAg
ICAgIGlmIChpczxFbGVtZW50Pigqbm9kZVJlc3BvbmRpbmdUb0NsaWNrKSAmJiBEYXRhRGV0ZWN0
aW9uOjpzaG91bGRDYW5jZWxEZWZhdWx0QWN0aW9uKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlUmVz
cG9uZGluZ1RvQ2xpY2spKSkgewogICAgICAgICAgICAgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRp
b24ocm91bmRlZEludFBvaW50KG1fcG90ZW50aWFsVGFwTG9jYXRpb24pKTsKICAgICAgICAgICAg
IGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwogICAgICAgICB9IGVsc2UKQEAgLTIyMjMsMTIg
KzIyMjMsMTIgQEAgdm9pZCBXZWJQYWdlOjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKGNvbgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ubGlua0luZGljYXRvciA9IHRleHRJbmRpY2F0
b3ItPmRhdGEoKTsKICAgICAgICAgICAgICAgICAgICAgfQogI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKLSAgICAgICAgICAgICAgICAgICAgaW5mby5pc0RhdGFEZXRlY3RvckxpbmsgPSBEYXRh
RGV0ZWN0aW9uOjppc0RhdGFEZXRlY3RvckxpbmsoZWxlbWVudCk7CisgICAgICAgICAgICAgICAg
ICAgIGluZm8uaXNEYXRhRGV0ZWN0b3JMaW5rID0gRGF0YURldGVjdGlvbjo6aXNEYXRhRGV0ZWN0
b3JMaW5rKCplbGVtZW50KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uaXNEYXRhRGV0
ZWN0b3JMaW5rKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgZGF0YURldGVj
dGlvbkV4dGVuZGVkQ29udGV4dExlbmd0aCA9IDM1MDsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGluZm8uZGF0YURldGVjdG9ySWRlbnRpZmllciA9IERhdGFEZXRlY3Rpb246OmRhdGFEZXRlY3Rv
cklkZW50aWZpZXIoZWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmRhdGFE
ZXRlY3RvcklkZW50aWZpZXIgPSBEYXRhRGV0ZWN0aW9uOjpkYXRhRGV0ZWN0b3JJZGVudGlmaWVy
KCplbGVtZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uZGF0YURldGVjdG9yUmVz
dWx0cyA9IGVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+ZGF0YURldGVjdGlvblJlc3VsdHMo
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChEYXRhRGV0ZWN0aW9uOjpyZXF1aXJlc0V4
dGVuZGVkQ29udGV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERh
dGFEZXRlY3Rpb246OnJlcXVpcmVzRXh0ZW5kZWRDb250ZXh0KCplbGVtZW50KSkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gbGlua1JhbmdlID0gUmFuZ2U6OmNy
ZWF0ZShlbGVtZW50LT5kb2N1bWVudCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aW5rUmFuZ2UtPnNlbGVjdE5vZGVDb250ZW50cyhlbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRleHRCZWZvcmUgPSBwbGFpblRl
eHRSZXBsYWNpbmdOb0JyZWFrU3BhY2UocmFuZ2VFeHBhbmRlZEJ5Q2hhcmFjdGVyc0luRGlyZWN0
aW9uQXRXb3JkQm91bmRhcnkobGlua1JhbmdlLT5zdGFydFBvc2l0aW9uKCksIGRhdGFEZXRlY3Rp
b25FeHRlbmRlZENvbnRleHRMZW5ndGgsIERpcmVjdGlvbkJhY2t3YXJkKS5nZXQoKSwgVGV4dEl0
ZXJhdG9yRGVmYXVsdEJlaGF2aW9yLCB0cnVlKTsK
</data>
<flag name="review"
          id="299210"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>