<?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>42800</bug_id>
          
          <creation_ts>2010-07-21 18:07:09 -0700</creation_ts>
          <short_desc>Upstream Android auto hyphenation implemenation to webkit</short_desc>
          <delta_ts>2010-07-26 16:12:12 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</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>0</everconfirmed>
          <reporter name="sw">swang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andreip</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>254618</commentid>
    <comment_count>0</comment_count>
    <who name="sw">swang</who>
    <bug_when>2010-07-21 18:07:09 -0700</bug_when>
    <thetext>Upstream Android auto hyphenation implemenation to webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254910</commentid>
    <comment_count>1</comment_count>
      <attachid>62323</attachid>
    <who name="sw">swang</who>
    <bug_when>2010-07-22 11:54:11 -0700</bug_when>
    <thetext>Created attachment 62323
Implment auto hyphenation interface for Android.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254926</commentid>
    <comment_count>2</comment_count>
      <attachid>62323</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-22 12:51:03 -0700</bug_when>
    <thetext>Comment on attachment 62323
Implment auto hyphenation interface for Android.

There&apos;s a more elegant way to deal with the single hyphenation dictionary.

    static HyphenDict* dictionary = loadHyphenationDictionary();

Since you&apos;re only using it at one call site, you can use this there, and not have a &quot;get&quot; function. For one thing we don’t use &quot;get&quot; in our simple getter function names in WebKit. For another, there&apos;s no need for a separate boolean. If you did want a get function, it can be written like this.

    static HyphenDict* hyphenationDictionary()
    {
        static HyphenDict* staticDictionary = loadHyphenationDictionary();
        return staticDictionary;
    }

There&apos;s no reason for the boolean and to nest the entire function inside an if statement. It&apos;s also possibly more efficient to have the one time code out of line in a separate function.

r=me, though, as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254961</commentid>
    <comment_count>3</comment_count>
    <who name="sw">swang</who>
    <bug_when>2010-07-22 13:44:21 -0700</bug_when>
    <thetext>Thanks Darin for the review approval.  Shall I ask you or Steveblock to land the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254967</commentid>
    <comment_count>4</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-22 13:53:02 -0700</bug_when>
    <thetext>&gt; Thanks Darin for the review approval.  Shall I ask you or Steveblock to land the patch?
I&apos;m happy to cq+ the patch for you. It would be great if you could address Darin&apos;s comments first though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254972</commentid>
    <comment_count>5</comment_count>
    <who name="sw">swang</who>
    <bug_when>2010-07-22 13:58:33 -0700</bug_when>
    <thetext>I think his comments is for nice-to-have.  So I think I&apos;ll keep it as is now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255068</commentid>
    <comment_count>6</comment_count>
      <attachid>62323</attachid>
    <who name="">mitz</who>
    <bug_when>2010-07-22 16:52:16 -0700</bug_when>
    <thetext>Comment on attachment 62323
Implment auto hyphenation interface for Android.

&gt; +#include &quot;NotImplemented.h&quot;

Is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255084</commentid>
    <comment_count>7</comment_count>
    <who name="sw">swang</who>
    <bug_when>2010-07-22 17:09:02 -0700</bug_when>
    <thetext>it&apos;s needed for the android logging logw/logd.  thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255948</commentid>
    <comment_count>8</comment_count>
      <attachid>62323</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-26 02:23:12 -0700</bug_when>
    <thetext>Comment on attachment 62323
Implment auto hyphenation interface for Android.

