From 9b90e2b18ba1ca8455bb3f26695ae81ede0fdb84 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Sun, 1 Dec 2013 18:51:35 +0100 Subject: [PATCH] Improved error handling. --- app/models/channel/email_parser.rb | 16 +- test/fixtures/mail19.box | 601 +++++++++++++++++++++++++++++ test/unit/email_parser_test.rb | 13 +- 3 files changed, 624 insertions(+), 6 deletions(-) create mode 100644 test/fixtures/mail19.box diff --git a/app/models/channel/email_parser.rb b/app/models/channel/email_parser.rb index 78aa10ad4..315545d9f 100644 --- a/app/models/channel/email_parser.rb +++ b/app/models/channel/email_parser.rb @@ -80,11 +80,17 @@ class Channel::EmailParser } # set extra headers - data[:from_email] = Mail::Address.new( from ).address - data[:from_local] = Mail::Address.new( from ).local - data[:from_domain] = Mail::Address.new( from ).domain - data[:from_display_name] = Mail::Address.new( from ).display_name || - ( Mail::Address.new( from ).comments && Mail::Address.new( from ).comments[0] ) + begin + data[:from_email] = Mail::Address.new( from ).address + data[:from_local] = Mail::Address.new( from ).local + data[:from_domain] = Mail::Address.new( from ).domain + data[:from_display_name] = Mail::Address.new( from ).display_name || + ( Mail::Address.new( from ).comments && Mail::Address.new( from ).comments[0] ) + rescue + data[:from_email] = from + data[:from_local] = from + data[:from_domain] = from + end # do extra decoding because we needed to use field.value data[:from_display_name] = Mail::Field.new( 'X-From', data[:from_display_name] ).to_s diff --git a/test/fixtures/mail19.box b/test/fixtures/mail19.box new file mode 100644 index 000000000..e7d372686 --- /dev/null +++ b/test/fixtures/mail19.box @@ -0,0 +1,601 @@ +From MAILER-DAEMON Sun Dec 1 13:28:56 2013 +Return-Path: <> +X-Original-To: nix@znuny.com +Delivered-To: znuny-sales@donkervoort.znuny.com +Received: from mail.sasscoyc.com (unknown [184.82.28.21]) + by donkervoort.znuny.com (Postfix) with ESMTP id 3B4286024A + for ; Sun, 1 Dec 2013 13:28:54 +0100 (CET) +Date: Mon, 2 Dec 2013 20:54:08 +0800 +From: "=?GB2312?B?ztI=?=" <> +To: "377861373" <377861373@qq.com> +Reply-To: +Subject: =?GB2312?B?obbFt8PAvPLRtqG3?= +MIME-Version: 1.0 +X-Priority: 3 +X-MSMail-Priority: Normal +X-Mailer: Microsoft Outlook Express 6.00.2800.1158 +Content-Type: text/html; + charset="GB2312" +Content-Transfer-Encoding: base64 +Content-Disposition: inline +X-UID: 316 +Status: RO +Content-Length: 44243 +Lines: 575 + +PGh0bWw+DQoNCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50 +PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9Z2IyMzEyIj4NCjx0aXRsZT7Qwr2ozfjSsyA0PC90aXRsZT4N +CjwvaGVhZD4NCg0KPGJvZHk+DQoNCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGxp +bmUtaGVpZ2h0OiAxLjc7IGZvbnQtZmFtaWx5OiBhcmlhbDsgZm9udC1zaXplOiAxNHB4Ij4NCgk8 +ZGl2IHN0eWxlPSJmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250 +LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMS43OyBmb250LXNpemU6IDE0cHg7IGZvbnQt +ZmFtaWx5OiBhcmlhbDsgY29sb3I6IHJnYigwLCAwLCAwKTsgdGV4dC10cmFuc2Zvcm06IG5vbmU7 +IHRleHQtaW5kZW50OiAwcHg7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHdvcmQtc3BhY2luZzog +MHB4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyBvcnBoYW5zOiAyOyB3aWRvd3M6IDI7IGZvbnQtc2l6 +ZS1hZGp1c3Q6IG5vbmU7IGZvbnQtc3RyZXRjaDogbm9ybWFsOyAtd2Via2l0LXRleHQtc2l6ZS1h +ZGp1c3Q6IGF1dG87IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweCI+DQoJCTxkaXY+DQoJ +CQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNz +PSJNc29Ob3JtYWwiIGFsaWduPSJjZW50ZXIiPg0KCQkJPGZvbnQgc2l6ZT0iNSI+DQoJCQk8c3Bh +biBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogutrM5TsgZm9udC13ZWlnaHQ6IDcw +MCI+obbFt8PAvPLRtqG3PC9zcGFuPjwvZm9udD48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGln +bjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJj +ZW50ZXIiPg0KCQkJPGI+PGZvbnQgZmFjZT0iutrM5SI+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFj +azsgZm9udC1zaXplOiAxMnB0Ij4NCgkJCc2218rSxsPxvPLRtjwvc3Bhbj48L2ZvbnQ+PHNwYW4g +c3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+ +o7o8L3NwYW4+PC9iPg0KCQkJPC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxp +bmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQk8 +Yj48Zm9udCBzaXplPSI2Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFt +aWx5OiDLzszlOyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3ciPg0KCQkJotk8L3NwYW4+PC9mb250 +PjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6 +IDEycHQ7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyI+vNPEw7TzwvzKoc2218rSxsPxoaqhqjwv +c3Bhbj48L2I+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBm +b250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVTIj4xODwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6 +IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij7L6tLUyc/X08Wu0OjS +qsrH1NrQo9GnyfqjqTwvc3Bhbj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsg +bGluZS1oZWlnaHQ6IDE3LjI1cHQ7IHRleHQtaW5kZW50OiAtMjFwdDsgbWFyZ2luLWxlZnQ6IDIx +cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xv +cjogYmxhY2s7IGZvbnQtZmFtaWx5OiBXaW5nZGluZ3M7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0i +RU4tVVMiPg0KCQkJbDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWls +eTogy87M5TsgZm9udC1zaXplOiA3cHQiIGxhbmc9IkVOLVVTIj48c3BhbiBjbGFzcz0iQXBwbGUt +Y29udmVydGVkLXNwYWNlIj4NCgkJCTwvc3Bhbj48L3NwYW4+DQoJCQk8c3BhbiBzdHlsZT0iY29s +b3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij7C/MqhzbbXytLG +w/GjqDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7 +IGZvbnQtc2l6ZTogMTJwdCI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+DQoJ +CQk8L3NwYW4+PC9zcGFuPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1p +bHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+DQoJCQm/qsq8yrXQ0MbAt9bU8dPFyerH67XEs8zQ +8jwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZv +bnQtc2l6ZTogMTJwdCI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+DQoJCQk8 +L3NwYW4+PC9zcGFuPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6 +IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+ysq6z9HFy7w8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y +OiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVT +Ij40PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBm +b250LXNpemU6IDEycHQiPrfW0tTJz7XExvPStbjfudyjuzwvc3Bhbj48L3A+DQoJCQk8cCBzdHls +ZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQ7IHRleHQtaW5kZW50OiAt +MjFwdDsgbWFyZ2luLWxlZnQ6IDIxcHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4N +CgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNp +emU6IDEycHQiPrvy1d/U2tOq0rXW0NPQPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7 +IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+Mzwvc3Bh +bj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXpl +OiAxMnB0Ij7E6jwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTog +QXJpYWw7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPjIwJTwvc3Bhbj48c3BhbiBzdHls +ZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij7S1MnP +ucm33bXExvPStbnJtqujqTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZh +bWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPjI8L3NwYW4+PHNwYW4g +c3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+ +1MK33cnqsaijrDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTog +QXJpYWw7IGZvbnQtc2l6ZTogMTJwdCI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFj +ZSI+DQoJCQk8L3NwYW4+PC9zcGFuPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9u +dC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+DQoJCQnEv8ewv8nS1LCyxcW/vLLsvNO3 +1qO7PC9zcGFuPjwvcD4NCgkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdo +dDogMTcuMjVwdDsgdGV4dC1pbmRlbnQ6IC0yMXB0OyBtYXJnaW4tbGVmdDogMjFwdCIgY2xhc3M9 +Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsg +Zm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+DQoJCQm4+b7d0tTN+bC4wP3C/Mqh +0sbD8bbUxvPStcv5tcPLsLrNuPbIy8v5tcPLsLywz+rPuLXEuavLvrbU1cu1pdPQ0qrH86GjPC9z +cGFuPjwvcD4NCgkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMTcu +MjVwdDsgdGV4dC1pbmRlbnQ6IC0yMXB0OyBtYXJnaW4tbGVmdDogMjFwdCIgY2xhc3M9Ik1zb05v +cm1hbCIgYWxpZ249ImxlZnQiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1m +YW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+w7/E6jwvc3Bhbj48c3BhbiBzdHlsZT0iY29s +b3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4t +VVMiPjQwMDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M +5TsgZm9udC1zaXplOiAxMnB0Ij649sP7tu6jrLPJsb48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y +OiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVT +Ij4xNjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5Tsg +Zm9udC1zaXplOiAxMnB0Ij7N8rzTsdKjrNSkvMbKoczhw/vKsbzkPC9zcGFuPjxzcGFuIHN0eWxl +PSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5n +PSJFTi1VUyI+MTI8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6 +IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+uPbUwqGjPC9zcGFuPjwvcD4NCgkJCTxwIHN0eWxlPSJ0 +ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMTcuMjVwdCIgY2xhc3M9Ik1zb05vcm1hbCIg +YWxpZ249ImNlbnRlciI+DQoJCQk8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWls +eTogQXJpYWw7IGZvbnQtc2l6ZTogMTRwdDsgYmFja2dyb3VuZC1jb2xvcjogYXF1YSIgbGFuZz0i +RU4tVVMiPg0KCQkJVklQPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFt +aWx5OiDLzszlOyBmb250LXNpemU6IDE0cHQ7IGJhY2tncm91bmQtY29sb3I6IGFxdWEiPteoz9+j +ujwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZv +bnQtc2l6ZTogMTRwdDsgYmFja2dyb3VuZC1jb2xvcjogYXF1YSIgbGFuZz0iRU4tVVMiPjxzcGFu +IGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPg0KCQkJPC9zcGFuPjEzMzkxNTM5OTg4PC9z +cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNp +emU6IDE0cHQ7IGJhY2tncm91bmQtY29sb3I6IGFxdWEiPqO7PC9zcGFuPjxzcGFuIHN0eWxlPSJj +b2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxNHB0OyBiYWNrZ3Jv +dW5kLWNvbG9yOiBhcXVhIiBsYW5nPSJFTi1VUyI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRl +ZC1zcGFjZSI+DQoJCQk8L3NwYW4+UVE6IDI2NTQwMzU5OTk8L3NwYW4+PC9wPg0KCQkJPHAgc3R5 +bGU9InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9y +bWFsIiBhbGlnbj0iY2VudGVyIj4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQt +ZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDE0cHQ7IGJhY2tncm91bmQtY29sb3I6IGFxdWEiPg0K +CQkJw+K30bXnu7Cjujwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWls +eTogQXJpYWw7IGZvbnQtc2l6ZTogMTRwdDsgYmFja2dyb3VuZC1jb2xvcjogYXF1YSIgbGFuZz0i +RU4tVVMiPjQwMC02ODY5LTY4NTwvc3Bhbj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjog +bGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJjZW50 +ZXIiPqGhPC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAx +Ny4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQk8Yj48Zm9udCBzaXpl +PSI2Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBi +YWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3ciPg0KCQkJoto8L3NwYW4+PC9mb250PjxzcGFuIHN0eWxl +PSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQ7IGJhY2tn +cm91bmQtY29sb3I6IHllbGxvdyI+1+7I3dLXtcTP7sS/oarFt9be0sbD8Twvc3Bhbj48c3BhbiBz +dHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij6j +qDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZv +bnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQt +c3BhY2UiPg0KCQkJPC9zcGFuPjE4PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZv +bnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiPsvq0tTJz9fTxa7Q6NKqtaW2wMnqx+uj +qTwvc3Bhbj48L2I+PC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVp +Z2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQk8c3BhbiBz +dHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij4N +CgkJCcv509C1xMW31t7SxsPxz+7Ev7bU18q98MC01LTDu9PQ0qrH86Os1Nq1sbXY09DJ+rvuoaLJ +z9Gnus2+rcnMtcTIqMD7o7s8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1m +YW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiPjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0 +ZWQtc3BhY2UiPg0KCQkJPC9zcGFuPjwvc3Bhbj4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxh +Y2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiPg0KCQkJxL/HsNfuyMjDxbXE +yP249rn6vNLH6b/2yOfPwqO6PC9zcGFuPjwvcD4NCgkJCTx0YWJsZSBzdHlsZT0iYm9yZGVyLWNv +bGxhcHNlOiBjb2xsYXBzZSIgaWQ9InRhYmxlMSIgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3Jk +ZXI9IjAiIGNlbGxTcGFjaW5nPSIwIiBjZWxsUGFkZGluZz0iMCI+DQoJCQkJPHRyPg0KCQkJCQk8 +dGQgc3R5bGU9IndpZHRoOiA3Ny40cHQ7IGxpbmUtaGVpZ2h0OiAxLjY2NjsgZm9udC1mYW1pbHk6 +IGFyaWFsLCB2ZXJkYW5hLCBzYW5zLXNlcmlmOyBib3JkZXI6IDFwdCBzb2xpZCB3aW5kb3d0ZXh0 +OyBwYWRkaW5nLWxlZnQ6IDUuNHB0OyBwYWRkaW5nLXJpZ2h0OiA1LjRwdDsgcGFkZGluZy10b3A6 +IDBjbTsgcGFkZGluZy1ib3R0b206IDBjbSIgdkFsaWduPSJ0b3AiIHdpZHRoPSIxMDMiPg0KCQkJ +CQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249Imxl +ZnQiPg0KCQkJCQk8Yj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTog +MTJwdCI+ufq80jwvc3Bhbj48L2I+PC90ZD4NCgkJCQkJPHRkIHN0eWxlPSJ3aWR0aDogMTA4cHQ7 +IGxpbmUtaGVpZ2h0OiAxLjY2NjsgZm9udC1mYW1pbHk6IGFyaWFsLCB2ZXJkYW5hLCBzYW5zLXNl +cmlmOyBib3JkZXItbGVmdDogbWVkaXVtIG5vbmUgY3VycmVudENvbG9yOyBib3JkZXItcmlnaHQ6 +IDFwdCBzb2xpZCB3aW5kb3d0ZXh0OyBib3JkZXItdG9wOiAxcHQgc29saWQgd2luZG93dGV4dDsg +Ym9yZGVyLWJvdHRvbTogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IHBhZGRpbmctbGVmdDogNS40cHQ7 +IHBhZGRpbmctcmlnaHQ6IDUuNHB0OyBwYWRkaW5nLXRvcDogMGNtOyBwYWRkaW5nLWJvdHRvbTog +MGNtIiB2QWxpZ249InRvcCIgd2lkdGg9IjE0NCI+DQoJCQkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWdu +OiBsZWZ0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQkJCTxiPjxzcGFuIHN0 +eWxlPSJmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij7Q2dHAwPs8L3NwYW4+PC9i +PjwvdGQ+DQoJCQkJCTx0ZCBzdHlsZT0id2lkdGg6IDEyNnB0OyBsaW5lLWhlaWdodDogMS42NjY7 +IGZvbnQtZmFtaWx5OiBhcmlhbCwgdmVyZGFuYSwgc2Fucy1zZXJpZjsgYm9yZGVyLWxlZnQ6IG1l +ZGl1bSBub25lIGN1cnJlbnRDb2xvcjsgYm9yZGVyLXJpZ2h0OiAxcHQgc29saWQgd2luZG93dGV4 +dDsgYm9yZGVyLXRvcDogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IGJvcmRlci1ib3R0b206IDFwdCBz +b2xpZCB3aW5kb3d0ZXh0OyBwYWRkaW5nLWxlZnQ6IDUuNHB0OyBwYWRkaW5nLXJpZ2h0OiA1LjRw +dDsgcGFkZGluZy10b3A6IDBjbTsgcGFkZGluZy1ib3R0b206IDBjbSIgdkFsaWduPSJ0b3AiIHdp +ZHRoPSIxNjgiPg0KCQkJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdCIgY2xhc3M9Ik1zb05v +cm1hbCIgYWxpZ249ImxlZnQiPg0KCQkJCQk8Yj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvO +zOU7IGZvbnQtc2l6ZTogMTJwdCI+xs/M0dHAPC9zcGFuPjwvYj48L3RkPg0KCQkJCQk8dGQgc3R5 +bGU9IndpZHRoOiAxMTQuN3B0OyBsaW5lLWhlaWdodDogMS42NjY7IGZvbnQtZmFtaWx5OiBhcmlh +bCwgdmVyZGFuYSwgc2Fucy1zZXJpZjsgYm9yZGVyLWxlZnQ6IG1lZGl1bSBub25lIGN1cnJlbnRD +b2xvcjsgYm9yZGVyLXJpZ2h0OiAxcHQgc29saWQgd2luZG93dGV4dDsgYm9yZGVyLXRvcDogMXB0 +IHNvbGlkIHdpbmRvd3RleHQ7IGJvcmRlci1ib3R0b206IDFwdCBzb2xpZCB3aW5kb3d0ZXh0OyBw +YWRkaW5nLWxlZnQ6IDUuNHB0OyBwYWRkaW5nLXJpZ2h0OiA1LjRwdDsgcGFkZGluZy10b3A6IDBj +bTsgcGFkZGluZy1ib3R0b206IDBjbSIgdkFsaWduPSJ0b3AiIHdpZHRoPSIxNTMiPg0KCQkJCQk8 +cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQi +Pg0KCQkJCQk8Yj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJw +dCI+zvew4NHAPC9zcGFuPjwvYj48L3RkPg0KCQkJCTwvdHI+DQoJCQkJPHRyPg0KCQkJCQk8dGQg +c3R5bGU9IndpZHRoOiA3Ny40cHQ7IGxpbmUtaGVpZ2h0OiAxLjY2NjsgZm9udC1mYW1pbHk6IGFy +aWFsLCB2ZXJkYW5hLCBzYW5zLXNlcmlmOyBib3JkZXItbGVmdDogMXB0IHNvbGlkIHdpbmRvd3Rl +eHQ7IGJvcmRlci1yaWdodDogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IGJvcmRlci10b3A6IG1lZGl1 +bSBub25lIGN1cnJlbnRDb2xvcjsgYm9yZGVyLWJvdHRvbTogMXB0IHNvbGlkIHdpbmRvd3RleHQ7 +IHBhZGRpbmctbGVmdDogNS40cHQ7IHBhZGRpbmctcmlnaHQ6IDUuNHB0OyBwYWRkaW5nLXRvcDog +MGNtOyBwYWRkaW5nLWJvdHRvbTogMGNtIiB2QWxpZ249InRvcCIgd2lkdGg9IjEwMyI+DQoJCQkJ +CTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVm +dCI+DQoJCQkJCTxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0 +Ij7NttfKvfC27jwvc3Bhbj48L3RkPg0KCQkJCQk8dGQgc3R5bGU9IndpZHRoOiAxMDhwdDsgbGlu +ZS1oZWlnaHQ6IDEuNjY2OyBmb250LWZhbWlseTogYXJpYWwsIHZlcmRhbmEsIHNhbnMtc2VyaWY7 +IGJvcmRlci1sZWZ0OiBtZWRpdW0gbm9uZSBjdXJyZW50Q29sb3I7IGJvcmRlci1yaWdodDogMXB0 +IHNvbGlkIHdpbmRvd3RleHQ7IGJvcmRlci10b3A6IG1lZGl1bSBub25lIGN1cnJlbnRDb2xvcjsg +Ym9yZGVyLWJvdHRvbTogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IHBhZGRpbmctbGVmdDogNS40cHQ7 +IHBhZGRpbmctcmlnaHQ6IDUuNHB0OyBwYWRkaW5nLXRvcDogMGNtOyBwYWRkaW5nLWJvdHRvbTog +MGNtIiB2QWxpZ249InRvcCIgd2lkdGg9IjE0NCI+DQoJCQkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWdu +OiBsZWZ0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQkJCTxzcGFuIHN0eWxl +PSJmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+DQoJCQkJ +CTI1PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0 +Ij7N8sW31Kq5+tWuPC9zcGFuPjwvdGQ+DQoJCQkJCTx0ZCBzdHlsZT0id2lkdGg6IDEyNnB0OyBs +aW5lLWhlaWdodDogMS42NjY7IGZvbnQtZmFtaWx5OiBhcmlhbCwgdmVyZGFuYSwgc2Fucy1zZXJp +ZjsgYm9yZGVyLWxlZnQ6IG1lZGl1bSBub25lIGN1cnJlbnRDb2xvcjsgYm9yZGVyLXJpZ2h0OiAx +cHQgc29saWQgd2luZG93dGV4dDsgYm9yZGVyLXRvcDogbWVkaXVtIG5vbmUgY3VycmVudENvbG9y +OyBib3JkZXItYm90dG9tOiAxcHQgc29saWQgd2luZG93dGV4dDsgcGFkZGluZy1sZWZ0OiA1LjRw +dDsgcGFkZGluZy1yaWdodDogNS40cHQ7IHBhZGRpbmctdG9wOiAwY207IHBhZGRpbmctYm90dG9t +OiAwY20iIHZBbGlnbj0idG9wIiB3aWR0aD0iMTY4Ij4NCgkJCQkJPHAgc3R5bGU9InRleHQtYWxp +Z246IGxlZnQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCQkJPHNwYW4gc3R5 +bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVTIj4NCgkJ +CQkJNTA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEy +cHQiPs3yxbfUqtLUyc+3v7L6PC9zcGFuPjwvdGQ+DQoJCQkJCTx0ZCBzdHlsZT0id2lkdGg6IDEx +NC43cHQ7IGxpbmUtaGVpZ2h0OiAxLjY2NjsgZm9udC1mYW1pbHk6IGFyaWFsLCB2ZXJkYW5hLCBz +YW5zLXNlcmlmOyBib3JkZXItbGVmdDogbWVkaXVtIG5vbmUgY3VycmVudENvbG9yOyBib3JkZXIt +cmlnaHQ6IDFwdCBzb2xpZCB3aW5kb3d0ZXh0OyBib3JkZXItdG9wOiBtZWRpdW0gbm9uZSBjdXJy +ZW50Q29sb3I7IGJvcmRlci1ib3R0b206IDFwdCBzb2xpZCB3aW5kb3d0ZXh0OyBwYWRkaW5nLWxl +ZnQ6IDUuNHB0OyBwYWRkaW5nLXJpZ2h0OiA1LjRwdDsgcGFkZGluZy10b3A6IDBjbTsgcGFkZGlu +Zy1ib3R0b206IDBjbSIgdkFsaWduPSJ0b3AiIHdpZHRoPSIxNTMiPg0KCQkJCQk8cCBzdHlsZT0i +dGV4dC1hbGlnbjogbGVmdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPg0KCQkJCQk8 +c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4t +VVMiPg0KCQkJCQk1MDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQt +c2l6ZTogMTJwdCI+zfLFt9Sq0tTJz7e/svo8L3NwYW4+PC90ZD4NCgkJCQk8L3RyPg0KCQkJCTx0 +cj4NCgkJCQkJPHRkIHN0eWxlPSJ3aWR0aDogNzcuNHB0OyBsaW5lLWhlaWdodDogMS42NjY7IGZv +bnQtZmFtaWx5OiBhcmlhbCwgdmVyZGFuYSwgc2Fucy1zZXJpZjsgYm9yZGVyLWxlZnQ6IDFwdCBz +b2xpZCB3aW5kb3d0ZXh0OyBib3JkZXItcmlnaHQ6IDFwdCBzb2xpZCB3aW5kb3d0ZXh0OyBib3Jk +ZXItdG9wOiBtZWRpdW0gbm9uZSBjdXJyZW50Q29sb3I7IGJvcmRlci1ib3R0b206IDFwdCBzb2xp +ZCB3aW5kb3d0ZXh0OyBwYWRkaW5nLWxlZnQ6IDUuNHB0OyBwYWRkaW5nLXJpZ2h0OiA1LjRwdDsg +cGFkZGluZy10b3A6IDBjbTsgcGFkZGluZy1ib3R0b206IDBjbSIgdkFsaWduPSJ0b3AiIHdpZHRo +PSIxMDMiPg0KCQkJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdCIgY2xhc3M9Ik1zb05vcm1h +bCIgYWxpZ249ImxlZnQiPg0KCQkJCQk8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZv +bnQtc2l6ZTogMTJwdCI+xuTL+7PJsb48L3NwYW4+PC90ZD4NCgkJCQkJPHRkIHN0eWxlPSJ3aWR0 +aDogMTA4cHQ7IGxpbmUtaGVpZ2h0OiAxLjY2NjsgZm9udC1mYW1pbHk6IGFyaWFsLCB2ZXJkYW5h +LCBzYW5zLXNlcmlmOyBib3JkZXItbGVmdDogbWVkaXVtIG5vbmUgY3VycmVudENvbG9yOyBib3Jk +ZXItcmlnaHQ6IDFwdCBzb2xpZCB3aW5kb3d0ZXh0OyBib3JkZXItdG9wOiBtZWRpdW0gbm9uZSBj +dXJyZW50Q29sb3I7IGJvcmRlci1ib3R0b206IDFwdCBzb2xpZCB3aW5kb3d0ZXh0OyBwYWRkaW5n +LWxlZnQ6IDUuNHB0OyBwYWRkaW5nLXJpZ2h0OiA1LjRwdDsgcGFkZGluZy10b3A6IDBjbTsgcGFk +ZGluZy1ib3R0b206IDBjbSIgdkFsaWduPSJ0b3AiIHdpZHRoPSIxNDQiPg0KCQkJCQk8cCBzdHls +ZT0idGV4dC1hbGlnbjogbGVmdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPg0KCQkJ +CQk8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0i +RU4tVVMiPg0KCQkJCQk0LjU8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBm +b250LXNpemU6IDEycHQiPs3yxbfUqjwvc3Bhbj48L3RkPg0KCQkJCQk8dGQgc3R5bGU9IndpZHRo +OiAxMjZwdDsgbGluZS1oZWlnaHQ6IDEuNjY2OyBmb250LWZhbWlseTogYXJpYWwsIHZlcmRhbmEs +IHNhbnMtc2VyaWY7IGJvcmRlci1sZWZ0OiBtZWRpdW0gbm9uZSBjdXJyZW50Q29sb3I7IGJvcmRl +ci1yaWdodDogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IGJvcmRlci10b3A6IG1lZGl1bSBub25lIGN1 +cnJlbnRDb2xvcjsgYm9yZGVyLWJvdHRvbTogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IHBhZGRpbmct +bGVmdDogNS40cHQ7IHBhZGRpbmctcmlnaHQ6IDUuNHB0OyBwYWRkaW5nLXRvcDogMGNtOyBwYWRk +aW5nLWJvdHRvbTogMGNtIiB2QWxpZ249InRvcCIgd2lkdGg9IjE2OCI+DQoJCQkJCTxwIHN0eWxl +PSJ0ZXh0LWFsaWduOiBsZWZ0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQkJ +CTxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJF +Ti1VUyI+DQoJCQkJCTY8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBmb250 +LXNpemU6IDEycHQiPs3yxbfUqjwvc3Bhbj48L3RkPg0KCQkJCQk8dGQgc3R5bGU9IndpZHRoOiAx +MTQuN3B0OyBsaW5lLWhlaWdodDogMS42NjY7IGZvbnQtZmFtaWx5OiBhcmlhbCwgdmVyZGFuYSwg +c2Fucy1zZXJpZjsgYm9yZGVyLWxlZnQ6IG1lZGl1bSBub25lIGN1cnJlbnRDb2xvcjsgYm9yZGVy +LXJpZ2h0OiAxcHQgc29saWQgd2luZG93dGV4dDsgYm9yZGVyLXRvcDogbWVkaXVtIG5vbmUgY3Vy +cmVudENvbG9yOyBib3JkZXItYm90dG9tOiAxcHQgc29saWQgd2luZG93dGV4dDsgcGFkZGluZy1s +ZWZ0OiA1LjRwdDsgcGFkZGluZy1yaWdodDogNS40cHQ7IHBhZGRpbmctdG9wOiAwY207IHBhZGRp +bmctYm90dG9tOiAwY20iIHZBbGlnbj0idG9wIiB3aWR0aD0iMTUzIj4NCgkJCQkJPHAgc3R5bGU9 +InRleHQtYWxpZ246IGxlZnQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCQkJ +PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVO +LVVTIj4NCgkJCQkJNjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQt +c2l6ZTogMTJwdCI+zfLFt9SqPC9zcGFuPjwvdGQ+DQoJCQkJPC90cj4NCgkJCQk8dHI+DQoJCQkJ +CTx0ZCBzdHlsZT0id2lkdGg6IDc3LjRwdDsgbGluZS1oZWlnaHQ6IDEuNjY2OyBmb250LWZhbWls +eTogYXJpYWwsIHZlcmRhbmEsIHNhbnMtc2VyaWY7IGJvcmRlci1sZWZ0OiAxcHQgc29saWQgd2lu +ZG93dGV4dDsgYm9yZGVyLXJpZ2h0OiAxcHQgc29saWQgd2luZG93dGV4dDsgYm9yZGVyLXRvcDog +bWVkaXVtIG5vbmUgY3VycmVudENvbG9yOyBib3JkZXItYm90dG9tOiAxcHQgc29saWQgd2luZG93 +dGV4dDsgcGFkZGluZy1sZWZ0OiA1LjRwdDsgcGFkZGluZy1yaWdodDogNS40cHQ7IHBhZGRpbmct +dG9wOiAwY207IHBhZGRpbmctYm90dG9tOiAwY20iIHZBbGlnbj0idG9wIiB3aWR0aD0iMTAzIj4N +CgkJCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWdu +PSJsZWZ0Ij4NCgkJCQkJPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6 +IDEycHQiPrSmwO3L2bbIPC9zcGFuPjwvdGQ+DQoJCQkJCTx0ZCBzdHlsZT0id2lkdGg6IDEwOHB0 +OyBsaW5lLWhlaWdodDogMS42NjY7IGZvbnQtZmFtaWx5OiBhcmlhbCwgdmVyZGFuYSwgc2Fucy1z +ZXJpZjsgYm9yZGVyLWxlZnQ6IG1lZGl1bSBub25lIGN1cnJlbnRDb2xvcjsgYm9yZGVyLXJpZ2h0 +OiAxcHQgc29saWQgd2luZG93dGV4dDsgYm9yZGVyLXRvcDogbWVkaXVtIG5vbmUgY3VycmVudENv +bG9yOyBib3JkZXItYm90dG9tOiAxcHQgc29saWQgd2luZG93dGV4dDsgcGFkZGluZy1sZWZ0OiA1 +LjRwdDsgcGFkZGluZy1yaWdodDogNS40cHQ7IHBhZGRpbmctdG9wOiAwY207IHBhZGRpbmctYm90 +dG9tOiAwY20iIHZBbGlnbj0idG9wIiB3aWR0aD0iMTQ0Ij4NCgkJCQkJPHAgc3R5bGU9InRleHQt +YWxpZ246IGxlZnQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCQkJPHNwYW4g +c3R5bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVTIj4N +CgkJCQkJMTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTog +MTJwdCI+uPbUwjwvc3Bhbj48L3RkPg0KCQkJCQk8dGQgc3R5bGU9IndpZHRoOiAxMjZwdDsgbGlu +ZS1oZWlnaHQ6IDEuNjY2OyBmb250LWZhbWlseTogYXJpYWwsIHZlcmRhbmEsIHNhbnMtc2VyaWY7 +IGJvcmRlci1sZWZ0OiBtZWRpdW0gbm9uZSBjdXJyZW50Q29sb3I7IGJvcmRlci1yaWdodDogMXB0 +IHNvbGlkIHdpbmRvd3RleHQ7IGJvcmRlci10b3A6IG1lZGl1bSBub25lIGN1cnJlbnRDb2xvcjsg +Ym9yZGVyLWJvdHRvbTogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IHBhZGRpbmctbGVmdDogNS40cHQ7 +IHBhZGRpbmctcmlnaHQ6IDUuNHB0OyBwYWRkaW5nLXRvcDogMGNtOyBwYWRkaW5nLWJvdHRvbTog +MGNtIiB2QWxpZ249InRvcCIgd2lkdGg9IjE2OCI+DQoJCQkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWdu +OiBsZWZ0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQkJCTxzcGFuIHN0eWxl +PSJmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+DQoJCQkJ +CTI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQi +Prj21MI8L3NwYW4+PC90ZD4NCgkJCQkJPHRkIHN0eWxlPSJ3aWR0aDogMTE0LjdwdDsgbGluZS1o +ZWlnaHQ6IDEuNjY2OyBmb250LWZhbWlseTogYXJpYWwsIHZlcmRhbmEsIHNhbnMtc2VyaWY7IGJv +cmRlci1sZWZ0OiBtZWRpdW0gbm9uZSBjdXJyZW50Q29sb3I7IGJvcmRlci1yaWdodDogMXB0IHNv +bGlkIHdpbmRvd3RleHQ7IGJvcmRlci10b3A6IG1lZGl1bSBub25lIGN1cnJlbnRDb2xvcjsgYm9y +ZGVyLWJvdHRvbTogMXB0IHNvbGlkIHdpbmRvd3RleHQ7IHBhZGRpbmctbGVmdDogNS40cHQ7IHBh +ZGRpbmctcmlnaHQ6IDUuNHB0OyBwYWRkaW5nLXRvcDogMGNtOyBwYWRkaW5nLWJvdHRvbTogMGNt +IiB2QWxpZ249InRvcCIgd2lkdGg9IjE1MyI+DQoJCQkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBs +ZWZ0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQkJCTxzcGFuIHN0eWxlPSJm +b250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij7UpLzGPHNwYW4gbGFuZz0iRU4tVVMi +PjI8L3NwYW4+uPbUwjwvc3Bhbj48L3RkPg0KCQkJCTwvdHI+DQoJCQk8L3RhYmxlPg0KCQkJPHAg +c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNv +Tm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQk8Yj4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxh +Y2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQ7IGJhY2tncm91bmQtY29sb3I6 +IHllbGxvdyI+DQoJCQnEv8ew09C8uLSmxbfW3snM0rW12LL61Lyz9srbo6zE6tfivfA8L3NwYW4+ +PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6 +IDEycHQ7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyIgbGFuZz0iRU4tVVMiPjEwJTxzcGFuIGNs +YXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPg0KCQkJPC9zcGFuPjwvc3Bhbj4NCgkJCTxzcGFu +IHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQ7 +IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyI+DQoJCQmjrDwvc3Bhbj48c3BhbiBzdHlsZT0iY29s +b3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3Vu +ZC1jb2xvcjogeWVsbG93IiBsYW5nPSJFTi1VUyI+MTU8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y +OiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3VuZC1j +b2xvcjogeWVsbG93Ij7E6tLUyc/X4tS8o7u/ydLUyerH6zwvc3Bhbj48c3BhbiBzdHlsZT0iY29s +b3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3Vu +ZC1jb2xvcjogeWVsbG93IiBsYW5nPSJFTi1VUyI+NTAlPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv +cjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQ7IGJhY2tncm91bmQt +Y29sb3I6IHllbGxvdyI+tcTJzNK1tPu/7qOsPC9zcGFuPjwvYj48L3A+DQoJCQk8cCBzdHlsZT0i +dGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwi +IGFsaWduPSJsZWZ0Ij4NCgkJCTxiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9u +dC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93 +Ij4NCgkJCdfbus+72LGozqo8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1m +YW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQ7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyIg +bGFuZz0iRU4tVVMiPjE1JTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZh +bWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3ciPqOs +PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9u +dC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3ciPjxzcGFuIGNsYXNzPSJBcHBs +ZS1jb252ZXJ0ZWQtc3BhY2UiPg0KCQkJPC9zcGFuPjwvc3Bhbj4NCgkJCTxzcGFuIHN0eWxlPSJj +b2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQ7IGJhY2tncm91 +bmQtY29sb3I6IHllbGxvdyI+DQoJCQnG8LK9vNs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBi +bGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQ7IGJhY2tncm91bmQtY29s +b3I6IHllbGxvdyIgbGFuZz0iRU4tVVMiPjgwMDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJs +YWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5kLWNvbG9y +OiB5ZWxsb3ciPs3yxbfUqqGjPC9zcGFuPjwvYj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGln +bjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJj +ZW50ZXIiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFs +OyBmb250LXNpemU6IDE0cHQ7IGJhY2tncm91bmQtY29sb3I6IGFxdWEiIGxhbmc9IkVOLVVTIj4N +CgkJCVZJUDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M +5TsgZm9udC1zaXplOiAxNHB0OyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhIj7XqM/fo7o8L3NwYW4+ +PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6 +IDE0cHQ7IGJhY2tncm91bmQtY29sb3I6IGFxdWEiIGxhbmc9IkVOLVVTIj48c3BhbiBjbGFzcz0i +QXBwbGUtY29udmVydGVkLXNwYWNlIj4NCgkJCTwvc3Bhbj4xMzM5MTUzOTk4ODwvc3Bhbj48c3Bh +biBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxNHB0 +OyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhIj6juzwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJs +YWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTRwdDsgYmFja2dyb3VuZC1jb2xv +cjogYXF1YSIgbGFuZz0iRU4tVVMiPjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui +Pg0KCQkJPC9zcGFuPlFROiAyNjU0MDM1OTk5PC9zcGFuPjwvcD4NCgkJCTxwIHN0eWxlPSJ0ZXh0 +LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMTcuMjVwdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxp +Z249ImNlbnRlciI+oaE8L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1o +ZWlnaHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCTxiPjxm +b250IHNpemU9IjYiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6 +IMvOzOU7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyI+DQoJCQmi2zwvc3Bhbj48L2ZvbnQ+PHNw +YW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJw +dDsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Ij7X7r7AveG1xM/uxL+hqqGqw8C5+s2218rSxsPx +o6g8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBm +b250LXNpemU6IDEycHQ7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyIgbGFuZz0iRU4tVVMiPjxz +cGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPg0KCQkJPC9zcGFuPjIxPC9zcGFuPjxz +cGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEy +cHQ7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyI+y+rS1MnP19PFrtDo0qq1pbbAyerH66OpPC9z +cGFuPjwvYj4NCgkJCTwvcD4NCgkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhl +aWdodDogMTcuMjVwdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPg0KCQkJPHNwYW4g +c3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+ +DQoJCQnDwLn6wsy/qLXEzvzS/cGmzt67sL/Jy7WjrLWrw8C5+s2218rSxsPxz+7Ev7a8yseyu8Tc +09DIzrrOtaOxo7XEyczStdDQzqqjrLzIyLvKx9f2yfrS4r7Nu+HT0Lfnz9Wjuzwvc3Bhbj48L3A+ +DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNs +YXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxh +Y2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiPg0KCQkJvPjT2sf40/LW0NDE +tcS0psDty9m2yLrNyerH68jL1NrP7sS/1tC/ydLU1ca/2LXEs8y2yDxiPqOsztLDx9a7zca89sGs +y/i808PLtcTWsb3TzbbXyrXEz+7Ev6O6PC9iPjwvc3Bhbj48L3A+DQoJCQk8cCBzdHlsZT0idGV4 +dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFs +aWduPSJsZWZ0Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDL +zszlOyBmb250LXNpemU6IDEycHQiPs/uxL/M2LXjo7o8L3NwYW4+PC9wPg0KCQkJPHAgc3R5bGU9 +InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4yNXB0OyB0ZXh0LWluZGVudDogLTIx +cHQ7IG1hcmdpbi1sZWZ0OiAyMXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJ +CQk8Yj4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsg +Zm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+DQoJCQkxLjwvc3Bhbj48L2I+PHNwYW4gc3R5 +bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogN3B0IiBsYW5n +PSJFTi1VUyI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+DQoJCQk8L3NwYW4+ +PC9zcGFuPjxiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFy +aWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVTIj4NCgkJCTEwMCU8L3NwYW4+PHNwYW4g +c3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+ +1rG9082218qhotaxvdO+zdK1oaLJ88X6yrG85LbMo6g8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y +OiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVT +Ij44LTk8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7 +IGZvbnQtc2l6ZTogMTJwdCI+uPbUwqOpo6w8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFj +azsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiPjxzcGFuIGNsYXNzPSJBcHBs +ZS1jb252ZXJ0ZWQtc3BhY2UiPg0KCQkJPC9zcGFuPjwvc3Bhbj4NCgkJCTxzcGFuIHN0eWxlPSJj +b2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiPqO7PC9zcGFu +PjwvYj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3 +LjI1cHQ7IHRleHQtaW5kZW50OiAtMjFwdDsgbWFyZ2luLWxlZnQ6IDIxcHQiIGNsYXNzPSJNc29O +b3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQt +ZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+DQoJCQkyLjwvc3Bh +bj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXpl +OiA3cHQiIGxhbmc9IkVOLVVTIj48c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4N +CgkJCTwvc3Bhbj48L3NwYW4+DQoJCQk8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZh +bWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij7X1NPQPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv +cjogYmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1V +UyI+MTAwJTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M +5TsgZm9udC1zaXplOiAxMnB0Ij61xLL6yKijrDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJs +YWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdCI+PHNwYW4gY2xhc3M9IkFw +cGxlLWNvbnZlcnRlZC1zcGFjZSI+DQoJCQk8L3NwYW4+PC9zcGFuPg0KCQkJPHNwYW4gc3R5bGU9 +ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+ssbO8c3q +yKvNuMP3o6w8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFy +aWFsOyBmb250LXNpemU6IDEycHQiPjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui +Pg0KCQkJPC9zcGFuPjwvc3Bhbj4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQt +ZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiPrfnz9W/yb/Yo7s8L3NwYW4+PC9wPg0KCQkJ +PHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4yNXB0OyB0ZXh0LWlu +ZGVudDogLTIxcHQ7IG1hcmdpbi1sZWZ0OiAyMXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0i +bGVmdCI+DQoJCQk8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7 +IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPg0KCQkJMy48L3NwYW4+PHNwYW4gc3R5bGU9 +ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogN3B0IiBsYW5nPSJF +Ti1VUyI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+DQoJCQk8L3NwYW4+PC9z +cGFuPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZv +bnQtc2l6ZTogMTJwdCI+DQoJCQnWqsP7xrfFxrXEs8nK7MnM0rXEo8q9o6zRz7jxv7y6y7XE1rDS +tb6twO3Iy9b3wO2juzwvc3Bhbj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsg +bGluZS1oZWlnaHQ6IDE3LjI1cHQ7IHRleHQtaW5kZW50OiAtMjFwdDsgbWFyZ2luLWxlZnQ6IDIx +cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xv +cjogYmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1V +UyI+DQoJCQk0Ljwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTog +y87M5TsgZm9udC1zaXplOiA3cHQiIGxhbmc9IkVOLVVTIj48c3BhbiBjbGFzcz0iQXBwbGUtY29u +dmVydGVkLXNwYWNlIj4NCgkJCTwvc3Bhbj48L3NwYW4+DQoJCQk8c3BhbiBzdHlsZT0iY29sb3I6 +IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij4NCgkJCc7lxOq687Cy +yKu1xMrVubq068qpoaM8L3NwYW4+PC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7 +IGxpbmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJ +CQk8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXpl +OiAxMnB0Ij4NCgkJCdaxvdPNttfKz+7Ev8vkyLvKx9fusb+1xLDst6ijrDwvc3Bhbj48c3BhbiBz +dHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdCI+ +PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+DQoJCQk8L3NwYW4+PC9zcGFuPg0K +CQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6 +ZTogMTJwdCI+DQoJCQm1q8rHyerH68jLus3SxsPxucvOysbwwuu/ydLUvOC/2M/uxL+1xL34s8y6 +zdPDuaTIy8r9o6zI57n70aHU8Twvc3Bhbj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjog +bGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0 +Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250 +LXNpemU6IDEycHQiPg0KCQkJusPSxsPxz+7Ev7rNtaOxo8zlz7WjrM2218rP4LbUuPywssiroaM8 +L3NwYW4+PC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAx +Ny4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0iY2VudGVyIj4NCgkJCTxzcGFuIHN0eWxl +PSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxNHB0OyBiYWNr +Z3JvdW5kLWNvbG9yOiBhcXVhIiBsYW5nPSJFTi1VUyI+DQoJCQlWSVA8L3NwYW4+PHNwYW4gc3R5 +bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTRwdDsgYmFj +a2dyb3VuZC1jb2xvcjogYXF1YSI+16jP36O6PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxh +Y2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxNHB0OyBiYWNrZ3JvdW5kLWNvbG9y +OiBhcXVhIiBsYW5nPSJFTi1VUyI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+ +DQoJCQk8L3NwYW4+MTMzOTE1Mzk5ODg8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsg +Zm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTRwdDsgYmFja2dyb3VuZC1jb2xvcjogYXF1 +YSI+o7s8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFs +OyBmb250LXNpemU6IDE0cHQ7IGJhY2tncm91bmQtY29sb3I6IGFxdWEiIGxhbmc9IkVOLVVTIj48 +c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4NCgkJCTwvc3Bhbj5RUTogMjY1NDAz +NTk5OTwvc3Bhbj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWln +aHQ6IDE3LjI1cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJjZW50ZXIiPg0KCQkJPHNwYW4g +c3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTRwdDsg +YmFja2dyb3VuZC1jb2xvcjogYXF1YSI+DQoJCQnD4rfRtee7sDwvc3Bhbj48c3BhbiBzdHlsZT0i +Y29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTRwdDsgYmFja2dy +b3VuZC1jb2xvcjogYXF1YSIgbGFuZz0iRU4tVVMiPjQwMC02ODY5LTY4NTwvc3Bhbj48L3A+DQoJ +CQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQiIGNsYXNz +PSJNc29Ob3JtYWwiIGFsaWduPSJjZW50ZXIiPqGhPC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxp +Z246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0i +bGVmdCI+DQoJCQk8Yj48Zm9udCBzaXplPSI2IiBmYWNlPSK62szlIj4NCgkJCTxzcGFuIHN0eWxl +PSJjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyI+otw8L3NwYW4+PC9mb250 +PjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6 +IDEycHQ7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdyI+w8C5+rG+v8bB9NGnoaqhqrPJuaa687i2 +t9E8L3NwYW4+PC9iPg0KCQkJPC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxp +bmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQk8 +Yj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXpl +OiAxMnB0Ij4NCgkJCdaxzajDwLn6xcXD+7XaPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxh +Y2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+NDk8 +L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQt +c2l6ZTogMTJwdCI+tcTDwLn6tPPRp7arsbG089GnPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjog +YmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+ +d3d3Lm5vcnRoZWFzdGVybi5lZHU8L3NwYW4+PC9iPjwvcD4NCgkJCTxwIHN0eWxlPSJ0ZXh0LWFs +aWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMTcuMjVwdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249 +ImxlZnQiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7 +IGZvbnQtc2l6ZTogMTJwdCI+DQoJCQmxvr/Gx8XBur/Os8yjus3qs8m687Tvtb2xz9K1serXvKOs +vLS/ycnqx+u2q7GxtPPRp7XE0afKv9Gnzrs8L3NwYW4+PC9wPg0KCQkJPHAgc3R5bGU9InRleHQt +YWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGln +bj0ibGVmdCI+DQoJCQk8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M +5TsgZm9udC1zaXplOiAxMnB0Ij7I69GnzPW8/qO6PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjog +YmxhY2s7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+ +VE9FRkw6NjFJYnQoPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5 +OiDLzszlOyBmb250LXNpemU6IDEycHQiPrWlz+6yu7XN09o8L3NwYW4+PHNwYW4gc3R5bGU9ImNv +bG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVO +LVVTIj4xMzwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M +5TsgZm9udC1zaXplOiAxMnB0Ij631qOsxuTW0L/a0+88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y +OiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVT +Ij4xNjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5Tsg +Zm9udC1zaXplOiAxMnB0Ij631ryw0LTX9zwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNr +OyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPjE0PC9z +cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNp +emU6IDEycHQiPrfW0tTJzzwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZh +bWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPilJRUxUUzo2LjAgDQoJ +CQkoPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBm +b250LXNpemU6IDEycHQiPrWlz+6yu7XN09o8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFj +azsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9IkVOLVVTIj41LjUp +PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250 +LXNpemU6IDEycHQiPqO7PC9zcGFuPjwvcD4NCgkJCTxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0 +OyBsaW5lLWhlaWdodDogMTcuMjVwdCIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPg0K +CQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6 +ZTogMTJwdCI+1NrQo7PJvKjGvb75PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZv +bnQtZmFtaWx5OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+ODA8L3NwYW4+ +PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTog +MTJwdCI+t9bS1MnPo6zG5NbQyc/JzNGn1LrL+dPQ16jStaOsvq28w9Gnus29qNb+0afSqsfzxr2+ ++Twvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZv +bnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPjg0PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjog +YmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiPrfW0tTJzzwvc3Bhbj48 +L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1cHQi +IGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xvcjog +YmxhY2s7IGZvbnQtZmFtaWx5OiDLzszlOyBmb250LXNpemU6IDEycHQiPtPFysbXqNK1o7o8L3Nw +YW4+PC9wPg0KCQkJPHAgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4y +NXB0IiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+DQoJCQk8c3BhbiBzdHlsZT0iY29s +b3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij4NCgkJCcnM0rW8 +sMnnu+G/xtGno6y5pLPM0aejrMr90ae8sLzGy+O7+tGno6zO78DtvLDJ+sP8v8bRp6OsyczStdDQ +1f653MDto6y8xsvju/rRp6Os0NDOqsnxvq2/xtGno6w8L3NwYW4+PC9wPg0KCQkJPHAgc3R5bGU9 +InRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxNy4yNXB0IiBjbGFzcz0iTXNvTm9ybWFs +IiBhbGlnbj0ibGVmdCI+DQoJCQk8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWls +eTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij4NCgkJCb6tvMPRp6Osu6/Rp6OsyfrO76OsvfDI2ryw +u+G8xqOsuaSzzNGnPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5 +OiBBcmlhbDsgZm9udC1zaXplOiAxMnB0IiBsYW5nPSJFTi1VUyI+LTwvc3Bhbj48c3BhbiBzdHls +ZT0iY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0Ij7NwcS+ +vLC7t7Gjo6zJ+s7vvLzK9aOsufq8ysrCzvGjrLmks8zRpzwvc3Bhbj48c3BhbiBzdHlsZT0iY29s +b3I6IGJsYWNrOyBmb250LWZhbWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4t +VVMiPi08L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IMvOzOU7 +IGZvbnQtc2l6ZTogMTJwdCI+vMbL47v6z7XNs6OsPC9zcGFuPjwvcD4NCgkJCTxwIHN0eWxlPSJ0 +ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMTcuMjVwdCIgY2xhc3M9Ik1zb05vcm1hbCIg +YWxpZ249ImxlZnQiPg0KCQkJPHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6 +IMvOzOU7IGZvbnQtc2l6ZTogMTJwdCI+0MLOxdGno6y5pLPM0ac8L3NwYW4+PHNwYW4gc3R5bGU9 +ImNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250LXNpemU6IDEycHQiIGxhbmc9 +IkVOLVVTIj4tPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiDL +zszlOyBmb250LXNpemU6IDEycHQiPrXnu/qjrL2hv7W/xtGno6zK/dGno6zO78Dttcihozwvc3Bh +bj48L3A+DQoJCQk8cCBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDE3LjI1 +cHQiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij4NCgkJCTxzcGFuIHN0eWxlPSJjb2xv +cjogcmdiKDMxLCA3MywgMTI1KTsgZm9udC1mYW1pbHk6IENhbGlicmk7IGZvbnQtc2l6ZTogMTJw +dDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxNywgMjE3LCAyMTcpIiBsYW5nPSJFTi1VUyI+DQoJ +CQkyMDE0PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDMxLCA3MywgMTI1KTsgZm9udC1m +YW1pbHk6IENhbGlicmk7IGZvbnQtc2l6ZTogMTJwdCIgbGFuZz0iRU4tVVMiPjxzcGFuIGNsYXNz +PSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPg0KCQkJPC9zcGFuPjwvc3Bhbj4NCgkJCTxzcGFuIHN0 +eWxlPSJjb2xvcjogcmdiKDMxLCA3MywgMTI1KTsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6 +ZTogMTJwdDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxNywgMjE3LCAyMTcpIj4NCgkJCc/EvL48 +L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMzEsIDczLCAxMjUpOyBmb250LWZhbWlseTog +Q2FsaWJyaTsgZm9udC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3LCAyMTcs +IDIxNykiIGxhbmc9IkVOLVVTIj4yMDE0PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDMx +LCA3MywgMTI1KTsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3Vu +ZC1jb2xvcjogcmdiKDIxNywgMjE3LCAyMTcpIj7E6jwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6 +IHJnYigzMSwgNzMsIDEyNSk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpOyBmb250LXNpemU6IDEycHQ7 +IGJhY2tncm91bmQtY29sb3I6IHJnYigyMTcsIDIxNywgMjE3KSIgbGFuZz0iRU4tVVMiPjQ8L3Nw +YW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMzEsIDczLCAxMjUpOyBmb250LWZhbWlseTogy87M +5TsgZm9udC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3LCAyMTcsIDIxNyki +PtTCPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDMxLCA3MywgMTI1KTsgZm9udC1mYW1p +bHk6IENhbGlicmk7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxNywg +MjE3LCAyMTcpIiBsYW5nPSJFTi1VUyI+MzA8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2Io +MzEsIDczLCAxMjUpOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0OyBiYWNrZ3Jv +dW5kLWNvbG9yOiByZ2IoMjE3LCAyMTcsIDIxNykiPsjVyOvRp6O7yerH673Y1rnI1cbazqo8L3Nw +YW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMzEsIDczLCAxMjUpOyBmb250LWZhbWlseTogQ2Fs +aWJyaTsgZm9udC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3LCAyMTcsIDIx +NykiIGxhbmc9IkVOLVVTIj4yMDE0PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDMxLCA3 +MywgMTI1KTsgZm9udC1mYW1pbHk6IMvOzOU7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3VuZC1j +b2xvcjogcmdiKDIxNywgMjE3LCAyMTcpIj7E6jwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJn +YigzMSwgNzMsIDEyNSk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpOyBmb250LXNpemU6IDEycHQ7IGJh +Y2tncm91bmQtY29sb3I6IHJnYigyMTcsIDIxNywgMjE3KSIgbGFuZz0iRU4tVVMiPjI8L3NwYW4+ +PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMzEsIDczLCAxMjUpOyBmb250LWZhbWlseTogy87M5Tsg +Zm9udC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3LCAyMTcsIDIxNykiPtTC +PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDMxLCA3MywgMTI1KTsgZm9udC1mYW1pbHk6 +IENhbGlicmk7IGZvbnQtc2l6ZTogMTJwdDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxNywgMjE3 +LCAyMTcpIiBsYW5nPSJFTi1VUyI+MjY8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMzEs +IDczLCAxMjUpOyBmb250LWZhbWlseTogy87M5TsgZm9udC1zaXplOiAxMnB0OyBiYWNrZ3JvdW5k +LWNvbG9yOiByZ2IoMjE3LCAyMTcsIDIxNykiPsjVPC9zcGFuPjwvZGl2Pg0KCTwvZGl2Pg0KPC9k +aXY+DQoNCjwvYm9keT4NCg0KPC9odG1sPg0KDQo8ZGl2IGlkPSJxcW1haWxfbWFpbGNvbnRhaW5l +ciIgY2xhc3M9Im1haWxjb250YWluZXIiPg0KCTxkaXYgc3R5bGU9IlotSU5ERVg6IDE7IFBPU0lU +SU9OOiByZWxhdGl2ZSIgaWQ9Im1haW5tYWlsIj4NCgkJPGRpdiBzdHlsZT0iWi1JTkRFWDogMTsg +UE9TSVRJT046IHJlbGF0aXZlOyBQQURESU5HLUJPVFRPTTogMTBweDsgTElORS1IRUlHSFQ6IDEu +NzsgUEFERElORy1MRUZUOiAxNXB4OyBQQURESU5HLVJJR0hUOiAxNXB4OyBaT09NOiAxOyBIRUlH +SFQ6IGF1dG87IEZPTlQtU0laRTogMTRweDsgUEFERElORy1UT1A6IDE1cHgiIGlkPSJjb250ZW50 +RGl2IiBjbGFzcz0iYm9keSIgb25jbGljaz0iZ2V0VG9wKCkucHJlU3dhcExpbmsoZXZlbnQsICdo +dG1sJyk7Ij4NCgkJCTxkaXYgc3R5bGU9IlBBRERJTkctQk9UVE9NOiAwcHg7IE1JTi1IRUlHSFQ6 +IDEwMHB4OyBQQURESU5HLUxFRlQ6IDBweDsgUEFERElORy1SSUdIVDogMHB4OyBGT05ULUZBTUlM +WTogJ2x1Y2lkYSBHcmFuZGUnLFZlcmRhbmE7IEhFSUdIVDogYXV0bzsgRk9OVC1TSVpFOiAxNHB4 +OyBNQVJHSU4tUklHSFQ6IDE3MHB4OyBQQURESU5HLVRPUDogMHB4OyBfaGVpZ2h0OiAxMDBweCIg +aWQ9Im1haWxDb250ZW50Q29udGFpbmVyIj4NCgkJCQk8ZGl2Pg0KCQkJCQk8Zm9udCBzdHlsZT0i +TElORS1IRUlHSFQ6IDIzcHgiIGZhY2U9IlRpbWVzIE5ldyBSb21hbiI+DQoJCQkJCTxzcGFuIHN0 +eWxlPSJGT05ULVNJWkU6IDEycHQiIGxhbmc9IkVOLVVTIj4NCgkJCQkJLS0t08mhsM/6ytvQzaGx +tb2hsLncwO3QzaGx1Nm1vaGwvq3TqtDNobG16rOktcTI/by2zPg8YnI+DQoJCQkJCTXE6sqxvOTA +76OsztLDx7f+zvHByzMwMDC24LzSw8W16qOs19+3w8HLyKu5+s7eyv2087Tz0KHQobXEw8W16qOs +ztLDx7eiz9a16rOkxtWx6bTm1NrS1M/CwKe78zo8YnI+DQoJCQkJCTxmb250IGNvbG9yPSIjMDAw +MEZGIj6h9Mjnus7M4cn9ubXNqNCttffBpqO/PGJyPg0KCQkJCQmh9Mjnus7M4cn91rTQ0MGmo788 +YnI+DQoJCQkJCaH0yOe6ztPQ0Ke8pMD4sr/K9KO/PGJyPg0KCQkJCQmh9Mjnus7T0NCnvcy1vMXg +0/2yv8r0o788YnI+DQoJCQkJCaH0yOe6zrSmwO3P1rOhzbu3osrCvP6jvzxicj4NCgkJCQkJofTI +57rOtPiz9tK71qfT0LvuwaajrNPQxP2+28Gmo6y439K1vKi1xMPFterNxbbTo788YnI+DQoJCQkJ +CaH0yOe6zrj5vt3DxbXqyv2+3bfWzvajrNPQ0Ke9+NDQu/XGt7X31fujrL21tc2/4rTmo788YnI+ +DQoJCQkJCTwvZm9udD6hraGtPGJyPg0KCQkJCQk8YnI+DQoJCQkJCcC0sMmjobyvtcLE3NOqz/rR +p9S60dC3orXEoba08tTsvfDFxrXqs6TM2NG106qht7/Os8yjrL38xOrOqtbQufrDxbXqxeDR+MHL +ODAwMLbgw/vTxdDjteqzpKGjsb6/zrPMzqrE+szhuakxObj2yrXTw8Lktdi5pL7fo6yhsLvYyKW+ +zcTc08OjrNDQtq++zbz70KehsaOsysexvrTOteqzpNG1wbfTqrXE1+6088L0teOho7/Os8zWrs3i +tcS+rdOqudzA7c7KzOKjrL2yyqa7ub/J0tTT68T61/e49tDUu6/MvczWo6y/zrPMveHK+MqxMTAw +Jc6qxPq94r72o6zV4srHztLDx72yyqbNxbbT0ru54bXEt/7O8df3t+ehozxwPg0KCQkJCQk8YnI+ +DQoJCQkJCTxmb250IGNvbG9yPSIjMDAwMEZGIj6hvr/Os8zKsbzkob88L2ZvbnQ+ONTCOS0xMMjV +uePW3SANCgkJCQkJoaGhoTjUwjIzLTI0yNXO5Lq6oaGhoTEw1MIyNaOtMjbI1cnu29qhoaGhMTHU +wjejrTjI1cnPuqOhoaGhMTLUwjajrTfI1bnj1t08YnI+DQoJCQkJCTxmb250IGNvbG9yPSIjMDAw +MEZGIj6hvsrav87Qzsq9ob88L2ZvbnQ+vbLKpr2yytorvcfJq7Dn0d0rx+m+s8rTxrUr0KHX6dHQ +zNYrzcW207fWz+0rvbLKprXjxsA8YnI+DQoJCQkJCTxmb250IGNvbG9yPSIjMDAwMEZGIj6hvr/O +s8y21M/zob88L2ZvbnQ+tKKxuLXqs6ShotDCyM616rOkoaLV/bixteqzpKGiw8W16r6twO2hosf4 +0/K2vbW8oaLTqtTLvq3A7bXIPGJyPg0KCQkJCQk8Zm9udCBjb2xvcj0iIzAwMDBGRiI+ob7Bqs+1 +t73KvaG/PC9mb250PjQwMC03ODgtMTk5M6GhUVE6MTU3MTk5MTYwMMfx0KG946GhUVE6OTA4MjA0 +NzQ30c/Qob3jPGJyPg0KCQkJCQk8Zm9udCBjb2xvcj0iIzAwMDBGRiI+ob6/zrPMxNrI3aG/PC9m +b250Pru20621x8K9PGZvbnQgY29sb3I9IiMwMDAwRkYiPmh0dHA6Ly93d3cuNTFqZG4uY29tPC9m +b250PrLp1MQ8L3NwYW4+PC9mb250PjwvZGl2Pg0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCTwvZGl2 +Pg0KPC9kaXY+DQoNCjwvYm9keT4NCg0KPC9odG1sPg0K + diff --git a/test/unit/email_parser_test.rb b/test/unit/email_parser_test.rb index ac5dba79c..836fef9a3 100644 --- a/test/unit/email_parser_test.rb +++ b/test/unit/email_parser_test.rb @@ -349,6 +349,17 @@ Hof :to => 'sales@znuny.org', }, }, + { + :data => IO.read('test/fixtures/mail19.box'), + :body_md5 => '2fa47e9122f4c1b9c5057400529c7567', + :params => { + :from => '"我" <>', + :from_email => '"=?GB2312?B?ztI=?=" <>', + :from_display_name => '', + :subject => '《欧美简讯》', + :to => '377861373 <377861373@qq.com>', + }, + }, ] files.each { |file| @@ -367,7 +378,7 @@ Hof # puts '++' + file[:params][key.to_sym].to_s + '++' assert_equal( Digest::MD5.hexdigest( file[:params][key.to_sym].to_s ), Digest::MD5.hexdigest( data[:body].to_s ) ) else - assert_equal( file[:params][key.to_sym], data[key.to_sym] ) + assert_equal( file[:params][key.to_sym], data[key.to_sym], "check #{key}" ) end }