(In reply to comment #7)
&gt; it&apos;s needed for the android logging logw/logd.  thanks.
I&apos;m not sure that we should rely on NotImplemented.h to provide the logging macros for Android, especially as this is not present upstream. WebCore doesn&apos;t typically use debug logging like this, but if it&apos;s really required, you should probably include the necessary headers directly.

WebCore/ChangeLog:9
 +          output may be different in Android.
Are you suggesting that we need Android-specific expected results for the layout tests? Is it possible to submit those as part of this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256251</commentid>
    <comment_count>9</comment_count>
      <attachid>62610</attachid>
    <who name="sw">swang</who>
    <bug_when>2010-07-26 14:42:32 -0700</bug_when>
    <thetext>Created attachment 62610
Implment auto hyphenation interface for Android.

hi, Steve/Darin/Mitz,

I address all your comments in the new patch.  I created android platform specific results.

Thanks,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256254</commentid>
    <comment_count>10</comment_count>
      <attachid>62611</attachid>
    <who name="sw">swang</who>
    <bug_when>2010-07-26 14:45:34 -0700</bug_when>
    <thetext>Created attachment 62611
Implement auto hyphenation interface for Android.

fixed a style issue for the LayoutTests/ChangeLog in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256256</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-26 14:45:59 -0700</bug_when>
    <thetext>Attachment 62610 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
LayoutTests/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [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>256282</commentid>
    <comment_count>12</comment_count>
      <attachid>62611</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-26 15:25:23 -0700</bug_when>
    <thetext>Comment on attachment 62611
Implement auto hyphenation interface for Android.

&gt; +        No new tests. (OOPS!)

You need to remove this, or we can&apos;t land it. The only OOPS is on the reviewer line, because the landing script edits that line. Any other OOPS will prevent the patch from landing.

Patch otherwise seems fine. r=me, but you’ll need to submit a new patch if you want the commit-queue to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256283</commentid>
    <comment_count>13</comment_count>
      <attachid>62611</attachid>
    <who name="">mitz</who>
    <bug_when>2010-07-26 15:26:27 -0700</bug_when>
    <thetext>Comment on attachment 62611
Implement auto hyphenation interface for Android.

&gt; +    if (!hnj_hyphen_hyphenate(dict, word, length, hyphens))
&gt; +        for (size_t i = beforeIndex - 1; i &gt; 0; --i) {
&gt; +            if (hyphens[i] &amp; 1)
&gt; +                return i + 1;
&gt; +        }

There should be braces around the multi-line if block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256284</commentid>
    <comment_count>14</comment_count>
      <attachid>62621</attachid>
    <who name="sw">swang</who>
    <bug_when>2010-07-26 15:29:14 -0700</bug_when>
    <thetext>Created attachment 62621
Implement auto hyphenation interface for Android.

Thanks Darin for review.  Removed the test OOPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256287</commentid>
    <comment_count>15</comment_count>
      <attachid>62622</attachid>
    <who name="sw">swang</who>
    <bug_when>2010-07-26 15:34:15 -0700</bug_when>
    <thetext>Created attachment 62622
Implement auto hyphenation interface for Android.

added braces per Mitz&apos; review.  Thanks Darin and Mitz for reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256317</commentid>
    <comment_count>16</comment_count>
      <attachid>62622</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-26 16:12:07 -0700</bug_when>
    <thetext>Comment on attachment 62622
Implement auto hyphenation interface for Android.

Clearing flags on attachment: 62622

Committed r64087: &lt;http://trac.webkit.org/changeset/64087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256318</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-26 16:12:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62323</attachid>
            <date>2010-07-22 11:54:11 -0700</date>
            <delta_ts>2010-07-26 14:42:32 -0700</delta_ts>
            <desc>Implment auto hyphenation interface for Android.</desc>
            <filename>AndroidAutoHyphenation.txt</filename>
            <type>text/plain</type>
            <size>4806</size>
            <attacher name="sw">swang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzkwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDctMjIgIFNoaW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYXV0byBoeXBoZW5hdGlvbiBzdXBwb3J0IGZvciBBbmRyb2lkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI4MDAKKworICAgICAgICBU
ZXN0cyBhcmUgYWxyZWFkeSB0aGVyZS4gIFRlc3RlZCBmaW5lIG9uIEFuZHJvaWQsIHRob3VnaCB0
aGUKKyAgICAgICAgb3V0cHV0IG1heSBiZSBkaWZmZXJlbnQgaW4gQW5kcm9pZC4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvYW5kcm9p
ZC9IeXBoZW5hdGlvbkFuZHJvaWQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmdldEh5
cGhlbkRpY3QpOgorICAgICAgICAoV2ViQ29yZTo6bGFzdEh5cGhlbkxvY2F0aW9uKToKKwogMjAx
MC0wNy0yMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFuZGVycyBDYXJsc3Nvbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9hbmRyb2lk
L0h5cGhlbmF0aW9uQW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2FuZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lkLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vdGV4dC9hbmRyb2lkL0h5cGhlbmF0aW9uQW5kcm9pZC5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lk
IE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJoeXBoZW5hdGlv
bl9hbmRyb2lkIgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSHlwaGVuYXRpb24u
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisvLyBGb3IgZXh0ZXJuYWwgaHlwaGVu
YXRpb24gbGlicmFyeS4KKyNpbmNsdWRlICJoeXBoZW4uaCIKKyNpbmNsdWRlIDx1dGlscy9Bc3Nl
dE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK2V4dGVybiBhbmRyb2lkOjpBc3NldE1hbmFnZXIqIGdsb2Jh
bEFzc2V0TWFuYWdlcigpOworCit1c2luZyBuYW1lc3BhY2UgV1RGOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBIeXBoZW5EaWN0KiBnZXRIeXBoZW5EaWN0KCkKK3sKKyAgICBzdGF0
aWMgSHlwaGVuRGljdCogZGljdCA9IDA7CisgICAgc3RhdGljIGJvb2wgaXNEaWN0SW5pdGlhbGl6
ZWQgPSBmYWxzZTsKKyAgICBpZiAoIWlzRGljdEluaXRpYWxpemVkICYmICFkaWN0KSB7CisgICAg
ICAgIGlzRGljdEluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgYW5kcm9pZDo6QXNzZXRNYW5h
Z2VyKiBhbSA9IGdsb2JhbEFzc2V0TWFuYWdlcigpOworICAgICAgICAvLyBPbmx5IHN1cHBvcnQg
RW5nbGlzaCBmb3Igbm93LgorICAgICAgICBhbmRyb2lkOjpBc3NldCogYSA9IGFtLT5vcGVuKCJ3
ZWJraXQvaHlwaF9lbl9VUy5kaWMiLAorICAgICAgICAgICAgYW5kcm9pZDo6QXNzZXQ6OkFDQ0VT
U19CVUZGRVIpOworICAgICAgICBpZiAoIWEpIHsKKyAgICAgICAgICAgIExPR1coImFzc2V0IHdl
YmtpdC9oeXBoX2VuX1VTLmRpYyBub3QgZm91bmQhIik7CisgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgfQorICAgICAgICBMT0dEKCJkaWN0aW9uYXJ5IGxlbmd0aCBpcyAlZCIsIGEtPmdl
dExlbmd0aCgpKTsKKyAgICAgICAgY29uc3QgQ1N0cmluZyBkaWN0Q29udGVudHMgPSBTdHJpbmco
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGEtPmdldEJ1ZmZlcihmYWxzZSkpLAorICAgICAgICAg
ICAgYS0+Z2V0TGVuZ3RoKCkpLnV0ZjgoKTsKKyAgICAgICAgZGljdCA9IGhual9oeXBoZW5fbG9h
ZF9mcm9tX2J1ZmZlcihkaWN0Q29udGVudHMuZGF0YSgpLAorICAgICAgICAgICAgZGljdENvbnRl
bnRzLmxlbmd0aCgpKTsKKyAgICAgICAgZGVsZXRlIGE7CisgICAgfQorICAgIHJldHVybiBkaWN0
OworfQorCitzaXplX3QgbGFzdEh5cGhlbkxvY2F0aW9uKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
LCBzaXplX3QgbGVuZ3RoLCBzaXplX3QgYmVmb3JlSW5kZXgpCit7CisgICAgc3RhdGljIGNvbnN0
IHNpemVfdCBtaW5Xb3JkTGVuID0gNTsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heFdvcmRM
ZW4gPSAxMDA7CisgICAgaWYgKGJlZm9yZUluZGV4IDw9IDAgfHwgbGVuZ3RoIDwgbWluV29yZExl
biB8fCBsZW5ndGggPiBtYXhXb3JkTGVuKQorICAgICAgICByZXR1cm4gMDsKKworICAgIEh5cGhl
bkRpY3QqIGRpY3QgPSBnZXRIeXBoZW5EaWN0KCk7CisgICAgaWYgKCFkaWN0KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIGNoYXIgd29yZFttYXhXb3JkTGVuXTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGNvbnN0IFVDaGFyIGNoID0gY2hhcmFj
dGVyc1tpXTsKKyAgICAgICAgLy8gT25seSBFbmdsaXNoIGZvciBub3cuCisgICAgICAgIC8vIFRv
IHJlYWxseSBtYWtlIGl0IGxhbmd1YWdlIGF3YXJlLCB3ZSBuZWVkIHNvbWV0aGluZyBsaWtlIGxh
bmd1YWdlCisgICAgICAgIC8vIGRldGVjdGlvbiBvciByZWx5IG9uIHRoZSBsYW5nQXR0ciBpbiB0
aGUgaHRtbCBlbGVtZW50LiAgVGhvdWdoCisgICAgICAgIC8vIHNlZW1zIHJpZ2h0IG5vdyB0aGUg
bGFuZ0F0dHIgaXMgbm90IHVzZWQgb3IgcXVpdGUgaW1wbGVtZW50ZWQgaW4KKyAgICAgICAgLy8g
d2Via2l0LgorICAgICAgICBpZiAoIWlzQVNDSUlBbHBoYShjaCkpCisgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgd29yZFtpXSA9IGNoOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBp
bnQgZXh0cmFCdWZmZXIgPSA1OworICAgIGNoYXIgaHlwaGVuc1ttYXhXb3JkTGVuICsgZXh0cmFC
dWZmZXJdOworICAgIGlmICghaG5qX2h5cGhlbl9oeXBoZW5hdGUoZGljdCwgd29yZCwgbGVuZ3Ro
LCBoeXBoZW5zKSkKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IGJlZm9yZUluZGV4IC0gMTsgaSA+
IDA7IC0taSkgeworICAgICAgICAgICAgaWYgKGh5cGhlbnNbaV0gJiAxKQorICAgICAgICAgICAg
ICAgIHJldHVybiBpICsgMTsKKyAgICAgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="50501"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62610</attachid>
            <date>2010-07-26 14:42:32 -0700</date>
            <delta_ts>2010-07-26 14:45:34 -0700</delta_ts>
            <desc>Implment auto hyphenation interface for Android.</desc>
            <filename>autoHyphenation.txt</filename>
            <type>text/plain</type>
            <size>20584</size>
            <attacher name="sw">swang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDA3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDctMjYgIFNoaW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYXV0byBoeXBoZW5hdGlvbiBzdXBwb3J0IGZvciBBbmRyb2lkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI4MDAKKworICAgICAgICBO
byBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvYW5kcm9pZC9I
eXBoZW5hdGlvbkFuZHJvaWQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvYWRIeXBo
ZW5hdGlvbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6bGFzdEh5cGhlbkxvY2F0aW9u
KToKKwogMjAxMC0wNy0yNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2FuZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL3RleHQvYW5kcm9pZC9IeXBoZW5hdGlvbkFuZHJvaWQuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2FuZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lk
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEw
LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgorCisvLyBGb3IgZXh0ZXJuYWwgaHlwaGVu
YXRpb24gbGlicmFyeS4KKyNpbmNsdWRlICJoeXBoZW4uaCIKKyNpbmNsdWRlIDx1dGlscy9Bc3Nl
dE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK2V4dGVybiBhbmRyb2lkOjpBc3NldE1hbmFnZXIqIGdsb2Jh
bEFzc2V0TWFuYWdlcigpOworCit1c2luZyBuYW1lc3BhY2UgV1RGOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBIeXBoZW5EaWN0KiBsb2FkSHlwaGVuYXRpb25EaWN0aW9uYXJ5KCkK
K3sKKyAgICBhbmRyb2lkOjpBc3NldE1hbmFnZXIqIGFtID0gZ2xvYmFsQXNzZXRNYW5hZ2VyKCk7
CisgICAgLy8gT25seSBzdXBwb3J0IEVuZ2xpc2ggZm9yIG5vdy4KKyAgICBhbmRyb2lkOjpBc3Nl
dCogYSA9IGFtLT5vcGVuKCJ3ZWJraXQvaHlwaF9lbl9VUy5kaWMiLAorICAgICAgICBhbmRyb2lk
OjpBc3NldDo6QUNDRVNTX0JVRkZFUik7CisgICAgaWYgKCFhKSB7CisgICAgICAgIC8vIEFzc2V0
IHdlYmtpdC9oeXBoX2VuX1VTLmRpYyBub3QgZm91bmQhCisgICAgICAgIHJldHVybiAwOworICAg
IH0KKyAgICBjb25zdCBDU3RyaW5nIGRpY3RDb250ZW50cyA9IFN0cmluZyhzdGF0aWNfY2FzdDxj
b25zdCBjaGFyKj4oYS0+Z2V0QnVmZmVyKGZhbHNlKSksCisgICAgICAgIGEtPmdldExlbmd0aCgp
KS51dGY4KCk7CisgICAgSHlwaGVuRGljdCogZGljdCA9IGhual9oeXBoZW5fbG9hZF9mcm9tX2J1
ZmZlcihkaWN0Q29udGVudHMuZGF0YSgpLAorICAgICAgICBkaWN0Q29udGVudHMubGVuZ3RoKCkp
OworICAgIGRlbGV0ZSBhOworCisgICAgcmV0dXJuIGRpY3Q7Cit9CisKK3NpemVfdCBsYXN0SHlw
aGVuTG9jYXRpb24oY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgsIHNpemVf
dCBiZWZvcmVJbmRleCkKK3sKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbldvcmRMZW4gPSA1
OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4V29yZExlbiA9IDEwMDsKKyAgICBpZiAoYmVm
b3JlSW5kZXggPD0gMCB8fCBsZW5ndGggPCBtaW5Xb3JkTGVuIHx8IGxlbmd0aCA+IG1heFdvcmRM
ZW4pCisgICAgICAgIHJldHVybiAwOworCisgICAgc3RhdGljIEh5cGhlbkRpY3QqIGRpY3QgPSBs
b2FkSHlwaGVuYXRpb25EaWN0aW9uYXJ5KCk7CisgICAgaWYgKCFkaWN0KQorICAgICAgICByZXR1
cm4gMDsKKworICAgIGNoYXIgd29yZFttYXhXb3JkTGVuXTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGNvbnN0IFVDaGFyIGNoID0gY2hhcmFjdGVy
c1tpXTsKKyAgICAgICAgLy8gT25seSBFbmdsaXNoIGZvciBub3cuCisgICAgICAgIC8vIFRvIHJl
YWxseSBtYWtlIGl0IGxhbmd1YWdlIGF3YXJlLCB3ZSBuZWVkIHNvbWV0aGluZyBsaWtlIGxhbmd1
YWdlCisgICAgICAgIC8vIGRldGVjdGlvbiBvciByZWx5IG9uIHRoZSBsYW5nQXR0ciBpbiB0aGUg
aHRtbCBlbGVtZW50LiAgVGhvdWdoCisgICAgICAgIC8vIHNlZW1zIHJpZ2h0IG5vdyB0aGUgbGFu
Z0F0dHIgaXMgbm90IHVzZWQgb3IgcXVpdGUgaW1wbGVtZW50ZWQgaW4KKyAgICAgICAgLy8gd2Vi
a2l0LgorICAgICAgICBpZiAoIWlzQVNDSUlBbHBoYShjaCkpCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgd29yZFtpXSA9IGNoOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBpbnQg
ZXh0cmFCdWZmZXIgPSA1OworICAgIGNoYXIgaHlwaGVuc1ttYXhXb3JkTGVuICsgZXh0cmFCdWZm
ZXJdOworICAgIGlmICghaG5qX2h5cGhlbl9oeXBoZW5hdGUoZGljdCwgd29yZCwgbGVuZ3RoLCBo
eXBoZW5zKSkKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IGJlZm9yZUluZGV4IC0gMTsgaSA+IDA7
IC0taSkgeworICAgICAgICAgICAgaWYgKGh5cGhlbnNbaV0gJiAxKQorICAgICAgICAgICAgICAg
IHJldHVybiBpICsgMTsKKyAgICAgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0MDc3KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDctMjYgIFNo
aW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW5kcm9pZCBzcGVjaWZpYyBleHBl
Y3RlZCB0ZXN0IHJlc3VsdHMgZm9yIGF1dG8gaHlwaGVuYXRpb24KKwl0ZXN0cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2FuZHJvaWQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQv
ZmFzdDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0L2h5cGhlbmF0ZS1jaGFyYWN0
ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL2Zhc3Qv
dGV4dC9oeXBoZW5zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMDctMjYgIEp1c3RpbiBT
Y2h1aCAgPGpzY2h1aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
RmlzaGVyLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQvaHlw
aGVuYXRlLWNoYXJhY3Rlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQvaHlwaGVuYXRlLWNoYXJhY3Rlci1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9hbmRyb2lkL2Zhc3QvdGV4
dC9oeXBoZW5hdGUtY2hhcmFjdGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMTggQEAKK2xheWVyIGF0ICgwLDApIHNpemUgMzU2eDEyMTEKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDMxM3g0ODMKK2xheWVyIGF0ICgwLDApIHNpemUgMzU2eDEyMTEKKyAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMzEzeDQ4MworICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMjk3eDQ2NworICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElW
fSBhdCAoNCwwKSBzaXplIDM0NHgyOTYKKyAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2
KSBzaXplIDM0NHgxOQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDIyN3gxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjI3OiAiVGhlIGlu
aXRpYWwgdmFsdWUgKHNob3VsZCBiZSBsaWtlICIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge1RU
fSBhdCAoMCwwKSBzaXplIDMyeDE1CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDIyNyw0KSBzaXplIDMyeDE1CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMjcsNCkgd2lk
dGggMzI6ICJhdXRvIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjU5LDApIHNp
emUgNXgxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI1OSwwKSB3aWR0aCA1OiAiKSIKKyAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgMzQ0eDI0NSBbYm9yZGVyOiAo
M3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJ
Vn0gYXQgKDI2Miw3KSBzaXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg3LDcpIHNpemUgMzMweDIzMQorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsNykgd2lkdGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxpY2UiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qgd2Fz
IGluIG1hbmFnIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDc5OiAiaW5n
IGhlciAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODYsNDkpIHdpZHRoIDE2NjogImZsYW1p
bmdvOiBzaGUgc3VjIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRoIDI0NTog
ImNlZWRlZCBpbiBnZXR0aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcs
OTEpIHdpZHRoIDE0NzogInR1Y2tlZCBhd2F5LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MTU0LDkxKSB3aWR0aCA5ODogImNvbWZvcnRhYmx5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcsMTEyKSB3aWR0aCAzMzA6ICJlbm91Z2gsIHVuZGVyIGhlciBhcm0sIHdpdGggaXRzIGxlZ3Mi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMzMpIHdpZHRoIDEyNTogImhhbmdpbmcgZG93
biwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzMiwxMzMpIHdpZHRoIDIwNTogImJ1dCBn
ZW5lcmFsbHksIGp1c3QgYXMgc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTU0KSB3
aWR0aCAyOTg6ICJoYWQgZ290IGl0cyBuZWNrIG5pY2VseSBzdHJhaWdodGVuZWQgIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDMwNSwxNTQpIHdpZHRoIDMyOiAib3V0LCIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDE3NSkgd2lkdGggMzMwOiAiYW5kIHdhcyBnb2luZyB0byBnaXZlIHRo
ZSBoZWRnZWhvZyBhIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTk2KSB3aWR0aCAxODY6
ICJibG93IHdpdGggaXRzIGhlYWQsIGl0ICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTMs
MTk2KSB3aWR0aCAxNDQ6ICJ3b3VsZCB0d2lzdCBpdHNlbGYiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNywyMTcpIHdpZHRoIDI2MDogInJvdW5kIGFuZCBsb29rIHVwIGluIGhlciBmYWNlXHh7
MjAyNn0iCisgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICg0LDI5Nikgc2l6
ZSAzNDR4Mjk2CisgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxNikgc2l6ZSAzNDR4MTkK
KyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5MXgxOQorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTE6ICJUaGUgZGVmYXVsdCAoIgorICAgICAg
ICAgIFJlbmRlcklubGluZSB7VFR9IGF0ICgwLDApIHNpemUgMTk4eDE1CisgICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDkxLDQpIHNpemUgMTk4eDE1CisgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg5MSw0KSB3aWR0aCAxOTg6ICJoeXBoZW5hdGUtY2hhcmFjdGVyOiBhdXRvIgor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjg5LDApIHNpemUgNXgxOQorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDI4OSwwKSB3aWR0aCA1OiAiKSIKKyAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsNTEpIHNpemUgMzQ0eDI0NSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAw
MDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDI2Miw3KSBz
aXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg3LDcpIHNpemUgMzMweDIzMQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNykgd2lk
dGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxpY2UiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qgd2FzIGluIG1hbmFnIgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDc5OiAiaW5nIGhlciAiCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoODYsNDkpIHdpZHRoIDE2NjogImZsYW1pbmdvOiBzaGUgc3VjIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRoIDI0NTogImNlZWRlZCBpbiBnZXR0
aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsOTEpIHdpZHRoIDE0Nzog
InR1Y2tlZCBhd2F5LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU0LDkxKSB3aWR0aCA5
ODogImNvbWZvcnRhYmx5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTEyKSB3aWR0aCAz
MzA6ICJlbm91Z2gsIHVuZGVyIGhlciBhcm0sIHdpdGggaXRzIGxlZ3MiCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNywxMzMpIHdpZHRoIDEyNTogImhhbmdpbmcgZG93biwgIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDEzMiwxMzMpIHdpZHRoIDIwNTogImJ1dCBnZW5lcmFsbHksIGp1c3Qg
YXMgc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTU0KSB3aWR0aCAyOTg6ICJoYWQg
Z290IGl0cyBuZWNrIG5pY2VseSBzdHJhaWdodGVuZWQgIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDMwNSwxNTQpIHdpZHRoIDMyOiAib3V0LCIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDE3NSkgd2lkdGggMzMwOiAiYW5kIHdhcyBnb2luZyB0byBnaXZlIHRoZSBoZWRnZWhvZyBhIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTk2KSB3aWR0aCAxODY6ICJibG93IHdpdGggaXRz
IGhlYWQsIGl0ICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTMsMTk2KSB3aWR0aCAxNDQ6
ICJ3b3VsZCB0d2lzdCBpdHNlbGYiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyMTcpIHdp
ZHRoIDI2MDogInJvdW5kIGFuZCBsb29rIHVwIGluIGhlciBmYWNlXHh7MjAyNn0iCisgICAgICBS
ZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICg0LDU5Mikgc2l6ZSAzNDR4Mjk2CisgICAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxNikgc2l6ZSAzNDR4MTkKKyAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1MXgxOQorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNTE6ICJCdWxsZXQgKCIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge1RU
fSBhdCAoMCwwKSBzaXplIDIyMXgxNQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICg1MSw0KSBzaXplIDIyMXgxNQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTEsNCkgd2lk
dGggMjIxOiAiaHlwaGVuYXRlLWNoYXJhY3RlcjogXCJcXDIwMjJcIiIKKyAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDI3MiwwKSBzaXplIDV4MTkKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgyNzIsMCkgd2lkdGggNTogIikiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDUxKSBzaXplIDM0NHgyNDUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAg
ICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBbYmdj
b2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBzaXpl
IDMzMHgyMzEKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRoZSBj
aGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgpIHdp
ZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5hZyIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDQ5KSB3aWR0aCA3ODogImluZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDg1LDQ5KSB3aWR0aCAxNjc6ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9keSIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdheSwg
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0YWJs
eSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1
bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcs
MTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVjayBu
aWNlbHkgc3RyYWlnaHRlbmVkICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0KSB3
aWR0aCAzMjogIm91dCwiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRoIDMz
MDogImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAiCisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdpc3Qg
aXRzZWxmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJyb3Vu
ZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIwMjZ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZs
b2F0aW5nKSB7RElWfSBhdCAoNCw4ODgpIHNpemUgMzQ0eDMxNQorICAgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDM4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMTU2eDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCAxNTY6ICJNaWRkbGUgZG90IGFuZCB0aWxkZSAoIgorICAgICAgICAgIFJlbmRlcklubGluZSB7
VFR9IGF0ICgwLDApIHNpemUgMzE0eDM0CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDE1Niw0KSBzaXplIDMxNHgzNAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU2LDQp
IHdpZHRoIDE1ODogImh5cGhlbmF0ZS1jaGFyYWN0ZXI6IgorICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwyMykgd2lkdGggNDc6ICJcIlxcQjd+XCIiCisgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg0NywxOSkgc2l6ZSA1eDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDcs
MTkpIHdpZHRoIDU6ICIpIgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw3MCkgc2l6
ZSAzNDR4MjQ1IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDAwMCldCisgICAgICAgICAgUmVuZGVy
QmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMjYyLDcpIHNpemUgNzV4OTAgW2JnY29sb3I9I0Yw
RjhGRl0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcsNykgc2l6ZSAzMzB4MjMx
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0aCAyNDU6ICJUaGUgY2hpZWYgZGlm
ZmljdWx0eSBBbGljZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDI4KSB3aWR0aCAyNDU6
ICJmb3VuZCBhdCBmaXJzdCB3YXMgaW4gbWFuYWciCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
Nyw0OSkgd2lkdGggNzQ6ICJpbmcgaGVyICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4MSw0
OSkgd2lkdGggMTcxOiAiZmxhbWluZ286IHNoZSBzdWMiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNyw3MCkgd2lkdGggMjQ1OiAiY2VlZGVkIGluIGdldHRpbmcgaXRzIGJvZHkiCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNyw5MSkgd2lkdGggMTQ3OiAidHVja2VkIGF3YXksICIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxNTQsOTEpIHdpZHRoIDk4OiAiY29tZm9ydGFibHkiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMTIpIHdpZHRoIDMzMDogImVub3VnaCwgdW5kZXIgaGVy
IGFybSwgd2l0aCBpdHMgbGVncyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDEzMykgd2lk
dGggMTI1OiAiaGFuZ2luZyBkb3duLCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMyLDEz
Mykgd2lkdGggMjA1OiAiYnV0IGdlbmVyYWxseSwganVzdCBhcyBzaGUiCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNywxNTQpIHdpZHRoIDI5ODogImhhZCBnb3QgaXRzIG5lY2sgbmljZWx5IHN0
cmFpZ2h0ZW5lZCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1LDE1NCkgd2lkdGggMzI6
ICJvdXQsIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0aCAzMzA6ICJhbmQg
d2FzIGdvaW5nIHRvIGdpdmUgdGhlIGhlZGdlaG9nIGEiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNywxOTYpIHdpZHRoIDE4NjogImJsb3cgd2l0aCBpdHMgaGVhZCwgaXQgIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDE5MywxOTYpIHdpZHRoIDE0NDogIndvdWxkIHR3aXN0IGl0c2VsZiIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDIxNykgd2lkdGggMjYwOiAicm91bmQgYW5kIGxv
b2sgdXAgaW4gaGVyIGZhY2VceHsyMDI2fSIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Fu
ZHJvaWQvZmFzdC90ZXh0L2h5cGhlbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0L2h5cGhlbnMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQvaHlw
aGVucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE1IEBACitsYXllciBh
dCAoMCwwKSBzaXplIDM1NngxMjEzCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMTN4NDgz
CitsYXllciBhdCAoMCwwKSBzaXplIDM1NngxMjEzCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDMxM3g0ODMKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI5
N3g0NjcKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsMCkgc2l6ZSAz
NDR4Mjk2CisgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxNikgc2l6ZSAzNDR4MTkKKyAg
ICAgICAgICBSZW5kZXJJbmxpbmUge1RUfSBhdCAoMCwwKSBzaXplIDExOHgxNQorICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDQpIHNpemUgMTE4eDE1CisgICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDQpIHdpZHRoIDExODogImh5cGhlbnM6IG1hbnVhbCIKKyAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDExOCwwKSBzaXplIDE1N3gxOQorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDExOCwwKSB3aWR0aCAxNTc6ICIgd2l0aG91dCBzb2Z0IGh5cGhlbnMiCisg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNDUgW2JvcmRlcjog
KDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtE
SVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBzaXplIDMzMHgyMzEKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdh
cyBpbiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCAxMjg6ICJtYW5hZ2lu
ZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzNSw0OSkgd2lkdGggMTE3OiAiZmxh
bWluZ286IHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJz
dWNjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9keSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdheSwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdz
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRv
d24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQg
Z2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkg
d2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkgc3RyYWlnaHRlbmVkICIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91dCwiCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRoIDMzMDogImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0
aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2
OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkz
LDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdpc3QgaXRzZWxmIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4
ezIwMjZ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoNCwyOTYpIHNp
emUgMzQ0eDMxNworICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5
CisgICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAxMDN4MTUKKyAgICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0KSBzaXplIDEwM3gxNQorICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCw0KSB3aWR0aCAxMDM6ICJoeXBoZW5zOiBub25lIgorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTAzLDApIHNpemUgMTMzeDE5CisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTAzLDApIHdpZHRoIDEzMzogIiB3aXRoIHNvZnQgaHlwaGVucyIKKyAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgMzQ0eDI2NiBbYm9yZGVyOiAo
M3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJ
Vn0gYXQgKDI2Miw3KSBzaXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg3LDcpIHNpemUgMzMweDI1MgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsNykgd2lkdGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxpY2UiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qgd2Fz
IGluIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDEyODogIm1hbmFnaW5n
IGhlciAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTM1LDQ5KSB3aWR0aCAxMTc6ICJmbGFt
aW5nbzogc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRoIDE0MTogInN1
Y2NlZWRlZCBpbiBnZXQiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQ4LDcwKSB3aWR0aCAx
MDQ6ICJ0aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsOTEpIHdpZHRo
IDE4MTogInR1Y2tlZCBhd2F5LCBjb20iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTg4LDkx
KSB3aWR0aCA2NDogImZvcnRhYmx5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTEyKSB3
aWR0aCAzMzA6ICJlbm91Z2gsIHVuZGVyIGhlciBhcm0sIHdpdGggaXRzIGxlZ3MiCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNywxMzMpIHdpZHRoIDEyNTogImhhbmdpbmcgZG93biwgIgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDEzMiwxMzMpIHdpZHRoIDIwNTogImJ1dCBnZW5lcmFsbHks
IGp1c3QgYXMgc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTU0KSB3aWR0aCAyODk6
ICJoYWQgZ290IGl0cyBuZWNrIG5pY2VseSBzdHJhaWdodCIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgyOTYsMTU0KSB3aWR0aCA0MTogImVuZWQiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NywxNzUpIHdpZHRoIDMzMDogIm91dCwgYW5kIHdhcyBnb2luZyB0byBnaXZlIHRoZSIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggNTA6ICJoZWRnZSIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg1NywxOTYpIHdpZHRoIDI4MDogImhvZyBhIGJsb3cgd2l0aCBpdHMgaGVh
ZCwgaXQiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyMTcpIHdpZHRoIDMzMDogIndvdWxk
IHR3aXN0IGl0c2VsZiByb3VuZCBhbmQgbG9vayB1cCBpbiIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3LDIzOCkgd2lkdGggODE6ICJoZXIgZmFjZVx4ezIwMjZ9IgorICAgICAgUmVuZGVyQmxv
Y2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoNCw2MTMpIHNpemUgMzQ0eDI5NgorICAgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5CisgICAgICAgICAgUmVuZGVySW5saW5l
IHtUVH0gYXQgKDAsMCkgc2l6ZSAxMTh4MTUKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCw0KSBzaXplIDExOHgxNQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0KSB3
aWR0aCAxMTg6ICJoeXBoZW5zOiBtYW51YWwiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxMTgsMCkgc2l6ZSAxMzN4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTgsMCkg
d2lkdGggMTMzOiAiIHdpdGggc29mdCBoeXBoZW5zIgorICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCw1MSkgc2l6ZSAzNDR4MjQ1IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDAwMCldCisg
ICAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMjYyLDcpIHNpemUgNzV4
OTAgW2JnY29sb3I9I0YwRjhGRl0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcs
Nykgc2l6ZSAzMzB4MjMxCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0aCAyNDU6
ICJUaGUgY2hpZWYgZGlmZmljdWx0eSBBbGljZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDI4KSB3aWR0aCAyNDU6ICJmb3VuZCBhdCBmaXJzdCB3YXMgaW4iCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNyw0OSkgd2lkdGggMTI4OiAibWFuYWdpbmcgaGVyICIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxMzUsNDkpIHdpZHRoIDExNzogImZsYW1pbmdvOiBzaGUiCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNyw3MCkgd2lkdGggMTQxOiAic3VjY2VlZGVkIGluIGdldCIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxNDgsNzApIHdpZHRoIDEwNDogInRpbmcgaXRzIGJvZHkiCisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw5MSkgd2lkdGggMTQ2OiAidHVja2VkIGF3YXksICIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTMsOTEpIHdpZHRoIDM1OiAiY29tIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDE4OCw5MSkgd2lkdGggNjQ6ICJmb3J0YWJseSIKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBoZXIgYXJt
LCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAx
MjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3
aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDE1NCkgd2lkdGggMjUxOiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkgc3RyYWln
aHQiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjU4LDE1NCkgd2lkdGggNDc6ICJlbmVkICIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91dCwiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRoIDI4MTogImFuZCB3YXMgZ29pbmcgdG8g
Z2l2ZSB0aGUgaGVkZ2UiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjg4LDE3NSkgd2lkdGgg
NDk6ICJob2cgYSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAi
YmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5
Nikgd2lkdGggMTQ0OiAid291bGQgdHdpc3QgaXRzZWxmIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIw
MjZ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoNCw5MDkpIHNpemUg
MzQ0eDI5NgorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5Cisg
ICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAxMDN4MTUKKyAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0KSBzaXplIDEwM3gxNQorICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCw0KSB3aWR0aCAxMDM6ICJoeXBoZW5zOiBhdXRvIgorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTAzLDApIHNpemUgMTU3eDE5CisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTAzLDApIHdpZHRoIDE1NzogIiB3aXRob3V0IHNvZnQgaHlwaGVucyIKKyAg
ICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgMzQ0eDI0NSBbYm9yZGVyOiAo
M3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJ
Vn0gYXQgKDI2Miw3KSBzaXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg3LDcpIHNpemUgMzMweDIzMQorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsNykgd2lkdGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxpY2UiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qgd2Fz
IGluIG1hbmFnIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDc5OiAiaW5n
IGhlciAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODYsNDkpIHdpZHRoIDE2NjogImZsYW1p
bmdvOiBzaGUgc3VjIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRoIDI0NTog
ImNlZWRlZCBpbiBnZXR0aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcs
OTEpIHdpZHRoIDE0NzogInR1Y2tlZCBhd2F5LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MTU0LDkxKSB3aWR0aCA5ODogImNvbWZvcnRhYmx5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcsMTEyKSB3aWR0aCAzMzA6ICJlbm91Z2gsIHVuZGVyIGhlciBhcm0sIHdpdGggaXRzIGxlZ3Mi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMzMpIHdpZHRoIDEyNTogImhhbmdpbmcgZG93
biwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzMiwxMzMpIHdpZHRoIDIwNTogImJ1dCBn
ZW5lcmFsbHksIGp1c3QgYXMgc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTU0KSB3
aWR0aCAyOTg6ICJoYWQgZ290IGl0cyBuZWNrIG5pY2VseSBzdHJhaWdodGVuZWQgIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDMwNSwxNTQpIHdpZHRoIDMyOiAib3V0LCIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDE3NSkgd2lkdGggMzMwOiAiYW5kIHdhcyBnb2luZyB0byBnaXZlIHRo
ZSBoZWRnZWhvZyBhIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTk2KSB3aWR0aCAxODY6
ICJibG93IHdpdGggaXRzIGhlYWQsIGl0ICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTMs
MTk2KSB3aWR0aCAxNDQ6ICJ3b3VsZCB0d2lzdCBpdHNlbGYiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNywyMTcpIHdpZHRoIDI2MDogInJvdW5kIGFuZCBsb29rIHVwIGluIGhlciBmYWNlXHh7
MjAyNn0iCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62611</attachid>
            <date>2010-07-26 14:45:34 -0700</date>
            <delta_ts>2010-07-26 15:29:14 -0700</delta_ts>
            <desc>Implement auto hyphenation interface for Android.</desc>
            <filename>autoHyphenation.txt</filename>
            <type>text/plain</type>
            <size>20591</size>
            <attacher name="sw">swang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDA3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDctMjYgIFNoaW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYXV0byBoeXBoZW5hdGlvbiBzdXBwb3J0IGZvciBBbmRyb2lkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI4MDAKKworICAgICAgICBO
byBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvYW5kcm9pZC9I
eXBoZW5hdGlvbkFuZHJvaWQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvYWRIeXBo
ZW5hdGlvbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6bGFzdEh5cGhlbkxvY2F0aW9u
KToKKwogMjAxMC0wNy0yNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L2FuZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL3RleHQvYW5kcm9pZC9IeXBoZW5hdGlvbkFuZHJvaWQuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2FuZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lk
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEw
LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgorCisvLyBGb3IgZXh0ZXJuYWwgaHlwaGVu
YXRpb24gbGlicmFyeS4KKyNpbmNsdWRlICJoeXBoZW4uaCIKKyNpbmNsdWRlIDx1dGlscy9Bc3Nl
dE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK2V4dGVybiBhbmRyb2lkOjpBc3NldE1hbmFnZXIqIGdsb2Jh
bEFzc2V0TWFuYWdlcigpOworCit1c2luZyBuYW1lc3BhY2UgV1RGOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBIeXBoZW5EaWN0KiBsb2FkSHlwaGVuYXRpb25EaWN0aW9uYXJ5KCkK
K3sKKyAgICBhbmRyb2lkOjpBc3NldE1hbmFnZXIqIGFtID0gZ2xvYmFsQXNzZXRNYW5hZ2VyKCk7
CisgICAgLy8gT25seSBzdXBwb3J0IEVuZ2xpc2ggZm9yIG5vdy4KKyAgICBhbmRyb2lkOjpBc3Nl
dCogYSA9IGFtLT5vcGVuKCJ3ZWJraXQvaHlwaF9lbl9VUy5kaWMiLAorICAgICAgICBhbmRyb2lk
OjpBc3NldDo6QUNDRVNTX0JVRkZFUik7CisgICAgaWYgKCFhKSB7CisgICAgICAgIC8vIEFzc2V0
IHdlYmtpdC9oeXBoX2VuX1VTLmRpYyBub3QgZm91bmQhCisgICAgICAgIHJldHVybiAwOworICAg
IH0KKyAgICBjb25zdCBDU3RyaW5nIGRpY3RDb250ZW50cyA9IFN0cmluZyhzdGF0aWNfY2FzdDxj
b25zdCBjaGFyKj4oYS0+Z2V0QnVmZmVyKGZhbHNlKSksCisgICAgICAgIGEtPmdldExlbmd0aCgp
KS51dGY4KCk7CisgICAgSHlwaGVuRGljdCogZGljdCA9IGhual9oeXBoZW5fbG9hZF9mcm9tX2J1
ZmZlcihkaWN0Q29udGVudHMuZGF0YSgpLAorICAgICAgICBkaWN0Q29udGVudHMubGVuZ3RoKCkp
OworICAgIGRlbGV0ZSBhOworCisgICAgcmV0dXJuIGRpY3Q7Cit9CisKK3NpemVfdCBsYXN0SHlw
aGVuTG9jYXRpb24oY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNpemVfdCBsZW5ndGgsIHNpemVf
dCBiZWZvcmVJbmRleCkKK3sKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbldvcmRMZW4gPSA1
OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4V29yZExlbiA9IDEwMDsKKyAgICBpZiAoYmVm
b3JlSW5kZXggPD0gMCB8fCBsZW5ndGggPCBtaW5Xb3JkTGVuIHx8IGxlbmd0aCA+IG1heFdvcmRM
ZW4pCisgICAgICAgIHJldHVybiAwOworCisgICAgc3RhdGljIEh5cGhlbkRpY3QqIGRpY3QgPSBs
b2FkSHlwaGVuYXRpb25EaWN0aW9uYXJ5KCk7CisgICAgaWYgKCFkaWN0KQorICAgICAgICByZXR1
cm4gMDsKKworICAgIGNoYXIgd29yZFttYXhXb3JkTGVuXTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGNvbnN0IFVDaGFyIGNoID0gY2hhcmFjdGVy
c1tpXTsKKyAgICAgICAgLy8gT25seSBFbmdsaXNoIGZvciBub3cuCisgICAgICAgIC8vIFRvIHJl
YWxseSBtYWtlIGl0IGxhbmd1YWdlIGF3YXJlLCB3ZSBuZWVkIHNvbWV0aGluZyBsaWtlIGxhbmd1
YWdlCisgICAgICAgIC8vIGRldGVjdGlvbiBvciByZWx5IG9uIHRoZSBsYW5nQXR0ciBpbiB0aGUg
aHRtbCBlbGVtZW50LiAgVGhvdWdoCisgICAgICAgIC8vIHNlZW1zIHJpZ2h0IG5vdyB0aGUgbGFu
Z0F0dHIgaXMgbm90IHVzZWQgb3IgcXVpdGUgaW1wbGVtZW50ZWQgaW4KKyAgICAgICAgLy8gd2Vi
a2l0LgorICAgICAgICBpZiAoIWlzQVNDSUlBbHBoYShjaCkpCisgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgd29yZFtpXSA9IGNoOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBpbnQg
ZXh0cmFCdWZmZXIgPSA1OworICAgIGNoYXIgaHlwaGVuc1ttYXhXb3JkTGVuICsgZXh0cmFCdWZm
ZXJdOworICAgIGlmICghaG5qX2h5cGhlbl9oeXBoZW5hdGUoZGljdCwgd29yZCwgbGVuZ3RoLCBo
eXBoZW5zKSkKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IGJlZm9yZUluZGV4IC0gMTsgaSA+IDA7
IC0taSkgeworICAgICAgICAgICAgaWYgKGh5cGhlbnNbaV0gJiAxKQorICAgICAgICAgICAgICAg
IHJldHVybiBpICsgMTsKKyAgICAgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0MDc3KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDctMjYgIFNo
aW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW5kcm9pZCBzcGVjaWZpYyBleHBl
Y3RlZCB0ZXN0IHJlc3VsdHMgZm9yIGF1dG8gaHlwaGVuYXRpb24KKyAgICAgICAgdGVzdHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9h
bmRyb2lkL2Zhc3Q6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL2Zhc3QvdGV4dC9oeXBoZW5hdGUt
Y2hhcmFjdGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYW5kcm9p
ZC9mYXN0L3RleHQvaHlwaGVucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTA3LTI2ICBK
dXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEZpc2hlci4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90
ZXh0L2h5cGhlbmF0ZS1jaGFyYWN0ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0L2h5cGhlbmF0ZS1jaGFyYWN0ZXItZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vYW5kcm9pZC9m
YXN0L3RleHQvaHlwaGVuYXRlLWNoYXJhY3Rlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTE4IEBACitsYXllciBhdCAoMCwwKSBzaXplIDM1NngxMjExCisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSAzMTN4NDgzCitsYXllciBhdCAoMCwwKSBzaXplIDM1NngxMjExCisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDMxM3g0ODMKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI5N3g0NjcKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGlu
Zykge0RJVn0gYXQgKDQsMCkgc2l6ZSAzNDR4Mjk2CisgICAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCwxNikgc2l6ZSAzNDR4MTkKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAyMjd4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIyNzog
IlRoZSBpbml0aWFsIHZhbHVlIChzaG91bGQgYmUgbGlrZSAiCisgICAgICAgICAgUmVuZGVySW5s
aW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAzMngxNQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgyMjcsNCkgc2l6ZSAzMngxNQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjI3
LDQpIHdpZHRoIDMyOiAiYXV0byIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI1
OSwwKSBzaXplIDV4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNTksMCkgd2lkdGggNTog
IikiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNDUgW2Jv
cmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRp
bmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBzaXplIDMzMHgyMzEKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNl
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZp
cnN0IHdhcyBpbiBtYW5hZyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCA3
OTogImluZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDQ5KSB3aWR0aCAxNjY6
ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0
aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9keSIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdheSwgIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0YWJseSIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0
cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5n
aW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6
ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkgc3RyYWlnaHRlbmVkICIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91dCwiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRoIDMzMDogImFuZCB3YXMgZ29pbmcgdG8g
Z2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lk
dGggMTg2OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdpc3QgaXRzZWxmIgorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIg
ZmFjZVx4ezIwMjZ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoNCwy
OTYpIHNpemUgMzQ0eDI5NgorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUg
MzQ0eDE5CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOTF4MTkK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDkxOiAiVGhlIGRlZmF1bHQgKCIK
KyAgICAgICAgICBSZW5kZXJJbmxpbmUge1RUfSBhdCAoMCwwKSBzaXplIDE5OHgxNQorICAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg5MSw0KSBzaXplIDE5OHgxNQorICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoOTEsNCkgd2lkdGggMTk4OiAiaHlwaGVuYXRlLWNoYXJhY3Rlcjog
YXV0byIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI4OSwwKSBzaXplIDV4MTkK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyODksMCkgd2lkdGggNTogIikiCisgICAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNDUgW2JvcmRlcjogKDNweCBzb2xp
ZCAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgy
NjIsNykgc2l6ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoNyw3KSBzaXplIDMzMHgyMzEKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDcpIHdpZHRoIDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5h
ZyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCA3OTogImluZyBoZXIgIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDQ5KSB3aWR0aCAxNjY6ICJmbGFtaW5nbzogc2hl
IHN1YyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQg
aW4gZ2V0dGluZyBpdHMgYm9keSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0
aCAxNDc6ICJ0dWNrZWQgYXdheSwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCw5MSkg
d2lkdGggOTg6ICJjb21mb3J0YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikg
d2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5
LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4
OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkgc3RyYWlnaHRlbmVkICIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91dCwiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNywxNzUpIHdpZHRoIDMzMDogImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vo
b2cgYSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3
aXRoIGl0cyBoZWFkLCBpdCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lk
dGggMTQ0OiAid291bGQgdHdpc3QgaXRzZWxmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcs
MjE3KSB3aWR0aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIwMjZ9Igor
ICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoNCw1OTIpIHNpemUgMzQ0eDI5
NgorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5CisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTF4MTkKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDUxOiAiQnVsbGV0ICgiCisgICAgICAgICAgUmVuZGVySW5s
aW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAyMjF4MTUKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoNTEsNCkgc2l6ZSAyMjF4MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDUx
LDQpIHdpZHRoIDIyMTogImh5cGhlbmF0ZS1jaGFyYWN0ZXI6IFwiXFwyMDIyXCIiCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNzIsMCkgc2l6ZSA1eDE5CisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjcyLDApIHdpZHRoIDU6ICIpIgorICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCw1MSkgc2l6ZSAzNDR4MjQ1IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDAwMCldCisg
ICAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMjYyLDcpIHNpemUgNzV4
OTAgW2JnY29sb3I9I0YwRjhGRl0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcs
Nykgc2l6ZSAzMzB4MjMxCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0aCAyNDU6
ICJUaGUgY2hpZWYgZGlmZmljdWx0eSBBbGljZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDI4KSB3aWR0aCAyNDU6ICJmb3VuZCBhdCBmaXJzdCB3YXMgaW4gbWFuYWciCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNyw0OSkgd2lkdGggNzg6ICJpbmcgaGVyICIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg4NSw0OSkgd2lkdGggMTY3OiAiZmxhbWluZ286IHNoZSBzdWMiCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNyw3MCkgd2lkdGggMjQ1OiAiY2VlZGVkIGluIGdldHRpbmcgaXRz
IGJvZHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw5MSkgd2lkdGggMTQ3OiAidHVja2Vk
IGF3YXksICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQsOTEpIHdpZHRoIDk4OiAiY29t
Zm9ydGFibHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMTIpIHdpZHRoIDMzMDogImVu
b3VnaCwgdW5kZXIgaGVyIGFybSwgd2l0aCBpdHMgbGVncyIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3LDEzMykgd2lkdGggMTI1OiAiaGFuZ2luZyBkb3duLCAiCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTMyLDEzMykgd2lkdGggMjA1OiAiYnV0IGdlbmVyYWxseSwganVzdCBhcyBzaGUi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNTQpIHdpZHRoIDI5ODogImhhZCBnb3QgaXRz
IG5lY2sgbmljZWx5IHN0cmFpZ2h0ZW5lZCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1
LDE1NCkgd2lkdGggMzI6ICJvdXQsIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3
aWR0aCAzMzA6ICJhbmQgd2FzIGdvaW5nIHRvIGdpdmUgdGhlIGhlZGdlaG9nIGEiCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRoIDE4NjogImJsb3cgd2l0aCBpdHMgaGVhZCwg
aXQgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE5MywxOTYpIHdpZHRoIDE0NDogIndvdWxk
IHR3aXN0IGl0c2VsZiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDIxNykgd2lkdGggMjYw
OiAicm91bmQgYW5kIGxvb2sgdXAgaW4gaGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJs
b2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsODg4KSBzaXplIDM0NHgzMTUKKyAgICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXplIDM0NHgzOAorICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1NngxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMTU2OiAiTWlkZGxlIGRvdCBhbmQgdGlsZGUgKCIKKyAgICAgICAgICBSZW5kZXJJ
bmxpbmUge1RUfSBhdCAoMCwwKSBzaXplIDMxNHgzNAorICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgxNTYsNCkgc2l6ZSAzMTR4MzQKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDE1Niw0KSB3aWR0aCAxNTg6ICJoeXBoZW5hdGUtY2hhcmFjdGVyOiIKKyAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMjMpIHdpZHRoIDQ3OiAiXCJcXEI3flwiIgorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNDcsMTkpIHNpemUgNXgxOQorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDQ3LDE5KSB3aWR0aCA1OiAiKSIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
NzApIHNpemUgMzQ0eDI0NSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAg
IFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDI2Miw3KSBzaXplIDc1eDkwIFtiZ2Nv
bG9yPSNGMEY4RkZdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3LDcpIHNpemUg
MzMweDIzMQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNykgd2lkdGggMjQ1OiAiVGhlIGNo
aWVmIGRpZmZpY3VsdHkgQWxpY2UiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lk
dGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qgd2FzIGluIG1hbmFnIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsNDkpIHdpZHRoIDc0OiAiaW5nIGhlciAiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoODEsNDkpIHdpZHRoIDE3MTogImZsYW1pbmdvOiBzaGUgc3VjIgorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDcsNzApIHdpZHRoIDI0NTogImNlZWRlZCBpbiBnZXR0aW5nIGl0cyBib2R5Igor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsOTEpIHdpZHRoIDE0NzogInR1Y2tlZCBhd2F5LCAi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU0LDkxKSB3aWR0aCA5ODogImNvbWZvcnRhYmx5
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTEyKSB3aWR0aCAzMzA6ICJlbm91Z2gsIHVu
ZGVyIGhlciBhcm0sIHdpdGggaXRzIGxlZ3MiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywx
MzMpIHdpZHRoIDEyNTogImhhbmdpbmcgZG93biwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDEzMiwxMzMpIHdpZHRoIDIwNTogImJ1dCBnZW5lcmFsbHksIGp1c3QgYXMgc2hlIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDcsMTU0KSB3aWR0aCAyOTg6ICJoYWQgZ290IGl0cyBuZWNrIG5p
Y2VseSBzdHJhaWdodGVuZWQgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMwNSwxNTQpIHdp
ZHRoIDMyOiAib3V0LCIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE3NSkgd2lkdGggMzMw
OiAiYW5kIHdhcyBnb2luZyB0byBnaXZlIHRoZSBoZWRnZWhvZyBhIgorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDcsMTk2KSB3aWR0aCAxODY6ICJibG93IHdpdGggaXRzIGhlYWQsIGl0ICIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTMsMTk2KSB3aWR0aCAxNDQ6ICJ3b3VsZCB0d2lzdCBp
dHNlbGYiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyMTcpIHdpZHRoIDI2MDogInJvdW5k
IGFuZCBsb29rIHVwIGluIGhlciBmYWNlXHh7MjAyNn0iCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9hbmRyb2lkL2Zhc3QvdGV4dC9oeXBoZW5zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9hbmRyb2lkL2Zhc3QvdGV4dC9oeXBoZW5zLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90
ZXh0L2h5cGhlbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExNSBAQAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNTZ4MTIxMworICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
MzEzeDQ4MworbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNTZ4MTIxMworICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSAzMTN4NDgzCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSAyOTd4NDY3CisgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICg0LDAp
IHNpemUgMzQ0eDI5NgorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0
eDE5CisgICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAxMTh4MTUKKyAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw0KSBzaXplIDExOHgxNQorICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0KSB3aWR0aCAxMTg6ICJoeXBoZW5zOiBtYW51YWwiCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTgsMCkgc2l6ZSAxNTd4MTkKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxMTgsMCkgd2lkdGggMTU3OiAiIHdpdGhvdXQgc29mdCBoeXBo
ZW5zIgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1MSkgc2l6ZSAzNDR4MjQ1IFti
b3JkZXI6ICgzcHggc29saWQgIzAwMDAwMCldCisgICAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0
aW5nKSB7RElWfSBhdCAoMjYyLDcpIHNpemUgNzV4OTAgW2JnY29sb3I9I0YwRjhGRl0KKyAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcsNykgc2l6ZSAzMzB4MjMxCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0aCAyNDU6ICJUaGUgY2hpZWYgZGlmZmljdWx0eSBBbGlj
ZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDI4KSB3aWR0aCAyNDU6ICJmb3VuZCBhdCBm
aXJzdCB3YXMgaW4iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw0OSkgd2lkdGggMTI4OiAi
bWFuYWdpbmcgaGVyICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzUsNDkpIHdpZHRoIDEx
NzogImZsYW1pbmdvOiBzaGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3MCkgd2lkdGgg
MjQ1OiAic3VjY2VlZGVkIGluIGdldHRpbmcgaXRzIGJvZHkiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNyw5MSkgd2lkdGggMTQ3OiAidHVja2VkIGF3YXksICIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgxNTQsOTEpIHdpZHRoIDk4OiAiY29tZm9ydGFibHkiCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNywxMTIpIHdpZHRoIDMzMDogImVub3VnaCwgdW5kZXIgaGVyIGFybSwgd2l0aCBp
dHMgbGVncyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDEzMykgd2lkdGggMTI1OiAiaGFu
Z2luZyBkb3duLCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMyLDEzMykgd2lkdGggMjA1
OiAiYnV0IGdlbmVyYWxseSwganVzdCBhcyBzaGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NywxNTQpIHdpZHRoIDI5ODogImhhZCBnb3QgaXRzIG5lY2sgbmljZWx5IHN0cmFpZ2h0ZW5lZCAi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1LDE1NCkgd2lkdGggMzI6ICJvdXQsIgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0aCAzMzA6ICJhbmQgd2FzIGdvaW5nIHRv
IGdpdmUgdGhlIGhlZGdlaG9nIGEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdp
ZHRoIDE4NjogImJsb3cgd2l0aCBpdHMgaGVhZCwgaXQgIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDE5MywxOTYpIHdpZHRoIDE0NDogIndvdWxkIHR3aXN0IGl0c2VsZiIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDIxNykgd2lkdGggMjYwOiAicm91bmQgYW5kIGxvb2sgdXAgaW4gaGVy
IGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQs
Mjk2KSBzaXplIDM0NHgzMTcKKyAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXpl
IDM0NHgxOQorICAgICAgICAgIFJlbmRlcklubGluZSB7VFR9IGF0ICgwLDApIHNpemUgMTAzeDE1
CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAxMDN4MTUKKyAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNCkgd2lkdGggMTAzOiAiaHlwaGVuczogbm9uZSIK
KyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMywwKSBzaXplIDEzM3gxOQorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDEwMywwKSB3aWR0aCAxMzM6ICIgd2l0aCBzb2Z0IGh5cGhl
bnMiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNjYgW2Jv
cmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRp
bmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBzaXplIDMzMHgyNTIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNl
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZp
cnN0IHdhcyBpbiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCAxMjg6ICJt
YW5hZ2luZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzNSw0OSkgd2lkdGggMTE3
OiAiZmxhbWluZ286IHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAx
NDE6ICJzdWNjZWVkZWQgaW4gZ2V0IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0OCw3MCkg
d2lkdGggMTA0OiAidGluZyBpdHMgYm9keSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkx
KSB3aWR0aCAxODE6ICJ0dWNrZWQgYXdheSwgY29tIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDE4OCw5MSkgd2lkdGggNjQ6ICJmb3J0YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24s
ICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2Vu
ZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lk
dGggMjg5OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkgc3RyYWlnaHQiCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjk2LDE1NCkgd2lkdGggNDE6ICJlbmVkIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsMTc1KSB3aWR0aCAzMzA6ICJvdXQsIGFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRoIDUwOiAiaGVkZ2UiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNTcsMTk2KSB3aWR0aCAyODA6ICJob2cgYSBibG93IHdpdGgg
aXRzIGhlYWQsIGl0IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAzMzA6
ICJ3b3VsZCB0d2lzdCBpdHNlbGYgcm91bmQgYW5kIGxvb2sgdXAgaW4iCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNywyMzgpIHdpZHRoIDgxOiAiaGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJl
bmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsNjEzKSBzaXplIDM0NHgyOTYKKyAgICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXplIDM0NHgxOQorICAgICAgICAgIFJlbmRl
cklubGluZSB7VFR9IGF0ICgwLDApIHNpemUgMTE4eDE1CisgICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAxMTh4MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsNCkgd2lkdGggMTE4OiAiaHlwaGVuczogbWFudWFsIgorICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTE4LDApIHNpemUgMTMzeDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MTE4LDApIHdpZHRoIDEzMzogIiB3aXRoIHNvZnQgaHlwaGVucyIKKyAgICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsNTEpIHNpemUgMzQ0eDI0NSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAw
MDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDI2Miw3KSBz
aXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg3LDcpIHNpemUgMzMweDIzMQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNykgd2lk
dGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxpY2UiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qgd2FzIGluIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDEyODogIm1hbmFnaW5nIGhlciAiCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMTM1LDQ5KSB3aWR0aCAxMTc6ICJmbGFtaW5nbzogc2hlIgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRoIDE0MTogInN1Y2NlZWRlZCBpbiBnZXQi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQ4LDcwKSB3aWR0aCAxMDQ6ICJ0aW5nIGl0cyBi
b2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsOTEpIHdpZHRoIDE0NjogInR1Y2tlZCBh
d2F5LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTUzLDkxKSB3aWR0aCAzNTogImNvbSIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxODgsOTEpIHdpZHRoIDY0OiAiZm9ydGFibHkiCisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMTIpIHdpZHRoIDMzMDogImVub3VnaCwgdW5kZXIg
aGVyIGFybSwgd2l0aCBpdHMgbGVncyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDEzMykg
d2lkdGggMTI1OiAiaGFuZ2luZyBkb3duLCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMy
LDEzMykgd2lkdGggMjA1OiAiYnV0IGdlbmVyYWxseSwganVzdCBhcyBzaGUiCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNywxNTQpIHdpZHRoIDI1MTogImhhZCBnb3QgaXRzIG5lY2sgbmljZWx5
IHN0cmFpZ2h0IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI1OCwxNTQpIHdpZHRoIDQ3OiAi
ZW5lZCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1LDE1NCkgd2lkdGggMzI6ICJvdXQs
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0aCAyODE6ICJhbmQgd2FzIGdv
aW5nIHRvIGdpdmUgdGhlIGhlZGdlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4OCwxNzUp
IHdpZHRoIDQ5OiAiaG9nIGEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRo
IDE4NjogImJsb3cgd2l0aCBpdHMgaGVhZCwgaXQgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDE5MywxOTYpIHdpZHRoIDE0NDogIndvdWxkIHR3aXN0IGl0c2VsZiIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDIxNykgd2lkdGggMjYwOiAicm91bmQgYW5kIGxvb2sgdXAgaW4gaGVyIGZh
Y2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsOTA5
KSBzaXplIDM0NHgyOTYKKyAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXplIDM0
NHgxOQorICAgICAgICAgIFJlbmRlcklubGluZSB7VFR9IGF0ICgwLDApIHNpemUgMTAzeDE1Cisg
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAxMDN4MTUKKyAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsNCkgd2lkdGggMTAzOiAiaHlwaGVuczogYXV0byIKKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMywwKSBzaXplIDE1N3gxOQorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDEwMywwKSB3aWR0aCAxNTc6ICIgd2l0aG91dCBzb2Z0IGh5cGhl
bnMiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNDUgW2Jv
cmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRp
bmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBzaXplIDMzMHgyMzEKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNl
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZp
cnN0IHdhcyBpbiBtYW5hZyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCA3
OTogImluZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDQ5KSB3aWR0aCAxNjY6
ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0
aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9keSIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdheSwgIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0YWJseSIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0
cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5n
aW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6
ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkgc3RyYWlnaHRlbmVkICIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91dCwiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRoIDMzMDogImFuZCB3YXMgZ29pbmcgdG8g
Z2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lk
dGggMTg2OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdpc3QgaXRzZWxmIgorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIg
ZmFjZVx4ezIwMjZ9Igo=
</data>
<flag name="review"
          id="50841"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="50855"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62621</attachid>
            <date>2010-07-26 15:29:14 -0700</date>
            <delta_ts>2010-07-26 15:34:15 -0700</delta_ts>
            <desc>Implement auto hyphenation interface for Android.</desc>
            <filename>autoHyphenation.txt</filename>
            <type>text/plain</type>
            <size>20558</size>
            <attacher name="sw">swang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDA3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMDctMjYgIFNoaW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYXV0byBoeXBoZW5hdGlvbiBzdXBwb3J0IGZvciBBbmRyb2lkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI4MDAKKworICAgICAgICAq
IHBsYXRmb3JtL3RleHQvYW5kcm9pZC9IeXBoZW5hdGlvbkFuZHJvaWQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmxvYWRIeXBoZW5hdGlvbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6bGFzdEh5cGhlbkxvY2F0aW9uKToKKwogMjAxMC0wNy0yNiAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2FuZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvYW5kcm9pZC9IeXBoZW5h
dGlvbkFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2Fu
ZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lkLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NSBA
QAorLyoKKyAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgor
CisvLyBGb3IgZXh0ZXJuYWwgaHlwaGVuYXRpb24gbGlicmFyeS4KKyNpbmNsdWRlICJoeXBoZW4u
aCIKKyNpbmNsdWRlIDx1dGlscy9Bc3NldE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK2V4dGVybiBhbmRy
b2lkOjpBc3NldE1hbmFnZXIqIGdsb2JhbEFzc2V0TWFuYWdlcigpOworCit1c2luZyBuYW1lc3Bh
Y2UgV1RGOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBIeXBoZW5EaWN0KiBsb2Fk
SHlwaGVuYXRpb25EaWN0aW9uYXJ5KCkKK3sKKyAgICBhbmRyb2lkOjpBc3NldE1hbmFnZXIqIGFt
ID0gZ2xvYmFsQXNzZXRNYW5hZ2VyKCk7CisgICAgLy8gT25seSBzdXBwb3J0IEVuZ2xpc2ggZm9y
IG5vdy4KKyAgICBhbmRyb2lkOjpBc3NldCogYSA9IGFtLT5vcGVuKCJ3ZWJraXQvaHlwaF9lbl9V
Uy5kaWMiLAorICAgICAgICBhbmRyb2lkOjpBc3NldDo6QUNDRVNTX0JVRkZFUik7CisgICAgaWYg
KCFhKSB7CisgICAgICAgIC8vIEFzc2V0IHdlYmtpdC9oeXBoX2VuX1VTLmRpYyBub3QgZm91bmQh
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjb25zdCBDU3RyaW5nIGRpY3RDb250ZW50
cyA9IFN0cmluZyhzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oYS0+Z2V0QnVmZmVyKGZhbHNlKSks
CisgICAgICAgIGEtPmdldExlbmd0aCgpKS51dGY4KCk7CisgICAgSHlwaGVuRGljdCogZGljdCA9
IGhual9oeXBoZW5fbG9hZF9mcm9tX2J1ZmZlcihkaWN0Q29udGVudHMuZGF0YSgpLAorICAgICAg
ICBkaWN0Q29udGVudHMubGVuZ3RoKCkpOworICAgIGRlbGV0ZSBhOworCisgICAgcmV0dXJuIGRp
Y3Q7Cit9CisKK3NpemVfdCBsYXN0SHlwaGVuTG9jYXRpb24oY29uc3QgVUNoYXIqIGNoYXJhY3Rl
cnMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCBiZWZvcmVJbmRleCkKK3sKKyAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IG1pbldvcmRMZW4gPSA1OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4V29y
ZExlbiA9IDEwMDsKKyAgICBpZiAoYmVmb3JlSW5kZXggPD0gMCB8fCBsZW5ndGggPCBtaW5Xb3Jk
TGVuIHx8IGxlbmd0aCA+IG1heFdvcmRMZW4pCisgICAgICAgIHJldHVybiAwOworCisgICAgc3Rh
dGljIEh5cGhlbkRpY3QqIGRpY3QgPSBsb2FkSHlwaGVuYXRpb25EaWN0aW9uYXJ5KCk7CisgICAg
aWYgKCFkaWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNoYXIgd29yZFttYXhXb3JkTGVu
XTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGNv
bnN0IFVDaGFyIGNoID0gY2hhcmFjdGVyc1tpXTsKKyAgICAgICAgLy8gT25seSBFbmdsaXNoIGZv
ciBub3cuCisgICAgICAgIC8vIFRvIHJlYWxseSBtYWtlIGl0IGxhbmd1YWdlIGF3YXJlLCB3ZSBu
ZWVkIHNvbWV0aGluZyBsaWtlIGxhbmd1YWdlCisgICAgICAgIC8vIGRldGVjdGlvbiBvciByZWx5
IG9uIHRoZSBsYW5nQXR0ciBpbiB0aGUgaHRtbCBlbGVtZW50LiAgVGhvdWdoCisgICAgICAgIC8v
IHNlZW1zIHJpZ2h0IG5vdyB0aGUgbGFuZ0F0dHIgaXMgbm90IHVzZWQgb3IgcXVpdGUgaW1wbGVt
ZW50ZWQgaW4KKyAgICAgICAgLy8gd2Via2l0LgorICAgICAgICBpZiAoIWlzQVNDSUlBbHBoYShj
aCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgd29yZFtpXSA9IGNoOworICAgIH0K
KworICAgIHN0YXRpYyBjb25zdCBpbnQgZXh0cmFCdWZmZXIgPSA1OworICAgIGNoYXIgaHlwaGVu
c1ttYXhXb3JkTGVuICsgZXh0cmFCdWZmZXJdOworICAgIGlmICghaG5qX2h5cGhlbl9oeXBoZW5h
dGUoZGljdCwgd29yZCwgbGVuZ3RoLCBoeXBoZW5zKSkKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IGJlZm9yZUluZGV4IC0gMTsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgaWYgKGh5cGhlbnNb
aV0gJiAxKQorICAgICAgICAgICAgICAgIHJldHVybiBpICsgMTsKKyAgICAgICAgfQorCisgICAg
cmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDY0MDc3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTAtMDctMjYgIFNoaW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYW5kcm9pZCBzcGVjaWZpYyBleHBlY3RlZCB0ZXN0IHJlc3VsdHMgZm9yIGF1dG8gaHlwaGVu
YXRpb24KKyAgICAgICAgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL2Zhc3Q6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRy
b2lkL2Zhc3QvdGV4dC9oeXBoZW5hdGUtY2hhcmFjdGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQvaHlwaGVucy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorCiAyMDEwLTA3LTI2ICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0L2h5cGhlbmF0ZS1jaGFyYWN0ZXItZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0
L2h5cGhlbmF0ZS1jaGFyYWN0ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQvaHlwaGVuYXRlLWNoYXJhY3Rlci1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE4IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDM1NngxMjExCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMTN4NDgzCitsYXllciBh
dCAoMCwwKSBzaXplIDM1NngxMjExCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDMxM3g0ODMKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI5N3g0NjcKKyAg
ICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsMCkgc2l6ZSAzNDR4Mjk2Cisg
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxNikgc2l6ZSAzNDR4MTkKKyAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMjd4MTkKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDIyNzogIlRoZSBpbml0aWFsIHZhbHVlIChzaG91bGQgYmUgbGlr
ZSAiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAzMngxNQorICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjcsNCkgc2l6ZSAzMngxNQorICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjI3LDQpIHdpZHRoIDMyOiAiYXV0byIKKyAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI1OSwwKSBzaXplIDV4MTkKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgyNTksMCkgd2lkdGggNTogIikiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDUxKSBzaXplIDM0NHgyNDUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAg
ICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBb
Ymdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBz
aXplIDMzMHgyMzEKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRo
ZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgp
IHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5hZyIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCA3OTogImluZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDg2LDQ5KSB3aWR0aCAxNjY6ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9k
eSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdh
eSwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0
YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdo
LCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVj
ayBuaWNlbHkgc3RyYWlnaHRlbmVkICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0
KSB3aWR0aCAzMjogIm91dCwiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRo
IDMzMDogImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdp
c3QgaXRzZWxmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJy
b3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIwMjZ9IgorICAgICAgUmVuZGVyQmxvY2sg
KGZsb2F0aW5nKSB7RElWfSBhdCAoNCwyOTYpIHNpemUgMzQ0eDI5NgorICAgICAgICBSZW5kZXJC
bG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgOTF4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDkxOiAiVGhlIGRlZmF1bHQgKCIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge1RUfSBhdCAo
MCwwKSBzaXplIDE5OHgxNQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg5MSw0
KSBzaXplIDE5OHgxNQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOTEsNCkgd2lkdGggMTk4
OiAiaHlwaGVuYXRlLWNoYXJhY3RlcjogYXV0byIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDI4OSwwKSBzaXplIDV4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyODksMCkg
d2lkdGggNTogIikiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0
NHgyNDUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgICBSZW5kZXJCbG9j
ayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZG
XQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBzaXplIDMzMHgyMzEKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRoZSBjaGllZiBkaWZmaWN1
bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgpIHdpZHRoIDI0NTogImZv
dW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5hZyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5
KSB3aWR0aCA3OTogImluZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDQ5KSB3
aWR0aCAxNjY6ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9keSIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdheSwgIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0YWJseSIKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBoZXIgYXJt
LCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAx
MjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3
aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkgc3RyYWln
aHRlbmVkICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91
dCwiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRoIDMzMDogImFuZCB3YXMg
Z29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3
LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAiCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdpc3QgaXRzZWxmIgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1
cCBpbiBoZXIgZmFjZVx4ezIwMjZ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElW
fSBhdCAoNCw1OTIpIHNpemUgMzQ0eDI5NgorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MTYpIHNpemUgMzQ0eDE5CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNTF4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUxOiAiQnVsbGV0
ICgiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAyMjF4MTUKKyAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTEsNCkgc2l6ZSAyMjF4MTUKKyAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDUxLDQpIHdpZHRoIDIyMTogImh5cGhlbmF0ZS1jaGFyYWN0
ZXI6IFwiXFwyMDIyXCIiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNzIsMCkg
c2l6ZSA1eDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjcyLDApIHdpZHRoIDU6ICIpIgor
ICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1MSkgc2l6ZSAzNDR4MjQ1IFtib3JkZXI6
ICgzcHggc29saWQgIzAwMDAwMCldCisgICAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7
RElWfSBhdCAoMjYyLDcpIHNpemUgNzV4OTAgW2JnY29sb3I9I0YwRjhGRl0KKyAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcsNykgc2l6ZSAzMzB4MjMxCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNyw3KSB3aWR0aCAyNDU6ICJUaGUgY2hpZWYgZGlmZmljdWx0eSBBbGljZSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDI4KSB3aWR0aCAyNDU6ICJmb3VuZCBhdCBmaXJzdCB3
YXMgaW4gbWFuYWciCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw0OSkgd2lkdGggNzg6ICJp
bmcgaGVyICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4NSw0OSkgd2lkdGggMTY3OiAiZmxh
bWluZ286IHNoZSBzdWMiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3MCkgd2lkdGggMjQ1
OiAiY2VlZGVkIGluIGdldHRpbmcgaXRzIGJvZHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
Nyw5MSkgd2lkdGggMTQ3OiAidHVja2VkIGF3YXksICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxNTQsOTEpIHdpZHRoIDk4OiAiY29tZm9ydGFibHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNywxMTIpIHdpZHRoIDMzMDogImVub3VnaCwgdW5kZXIgaGVyIGFybSwgd2l0aCBpdHMgbGVn
cyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDEzMykgd2lkdGggMTI1OiAiaGFuZ2luZyBk
b3duLCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMyLDEzMykgd2lkdGggMjA1OiAiYnV0
IGdlbmVyYWxseSwganVzdCBhcyBzaGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNTQp
IHdpZHRoIDI5ODogImhhZCBnb3QgaXRzIG5lY2sgbmljZWx5IHN0cmFpZ2h0ZW5lZCAiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1LDE1NCkgd2lkdGggMzI6ICJvdXQsIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0aCAzMzA6ICJhbmQgd2FzIGdvaW5nIHRvIGdpdmUg
dGhlIGhlZGdlaG9nIGEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRoIDE4
NjogImJsb3cgd2l0aCBpdHMgaGVhZCwgaXQgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE5
MywxOTYpIHdpZHRoIDE0NDogIndvdWxkIHR3aXN0IGl0c2VsZiIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDIxNykgd2lkdGggMjYwOiAicm91bmQgYW5kIGxvb2sgdXAgaW4gaGVyIGZhY2Vc
eHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsODg4KSBz
aXplIDM0NHgzMTUKKyAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXplIDM0NHgz
OAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1NngxOQorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTU2OiAiTWlkZGxlIGRvdCBhbmQgdGls
ZGUgKCIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge1RUfSBhdCAoMCwwKSBzaXplIDMxNHgzNAor
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTYsNCkgc2l6ZSAzMTR4MzQKKyAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1Niw0KSB3aWR0aCAxNTg6ICJoeXBoZW5hdGUtY2hh
cmFjdGVyOiIKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjMpIHdpZHRoIDQ3OiAiXCJc
XEI3flwiIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDcsMTkpIHNpemUgNXgx
OQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ3LDE5KSB3aWR0aCA1OiAiKSIKKyAgICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNzApIHNpemUgMzQ0eDI0NSBbYm9yZGVyOiAoM3B4IHNv
bGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQg
KDI2Miw3KSBzaXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICg3LDcpIHNpemUgMzMweDIzMQorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcsNykgd2lkdGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxpY2UiCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qgd2FzIGluIG1h
bmFnIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDc0OiAiaW5nIGhlciAi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODEsNDkpIHdpZHRoIDE3MTogImZsYW1pbmdvOiBz
aGUgc3VjIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRoIDI0NTogImNlZWRl
ZCBpbiBnZXR0aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsOTEpIHdp
ZHRoIDE0NzogInR1Y2tlZCBhd2F5LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTU0LDkx
KSB3aWR0aCA5ODogImNvbWZvcnRhYmx5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTEy
KSB3aWR0aCAzMzA6ICJlbm91Z2gsIHVuZGVyIGhlciBhcm0sIHdpdGggaXRzIGxlZ3MiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMzMpIHdpZHRoIDEyNTogImhhbmdpbmcgZG93biwgIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzMiwxMzMpIHdpZHRoIDIwNTogImJ1dCBnZW5lcmFs
bHksIGp1c3QgYXMgc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTU0KSB3aWR0aCAy
OTg6ICJoYWQgZ290IGl0cyBuZWNrIG5pY2VseSBzdHJhaWdodGVuZWQgIgorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDMwNSwxNTQpIHdpZHRoIDMyOiAib3V0LCIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDE3NSkgd2lkdGggMzMwOiAiYW5kIHdhcyBnb2luZyB0byBnaXZlIHRoZSBoZWRn
ZWhvZyBhIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTk2KSB3aWR0aCAxODY6ICJibG93
IHdpdGggaXRzIGhlYWQsIGl0ICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTMsMTk2KSB3
aWR0aCAxNDQ6ICJ3b3VsZCB0d2lzdCBpdHNlbGYiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NywyMTcpIHdpZHRoIDI2MDogInJvdW5kIGFuZCBsb29rIHVwIGluIGhlciBmYWNlXHh7MjAyNn0i
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9hbmRyb2lkL2Zhc3QvdGV4dC9oeXBoZW5zLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9hbmRyb2lkL2Zh
c3QvdGV4dC9oeXBoZW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0L2h5cGhlbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDExNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNTZ4MTIxMworICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzEzeDQ4MworbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNTZ4
MTIxMworICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzMTN4NDgzCisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyOTd4NDY3CisgICAgICBSZW5kZXJCbG9jayAo
ZmxvYXRpbmcpIHtESVZ9IGF0ICg0LDApIHNpemUgMzQ0eDI5NgorICAgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5CisgICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0g
YXQgKDAsMCkgc2l6ZSAxMTh4MTUKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCw0KSBzaXplIDExOHgxNQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0KSB3aWR0aCAx
MTg6ICJoeXBoZW5zOiBtYW51YWwiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgx
MTgsMCkgc2l6ZSAxNTd4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTgsMCkgd2lkdGgg
MTU3OiAiIHdpdGhvdXQgc29mdCBoeXBoZW5zIgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw1MSkgc2l6ZSAzNDR4MjQ1IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDAwMCldCisgICAg
ICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMjYyLDcpIHNpemUgNzV4OTAg
W2JnY29sb3I9I0YwRjhGRl0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcsNykg
c2l6ZSAzMzB4MjMxCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0aCAyNDU6ICJU
aGUgY2hpZWYgZGlmZmljdWx0eSBBbGljZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDI4
KSB3aWR0aCAyNDU6ICJmb3VuZCBhdCBmaXJzdCB3YXMgaW4iCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNyw0OSkgd2lkdGggMTI4OiAibWFuYWdpbmcgaGVyICIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgxMzUsNDkpIHdpZHRoIDExNzogImZsYW1pbmdvOiBzaGUiCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNyw3MCkgd2lkdGggMjQ1OiAic3VjY2VlZGVkIGluIGdldHRpbmcgaXRzIGJv
ZHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw5MSkgd2lkdGggMTQ3OiAidHVja2VkIGF3
YXksICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQsOTEpIHdpZHRoIDk4OiAiY29tZm9y
dGFibHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMTIpIHdpZHRoIDMzMDogImVub3Vn
aCwgdW5kZXIgaGVyIGFybSwgd2l0aCBpdHMgbGVncyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICg3LDEzMykgd2lkdGggMTI1OiAiaGFuZ2luZyBkb3duLCAiCisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMTMyLDEzMykgd2lkdGggMjA1OiAiYnV0IGdlbmVyYWxseSwganVzdCBhcyBzaGUiCisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNTQpIHdpZHRoIDI5ODogImhhZCBnb3QgaXRzIG5l
Y2sgbmljZWx5IHN0cmFpZ2h0ZW5lZCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1LDE1
NCkgd2lkdGggMzI6ICJvdXQsIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0
aCAzMzA6ICJhbmQgd2FzIGdvaW5nIHRvIGdpdmUgdGhlIGhlZGdlaG9nIGEiCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRoIDE4NjogImJsb3cgd2l0aCBpdHMgaGVhZCwgaXQg
IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE5MywxOTYpIHdpZHRoIDE0NDogIndvdWxkIHR3
aXN0IGl0c2VsZiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDIxNykgd2lkdGggMjYwOiAi
cm91bmQgYW5kIGxvb2sgdXAgaW4gaGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2Nr
IChmbG9hdGluZykge0RJVn0gYXQgKDQsMjk2KSBzaXplIDM0NHgzMTcKKyAgICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDE2KSBzaXplIDM0NHgxOQorICAgICAgICAgIFJlbmRlcklubGluZSB7
VFR9IGF0ICgwLDApIHNpemUgMTAzeDE1CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsNCkgc2l6ZSAxMDN4MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNCkgd2lk
dGggMTAzOiAiaHlwaGVuczogbm9uZSIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDEwMywwKSBzaXplIDEzM3gxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEwMywwKSB3aWR0
aCAxMzM6ICIgd2l0aCBzb2Z0IGh5cGhlbnMiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDUxKSBzaXplIDM0NHgyNjYgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAg
ICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBb
Ymdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBz
aXplIDMzMHgyNTIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRo
ZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgp
IHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3LDQ5KSB3aWR0aCAxMjg6ICJtYW5hZ2luZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDEzNSw0OSkgd2lkdGggMTE3OiAiZmxhbWluZ286IHNoZSIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAxNDE6ICJzdWNjZWVkZWQgaW4gZ2V0IgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDE0OCw3MCkgd2lkdGggMTA0OiAidGluZyBpdHMgYm9keSIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxODE6ICJ0dWNrZWQgYXdheSwgY29tIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE4OCw5MSkgd2lkdGggNjQ6ICJmb3J0YWJseSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRlciBo
ZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMzKSB3
aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzIs
MTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjg5OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNlbHkg
c3RyYWlnaHQiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjk2LDE1NCkgd2lkdGggNDE6ICJl
bmVkIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0aCAzMzA6ICJvdXQsIGFu
ZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYp
IHdpZHRoIDUwOiAiaGVkZ2UiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTcsMTk2KSB3aWR0
aCAyODA6ICJob2cgYSBibG93IHdpdGggaXRzIGhlYWQsIGl0IgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsMjE3KSB3aWR0aCAzMzA6ICJ3b3VsZCB0d2lzdCBpdHNlbGYgcm91bmQgYW5kIGxv
b2sgdXAgaW4iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyMzgpIHdpZHRoIDgxOiAiaGVy
IGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQs
NjEzKSBzaXplIDM0NHgyOTYKKyAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXpl
IDM0NHgxOQorICAgICAgICAgIFJlbmRlcklubGluZSB7VFR9IGF0ICgwLDApIHNpemUgMTE4eDE1
CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAxMTh4MTUKKyAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNCkgd2lkdGggMTE4OiAiaHlwaGVuczogbWFudWFs
IgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTE4LDApIHNpemUgMTMzeDE5Cisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTE4LDApIHdpZHRoIDEzMzogIiB3aXRoIHNvZnQgaHlw
aGVucyIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUgMzQ0eDI0NSBb
Ym9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9h
dGluZykge0RJVn0gYXQgKDI2Miw3KSBzaXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3LDcpIHNpemUgMzMweDIzMQorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDcsNykgd2lkdGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxp
Y2UiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQg
Zmlyc3Qgd2FzIGluIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDEyODog
Im1hbmFnaW5nIGhlciAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTM1LDQ5KSB3aWR0aCAx
MTc6ICJmbGFtaW5nbzogc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRo
IDE0MTogInN1Y2NlZWRlZCBpbiBnZXQiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQ4LDcw
KSB3aWR0aCAxMDQ6ICJ0aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcs
OTEpIHdpZHRoIDE0NjogInR1Y2tlZCBhd2F5LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MTUzLDkxKSB3aWR0aCAzNTogImNvbSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxODgsOTEp
IHdpZHRoIDY0OiAiZm9ydGFibHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMTIpIHdp
ZHRoIDMzMDogImVub3VnaCwgdW5kZXIgaGVyIGFybSwgd2l0aCBpdHMgbGVncyIKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg3LDEzMykgd2lkdGggMTI1OiAiaGFuZ2luZyBkb3duLCAiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTMyLDEzMykgd2lkdGggMjA1OiAiYnV0IGdlbmVyYWxseSwg
anVzdCBhcyBzaGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNTQpIHdpZHRoIDI1MTog
ImhhZCBnb3QgaXRzIG5lY2sgbmljZWx5IHN0cmFpZ2h0IgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDI1OCwxNTQpIHdpZHRoIDQ3OiAiZW5lZCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MzA1LDE1NCkgd2lkdGggMzI6ICJvdXQsIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1
KSB3aWR0aCAyODE6ICJhbmQgd2FzIGdvaW5nIHRvIGdpdmUgdGhlIGhlZGdlIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDI4OCwxNzUpIHdpZHRoIDQ5OiAiaG9nIGEiCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRoIDE4NjogImJsb3cgd2l0aCBpdHMgaGVhZCwgaXQgIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE5MywxOTYpIHdpZHRoIDE0NDogIndvdWxkIHR3aXN0
IGl0c2VsZiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDIxNykgd2lkdGggMjYwOiAicm91
bmQgYW5kIGxvb2sgdXAgaW4gaGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2NrIChm
bG9hdGluZykge0RJVn0gYXQgKDQsOTA5KSBzaXplIDM0NHgyOTYKKyAgICAgICAgUmVuZGVyQmxv
Y2sge1B9IGF0ICgwLDE2KSBzaXplIDM0NHgxOQorICAgICAgICAgIFJlbmRlcklubGluZSB7VFR9
IGF0ICgwLDApIHNpemUgMTAzeDE1CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsNCkgc2l6ZSAxMDN4MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNCkgd2lkdGgg
MTAzOiAiaHlwaGVuczogYXV0byIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEw
MywwKSBzaXplIDE1N3gxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEwMywwKSB3aWR0aCAx
NTc6ICIgd2l0aG91dCBzb2Z0IGh5cGhlbnMiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDUxKSBzaXplIDM0NHgyNDUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAg
ICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBb
Ymdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBz
aXplIDMzMHgyMzEKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRo
ZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgp
IHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5hZyIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCA3OTogImluZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDg2LDQ5KSB3aWR0aCAxNjY6ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9k
eSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdh
eSwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0
YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdo
LCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVj
ayBuaWNlbHkgc3RyYWlnaHRlbmVkICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0
KSB3aWR0aCAzMjogIm91dCwiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRo
IDMzMDogImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAi
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdp
c3QgaXRzZWxmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJy
b3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIwMjZ9Igo=
</data>
<flag name="review"
          id="50856"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62622</attachid>
            <date>2010-07-26 15:34:15 -0700</date>
            <delta_ts>2010-07-26 16:12:06 -0700</delta_ts>
            <desc>Implement auto hyphenation interface for Android.</desc>
            <filename>autoHyphenation.txt</filename>
            <type>text/plain</type>
            <size>20567</size>
            <attacher name="sw">swang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDA3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTAtMDctMjYgIFNoaW1lbmcgKFNpbW9uKSBXYW5nICA8c3dhbmdA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYXV0byBoeXBoZW5hdGlvbiBzdXBwb3J0IGZvciBBbmRyb2lkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI4MDAKKworICAgICAgICAq
IHBsYXRmb3JtL3RleHQvYW5kcm9pZC9IeXBoZW5hdGlvbkFuZHJvaWQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmxvYWRIeXBoZW5hdGlvbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6bGFzdEh5cGhlbkxvY2F0aW9uKToKKwogMjAxMC0wNy0yNiAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2FuZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lk
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvYW5kcm9pZC9IeXBoZW5h
dGlvbkFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2Fu
ZHJvaWQvSHlwaGVuYXRpb25BbmRyb2lkLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5NiBA
QAorLyoKKyAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIeXBoZW5hdGlvbi5oIgor
CisvLyBGb3IgZXh0ZXJuYWwgaHlwaGVuYXRpb24gbGlicmFyeS4KKyNpbmNsdWRlICJoeXBoZW4u
aCIKKyNpbmNsdWRlIDx1dGlscy9Bc3NldE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK2V4dGVybiBhbmRy
b2lkOjpBc3NldE1hbmFnZXIqIGdsb2JhbEFzc2V0TWFuYWdlcigpOworCit1c2luZyBuYW1lc3Bh
Y2UgV1RGOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBIeXBoZW5EaWN0KiBsb2Fk
SHlwaGVuYXRpb25EaWN0aW9uYXJ5KCkKK3sKKyAgICBhbmRyb2lkOjpBc3NldE1hbmFnZXIqIGFt
ID0gZ2xvYmFsQXNzZXRNYW5hZ2VyKCk7CisgICAgLy8gT25seSBzdXBwb3J0IEVuZ2xpc2ggZm9y
IG5vdy4KKyAgICBhbmRyb2lkOjpBc3NldCogYSA9IGFtLT5vcGVuKCJ3ZWJraXQvaHlwaF9lbl9V
Uy5kaWMiLAorICAgICAgICBhbmRyb2lkOjpBc3NldDo6QUNDRVNTX0JVRkZFUik7CisgICAgaWYg
KCFhKSB7CisgICAgICAgIC8vIEFzc2V0IHdlYmtpdC9oeXBoX2VuX1VTLmRpYyBub3QgZm91bmQh
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjb25zdCBDU3RyaW5nIGRpY3RDb250ZW50
cyA9IFN0cmluZyhzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oYS0+Z2V0QnVmZmVyKGZhbHNlKSks
CisgICAgICAgIGEtPmdldExlbmd0aCgpKS51dGY4KCk7CisgICAgSHlwaGVuRGljdCogZGljdCA9
IGhual9oeXBoZW5fbG9hZF9mcm9tX2J1ZmZlcihkaWN0Q29udGVudHMuZGF0YSgpLAorICAgICAg
ICBkaWN0Q29udGVudHMubGVuZ3RoKCkpOworICAgIGRlbGV0ZSBhOworCisgICAgcmV0dXJuIGRp
Y3Q7Cit9CisKK3NpemVfdCBsYXN0SHlwaGVuTG9jYXRpb24oY29uc3QgVUNoYXIqIGNoYXJhY3Rl
cnMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCBiZWZvcmVJbmRleCkKK3sKKyAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IG1pbldvcmRMZW4gPSA1OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4V29y
ZExlbiA9IDEwMDsKKyAgICBpZiAoYmVmb3JlSW5kZXggPD0gMCB8fCBsZW5ndGggPCBtaW5Xb3Jk
TGVuIHx8IGxlbmd0aCA+IG1heFdvcmRMZW4pCisgICAgICAgIHJldHVybiAwOworCisgICAgc3Rh
dGljIEh5cGhlbkRpY3QqIGRpY3QgPSBsb2FkSHlwaGVuYXRpb25EaWN0aW9uYXJ5KCk7CisgICAg
aWYgKCFkaWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNoYXIgd29yZFttYXhXb3JkTGVu
XTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGNv
bnN0IFVDaGFyIGNoID0gY2hhcmFjdGVyc1tpXTsKKyAgICAgICAgLy8gT25seSBFbmdsaXNoIGZv
ciBub3cuCisgICAgICAgIC8vIFRvIHJlYWxseSBtYWtlIGl0IGxhbmd1YWdlIGF3YXJlLCB3ZSBu
ZWVkIHNvbWV0aGluZyBsaWtlIGxhbmd1YWdlCisgICAgICAgIC8vIGRldGVjdGlvbiBvciByZWx5
IG9uIHRoZSBsYW5nQXR0ciBpbiB0aGUgaHRtbCBlbGVtZW50LiAgVGhvdWdoCisgICAgICAgIC8v
IHNlZW1zIHJpZ2h0IG5vdyB0aGUgbGFuZ0F0dHIgaXMgbm90IHVzZWQgb3IgcXVpdGUgaW1wbGVt
ZW50ZWQgaW4KKyAgICAgICAgLy8gd2Via2l0LgorICAgICAgICBpZiAoIWlzQVNDSUlBbHBoYShj
aCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgd29yZFtpXSA9IGNoOworICAgIH0K
KworICAgIHN0YXRpYyBjb25zdCBpbnQgZXh0cmFCdWZmZXIgPSA1OworICAgIGNoYXIgaHlwaGVu
c1ttYXhXb3JkTGVuICsgZXh0cmFCdWZmZXJdOworICAgIGlmICghaG5qX2h5cGhlbl9oeXBoZW5h
dGUoZGljdCwgd29yZCwgbGVuZ3RoLCBoeXBoZW5zKSkgeworICAgICAgICBmb3IgKHNpemVfdCBp
ID0gYmVmb3JlSW5kZXggLSAxOyBpID4gMDsgLS1pKSB7CisgICAgICAgICAgICBpZiAoaHlwaGVu
c1tpXSAmIDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIGkgKyAxOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDY0MDc3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDctMjYgIFNoaW1lbmcgKFNpbW9uKSBXYW5nICA8c3dh
bmdAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYW5kcm9pZCBzcGVjaWZpYyBleHBlY3RlZCB0ZXN0IHJlc3VsdHMgZm9yIGF1
dG8gaHlwaGVuYXRpb24KKyAgICAgICAgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRy
b2lkOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL2Zhc3Q6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9hbmRyb2lkL2Zhc3QvdGV4dC9oeXBoZW5hdGUtY2hhcmFjdGVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQvaHlwaGVucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDEwLTA3LTI2ICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0L2h5cGhlbmF0ZS1jaGFyYWN0ZXIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQv
ZmFzdC90ZXh0L2h5cGhlbmF0ZS1jaGFyYWN0ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vYW5kcm9pZC9mYXN0L3RleHQvaHlwaGVuYXRlLWNoYXJh
Y3Rlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE4IEBACitsYXllciBh
dCAoMCwwKSBzaXplIDM1NngxMjExCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAzMTN4NDgz
CitsYXllciBhdCAoMCwwKSBzaXplIDM1NngxMjExCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDMxM3g0ODMKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI5
N3g0NjcKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsMCkgc2l6ZSAz
NDR4Mjk2CisgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxNikgc2l6ZSAzNDR4MTkKKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMjd4MTkKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIyNzogIlRoZSBpbml0aWFsIHZhbHVlIChzaG91
bGQgYmUgbGlrZSAiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAz
MngxNQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMjcsNCkgc2l6ZSAzMngx
NQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjI3LDQpIHdpZHRoIDMyOiAiYXV0byIKKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI1OSwwKSBzaXplIDV4MTkKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgyNTksMCkgd2lkdGggNTogIikiCisgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNDUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAw
KV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6
ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoNyw3KSBzaXplIDMzMHgyMzEKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRo
IDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5hZyIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCA3OTogImluZyBoZXIgIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDg2LDQ5KSB3aWR0aCAxNjY6ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGlu
ZyBpdHMgYm9keSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0
dWNrZWQgYXdheSwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6
ICJjb21mb3J0YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMw
OiAiZW5vdWdoLCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFz
IHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdv
dCBpdHMgbmVjayBuaWNlbHkgc3RyYWlnaHRlbmVkICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91dCwiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywx
NzUpIHdpZHRoIDMzMDogImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3aXRoIGl0cyBo
ZWFkLCBpdCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAi
d291bGQgdHdpc3QgaXRzZWxmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0
aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIwMjZ9IgorICAgICAgUmVu
ZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoNCwyOTYpIHNpemUgMzQ0eDI5NgorICAgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5CisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOTF4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDkxOiAiVGhlIGRlZmF1bHQgKCIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUg
e1RUfSBhdCAoMCwwKSBzaXplIDE5OHgxNQorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICg5MSw0KSBzaXplIDE5OHgxNQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOTEsNCkg
d2lkdGggMTk4OiAiaHlwaGVuYXRlLWNoYXJhY3RlcjogYXV0byIKKyAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDI4OSwwKSBzaXplIDV4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgyODksMCkgd2lkdGggNTogIikiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUx
KSBzaXplIDM0NHgyNDUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgICBS
ZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6ZSA3NXg5MCBbYmdjb2xv
cj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNyw3KSBzaXplIDMz
MHgyMzEKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRoIDI0NTogIlRoZSBjaGll
ZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjgpIHdpZHRo
IDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5hZyIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3LDQ5KSB3aWR0aCA3OTogImluZyBoZXIgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDg2LDQ5KSB3aWR0aCAxNjY6ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGluZyBpdHMgYm9keSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0dWNrZWQgYXdheSwgIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6ICJjb21mb3J0YWJseSIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdoLCB1bmRl
ciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTMz
KSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdvdCBpdHMgbmVjayBuaWNl
bHkgc3RyYWlnaHRlbmVkICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzMDUsMTU0KSB3aWR0
aCAzMjogIm91dCwiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNzUpIHdpZHRoIDMzMDog
ImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3aXRoIGl0cyBoZWFkLCBpdCAiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAid291bGQgdHdpc3QgaXRz
ZWxmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAyNjA6ICJyb3VuZCBh
bmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIwMjZ9IgorICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0
aW5nKSB7RElWfSBhdCAoNCw1OTIpIHNpemUgMzQ0eDI5NgorICAgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNTF4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUx
OiAiQnVsbGV0ICgiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAy
MjF4MTUKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTEsNCkgc2l6ZSAyMjF4
MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDUxLDQpIHdpZHRoIDIyMTogImh5cGhlbmF0
ZS1jaGFyYWN0ZXI6IFwiXFwyMDIyXCIiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgyNzIsMCkgc2l6ZSA1eDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjcyLDApIHdpZHRo
IDU6ICIpIgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1MSkgc2l6ZSAzNDR4MjQ1
IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDAwMCldCisgICAgICAgICAgUmVuZGVyQmxvY2sgKGZs
b2F0aW5nKSB7RElWfSBhdCAoMjYyLDcpIHNpemUgNzV4OTAgW2JnY29sb3I9I0YwRjhGRl0KKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcsNykgc2l6ZSAzMzB4MjMxCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0aCAyNDU6ICJUaGUgY2hpZWYgZGlmZmljdWx0eSBB
bGljZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDI4KSB3aWR0aCAyNDU6ICJmb3VuZCBh
dCBmaXJzdCB3YXMgaW4gbWFuYWciCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw0OSkgd2lk
dGggNzg6ICJpbmcgaGVyICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4NSw0OSkgd2lkdGgg
MTY3OiAiZmxhbWluZ286IHNoZSBzdWMiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3MCkg
d2lkdGggMjQ1OiAiY2VlZGVkIGluIGdldHRpbmcgaXRzIGJvZHkiCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNyw5MSkgd2lkdGggMTQ3OiAidHVja2VkIGF3YXksICIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgxNTQsOTEpIHdpZHRoIDk4OiAiY29tZm9ydGFibHkiCisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNywxMTIpIHdpZHRoIDMzMDogImVub3VnaCwgdW5kZXIgaGVyIGFybSwgd2l0
aCBpdHMgbGVncyIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDEzMykgd2lkdGggMTI1OiAi
aGFuZ2luZyBkb3duLCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMyLDEzMykgd2lkdGgg
MjA1OiAiYnV0IGdlbmVyYWxseSwganVzdCBhcyBzaGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNywxNTQpIHdpZHRoIDI5ODogImhhZCBnb3QgaXRzIG5lY2sgbmljZWx5IHN0cmFpZ2h0ZW5l
ZCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1LDE1NCkgd2lkdGggMzI6ICJvdXQsIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0aCAzMzA6ICJhbmQgd2FzIGdvaW5n
IHRvIGdpdmUgdGhlIGhlZGdlaG9nIGEiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYp
IHdpZHRoIDE4NjogImJsb3cgd2l0aCBpdHMgaGVhZCwgaXQgIgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDE5MywxOTYpIHdpZHRoIDE0NDogIndvdWxkIHR3aXN0IGl0c2VsZiIKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg3LDIxNykgd2lkdGggMjYwOiAicm91bmQgYW5kIGxvb2sgdXAgaW4g
aGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQg
KDQsODg4KSBzaXplIDM0NHgzMTUKKyAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBz
aXplIDM0NHgzOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE1
NngxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTU2OiAiTWlkZGxlIGRv
dCBhbmQgdGlsZGUgKCIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge1RUfSBhdCAoMCwwKSBzaXpl
IDMxNHgzNAorICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTYsNCkgc2l6ZSAz
MTR4MzQKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1Niw0KSB3aWR0aCAxNTg6ICJoeXBo
ZW5hdGUtY2hhcmFjdGVyOiIKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjMpIHdpZHRo
IDQ3OiAiXCJcXEI3flwiIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDcsMTkp
IHNpemUgNXgxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ3LDE5KSB3aWR0aCA1OiAiKSIK
KyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNzApIHNpemUgMzQ0eDI0NSBbYm9yZGVy
OiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykg
e0RJVn0gYXQgKDI2Miw3KSBzaXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4RkZdCisgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3LDcpIHNpemUgMzMweDIzMQorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDcsNykgd2lkdGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZpY3VsdHkgQWxpY2UiCisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lkdGggMjQ1OiAiZm91bmQgYXQgZmlyc3Qg
d2FzIGluIG1hbmFnIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdpZHRoIDc0OiAi
aW5nIGhlciAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODEsNDkpIHdpZHRoIDE3MTogImZs
YW1pbmdvOiBzaGUgc3VjIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNzApIHdpZHRoIDI0
NTogImNlZWRlZCBpbiBnZXR0aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcsOTEpIHdpZHRoIDE0NzogInR1Y2tlZCBhd2F5LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTU0LDkxKSB3aWR0aCA5ODogImNvbWZvcnRhYmx5IgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDcsMTEyKSB3aWR0aCAzMzA6ICJlbm91Z2gsIHVuZGVyIGhlciBhcm0sIHdpdGggaXRzIGxl
Z3MiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMzMpIHdpZHRoIDEyNTogImhhbmdpbmcg
ZG93biwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzMiwxMzMpIHdpZHRoIDIwNTogImJ1
dCBnZW5lcmFsbHksIGp1c3QgYXMgc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTU0
KSB3aWR0aCAyOTg6ICJoYWQgZ290IGl0cyBuZWNrIG5pY2VseSBzdHJhaWdodGVuZWQgIgorICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDMwNSwxNTQpIHdpZHRoIDMyOiAib3V0LCIKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg3LDE3NSkgd2lkdGggMzMwOiAiYW5kIHdhcyBnb2luZyB0byBnaXZl
IHRoZSBoZWRnZWhvZyBhIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTk2KSB3aWR0aCAx
ODY6ICJibG93IHdpdGggaXRzIGhlYWQsIGl0ICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgx
OTMsMTk2KSB3aWR0aCAxNDQ6ICJ3b3VsZCB0d2lzdCBpdHNlbGYiCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNywyMTcpIHdpZHRoIDI2MDogInJvdW5kIGFuZCBsb29rIHVwIGluIGhlciBmYWNl
XHh7MjAyNn0iCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9hbmRyb2lkL2Zhc3QvdGV4dC9o
eXBoZW5zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9h
bmRyb2lkL2Zhc3QvdGV4dC9oeXBoZW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvZmFzdC90ZXh0L2h5cGhlbnMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzNTZ4
MTIxMworICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMzEzeDQ4MworbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAzNTZ4MTIxMworICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzMTN4NDgz
CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyOTd4NDY3CisgICAgICBSZW5k
ZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICg0LDApIHNpemUgMzQ0eDI5NgorICAgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsMTYpIHNpemUgMzQ0eDE5CisgICAgICAgICAgUmVuZGVySW5s
aW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSAxMTh4MTUKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCw0KSBzaXplIDExOHgxNQorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw0
KSB3aWR0aCAxMTg6ICJoeXBoZW5zOiBtYW51YWwiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgxMTgsMCkgc2l6ZSAxNTd4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMTgs
MCkgd2lkdGggMTU3OiAiIHdpdGhvdXQgc29mdCBoeXBoZW5zIgorICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw1MSkgc2l6ZSAzNDR4MjQ1IFtib3JkZXI6ICgzcHggc29saWQgIzAwMDAw
MCldCisgICAgICAgICAgUmVuZGVyQmxvY2sgKGZsb2F0aW5nKSB7RElWfSBhdCAoMjYyLDcpIHNp
emUgNzV4OTAgW2JnY29sb3I9I0YwRjhGRl0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDcsNykgc2l6ZSAzMzB4MjMxCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3KSB3aWR0
aCAyNDU6ICJUaGUgY2hpZWYgZGlmZmljdWx0eSBBbGljZSIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3LDI4KSB3aWR0aCAyNDU6ICJmb3VuZCBhdCBmaXJzdCB3YXMgaW4iCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNyw0OSkgd2lkdGggMTI4OiAibWFuYWdpbmcgaGVyICIKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxMzUsNDkpIHdpZHRoIDExNzogImZsYW1pbmdvOiBzaGUiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNyw3MCkgd2lkdGggMjQ1OiAic3VjY2VlZGVkIGluIGdldHRp
bmcgaXRzIGJvZHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNyw5MSkgd2lkdGggMTQ3OiAi
dHVja2VkIGF3YXksICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQsOTEpIHdpZHRoIDk4
OiAiY29tZm9ydGFibHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxMTIpIHdpZHRoIDMz
MDogImVub3VnaCwgdW5kZXIgaGVyIGFybSwgd2l0aCBpdHMgbGVncyIKKyAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3LDEzMykgd2lkdGggMTI1OiAiaGFuZ2luZyBkb3duLCAiCisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTMyLDEzMykgd2lkdGggMjA1OiAiYnV0IGdlbmVyYWxseSwganVzdCBh
cyBzaGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNTQpIHdpZHRoIDI5ODogImhhZCBn
b3QgaXRzIG5lY2sgbmljZWx5IHN0cmFpZ2h0ZW5lZCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMzA1LDE1NCkgd2lkdGggMzI6ICJvdXQsIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcs
MTc1KSB3aWR0aCAzMzA6ICJhbmQgd2FzIGdvaW5nIHRvIGdpdmUgdGhlIGhlZGdlaG9nIGEiCisg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRoIDE4NjogImJsb3cgd2l0aCBpdHMg
aGVhZCwgaXQgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE5MywxOTYpIHdpZHRoIDE0NDog
IndvdWxkIHR3aXN0IGl0c2VsZiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDIxNykgd2lk
dGggMjYwOiAicm91bmQgYW5kIGxvb2sgdXAgaW4gaGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJl
bmRlckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsMjk2KSBzaXplIDM0NHgzMTcKKyAgICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXplIDM0NHgxOQorICAgICAgICAgIFJlbmRl
cklubGluZSB7VFR9IGF0ICgwLDApIHNpemUgMTAzeDE1CisgICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAxMDN4MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsNCkgd2lkdGggMTAzOiAiaHlwaGVuczogbm9uZSIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDEwMywwKSBzaXplIDEzM3gxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEw
MywwKSB3aWR0aCAxMzM6ICIgd2l0aCBzb2Z0IGh5cGhlbnMiCisgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNjYgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAw
KV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6
ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoNyw3KSBzaXplIDMzMHgyNTIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRo
IDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCAxMjg6ICJtYW5hZ2luZyBoZXIgIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDEzNSw0OSkgd2lkdGggMTE3OiAiZmxhbWluZ286IHNoZSIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAxNDE6ICJzdWNjZWVkZWQgaW4gZ2V0Igor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0OCw3MCkgd2lkdGggMTA0OiAidGluZyBpdHMgYm9k
eSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxODE6ICJ0dWNrZWQgYXdh
eSwgY29tIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE4OCw5MSkgd2lkdGggNjQ6ICJmb3J0
YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMwOiAiZW5vdWdo
LCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFzIHNoZSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjg5OiAiaGFkIGdvdCBpdHMgbmVj
ayBuaWNlbHkgc3RyYWlnaHQiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjk2LDE1NCkgd2lk
dGggNDE6ICJlbmVkIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTc1KSB3aWR0aCAzMzA6
ICJvdXQsIGFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNywxOTYpIHdpZHRoIDUwOiAiaGVkZ2UiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTcs
MTk2KSB3aWR0aCAyODA6ICJob2cgYSBibG93IHdpdGggaXRzIGhlYWQsIGl0IgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0aCAzMzA6ICJ3b3VsZCB0d2lzdCBpdHNlbGYgcm91
bmQgYW5kIGxvb2sgdXAgaW4iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyMzgpIHdpZHRo
IDgxOiAiaGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRlckJsb2NrIChmbG9hdGluZykge0RJ
Vn0gYXQgKDQsNjEzKSBzaXplIDM0NHgyOTYKKyAgICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDE2KSBzaXplIDM0NHgxOQorICAgICAgICAgIFJlbmRlcklubGluZSB7VFR9IGF0ICgwLDApIHNp
emUgMTE4eDE1CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNCkgc2l6ZSAx
MTh4MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNCkgd2lkdGggMTE4OiAiaHlwaGVu
czogbWFudWFsIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTE4LDApIHNpemUg
MTMzeDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTE4LDApIHdpZHRoIDEzMzogIiB3aXRo
IHNvZnQgaHlwaGVucyIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTEpIHNpemUg
MzQ0eDI0NSBbYm9yZGVyOiAoM3B4IHNvbGlkICMwMDAwMDApXQorICAgICAgICAgIFJlbmRlckJs
b2NrIChmbG9hdGluZykge0RJVn0gYXQgKDI2Miw3KSBzaXplIDc1eDkwIFtiZ2NvbG9yPSNGMEY4
RkZdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg3LDcpIHNpemUgMzMweDIzMQor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNykgd2lkdGggMjQ1OiAiVGhlIGNoaWVmIGRpZmZp
Y3VsdHkgQWxpY2UiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywyOCkgd2lkdGggMjQ1OiAi
Zm91bmQgYXQgZmlyc3Qgd2FzIGluIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsNDkpIHdp
ZHRoIDEyODogIm1hbmFnaW5nIGhlciAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTM1LDQ5
KSB3aWR0aCAxMTc6ICJmbGFtaW5nbzogc2hlIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcs
NzApIHdpZHRoIDE0MTogInN1Y2NlZWRlZCBpbiBnZXQiCisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTQ4LDcwKSB3aWR0aCAxMDQ6ICJ0aW5nIGl0cyBib2R5IgorICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDcsOTEpIHdpZHRoIDE0NjogInR1Y2tlZCBhd2F5LCAiCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTUzLDkxKSB3aWR0aCAzNTogImNvbSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgxODgsOTEpIHdpZHRoIDY0OiAiZm9ydGFibHkiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NywxMTIpIHdpZHRoIDMzMDogImVub3VnaCwgdW5kZXIgaGVyIGFybSwgd2l0aCBpdHMgbGVncyIK
KyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDEzMykgd2lkdGggMTI1OiAiaGFuZ2luZyBkb3du
LCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMyLDEzMykgd2lkdGggMjA1OiAiYnV0IGdl
bmVyYWxseSwganVzdCBhcyBzaGUiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywxNTQpIHdp
ZHRoIDI1MTogImhhZCBnb3QgaXRzIG5lY2sgbmljZWx5IHN0cmFpZ2h0IgorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDI1OCwxNTQpIHdpZHRoIDQ3OiAiZW5lZCAiCisgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMzA1LDE1NCkgd2lkdGggMzI6ICJvdXQsIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDcsMTc1KSB3aWR0aCAyODE6ICJhbmQgd2FzIGdvaW5nIHRvIGdpdmUgdGhlIGhlZGdlIgor
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4OCwxNzUpIHdpZHRoIDQ5OiAiaG9nIGEiCisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNywxOTYpIHdpZHRoIDE4NjogImJsb3cgd2l0aCBpdHMgaGVh
ZCwgaXQgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE5MywxOTYpIHdpZHRoIDE0NDogIndv
dWxkIHR3aXN0IGl0c2VsZiIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDIxNykgd2lkdGgg
MjYwOiAicm91bmQgYW5kIGxvb2sgdXAgaW4gaGVyIGZhY2VceHsyMDI2fSIKKyAgICAgIFJlbmRl
ckJsb2NrIChmbG9hdGluZykge0RJVn0gYXQgKDQsOTA5KSBzaXplIDM0NHgyOTYKKyAgICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDE2KSBzaXplIDM0NHgxOQorICAgICAgICAgIFJlbmRlcklu
bGluZSB7VFR9IGF0ICgwLDApIHNpemUgMTAzeDE1CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsNCkgc2l6ZSAxMDN4MTUKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
NCkgd2lkdGggMTAzOiAiaHlwaGVuczogYXV0byIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDEwMywwKSBzaXplIDE1N3gxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEwMyww
KSB3aWR0aCAxNTc6ICIgd2l0aG91dCBzb2Z0IGh5cGhlbnMiCisgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDUxKSBzaXplIDM0NHgyNDUgW2JvcmRlcjogKDNweCBzb2xpZCAjMDAwMDAw
KV0KKyAgICAgICAgICBSZW5kZXJCbG9jayAoZmxvYXRpbmcpIHtESVZ9IGF0ICgyNjIsNykgc2l6
ZSA3NXg5MCBbYmdjb2xvcj0jRjBGOEZGXQorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoNyw3KSBzaXplIDMzMHgyMzEKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcpIHdpZHRo
IDI0NTogIlRoZSBjaGllZiBkaWZmaWN1bHR5IEFsaWNlIgorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDcsMjgpIHdpZHRoIDI0NTogImZvdW5kIGF0IGZpcnN0IHdhcyBpbiBtYW5hZyIKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3LDQ5KSB3aWR0aCA3OTogImluZyBoZXIgIgorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDg2LDQ5KSB3aWR0aCAxNjY6ICJmbGFtaW5nbzogc2hlIHN1YyIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDcwKSB3aWR0aCAyNDU6ICJjZWVkZWQgaW4gZ2V0dGlu
ZyBpdHMgYm9keSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDkxKSB3aWR0aCAxNDc6ICJ0
dWNrZWQgYXdheSwgIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCw5MSkgd2lkdGggOTg6
ICJjb21mb3J0YWJseSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDExMikgd2lkdGggMzMw
OiAiZW5vdWdoLCB1bmRlciBoZXIgYXJtLCB3aXRoIGl0cyBsZWdzIgorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDcsMTMzKSB3aWR0aCAxMjU6ICJoYW5naW5nIGRvd24sICIKKyAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgxMzIsMTMzKSB3aWR0aCAyMDU6ICJidXQgZ2VuZXJhbGx5LCBqdXN0IGFz
IHNoZSIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE1NCkgd2lkdGggMjk4OiAiaGFkIGdv
dCBpdHMgbmVjayBuaWNlbHkgc3RyYWlnaHRlbmVkICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgzMDUsMTU0KSB3aWR0aCAzMjogIm91dCwiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNywx
NzUpIHdpZHRoIDMzMDogImFuZCB3YXMgZ29pbmcgdG8gZ2l2ZSB0aGUgaGVkZ2Vob2cgYSIKKyAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE5Nikgd2lkdGggMTg2OiAiYmxvdyB3aXRoIGl0cyBo
ZWFkLCBpdCAiCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTkzLDE5Nikgd2lkdGggMTQ0OiAi
d291bGQgdHdpc3QgaXRzZWxmIgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMjE3KSB3aWR0
aCAyNjA6ICJyb3VuZCBhbmQgbG9vayB1cCBpbiBoZXIgZmFjZVx4ezIwMjZ9Igo=
</data>

          </attachment>
      

    </bug>

</bugzilla>