From bb92c5722726558de69e02a9cd717cf4b12030a9 Mon Sep 17 00:00:00 2001 From: pplokijuhyg <1162963624@qq.com> Date: Tue, 24 Dec 2019 14:08:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8A=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/order/commodity/index.js | 17 +- components/order/commodity/index.wxml | 8 +- components/order/tab/index.js | 24 +- components/order/tab/index.wxml | 18 +- components/particulars/content/index.js | 7 + components/particulars/content/index.wxml | 16 +- .../particulars/orderchooseaddr/index.js | 3 + .../particulars/orderchooseaddr/index.wxml | 4 +- pages/particulars/particulars.js | 18 +- pages/particulars/particulars.wxml | 4 +- pages/receiving/receiving.js | 18 +- pages/receiving/receiving.wxml | 4 +- pages/undetermined/undetermined.js | 20 +- pages/undetermined/undetermined.wxml | 4 +- utils/bin.js | 2 +- utils/wxParse/emojis/00.gif | Bin 0 -> 1810 bytes utils/wxParse/emojis/01.gif | Bin 0 -> 1582 bytes utils/wxParse/emojis/02.gif | Bin 0 -> 1804 bytes utils/wxParse/emojis/03.gif | Bin 0 -> 1852 bytes utils/wxParse/emojis/04.gif | Bin 0 -> 1977 bytes utils/wxParse/emojis/05.gif | Bin 0 -> 1866 bytes utils/wxParse/emojis/06.gif | Bin 0 -> 3556 bytes utils/wxParse/emojis/07.gif | Bin 0 -> 3929 bytes utils/wxParse/emojis/08.gif | Bin 0 -> 4679 bytes utils/wxParse/emojis/09.gif | Bin 0 -> 3298 bytes utils/wxParse/emojis/10.gif | Bin 0 -> 3716 bytes utils/wxParse/emojis/100.gif | Bin 0 -> 1780 bytes utils/wxParse/emojis/101.gif | Bin 0 -> 2443 bytes utils/wxParse/emojis/102.gif | Bin 0 -> 1446 bytes utils/wxParse/emojis/103.gif | Bin 0 -> 2166 bytes utils/wxParse/emojis/104.gif | Bin 0 -> 2169 bytes utils/wxParse/emojis/105.gif | Bin 0 -> 1277 bytes utils/wxParse/emojis/106.gif | Bin 0 -> 1041 bytes utils/wxParse/emojis/107.gif | Bin 0 -> 1058 bytes utils/wxParse/emojis/108.gif | Bin 0 -> 1046 bytes utils/wxParse/emojis/109.gif | Bin 0 -> 1081 bytes utils/wxParse/emojis/11.gif | Bin 0 -> 8033 bytes utils/wxParse/emojis/110.gif | Bin 0 -> 1082 bytes utils/wxParse/emojis/111.gif | Bin 0 -> 1039 bytes utils/wxParse/emojis/112.gif | Bin 0 -> 1111 bytes utils/wxParse/emojis/113.gif | Bin 0 -> 1015 bytes utils/wxParse/emojis/114.gif | Bin 0 -> 1003 bytes utils/wxParse/emojis/115.gif | Bin 0 -> 1061 bytes utils/wxParse/emojis/116.gif | Bin 0 -> 996 bytes utils/wxParse/emojis/117.gif | Bin 0 -> 1041 bytes utils/wxParse/emojis/118.gif | Bin 0 -> 1012 bytes utils/wxParse/emojis/119.gif | Bin 0 -> 1101 bytes utils/wxParse/emojis/12.gif | Bin 0 -> 2247 bytes utils/wxParse/emojis/120.gif | Bin 0 -> 1008 bytes utils/wxParse/emojis/121.gif | Bin 0 -> 1060 bytes utils/wxParse/emojis/122.gif | Bin 0 -> 999 bytes utils/wxParse/emojis/123.gif | Bin 0 -> 1055 bytes utils/wxParse/emojis/124.gif | Bin 0 -> 1022 bytes utils/wxParse/emojis/125.gif | Bin 0 -> 1013 bytes utils/wxParse/emojis/126.gif | Bin 0 -> 1030 bytes utils/wxParse/emojis/127.gif | Bin 0 -> 956 bytes utils/wxParse/emojis/128.gif | Bin 0 -> 1022 bytes utils/wxParse/emojis/129.gif | Bin 0 -> 972 bytes utils/wxParse/emojis/13.gif | Bin 0 -> 1736 bytes utils/wxParse/emojis/130.gif | Bin 0 -> 980 bytes utils/wxParse/emojis/131.gif | Bin 0 -> 945 bytes utils/wxParse/emojis/132.gif | Bin 0 -> 936 bytes utils/wxParse/emojis/133.gif | Bin 0 -> 1012 bytes utils/wxParse/emojis/134.gif | Bin 0 -> 968 bytes utils/wxParse/emojis/14.gif | Bin 0 -> 4006 bytes utils/wxParse/emojis/15.gif | Bin 0 -> 1562 bytes utils/wxParse/emojis/16.gif | Bin 0 -> 1413 bytes utils/wxParse/emojis/17.gif | Bin 0 -> 3366 bytes utils/wxParse/emojis/18.gif | Bin 0 -> 8137 bytes utils/wxParse/emojis/19.gif | Bin 0 -> 8135 bytes utils/wxParse/emojis/20.gif | Bin 0 -> 1808 bytes utils/wxParse/emojis/21.gif | Bin 0 -> 1864 bytes utils/wxParse/emojis/22.gif | Bin 0 -> 3010 bytes utils/wxParse/emojis/23.gif | Bin 0 -> 1950 bytes utils/wxParse/emojis/24.gif | Bin 0 -> 2257 bytes utils/wxParse/emojis/25.gif | Bin 0 -> 2446 bytes utils/wxParse/emojis/26.gif | Bin 0 -> 4014 bytes utils/wxParse/emojis/27.gif | Bin 0 -> 2893 bytes utils/wxParse/emojis/28.gif | Bin 0 -> 3262 bytes utils/wxParse/emojis/29.gif | Bin 0 -> 5861 bytes utils/wxParse/emojis/30.gif | Bin 0 -> 1780 bytes utils/wxParse/emojis/31.gif | Bin 0 -> 5174 bytes utils/wxParse/emojis/32.gif | Bin 0 -> 7189 bytes utils/wxParse/emojis/33.gif | Bin 0 -> 4317 bytes utils/wxParse/emojis/34.gif | Bin 0 -> 2140 bytes utils/wxParse/emojis/35.gif | Bin 0 -> 13392 bytes utils/wxParse/emojis/36.gif | Bin 0 -> 1417 bytes utils/wxParse/emojis/37.gif | Bin 0 -> 1195 bytes utils/wxParse/emojis/38.gif | Bin 0 -> 1674 bytes utils/wxParse/emojis/39.gif | Bin 0 -> 1798 bytes utils/wxParse/emojis/40.gif | Bin 0 -> 10092 bytes utils/wxParse/emojis/41.gif | Bin 0 -> 3368 bytes utils/wxParse/emojis/42.gif | Bin 0 -> 13367 bytes utils/wxParse/emojis/43.gif | Bin 0 -> 4327 bytes utils/wxParse/emojis/44.gif | Bin 0 -> 1571 bytes utils/wxParse/emojis/45.gif | Bin 0 -> 4692 bytes utils/wxParse/emojis/46.gif | Bin 0 -> 5162 bytes utils/wxParse/emojis/47.gif | Bin 0 -> 3685 bytes utils/wxParse/emojis/48.gif | Bin 0 -> 1755 bytes utils/wxParse/emojis/49.gif | Bin 0 -> 6361 bytes utils/wxParse/emojis/50.gif | Bin 0 -> 3073 bytes utils/wxParse/emojis/51.gif | Bin 0 -> 3731 bytes utils/wxParse/emojis/52.gif | Bin 0 -> 1532 bytes utils/wxParse/emojis/53.gif | Bin 0 -> 2056 bytes utils/wxParse/emojis/54.gif | Bin 0 -> 2362 bytes utils/wxParse/emojis/55.gif | Bin 0 -> 1582 bytes utils/wxParse/emojis/56.gif | Bin 0 -> 1170 bytes utils/wxParse/emojis/57.gif | Bin 0 -> 5072 bytes utils/wxParse/emojis/58.gif | Bin 0 -> 2596 bytes utils/wxParse/emojis/59.gif | Bin 0 -> 1533 bytes utils/wxParse/emojis/60.gif | Bin 0 -> 2667 bytes utils/wxParse/emojis/61.gif | Bin 0 -> 1136 bytes utils/wxParse/emojis/62.gif | Bin 0 -> 1269 bytes utils/wxParse/emojis/63.gif | Bin 0 -> 971 bytes utils/wxParse/emojis/64.gif | Bin 0 -> 988 bytes utils/wxParse/emojis/65.gif | Bin 0 -> 5285 bytes utils/wxParse/emojis/66.gif | Bin 0 -> 1159 bytes utils/wxParse/emojis/67.gif | Bin 0 -> 2746 bytes utils/wxParse/emojis/68.gif | Bin 0 -> 4148 bytes utils/wxParse/emojis/69.gif | Bin 0 -> 1015 bytes utils/wxParse/emojis/70.gif | Bin 0 -> 1162 bytes utils/wxParse/emojis/71.gif | Bin 0 -> 824 bytes utils/wxParse/emojis/72.gif | Bin 0 -> 3679 bytes utils/wxParse/emojis/73.gif | Bin 0 -> 2195 bytes utils/wxParse/emojis/74.gif | Bin 0 -> 2454 bytes utils/wxParse/emojis/75.gif | Bin 0 -> 1222 bytes utils/wxParse/emojis/76.gif | Bin 0 -> 1211 bytes utils/wxParse/emojis/77.gif | Bin 0 -> 1151 bytes utils/wxParse/emojis/78.gif | Bin 0 -> 1565 bytes utils/wxParse/emojis/79.gif | Bin 0 -> 1518 bytes utils/wxParse/emojis/80.gif | Bin 0 -> 1537 bytes utils/wxParse/emojis/81.gif | Bin 0 -> 1591 bytes utils/wxParse/emojis/82.gif | Bin 0 -> 1547 bytes utils/wxParse/emojis/83.gif | Bin 0 -> 1591 bytes utils/wxParse/emojis/84.gif | Bin 0 -> 3424 bytes utils/wxParse/emojis/85.gif | Bin 0 -> 1581 bytes utils/wxParse/emojis/86.gif | Bin 0 -> 1519 bytes utils/wxParse/emojis/87.gif | Bin 0 -> 1558 bytes utils/wxParse/emojis/88.gif | Bin 0 -> 2134 bytes utils/wxParse/emojis/89.gif | Bin 0 -> 1219 bytes utils/wxParse/emojis/90.gif | Bin 0 -> 2743 bytes utils/wxParse/emojis/91.gif | Bin 0 -> 654 bytes utils/wxParse/emojis/92.gif | Bin 0 -> 1377 bytes utils/wxParse/emojis/93.gif | Bin 0 -> 1119 bytes utils/wxParse/emojis/94.gif | Bin 0 -> 3426 bytes utils/wxParse/emojis/95.gif | Bin 0 -> 3011 bytes utils/wxParse/emojis/96.gif | Bin 0 -> 1796 bytes utils/wxParse/emojis/97.gif | Bin 0 -> 5300 bytes utils/wxParse/emojis/98.gif | Bin 0 -> 1629 bytes utils/wxParse/emojis/99.gif | Bin 0 -> 2261 bytes utils/wxParse/html2json.js | 303 ++ utils/wxParse/htmlparser.js | 192 ++ utils/wxParse/showdown.js | 2532 +++++++++++++++++ utils/wxParse/wxDiscode.js | 207 ++ utils/wxParse/wxParse.js | 159 ++ utils/wxParse/wxParse.wxml | 967 +++++++ utils/wxParse/wxParse.wxss | 206 ++ 157 files changed, 4694 insertions(+), 39 deletions(-) create mode 100644 utils/wxParse/emojis/00.gif create mode 100644 utils/wxParse/emojis/01.gif create mode 100644 utils/wxParse/emojis/02.gif create mode 100644 utils/wxParse/emojis/03.gif create mode 100644 utils/wxParse/emojis/04.gif create mode 100644 utils/wxParse/emojis/05.gif create mode 100644 utils/wxParse/emojis/06.gif create mode 100644 utils/wxParse/emojis/07.gif create mode 100644 utils/wxParse/emojis/08.gif create mode 100644 utils/wxParse/emojis/09.gif create mode 100644 utils/wxParse/emojis/10.gif create mode 100644 utils/wxParse/emojis/100.gif create mode 100644 utils/wxParse/emojis/101.gif create mode 100644 utils/wxParse/emojis/102.gif create mode 100644 utils/wxParse/emojis/103.gif create mode 100644 utils/wxParse/emojis/104.gif create mode 100644 utils/wxParse/emojis/105.gif create mode 100644 utils/wxParse/emojis/106.gif create mode 100644 utils/wxParse/emojis/107.gif create mode 100644 utils/wxParse/emojis/108.gif create mode 100644 utils/wxParse/emojis/109.gif create mode 100644 utils/wxParse/emojis/11.gif create mode 100644 utils/wxParse/emojis/110.gif create mode 100644 utils/wxParse/emojis/111.gif create mode 100644 utils/wxParse/emojis/112.gif create mode 100644 utils/wxParse/emojis/113.gif create mode 100644 utils/wxParse/emojis/114.gif create mode 100644 utils/wxParse/emojis/115.gif create mode 100644 utils/wxParse/emojis/116.gif create mode 100644 utils/wxParse/emojis/117.gif create mode 100644 utils/wxParse/emojis/118.gif create mode 100644 utils/wxParse/emojis/119.gif create mode 100644 utils/wxParse/emojis/12.gif create mode 100644 utils/wxParse/emojis/120.gif create mode 100644 utils/wxParse/emojis/121.gif create mode 100644 utils/wxParse/emojis/122.gif create mode 100644 utils/wxParse/emojis/123.gif create mode 100644 utils/wxParse/emojis/124.gif create mode 100644 utils/wxParse/emojis/125.gif create mode 100644 utils/wxParse/emojis/126.gif create mode 100644 utils/wxParse/emojis/127.gif create mode 100644 utils/wxParse/emojis/128.gif create mode 100644 utils/wxParse/emojis/129.gif create mode 100644 utils/wxParse/emojis/13.gif create mode 100644 utils/wxParse/emojis/130.gif create mode 100644 utils/wxParse/emojis/131.gif create mode 100644 utils/wxParse/emojis/132.gif create mode 100644 utils/wxParse/emojis/133.gif create mode 100644 utils/wxParse/emojis/134.gif create mode 100644 utils/wxParse/emojis/14.gif create mode 100644 utils/wxParse/emojis/15.gif create mode 100644 utils/wxParse/emojis/16.gif create mode 100644 utils/wxParse/emojis/17.gif create mode 100644 utils/wxParse/emojis/18.gif create mode 100644 utils/wxParse/emojis/19.gif create mode 100644 utils/wxParse/emojis/20.gif create mode 100644 utils/wxParse/emojis/21.gif create mode 100644 utils/wxParse/emojis/22.gif create mode 100644 utils/wxParse/emojis/23.gif create mode 100644 utils/wxParse/emojis/24.gif create mode 100644 utils/wxParse/emojis/25.gif create mode 100644 utils/wxParse/emojis/26.gif create mode 100644 utils/wxParse/emojis/27.gif create mode 100644 utils/wxParse/emojis/28.gif create mode 100644 utils/wxParse/emojis/29.gif create mode 100644 utils/wxParse/emojis/30.gif create mode 100644 utils/wxParse/emojis/31.gif create mode 100644 utils/wxParse/emojis/32.gif create mode 100644 utils/wxParse/emojis/33.gif create mode 100644 utils/wxParse/emojis/34.gif create mode 100644 utils/wxParse/emojis/35.gif create mode 100644 utils/wxParse/emojis/36.gif create mode 100644 utils/wxParse/emojis/37.gif create mode 100644 utils/wxParse/emojis/38.gif create mode 100644 utils/wxParse/emojis/39.gif create mode 100644 utils/wxParse/emojis/40.gif create mode 100644 utils/wxParse/emojis/41.gif create mode 100644 utils/wxParse/emojis/42.gif create mode 100644 utils/wxParse/emojis/43.gif create mode 100644 utils/wxParse/emojis/44.gif create mode 100644 utils/wxParse/emojis/45.gif create mode 100644 utils/wxParse/emojis/46.gif create mode 100644 utils/wxParse/emojis/47.gif create mode 100644 utils/wxParse/emojis/48.gif create mode 100644 utils/wxParse/emojis/49.gif create mode 100644 utils/wxParse/emojis/50.gif create mode 100644 utils/wxParse/emojis/51.gif create mode 100644 utils/wxParse/emojis/52.gif create mode 100644 utils/wxParse/emojis/53.gif create mode 100644 utils/wxParse/emojis/54.gif create mode 100644 utils/wxParse/emojis/55.gif create mode 100644 utils/wxParse/emojis/56.gif create mode 100644 utils/wxParse/emojis/57.gif create mode 100644 utils/wxParse/emojis/58.gif create mode 100644 utils/wxParse/emojis/59.gif create mode 100644 utils/wxParse/emojis/60.gif create mode 100644 utils/wxParse/emojis/61.gif create mode 100644 utils/wxParse/emojis/62.gif create mode 100644 utils/wxParse/emojis/63.gif create mode 100644 utils/wxParse/emojis/64.gif create mode 100644 utils/wxParse/emojis/65.gif create mode 100644 utils/wxParse/emojis/66.gif create mode 100644 utils/wxParse/emojis/67.gif create mode 100644 utils/wxParse/emojis/68.gif create mode 100644 utils/wxParse/emojis/69.gif create mode 100644 utils/wxParse/emojis/70.gif create mode 100644 utils/wxParse/emojis/71.gif create mode 100644 utils/wxParse/emojis/72.gif create mode 100644 utils/wxParse/emojis/73.gif create mode 100644 utils/wxParse/emojis/74.gif create mode 100644 utils/wxParse/emojis/75.gif create mode 100644 utils/wxParse/emojis/76.gif create mode 100644 utils/wxParse/emojis/77.gif create mode 100644 utils/wxParse/emojis/78.gif create mode 100644 utils/wxParse/emojis/79.gif create mode 100644 utils/wxParse/emojis/80.gif create mode 100644 utils/wxParse/emojis/81.gif create mode 100644 utils/wxParse/emojis/82.gif create mode 100644 utils/wxParse/emojis/83.gif create mode 100644 utils/wxParse/emojis/84.gif create mode 100644 utils/wxParse/emojis/85.gif create mode 100644 utils/wxParse/emojis/86.gif create mode 100644 utils/wxParse/emojis/87.gif create mode 100644 utils/wxParse/emojis/88.gif create mode 100644 utils/wxParse/emojis/89.gif create mode 100644 utils/wxParse/emojis/90.gif create mode 100644 utils/wxParse/emojis/91.gif create mode 100644 utils/wxParse/emojis/92.gif create mode 100644 utils/wxParse/emojis/93.gif create mode 100644 utils/wxParse/emojis/94.gif create mode 100644 utils/wxParse/emojis/95.gif create mode 100644 utils/wxParse/emojis/96.gif create mode 100644 utils/wxParse/emojis/97.gif create mode 100644 utils/wxParse/emojis/98.gif create mode 100644 utils/wxParse/emojis/99.gif create mode 100644 utils/wxParse/html2json.js create mode 100644 utils/wxParse/htmlparser.js create mode 100644 utils/wxParse/showdown.js create mode 100644 utils/wxParse/wxDiscode.js create mode 100644 utils/wxParse/wxParse.js create mode 100644 utils/wxParse/wxParse.wxml create mode 100644 utils/wxParse/wxParse.wxss diff --git a/components/order/commodity/index.js b/components/order/commodity/index.js index f639a85..f6bcaab 100644 --- a/components/order/commodity/index.js +++ b/components/order/commodity/index.js @@ -5,13 +5,22 @@ Component({ cprice: String, freight: String, goods: Array, - gid: String + gid: String, + type:String }, data: {}, methods: { - todetail() { - wx.navigateTo({ - url: "/pages/undetermined/undetermined" + shouhuo(){ + bin.getuserid().then((id)=>{ + bin.request({ + url:"User/orderConfirm", + urldata:{ + user_id:id, + order_id:this.data.gid + } + }).then((res)=>{ + console.log(res) + }) }) }, cancel() { diff --git a/components/order/commodity/index.wxml b/components/order/commodity/index.wxml index 2efdcc5..01029ef 100644 --- a/components/order/commodity/index.wxml +++ b/components/order/commodity/index.wxml @@ -1,12 +1,16 @@ - + 共计{{num}}件商品 合计: ¥{{cprice}} (含运费¥{{freight}}) - + 取消订单 立即付款 + + + 确认收货 + \ No newline at end of file diff --git a/components/order/tab/index.js b/components/order/tab/index.js index 6cf9191..7efd408 100644 --- a/components/order/tab/index.js +++ b/components/order/tab/index.js @@ -5,6 +5,25 @@ Component({ data: { }, methods: { + receivingw(a){ + // receiving + wx.navigateTo({ + url: "/pages/receiving/receiving?id=" + a.target.dataset.id + }) + }, + receivings(a){ + console.log(a) + wx.navigateTo({ + url: "/pages/undetermined/undetermined?id=" + a.target.dataset.id + }) + }, + todetail(a) { + console.log(a) + // return ; + wx.navigateTo({ + url: "/pages/particulars/particulars?id=" + a.target.dataset.id + }) + }, getorder(res){ bin.request({ url:"User/getOrderList", @@ -76,7 +95,10 @@ Component({ bin.getuserid().then((res)=>{ this.getorder(res) }) - } + } , + receiving(){ + + } }, ready(){ diff --git a/components/order/tab/index.wxml b/components/order/tab/index.wxml index b69a174..aeded25 100644 --- a/components/order/tab/index.wxml +++ b/components/order/tab/index.wxml @@ -1,17 +1,17 @@ - - + + - - + + - - + + - - + + - + \ No newline at end of file diff --git a/components/particulars/content/index.js b/components/particulars/content/index.js index c0c906a..9218396 100644 --- a/components/particulars/content/index.js +++ b/components/particulars/content/index.js @@ -1,5 +1,12 @@ Component({ properties: { + num:String, + price:String, + cprice:String, + number:String, + time:String, + text:String, + goods:Array }, data: { }, diff --git a/components/particulars/content/index.wxml b/components/particulars/content/index.wxml index fbc9389..5bdcc1e 100644 --- a/components/particulars/content/index.wxml +++ b/components/particulars/content/index.wxml @@ -1,24 +1,24 @@ - + - 共计1件商品 合计: - ¥29.80 - (含运费¥0.00) + 共计{{num}}件商品 合计: + ¥{{price}} + (含运费¥{{cprice}}) 订单编号 - 123456789123456789 + {{number}} 下单时间 - 2018-10-01 18:00:06 + {{time}} 配送方式 - 快递 免邮 + 快递 备注: - + \ No newline at end of file diff --git a/components/particulars/orderchooseaddr/index.js b/components/particulars/orderchooseaddr/index.js index c0c906a..744eb67 100644 --- a/components/particulars/orderchooseaddr/index.js +++ b/components/particulars/orderchooseaddr/index.js @@ -1,5 +1,8 @@ Component({ properties: { + name:String, + phone:String, + addr:String }, data: { }, diff --git a/components/particulars/orderchooseaddr/index.wxml b/components/particulars/orderchooseaddr/index.wxml index 2d66d94..c0f2cc9 100644 --- a/components/particulars/orderchooseaddr/index.wxml +++ b/components/particulars/orderchooseaddr/index.wxml @@ -1,10 +1,10 @@ - 于于宇 15698857895 + {{name}} {{phone}} - 中国大陆 山东省 青岛市 即墨区 纯阳路 某某某小区 + {{addr}} \ No newline at end of file diff --git a/pages/particulars/particulars.js b/pages/particulars/particulars.js index 7fa2afd..fd773d5 100644 --- a/pages/particulars/particulars.js +++ b/pages/particulars/particulars.js @@ -1,18 +1,32 @@ // pages/particulars/particulars.js +import bin from "../../utils/bin" Page({ /** * 页面的初始数据 */ data: { - + list:{} }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { - + bin.getuserid().then((id)=>{ + bin.request({ + url:"User/getOrderDetail", + data:{ + user_id:id, + id:options.id + } + }).then((res)=>{ + console.log(res) + this.setData({ + list:res.data.result + }) + }) + }) }, /** diff --git a/pages/particulars/particulars.wxml b/pages/particulars/particulars.wxml index 3e18fc5..bb788fb 100644 --- a/pages/particulars/particulars.wxml +++ b/pages/particulars/particulars.wxml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/pages/receiving/receiving.js b/pages/receiving/receiving.js index 516f954..8507a93 100644 --- a/pages/receiving/receiving.js +++ b/pages/receiving/receiving.js @@ -1,18 +1,32 @@ // pages/receiving/receiving.js +import bin from "../../utils/bin" Page({ /** * 页面的初始数据 */ data: { - + list:{} }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { - + bin.getuserid().then((id)=>{ + bin.request({ + url:"User/getOrderDetail", + data:{ + user_id:id, + id:options.id + } + }).then((res)=>{ + console.log(res) + this.setData({ + list:res.data.result + }) + }) + }) }, /** diff --git a/pages/receiving/receiving.wxml b/pages/receiving/receiving.wxml index f4dcfd5..0421bac 100644 --- a/pages/receiving/receiving.wxml +++ b/pages/receiving/receiving.wxml @@ -1,4 +1,4 @@ - - + + \ No newline at end of file diff --git a/pages/undetermined/undetermined.js b/pages/undetermined/undetermined.js index 21143b2..5f8f587 100644 --- a/pages/undetermined/undetermined.js +++ b/pages/undetermined/undetermined.js @@ -1,18 +1,34 @@ // pages/undetermined/undetermined.js +import bin from "../../utils/bin" Page({ /** * 页面的初始数据 */ data: { - + list:{} }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { - + + bin.getuserid().then((id)=>{ + bin.request({ + url:"User/getOrderDetail", + data:{ + user_id:id, + id:options.id + } + }).then((res)=>{ + console.log(res) + this.setData({ + list:res.data.result + }) + }) + }) + }, chooseaddr() { wx.navigateTo({ diff --git a/pages/undetermined/undetermined.wxml b/pages/undetermined/undetermined.wxml index eb2aa95..8510b42 100644 --- a/pages/undetermined/undetermined.wxml +++ b/pages/undetermined/undetermined.wxml @@ -1,4 +1,4 @@ - - + + \ No newline at end of file diff --git a/utils/bin.js b/utils/bin.js index 54298dd..2aeef18 100644 --- a/utils/bin.js +++ b/utils/bin.js @@ -11,7 +11,7 @@ let request = function (obj){ name, urldata } = obj - url="http://daigou.sdbairui.com/index.php/WXAPI/" + url + url="https://daigou.sdbairui.com/index.php/WXAPI/" + url let text = "" for(let i in urldata){ if(urldata[i] === ''){ diff --git a/utils/wxParse/emojis/00.gif b/utils/wxParse/emojis/00.gif new file mode 100644 index 0000000000000000000000000000000000000000..5be27cb0ecf9a21240e151962f59f94a2ce361ad GIT binary patch literal 1810 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 Shl-B7SjC>-k*5?OVgCTyq&`gm literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/02.gif b/utils/wxParse/emojis/02.gif new file mode 100644 index 0000000000000000000000000000000000000000..40cfda436f3087c561bbf0dfe60d2591f8f11e71 GIT binary patch literal 1804 zcmZvbcTm%L8pgkn0}}yB0t+GFLJ$#!aUtL$AP8Zpp$eW@DdK?z6~$3cT?oYxFQ)`GXd)(nQ%QF9i_n*Lx_l=G!?DD ze_+|cu>-MY04-H62qwU#6L5BPu(t!sI$@(O{HP1jYB=o**O_ac0FGG0wFq>=z0C~3 zl{xrY^?QLb>@|Z@4t%2qhpiS}0qiiIqJhbb?NE56F_H|I1Es!zdwmzI*J@_dA(xCw z#SnH(KH9ogw-e5K$wuwqsO`{wB?-?AqI_h~ZrL3`Bopbd5ViaaCAa3EX^44y##6MX zv+-~_2u}FJVOL>o4D2vjDmuDRYP9ssa^V@dzpEAc0~iGQyW60wX>xpIdAL!!u`&HV zQ#?O5I?y}P-?Qogp!mjI01#Hw%P*19c=xGihQhjlwHouq8q3wOlJTLws$10WE6aj< zHiZ4$M`1`&0xFrG`}Xx+^xkh{ou6*1wBEqMJ_~7&E!uBY{1?^bB4Sa*&M#$$y3@?3 zi}#8foYorXYgM~v`AId2egmmLEG;gy{!Rb=ZFP~a{Km>RsURO&>O-bpm0mS2IEmvw zw9B#q8?8T0*a0#BxTHC7u;jvc^`&>$)!SpXetZ(qmFh1V$msr9Ep85*n;a2vC{3{% zEiAIM#dI*8!he-E+g4n^`S{|Ik;7o7zjeA$7d|@Lco8QPxU83}jSYSlyiFFw=m;L1 zL|dJP@&Y$1sYtmE+C-Cf-bA{YuWRI8^p*0! z^DFS}52L|gfcu;mxrKKX*Lod0kxGz?S0KU}tGw582m5<%3Y2D}rAkb5P#*%|AE7`c zFDHLLM+YA#>RwZf8~}i_{wD=>0D;Noy*UyR09XhhPRF%`(-4PM+oMi#Kb%j$ZPK=a zcNf_EV95;7Aa`$viJwSvG`*QuLLxqKO>AJ?RXuUXNY8`AI7Yst!oBTlX5c|qQz`UJ ziR#4c_f8-q*qnSXl|1*jT25mj=P7oG{WW8GvVlpURhH+ zI}nM4a9>(s&N~qng5u?V_8>mE%%R1e*2G+Rsb$15dSAU+n@3M1*wb=8UuBT0J1b|lGLPigKH|oOJ6oV38f?{e3LrtqzFI3UBI>k|KcWA7$HjWVEB6rH3 z3UJmIj1H?eB|Z$N3OwK%<>ldVV1(oAp{IfS2iGuy&rnpl>d!s>IEtu_|Bp%xPyj@L z-&9!$V1zks*RjWnt+Ji;(`RCn6#Hau9vGGP53WV|p!6NvX#3g91~PMbM*9Or2U@ZP zYsJ};)#8)$S1uSm7)Cwog7Y_!@ z5aC>iBpV-HLZ-)Gix0E^Z+rqEY~p7Ec$SmKJB~4RlC5n`;r$YKu1AJqzWwGCr|VFG zyzpHPd8kQzt@X)#vMEj#hO)B=iw=qBVTi@~r3s!T2`=pB+{{(Rv!H+I{1V$!iM8Xd zexkg8PMWc4I+C*CO;6foXh4l%a1&qHFL$=bt*AdLuqXTC z=RH=d9pi*58q&}#RsA!OBPaL2yu?l3tp8UxO8?(7-W`SS`4ZR@O}74pw5uz={Y5~z zD4FjVcI2NHW%stzD~krp18xQFEZd`N#Ttkb*)#e~4zXOL41be$1mY@a$Vnrn#;Lcr JtTFPy=3jH@t1|!q literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/03.gif b/utils/wxParse/emojis/03.gif new file mode 100644 index 0000000000000000000000000000000000000000..6d6f7629968d979878a2defb2d66ece81bdc2af2 GIT binary patch literal 1852 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 DKt8j- literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/05.gif b/utils/wxParse/emojis/05.gif new file mode 100644 index 0000000000000000000000000000000000000000..ab0b81ba4dd535bbfe38ddd6bc5b35ed85d22a0f GIT binary patch literal 1866 zcmZwGc~sK}5(n@fB!nQK;ffGI2w=)x0mT3+AqYZ2-r#o;doJ@ zwQ4QPSwIx!vJw_75Uy|^a)tYp0HVm5m}8di>)ZabGylw=^PSI|bIy)rs{mC*71;x1 z%^PWnz-$!C_9n@~u-Vew^cX{SZIlkH?l4b3z$^o}bQ56xl;`3s1cAgX$OLm8SiLAd)OSYG_{AnZiK;<@pc$)&*xFntG9(nFY2B44t@RgMrSY+fU?xcN2Ewp-x#eU;(di(ES;_^8$Vv zaNSmhgG3w~=raUyAAj)FLT`kiTz0R`aGPbiTTj}mIxOxu`ZgB_^(wp?b>Jm;-NM2M zxj)~dx8$4JSoz7qBg4P_m}-HH4s`z>B@bNJ&6UN`!5-)$EzC?#jSUGteJYJ4tS&E3 zj=qUEL@KXJ!rl$xQu#X5h4YA58lwYyH-#G`)z=AoO%5NbkBN9|Z=Y(d72#{syy~)o z1w-W4oXFj=pXc(3)0|J2L1~pi5D~&o*7J0NX)(Bv9tn!<=21bcLt~6X_ zdAfhT%5#jcx) zg~^(m<}=Ledz~S>ZQgtAD`F0Ld-LN;nF+kVG}y{qyey4>>;v#k$HP9y1-7{S)sGRtoLIicJ~ zLNs9u92?=#N!WY|OXtNCb`4R|Fl71qDrVRV0dYI0HUm~%*Jrw5)?T#T1j4+XrPkp} zI&6o*PVI90m1Xu7*qMV5m1_f0Fm_z{h75vS0o#~gr3_nP^9|pL*`!r=2>iE*AnWGv zrI)>(yMwvuF_Z*?AVfY|N*Mvfcz@o15>*7j0s=A`P8E4g$yg=Bca+r8oPhLy`bjuON;(8jjLmFB(_Ee#6I-&v9kJ*a#>UmN2kfwlXkO3L zIGjD{B;$QcSW?KrG_B}KR|0Wvq%`RkFT#HI!fj;_B|@41MssehX85bKd1o`-Riw#J zH2w35$@FiHC_MGT1({Ua%yGFgT`of^!Qb;f*+a)6*-G4>>E77vt?!SD=KEL4Mbnk; zxdlC<1aS&F6!E+yiwc}fvjZVi|3*PJy&d11e>G9Rr_s$?gDF`VNIg&&Z^w-3e~3~% z9E=&~WFbvefj)#3Uylg2By_0Ct==)5uRq$5MAi2$zDHL(?DxPxCV)yq>)Jc<@v7a2 zB(zS}N;aJ^^g(DSN@)bfym^#|k#?M%wKM)V*0P^ibxfB==u1;TtPlnY{h6$*S)xf;eYCs9W1l8F zc}_~<9f^7E0Twp#ex)O|fon#=d&Ebl$eF}7QB3uf{XGoYzMN(2|8U&XPCHnYmEj<{ z?%73%xKESRkRo?1=SxYU{~|^qC`56;5$uaUh(oW>+Wr%xB%ZL`V6ajluo0(KU2 z!QgTngSOSwAO%AM)tRWApPyZ-?3k1ukb52^{$ap;q45_l6O^;iODC0ar6y+3TW(<2 zM9s?j$Ww`MI-~J$P!K8XMaQ(ThBd2 z>%u=TXOtgjV2&0P0Th}t#7A$Og^ zlmu&`NWD5Ri6XzIZ+LdIZ|2b*AA)OW#jj)Lv}^bR1@7HHMMp`; zR41R3cl)l|1-(?q8?9@atd?5OLhWBc$$31zr+E?e8uQ*r3q`KY8_>g72$7_WfG_o#f|o XXvIcHMEf!j@ABj)Ghd7G%R8Sq*Q{F0D%yL186ZQt$|{}md=2k+X1UBCj_C2K~|aL*rbp67j*_x%zQ z<0Ie5bcfubr^66fI{Cxs_h5w!=6Ak$VgZw4a9aqLg$pN0U}bsHxXUsSv3!OOeo1~| z?!7m4`}VCH%QtwxHaY#)?yN5gxO{*r@*&KACz(-){8&x^57U<}goBaDl`#Q$wDZ@K zYwyq81vjJ5=Qys^ru=#?b?K)j9}@K7a{c0!oT1A2yWjj7JWmB(0`Nj`JQ)iHJkI93 zT|W{%{{{VW)1IX(QJ`}p_#tIcCjj@;W*JrQ&t)VgU?q1Xnm zqd(}2UHSA4^Uvepm+hl+`pVy3fX4eDe{y+l2zmbO8Bj;v7&^By5^Zi~fu986>V~@~ z*ucOZZTAQBQKQX)%V$ET6>Eo)P;i>DVtO6S#esWCqaO!=r#r{$yus;UaC+-_H48jW z1~c1$IR$*1yxd0yx&&|{edRzJP=2zY_IhRvTRG}o-`+R;mxo#-$wUuX!z_R1kHKVS8JY!B=x)=d|-Ud#29E(NwX3=gPX53M~x6mIj zcZRbt5cX8J#d60qe@8Vtux0tt&6^dj4|+29==);li#4gk9Up)@!kHga zR<3UXmm`6m4SwK(nVsNa^4&V8g$6P(^TC~La4!lNLcr`>BlT;a>cc^s3jhH6fA)C; zr>%nR+hY02g3u5S+QCZCdkKRLg@&PE8&z9PAQ(Wcj-Eo5Qd0*YATr-Q{f2UfOXOA|OPowgpp%&U-qVaIc}ICI*^J;m zZCANNY2B(>N+;ia)pv#6Y@y~&w5Jm;Sc2>=C4U*ofp^K?PY9N+&6S!UJ-!;fZdG={ zm56GZ*AB@AkI0kgu!x@2zDqtl4P7JKkPqoJt_oxgLBo>j436%lukHBug_E)BO$u(# zg7rnPPE8yq_Q6f_S)4N{q91MAx%elDW4KVf8fy7Qddui4Nsu6H;X&#B`yHmQ+1R0h zOy&EFYOi|T7Zv-$_qKH=weIhYPc}TOAbanB>q5_woKuu7U2bNVoh*mg{1|zFNuvM) ztemRz+H}4ca{G`QVIr>?*CL#co{UyGd<5&YH0-9B%S6h9jmfAD2OtAYRG)%4g=|kQ zTfIK7j!$r4OOlCPaXXr_r+P!Y$9fJ+>-r5w86R`bvsQ}H9DdLuck_X+FMt`pkPd$j8Iw6G|$1oZXdyB9|}T4&JfLNU!UE+*|AeHxOHr= z)L>NOusXSrt#bIA92Zl=zondjF5sFl; zGU|(6@EDk@YOlfj4&tV$eVSPB=;QLQFQsljT=ljmE=zb}<56Z?`aqXVyN^|k>&12J z{=!oRuIUZ$&MKo+;@NEMRO!9~We4IFKwt*+t2B*dC+GCg{OnZy?v~qaaM_gm<nW$?!yTEslojvMS{(QoBvA%O@X%~JwTo)5B2(nKPv zAi4vg4TXJ%QlD?`iId{r%}edf@_js3-yD^)`FS#gb8zn5+E16>kgxAVlQcr9PS(}A zZJnfa>FTxDASMJ+D*0bXxQy2SG5DD-LgaS;%by3;P;Y;Oa&y6i&7!q$7nX0{MJr^H z|3RE)YFEGH4BM1PLpX>6t+FaFwsB_XL)sE7*)_(fYKxU4aFaALMYy7xSxuz_v--&tggLChvgd2EF8Mok#T>|Z@@y?7 zwzs3_iR!8>+@%^7*Q(7`zE>P5#$$Tt+C(LR@8a9IC9)J&eN0xXV}~(KdMYR7$ITgj zPp@gt{rRUmDRmU0fJH~6ewW0S6RMqOnVqLy66e5-{(MM}IJF22m`5HsnOi3JI-7H4 z=rHf6?bA_C%-S?lA0vtX3n(CWRO6Ty!kahefqQg%C8+ zF6a_J!Y~x(v0@kWLGEML{k9#*n^cB0_wHD`0KePMGiqV7u4gxX`VIJ9Dere`Xb58^ zW^+quqbA&A-J_@umS=bNq&jAmuPCEX+Actfh)t6I0;L1u8d64urCEA8ny{qF&OfHB z!hPzMjZt?c$^W{Qd4Nh)7>fVz&u#uB*?zuw6}B(w3}cP7t&HMJAY$aw9{IPlrsBqn zf8&v9t&_8yi3w|*F?SLrH1F~f5`96I>*vqspg)se?V+5A!_la$R|&A60kpk=WGljU zJN;Q}*f0eXJmc(`t_)#_@+6jt;tI?z={S1?6MJ|#l8e5+MTxD(wU$!hVzY*Qh47`s zo^RA=+z;idDZyvXT4Ba%*rKi@y|R%0`@*v6RP_?bR&_^4qLD+;ms8g4cc17`mgit8 z5rq*G9$m?0RCnQnuhkPJ1wxq;C^ zYWE~;henKW7~Kpd;kpCTd!Tz%S?LkOW-7O5JR*wHJux2KV0zzgyfb9C0qgB~=vB5J ze$_fVzn4PT7V3vKer$UcS|^3pTIQ7Il0ND`Sy}*XM|sB0q_6f`Fi1Lz)!HvGH9AHF<~;I>oWL(Rxn_tW zYPlF)tv5>k>JZuaI#>flx94AF_cfVSZuNDl@GQrw8^RRTNAg%*6{yv5-i44^EkO01 z7WVs#m0WB=?!-1q6%O&*Dx+GCPqakCgIuR+j&3dAcQvIxOwO0({ILaLEXBAwwkpLj2e zWRoApC1#JN#rlfTXw;K(?|A_wb4mH0tpXag(;~W^?uF9;p_Dpmj z%_h3b>JZT_A8+3ZFUQSvI9u6W>%99w)8d2gePxGQ4izrky`?!EjA{2!SkjN@tO=1b-eORSh)~cl|U#ns~{@o^{txY!7U9ArQ2%fd8uG)c@!OlL%=c;RU z<&jKLv+$9(KY|X7Fmd`2!^RXYd%wSw3W`sO&kcZo88U z5G`u3YSE&N)=LD$pa_aolW>s&)}V3`6@n-tMFqQ}wrWn$_EY!Y^Us<2f9CzY-{<*0 zPt3yT(0OTWzy=lo-o1TO6a*}z5=;MIpLW$+21S;M)t1I-maag{Z~H7Sw>>GQ)ULJf zJ|ykw?65o(TP`xMD5aLSXCImBEiKqY#{$diB1@Z(A&4|tGONk=<%Zm zZ_hhfCi5)sI;%H$w5fRa%G{f`F)eR22O>z?bjD=s%6I4N@AlmIwbr9&8`4(!*M>aS z)7yrjrfgFg&+_(y<=xfW?Je)>*&P+iT6xT%#_M*em*vHV$)?#a`wk8rW?q#$pG={e zT8-B=zHR%bPu`eo=?QM%&au3i9ITsLzutcM{y>NE(vJ$a7tbfk*ZW*lB@SLGuFvzj zb3EeZ;Nr$_vnPjF4qtD$Q5p28-!wV8@#>k<`n*{K7Z?0nYuCMt_1m@J(PJ*d6qLIl2d|bY^f17+t zJnKoitepSw#Ed7`ld5w42aMaF+%Hfs^L)_TF*ekBuY^{W>G<0j`#0m=1Ez}6p}Ru^ zcgM=z#yVvaJ-Ih@TYsr`wY<#l*ZGYOw7q`$%Yjw?14pMly|H$a%Bx+88fCO33+A;)TTyz9=lNjwTk7LN|1~5oY=EKwP3Vp zmmi%qCXl4HIx_q>H}PAkod+ohK(kD~vI17p`M&^fvaRq){8<=)HA;l(ee3LOC=(@Q zC4GXVZ=C>%!u_ekn7msV1=3#viql!GrUy2hD>cZgH0V6@cRDp+N!Ye<-w}`@8 za9AqbvX3-JQbw2xcK9&P1wv=hcDlj+!hErsdQ4!0a*dqj%DM1f$I7+RIZyfUA zhYb>ew0jur7G4Y+Y(Cdl?+8e))F`8x?-Gg`xW?{U*E!@jlsE!nT%9S6@rlnVsP2DjeJg>zn)u1|V73;q|=$v`i2Wu#WwF(75 zB$Q`UE8I{CfG9E;PZDs`C?eZWkuWwfsK*tIEG1rw8;p=!7)KE5-PD@xvm{d^@Ff;~ z`w8=I&59>7nLl&ZvY<3>+&-A^NabY>riw_n=;%eYuDq)v>0I``r`S_JKGz?Yt+QTsq6?;XmcbXFEBbD%+W$Tg% zDom%|8A*MfDg_IiPg20*bB95ep!6>{NqIbc(R>A+Xv z$~;KHbWy2$wPYGk$S}|e&Jqo^*om91riPbqa@u6vezb5`@6qkux~hAZ@_!lKkd!7H zxZ*rs%fET<R5bF1|QiSJ%g(<=#*4AEG!K(Ba!^5iB3 zd_fgDn6aEHqeVVhOZ<$BAdFS2#!)3kv2I z`W9T)EGPTtuvdM)!KyD?{zez-sVH0VC57$uT>|V+a4>*@v-SO;HCDcIF+G0cjk`y> z*7WL&NRJR|?r~fOMP|e|KqaX=KtM_!>TMRvz?_UcG312r2!Yc%rEceb0*I^s4_kW` zF=WYtJZXX^wMa&f_)?u(;$4VGtGa_RK;VkSH2-6z$>$-qZ&LY-43YJ(Y;RsEJ7F@1 zCQyLL>_+`qB(Td8Yi-Q|3de0>5BTHhq5%+6t1NYD9&e&8#MmoJ*5Kb$LqNPr9ka2R zDh!Sphh%CJ!{vj`kn=7cr=y3aZ03-M@i9H1+S24JK^l%j2-`uMKZw(JLk(XrKf@ay z5O%Dbyul&8q|}S-S+?u(qMP#<-^tPDh=b)uFyide`rT^oJY?b4(0nbWpoxr7Yb1p$ zGOZqiP%5){E0B_=JVp>4jx_5C2i4*f2Zyn_>S?Qz_S}VBJqWW+u4Y_GYRSt}P%~Z$ z=*aXu=&E0RR<)cljVA4|56yxR`eL(r2gyCSa|j1bN17-Ol{y*2Gn|F~iRe#}UHU(W zOfRUf@M1tOVv2M6NQ<#;tvQ8%GFJ(f0%NC6Cy@0cM8QVrG?Ig4deGuB$vJ)j%tyaT{_2IoyxF&XsWwLXv9() zCEONH#ZX^x+-_BTK8Mh|$P!Mt@YKjcWERK{lX(eRmII;J2&#{2qRqU-*|E7DyDBTp zpGa?QuRF6^h9aBa#9h$oArgw7z;Yp5ccm-P)?(wU#j}&~Huv{btakbjSzP!?7JezM zx+9H6sCR5xDGCUMi*K|YYQ|!AVz!x*P@f(j1>7RlYIKXd)4yBHD0{vxv7AKR6mkbK z_nZtOomB4Fg6#8iwwbwMe)^_lt&L-g^4GP24t}XNkM8QSI^7P>$`9Q%TS;#=c-I|n z8XT>-9#mB}R=G4k?s}i|EF}3s@TozMEDv2S+1#EJ0g@NnQ%onX4|2XL-}#UzJu3q0 zi=HcZz4woDTxr&8w9d*8VPF7R9pLi21u9#(IN?KL`bm4!e%uL4`;T2zG-5>sq{kj2 z$yKQgBEhZto6u0nrD32qD*%(MCwGil@y@tFD~+F z(R=62c8b8fBklHQuT|p^=X9K#*s%1p&2HEE_DlP`43T?lASw?EqT$KYXD4I*cpo5Swk9X{7jkc$Gt}n7vBJNNP=A9}6L_A9Uc@3zxrw%ro1MCxI%o^hewf z?HcZ2S0EIa4eZkaDOroUej~a2xifZZBpUIdSs>UTTPDjmdceBjn1vzM4F`gwP;L_u zXJ0}iqgn#~@((ir$LOqPi0Pjpwwl2|)M^GTtlGW^=qc{}u+ICUxf+c#if27kx;XG< z2_Z>kF#ZW%3**z{a!gGnu=801eL1DNi5@WHgAZsKQwNA4KpT_N}htHfY*!n3cOBYAH&-GG)J-}bvI)^1c*S9 z!C}V2Z}zLWY9}vBtP`ASg>|qJs*U{sYZ<_f)kMj+^O?6Om>TK8KuKTl4s@X4!;M#`5$eOD9PBCHv#5LCOKH zvF~?S=(gge*6Gx+nY8|z6u&$%!0LGam-1pphc@ktZ0LEq3CTx-B8io31F+eecj)0{)2pp1x^&ax-r(-=FaUK;qk9jzMO?P%_uU>3%cBVLA9&$d- zb6$yXJ~KMMV(dspoiDaJA1^$&0(0I{JD)Cf_Le_8>`@d6oTuf^m$lAUt}8I(wg7-yQeFs(JWrP<=W1;!4bKM@Kwvn(^O_lY6hnZPs|5 zTrRFNPI10EvvY>h*%oEpKJTtsbbCAZQbTRm&+XmUXYX4OxMRBao*C>W)4Mk+hJ3eT zMEA`lZ5ss5>-@VfCOoZ^J*b_~accde24!=x_q8&4(}At+N5@11YD&&9mFJNe1!>1_uWJo>%+`47a4j@^eBc|ZS}|8ftj*YTgP=eaqZ zS08rWIaa*j)_Ua89^Ubixpxl*KD`*dCwo-OR{6u5mbzV~hd=+|*XEeVhduA^8+>J} zWXB}8+HB_j#i^U)SQk%PdQK}(m91_sK&~GvzOoXb79syG{-l2U#1|Jv)hr$NvVGn8 zLbts+NhR~OPa8vjJs^3!kN?#s!`)jy?fraqR~e(b9R0?S-fiD<<(zHr%E@g9^vce(Vx;hUIM_RT|(nlo8G7Y?yD~708(Tg z*;|kr8mrLVN#q&gyaLR?8ixqI$EwUG``)!++3%P%Z!Qag{D(#n zm5|0`s1Q|>-ZHC9X%-Px*iCej8B5Jx4 z;{xP^fX*kjN`29cx2DsyslvN*d zj{-Pu-l28HQ{n~Fs$x8%r$(BIpNGwv$Ipl>T(SH>=*cW!xHi6|!4u7d5}*Vz{emCH zrpJE{;kg8!*kZX#pt16^Or#(h1cs+uRE4XmEjHNX6~GENwS8yhdH0e8Q)9s!V7~w~ z&bLaocpYP0k3OCok!#(hKBa)_xe?J;*kict5W)LQIShj`jjc8~r~-!#Gqz3F5`ad@ z5z{FDo*SnNhvW0t6mU|3cQta0dUv^dc9f$k-c1n0RE1QMHU>)=#@6cW+nE#MgNKBa z*x>?>bSReW3ipd1Y{^;%ETj+tK>AdV0UlKu2Uo8!P@Me>dg=dg<-*%(nY|q z3Yu?=2l=y*kQmJPu_m7*Va>ol6wgQ8Fhz9Xi{bfJKgp`I>3(p4X3F`b?T_zDefJ_>J}HQd*zYi*nlBz$FCsy%HNYin|mGB1Gs{nS7; z&r~|mF8kpdvKFnbz8h*2%`X;{%L+PJC0Vg-yB|Rcd=69?mg%0bjFW}wiNu$W97 zE%`;845*`2lMBI2zDHS9a+Q^S;&H6<=qhs!{lwmRt&RZK6KnEB(M3fNbeR6NU(7VF ziAqgZ0wvYBL2@c3D-GA7OyOX7DWz0X?GV&?Tb?_YmH%HKUK7q&TJ@QA&(3$2Yu7KE&opjHBJn6zBq%0d8Sm{OF#j zHsUmYfwn{i`Lw-58Bp|K;fkAuSc3bkUIWA33$?2Ol!Flg^bed|?rYICaL`^g_l0cS~0-o|M4$z7HIG-3YhaI&h_SaRO5XI*PT+*mG@{8;sq*>wroAZ*VSOQ8YXpm%_MF~1 zhNJfGNwaM(S<|nfjqTD<6M2@y%kS6FhVnh|hAFxZmC%=wS~0M6-gzXU>etY#PeWm! zhV-2IqXQbksacu*8loTDNvnRwNCa*@8)v_|b?~zKjiJ{;T+2~?qy_3;hXN#JhkEPy zk=Ch$pb^=l(~cSYH3VX~>$Qf4Sz0C_{43v)vV@9dzl2tvXQHfI?Kdact#cV%RP!Do zrt+_`{Lo{c*NRKquF~( zmX=~NYLv8(Iex{wSA9OR3tT>$Gl5TzYx$&`Z?N>zh`7vCn4>|=s?7zok7_C)s-Gg^ z^@opE9vWTAdDBO1`t7jN2C5O>7u`ou=iyPQ7@a>v$cZPUen%`69Avc2`OBt4Z*8gx zmnT&l#j@ZAKLLbFeVD)G5Q7ELhBUB|8&=q_C5h|twsmE7SMdBfT^HcfL=$y1kBpni?_BHhw#z$6fK}x zC{wPF{?{n5BNqMof$_e5LEFK(&xCA~Uch#zFVWmC@xCehrg_oc?HWKwX2NLe)CW@( zm>pCw`q7P&ZWq^G-qtz~F(8X2Il~FitPH$Ld_H~1>?^%_+}3Z)f00NMV_U!KF zcnLErBDWK-L0J5SKMC82AUFN+F=Ermb<;xElpByN9b%xh)9#*hbnVpP@1LD9(WIDN zX;>dPDHto%)vevZWxz7>FgOQ5c0ecdX9_9|s|!4GjkFULjDK)rYY*Uh@*d|SI1d}R zerbKj&n`&cT{h%+9y^lPAmeCt)Dqy>A!!A&8gT>RzY+N2mm}GMcNXplD3IT%Z;t7PO4#90|<)ac< z5RMU~a7W)zs{0hf10bT-m4ZZoD+O^F+EBWrc1hntq=#iG+2pQz6VpS+)&U*4&L?!$7fm)igzgsCV5&l|Lq2`oQe?2q zY2Mk0KU_rea|jdAnSc4AX7c`-=bxuHbKDa`rkD=Kk1sT1iSHkrTuI-?TnXU?z=neB zI$5;2_0G2iqkJ%#@vv@!o>e+10Hb1|RN$83Ys9jwg5hVNbR}gz4)Iz);F;Yr=jqG* zAugW~n%{i{-P&{9D{_utE1xl{#+RCv@Cw)xus=>5M)IJjPIK-mdISG3t`Yi1ZqH=0 zQi3x7+9_YH#0ENL;JVSnsu#ODrM=eVt~`L{d!SLGb8_AhGb>5DMh>&lj7u6`(4^$n zO=#Aoxv!!1WjqXEdLai5RHyijVQi&}kp9L@a5bh5Ezxaq=PEL!9d-j?Fh6lPpc1gt zofAfsxi)GGHzc;ny2M-@$x#rFRx-}j;Q>lOFgW4xJ%?+Dm>FgmjQgxFoW>LvzQ7YQDQ`VN+7mob0o`BK+zOYpeA%9^3mVKuYyLU*XkTui%1i~d zGUo6iN2wv%1}t6!BJ;_I*5DNx)EU0KuGDf#sW{XH%!G}<9viG;SEYXidMuWgBzJu` z2wt>aeyFVDTr>RX2_t(bZ zm!3O-`--A0M#(WlAix*?Xa?rvsxyv(J_jI~8Mq<~rhgbNGy!6pR}ZYgl+*9OXn}D* zFh~Ux{u2YwTOZ|h+|&nE>n3yMOXIvApH}V4p-g7WwXwdUU{8lnvb|4ry(8G}wcz}0LxZvxt^ ze*d1rKeJI>md=aw72UL)sk3RhXEy!V0F3+B$FCbKKa;&12FAQ3Pp$HfTFnWFi+PxV z+DG82$sZTxVklA|0J>-mm7S2U&rQwwp7Puu8u5X8>q_5_42pZYDnj)Z7Z$3R1i^37 zv%({DLjO6z_StIRskaktx9z8kjazerdOO>4{Ls?^%ZEvahB=hiqr;Mg*%$ZBMJ)ZL zUe_h@&ZWf#$$0C%6J}GbX^VZgB!hVwUqVZBqs{r&3+;|=4gC3mVqw7*@Op0>=M1P` zpC79A_?-ER`f{+`_@aRe-tGdkXBzLE01)HKDHL5c&ys0st?%DII zv+3Sp#meK_f0SmnT+!&fjPFU;=qcJXR7K*4>ldCfoSz&QbL^(ONN;*Y9ogHKTa9PO zN0vJ6E8}eV@mt0@gwC5=sw0i-Xl9Fz7IBsk`12zGxvzJ4dpVLlc37Ab;V=k-2=fTE zA_O3_mH(AUa1exA=>)A!&1Y3ap;S!54vap7d#dS#hZ5ZSxV|i9Rb$ZrNy;f+YTOq$ zvilx2>1aZUC;ZkOV|gqcg&cL&SKgEFGZEA8%A#s`@U4a%u0)^lVP)8!l9Ekx+}kj8 z^I1HZy#G|Vt+*f%%|w&Zj&bQX&hOFbK7h^QM`haUxItsVMR2aNQQ5umapy#50{yo8 zoSq)6M!}9ZFb0KI3Q@X25(1mdB&7sYWbF+0a!o$sax*`H8aa<<3uP!ib}%Qdf%~!~ z@PYRs9!z!%hJkMvH>6s7Y;(WSoEL8IdfE1Q2#*iR(SH`XJ8rIN)D{a~;zTM2^0AxX zn&fiEk(cqC9hZ*pqa$iPubz$Fll6rRtd{%L@t?J+hjZKwX2y1V#u7ZUD%y15YQ2gm zYR*KZdZLq2V6;O-B+q79mFR(9POp+dw%!e>VCa?Q(^c1Zop_?OoI-3QVyzA)V&(QX zqL8*Wp)g`NE}tQbbh1n!XG@qg{QfQ`Pk#SYFi%AxJjul&8y^`ZkK+cA5PsX(m1d6z z0-8)7hKcCPzu97)i8Szt@GE`BxRB_8*!_4^ylLnCb)k&f4%k3+s*=oG zl9&>Or#TfI2!TY|DOpdGDS@>5<0x$xy!3ZEl}C#r-O?rVRbjcZK|0Gr6Zm#VSoWa< zYfJ+x7^!f&?A%o%q2ax0RGx5)HX?*4bUDFKXP+%LBh!O&-R&JslW{}333wHKF9m%| z?`+Y+bZSZsh7e*9_T+!Q%fW!%t<{ca?(+ne&S?R^8T?^Q+)@4 ztuw|7gD}{3P*%#eJrahIc539SnAD3ds3TR02!}gkA{RN=jD8Y!W0pmvkvbY7C36+S zic)|N^indTbyTr`C$EsTlI%xbHjeWbyp3x99)H2h)(jj(FxT*AQ&?msm!@>K+x{jX1tO}SLlSyGyg2Wp8{akdk7 zu~WfX^ov>yniWc3uy3Z?qx{=6Jh{+2`#M|A%tyYDJgxyVFznSd@p5^*;CcwBi^L@4 zC!@&5SmijaO~)o`qOjYIcrw!7N(t%+z9&gh)u)J##M9?0Wj!Mx42D1~K$Eem&l0c~ zS8KHrq$6~s&6Mf(NYyNwy~U?md*8`YERpMyc36I%Z16WEb)-DJ!WP^ublb4e=wv*c z%wY|(!Y3+{s!7BSO2nHHn;FSEiU@T`48p(ue3gwKCbb5 z+AB+uFx_5d!*k0-zuOiIu`ngXnG7XMy~H?|lm+w~=Md!$W&0EI@i_tR>(7N?o@j25 zxWq0B*Nq@h9R*Au3(R!+!$W9geYZmkn!ZU0KU^TwpM#>20-*h968F-kX;8%f)|gO4_BO8fz$jz55@@Y`H&8^%^b=t!yw$Ygf0Y=4fjr zN^j0IV}-J&Zi9br0>K%D%JwK8OacIs3crLFuKN8%op7-BwhE>p<@R`8RGnmSd4`|- z@E>pJ#*&jvWBVXHN@I)uNw|iA)DXct;Qdgfvwv8GUQSbu1 zez-WGEC!*5(S{$1&5rqgIpo)ZrviH&M<2iFobxSM9e^ol;z9l8#=o}X7PbhmXuLV- z*qrkE>xK*;%oDP0HB*Ovq#kG4{3gwSmL{CC9nefbFzbr`Pw*pUM8ep6kha z@B3Zh5n4KdK^f}IZ zv(kOSdos{CJ(dkbahUgQRqUD5g*26mfJ+4U_8`mWHE1Y8>8!+Yi};5Pt>^g zT{`)qblv0!GwxdUA6P}3)Q~6Y0)_^9zY_{ymM(iy7<X<#K`ce{-VVd==A7L0;7z94uqKxp#9UC-DY`JUjZyt7UH8r#^jE9`RU6 zdA?&s-@Wd-mEPZ1ee|gNdL50?w3Ob$qMV;S=a`4bWjEnO%ZUfh#DV!P&sXs$ET5fC zU;CzMwY7NXcg~cFe=NA|#k~|qv%V8Qs7Hn$KYTfO|7HH_@f``Tw?;lRAHA8tewh_K z@LAZcWie-BmE#-ZTeFx40-(`#%14PY9bcaQ!VY_Iw|nqIyQkaMyn6O@a{TGo=*ZaF z6B~R$YgOfS487m+_0XR3{s7V7p@nAufQcV}xUp{Co7U{-n)R>J=iWPC`!t7fcY~^L zJ!PFAJTS-kbGhRr*%Ws^LGonqUQaORyFZ0L zxZi&%FX$eZcvw#Aj&Zn_B)(VfHhNSyb}A-cLV8x2+8j9RS;^X)zLbGo*qJp^V=LSz zk2rKEMBfUe-KYq7jytyVm~BZbzE9=p<;OxGGGB1}$no`?Z$3i)lYIr^hfFX~k!XUGu~v{msQ9)1cv9 zec=T%grI1`<{ppT!6Id8t=iweKobF_{wO`; zvkCA$=%P$RBXym|+m|j@KFL51ZaAN0Q8u&{YUY(Vwd1bok$-j0d2)``{}*#W5{I{s z=bxXedE!CJ{FBnC+;bJaS(|ADI*1C1GL?3z3!l7KGGy$+*N(S05>H*YagWF_g=?`C zh59BAuJp)e5Ynnr2+{t08F4iaA|M2A5P_T9VzHDsRVyLJ(uWcwF_5JYK!}T?Ojf*nQ?L>TKVP6P3}E13`v7{% zc3T`&UrJlJr?-Aw<=JW}A~cxC0ZZ=UmCvUlJ<>iICsLJ}W*?&t*Jrx9X@+_Z=d1Q2 zexo1u91e?Ggaj4`nvR6Qc0QCVYrn~;R_T%bA(Wh+BOGg#PKFs~!hu90U&0&nt@&Ad=Mx;@R3`g z2W?DntBg_6|94?LAj3(UDguq7N9o=yjnjNH{H2%OG(nwF#`PS^U1dJ zQQP^^Q-jT04>xG>&`zveVQ^)g3q2fcwuGqx4Ow}%s+~w ztWsb8NMHuzV?sIF>5ZY+w8-|mC_0_MvC-s9vRwuXux$y+)993S`sAbbg|DoKOQZ$$ zD>tinF+ih(k;W9MeEHRvSe5JpW2N8KxX+XnmLjvdL>YnP^=*Yzy5KSmmEmsk)Kcg|1TL zjWB%tENe`511DQ?b_k)6_PIMci(lVFb9E3hC@a5g{2?+*cQyNNR7>*xnDRerFV^c# z60@IlD|K~SkVs2k{PvHeOeg+gh_^L=GDK9D_r=DdIK6nY9xL$6Uc!$J8P8wAes9GB z?zVDIicc(UmM-p{;pn{!<3eqHd#~$N>mYV(JXcYT^nF^ z1cxuo(kq%Z+5`2%jsuNEpe8TfF=|Li_Q2IdSLczZU-neakZt<05GNo_N);jk z`S9P5=Js%+^NXR~KM27J&me#VA3t055u8sU(4+vZvt&NJMGNC8%Od3K?D;R1C=NwL zdp3Ckr(`Q!NcG_lji)B#-|n3i$LzX;U)be~F*jGnD)X8(@X*KWSGB7p1=2rw*52xn zLMWkiem1#b;ssN_rIUS)mr<|MtU*WrBC-Ekk|N*c4*6^CHqw)g1q}b8=(k3KnLz@# zz%;dl^eZFboNJg*vg9H|*=}l@6NX4yNWm>4%w1-|beJ>~lJPJFrY|EvhC&V-H))XI zO8(m4HPZigQ9|?(4*U|fVSF`!_L2if@r%WBm`r-itr ziMf==LIf`TJ>~c|IwZrSsF6rd!TA#Y5+-L%X)P>f^Tw%AizkXQD$!pt+wv0a5RP$`e5D?Gve*JGek8r%*+eH z7U`>idfCUbw@$=6JuV;vw?Efhc`AhLQbUP*i`)1$-`33j$-_Tc@@LPdPLa$v86;X5 zb)|=^tWq-5Bl5t|Ff7+{{nE_57;ORKGM6dt>z9`>hyuSWf8{6UJ2)P1Mjf?9k^-7N zK*Ux!A(V&N94|2Ye%z+>)cY6nH&et_4dpk?$?pI#coYrEyC+@J5>Qkvu#Cf7ew*A zfvDqzc6NZz5{R@AL09AJg$-z|Oq~}>LZ;MAnU4HLl;j^Ii3EW8}t7HQH^T|1YfcA$uL?9BW^h=yiroLpJ;QI zTDI3B-_As_$W&=LC4D#5@;+3-{C5x;T)+6=fH?o|#j98iB4nUoNX{>m^-3TNJ!jz; zAoc_{0jMoC8P^hBS`>8+It@_(bO|`;i)B8W8>7L zgU3@D@Q4Z#+4o?c2Tf<=&)5C>S@m;PNBX>iU-1Xbr0@A@j`xg;WyPwsSL)4%(>q?% z7(2-Y4ucTJ1oOs~mjFGm3%94IDJ70J{2KBIUN-!AY3)X;L;Dnd*=5?_;x}`P=Wi9c R>#ZWQrxckyZhN#X{wJwfMcn`Z literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/100.gif b/utils/wxParse/emojis/100.gif new file mode 100644 index 0000000000000000000000000000000000000000..92ad35d2bf72018f7b5bec0b607625ccd29f42bd GIT binary patch literal 1780 zcmZwHdsLEV9Ki7x@Ri%Ef+C?=+)TlH%2JOmLGhM`nyy@Bd9PLLxN6Hv?bSM5|*tMqKmb=B#dWi@kY95vI!5>wMuCL?bhJwAUu|9(He=lO+4hWYuYPyhm?-PwZ?cV+Riot%>eBnKWr{ zZ@h?nmyvOfOfvZRv^;JxLeN!L_OldZf&`XK{^eq0VQu^YWvoWL9iK32 z6Ulgd79QVQh%Tc*$4ie+7z}NB0S{j36h%d6E6$zIjbFbd8NxtMG7vQ>Zn`RuU$c1q zl@8C^yZdyyuKw|-Ee%G4p}FaiPOsmcQ|jnI6&?~d|K0icg}$x3`{s>my~!C6%54Qt{{ zk;kQumybFJZ`a&>Kk=V&>d=jNL1;pJ2ro9&+rtZmFfq}`%&<5>1h|>*rXf)P0Ikar z!D2~Xet}dbFH|UtiltGB5SO#TRuvDO^n^IvPm36y0K^n9nE*3N=?*f57Xcv?icvav zGAY8fLJG6OUm@^Zg{)smG#3aqDwa55%`=Ez=2$12t%ZS35H^s|9j$jLkm8j(gqd1?R`b9U&P*SbPhKN#DNKv;F-h%RO)B680#`5Ib?)Zq$)QEzS?0>3!5k}r+Zgk)kehSk!?JYFX0 zfL6*UT!5FG(Gl2nw8i?{7xt@4j^uqLC|jK1(gK3YX@bUS0#o&@!83Qcsd>%-+(eOf zaRhS)f-X@0I6F?AoQuL*G^dxeY|okLPvdH!6q;Zdg_MPcZL5>Sc~|j|vbGhm<(fN1 zCCmhjR|zsSTQPj za933h!G%Y%Fq$jnRKi{$VdK91XvzwUs07)bb0s)NSWzs!mX9MXquYaa!QDAip%iO= zkAfZyn=kX$IBU?Ma!Z`IrVbV52nX5@(=gbm#A`d+?J-mJr1|gN__01OQ(mBuP^rn{ z83S>0N#14z6^@6_PD#L2#O8b<%bQ_gt0(A- zi+xi{Z@I;-kQbM^NGblod4LT&cAuozE*(>XTF-ZU&P|OVT=2=q*adu3r?~ufImthO zRi|KB5f4t%iH?`lXkJ8Jd&AAkFS#F-zy(`jRw-}qw}%S~>@)LCO0zG;q$Kh7XCHJH z#Y2^IPLcrDJSh?TXSUdx>J86YHO9d92&&lL*&d#+#mWZ{eefEZ@}htW(SUEZFZ7cP zxLd2l+Ti|8OUMbcz-JFcN2rovB*uv}c(;522Jsj|ETvCfOI~i69LVatk2J$tJgJp^ zcR#YwgKabnq~*e=PX}cr*Rxq-s+ncZI3ibK`6y_0ha?Vp-Sn4MmtCNxc4KUj(G}cB z#Lh2NbiQRGu_PTOqw`peO%z7O?smFQr}g1jN4=WnBM;0TFW{?w|FBGWx2n1xs+db~ HW3bjH9`VF z0A@izbRrT&p+2kC-1qYbfO;Z%Yqy$YNa;4Avz_^)qoZIQq%_e3 zi_&+rVBAmH{yPlbkss#nvejpsPje_alSBfE#IcqFkV3f*0IRH4(XjePWGYCeptSW! zNF~+xJ;vam-(vt6FS2?rwPhI5Dnr?2 zLY6|I@ZvjHRaCsor6eRJ73AkH%&J>yh7Hx_^CHnu+U}W&S7RVJn!ZP!khsv(AAe5q zrZ+8?N{vdqT3gfDEc1H)a%!~U+M8+hWR%e)2o4O7bc$%5Q4XQUB3k9!o^1fsUDg3B zSDs0d4>cFWQ1LAD6(L6=6fwuU=#eGf11 z5C)@Dy3UMl+S>MLxV3Nwj}HtHjlBD$qEOP8;qLQ*g0v&0rKKKxeo1jDSnlv;>gKqs z8#rwD?q&arnlrA;^==vA_t^lC0gErUm>opI^z`)j#6(klReM{9qn*R+)*I?(8rZ|C zy}0-7SOt5d+rmuA_1xPpp7yrhJ_R=Dl>tCSMp)0ipPs2A;{f2q(SSz?t)|TVB9UnJ zGSQM`SpCb6k1zAU8qC~C^2Edh_+r(R3>Y758|Z7zw#Ck60!kdNSRcD>i*Hw13L1lJ zQk@`Ta8r4V;{fnx;I1=AF!QbgysXi5)j#oU_{V!?%B#xRmX^LSO-DOk+V_I?Q2gYl zPfh8;(?Vg^aaYjH+{MXd=G4!J4g{)-iokD&2I_e5e7w1APu@x^YmLPr259pzI2-^0 z*5Z9}NeBRd00B^&A}CZ=#~}2V?`|y2s6B($4q2O0=;w%cJq-);mJ`=FBVwD96=zc~ z!r_tfc`dDr*S>Goy-W1n7pG(9K5CbSL1~pkS0C(kKs54FtxaoEJvkLB*w%G4BsSjEUV13(s< zuB0OX^A$UlrlU$KAnsG&j})TgXqwz5q&l`zP(`u7`UbZ%jxAGe_`xe19h;kMyqsWY zY&A@Wa~1D@zbVi4Iv_Ma?L+M?im6WEIO>{F=BPuuOdvk8icgZew+l8Q;jpiS+9qEK zApjgO0I-XMN52xzO-R`igg$cJxkIj3^g%zSd+)nC9M#+7h`=e3UX3!m)aNM7=fo~C zhWk3fvpFh#wY#ri{x&rJ=<3Qpl3j`=^$Gpq5hc?T-H-I|1Y#G2%~V(p>}>SBCIsIt z#%D`tVRvr!-1e`P8R@L1etU<;UquN!5$o+GZCH*$=p|2W^%rNmA2!5Ivd!q#1Y3b0 z(Iv+D91^`ANugy^$b4T)5eCYWxQZ*?lP+&l3DFRHmv&DKU7DbeL7`|691Umr#duw@ zf7MRuF-_LGtTCRBB4(G8kbxe=I2c=mhemvekzmYsp%03o^*+(S{InQ2mkoc;GA^h5 z*ptDH-#$B2ZNbfKX@#k+V3Yi`u*xO&;E)ORo@yg3=jDNc9}k?*X--+ar|%q5LjWUzfoaRJ_zQP`Xym*r#6E8JmV{Lt;2-?Udn1-idjxslx z2G@8(&tK&~M7)&)Wmbg4k{%$9FB?}Xqd&gDmGl#FEVGIhNonF@dY3s?{x2mvHO+l$A?SsBs5>;vCR#7@7zA>;qD3idVn0=SEh*V4-C!YI;0r`b>BD^usnSD`^mq_S&q%4jH~rJ5BvJ32mS7BmwXg!v4+UA&eI84`%eJnAN&9S literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/102.gif b/utils/wxParse/emojis/102.gif new file mode 100644 index 0000000000000000000000000000000000000000..748ded1ac4351e1ee26715098281d70099355c20 GIT binary patch literal 1446 zcmV;X1zGw>Nk%w1VHf}y0Qdg@784Y{mRB1ZAO9H{F)lQU7Zer}8zdDL2nPub3=<V;{P+IG!Mo^*2l;e# zc!Gp_dwOkibpOc#(<399B_(%xdqGA=8xO7mPKijCsw>b-D5A{ZS> zMpE_g=?@VU|KBsxbRqEn|AQbG(~wS@LKFJ`|5{mUz{SVI!pGs6T=Dn*mYbdC@&BW# ztNbD&ZY3o;HAU5B0BCM>b$x-`nfW}~w076EcHqH|=EaGrr?36_$+nYD%b{ZC)xpc9X3A|E-@=ERo}T}^I7LWF z#-Cm0%&&135bD^O?Ax2pt8Zv4E4v;Zmlzevoo$~S79tfGm>3pBMM(DW=*AlwrWh8Z z8yo-s|NsC0A^!_bMO0HmK~P09E-(WD0000X`2-0l0RI3i000007yuXm00{p8{|OvO zu%N+%2oow?$dKW(VxAHz+u_5200M0ap6a6s;T}wdM6t7W?UJ-|`o1~hL~WEVTLo1} zfklWwEGKo=xH3d5-X>7BW_dG6g~WpgU>=Y#kRVJoc#)zhoRLTpuTZieJxGuM0mEI+ zkX1;Qs=@~iV;p#0SScT=3I|?kdy;0$87OoX-UE>99GN`El!Pb&!bOoQ3L8wZbj;nO z0tM*tn3#$Y2SiVi$U?$qGWrAi7oTD;KEfCLt3;6DKY03rDV1t>3Lg45qtk<{ zSQ8{b&`eoIJSP>^n4ovB%rY|gol?CLAcPcU}vEa3KAkf zE*L+40(c7(7EXxZ#^4tq5v(YT!A4FL9e9%5sllO3l@xGj@j^oc7HHss{{#d8JFMlS A?*IS* literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/103.gif b/utils/wxParse/emojis/103.gif new file mode 100644 index 0000000000000000000000000000000000000000..be9eaa05445ef7dbb0c709fbca695bbf06c47ec3 GIT binary patch literal 2166 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/105.gif b/utils/wxParse/emojis/105.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f353cadc85e447155e636b50ab392a99b36f664 GIT binary patch literal 1277 zcmc(e`%hB`6vrbhS8{tfMJMok#=|m6!5{*R&2Whm)qWZzoY&W`<|2UIX`~$$vHV% zb!ysY5kv$*Qv`e>77GO7v$w;yvfFr00WOR4W`S4noQm_Rz-hqckz_3vl6YDIkBp}` z^UP+BPKGy)XVSQZEnw2w`K`QX8@zJPBgaApyO05IHatp}$p)*2H;0{HbS=kd!Q}GZ zJTN+*G4LJ(+_AhX7XQX`&UkK4!p&~NoD{P%uS15p6woQGI~DX+xaEvPj#&lc%)-11 zb2*sJ^*FSkb*wuN^9Ia_@J7VhMR3KluM^-%gd-WQE%a3Cf;}CMOt_THj1n$2oEo@v ztW%HKe9Rhow-M9pF(u?Cgs^YqY#Z?^#ycJZyTmgsfjtc~Tj$4Bc$1461Dr^st2BpAfz;4E^gEYcvMM z7?imCHeome!)iRu!HCw;rzcx=%#&T**a3JZK!$R?D_L?S+w&eC3So`MKsu;wP)ZCa zU$=>Ew_;#TL7yDfEc7esk>j-EG1`{mj(~3u;@g59t>L&Q9%%d!q!isU^k(v2H*N>< z_Y~;Po-i+)ZjquZ16>MqD$%8UX=xy9rR~+iTfbL!-)?OAaqlmmMAVw3WUXoNF-6m~ z)9JL?Y$Qqgj_-d}6oU1t!tL3LeATAJB!9ofFi}iEU^hV#@xEZbHz5QdnuFGATFf0) zg7DZC5pj>jhF|4>f2>I=J|Caha!FA&Wo4@^s{}RjT^Ur41*~-rb?BDL8fg z^w5$r%SDO(+~x2rgUX!hAChpsbp?4mx1yn`#!zL_rNQ z>c!omYlk1z-z-@KSy1@bF;QGZk46v{jh{Qcj`dR0p_9u?i=Erw4LkIN=bB$%ZPj0{ zURhCW*)BHqn6-6XJI|Lre8lS;ddLcEf1_dG(x*QS$;ul~ge81lB>tlE%B~C7AJpB@ z-wo{jx>|QT<;dRNkl3o^`fm>II~;oD%>A40^6~=**ONuYou++{ip6XCe@Lp_eTLL* zsr#s)GakQ7ft_rb{x3^#1_qV3B(O literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/106.gif b/utils/wxParse/emojis/106.gif new file mode 100644 index 0000000000000000000000000000000000000000..51935349b48efeac0e0d50a2cc809817015d32b8 GIT binary patch literal 1041 zcmeH`&ubG=5XWCMtq)V>HED1w9`Zt4UCm|b!9Ep?k0ec3@W&P{E)rX|C-+qLVC){$ zWE&!^+LVA+7Sup)#s(x3(S=x>A|BRy$+2KB>&X;6Y`hpZ{u}z8VP=@`=`%2sQ;7*O z#{dR6BIx!6+~@+(D}S3ivMj^0m{P*?R1kPk6fDb>Wl2>PUDqm=vSn=wJSwWt&`_-` zC^GF@pjLzx9h!!_XDC5!6WBGdX}Adu)wNJrLy~}Wg%NqADV!>EjtO)HO9E3fcugUS zh%{9ys)TTu#f(lN#YhuKciU?7utmT&g&GUnJgN{Rv&fN2OBJ1((I&ulT>^?MY*A!V zrfZozi*;3%CCPCd+qO;9Gz>%2G(}NF7s&;4@hIgu4r9zPOz#%|^)Foj|MGeO5J98| z-TMgue}Ec1lB_=ekcENck$idX<5K_H{AzO0w{dUi^+;iGPfp|NB7%@%i;Na zVdTPCJ#?Ao)`zb>Nj5wq`v5r9xOpkLCy^a{Hm!hn=f2$^2&N`F1D*`5ve)l)7E5m$ d2Zp27yXjJPDbROiqyFjr+n@GUu-^+#{{e{R)%O4Z literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/107.gif b/utils/wxParse/emojis/107.gif new file mode 100644 index 0000000000000000000000000000000000000000..70d38d3bb278969ef82a3c666c5e85192ad65948 GIT binary patch literal 1058 zcmeHGL2DCX5S=8ge2Gm+HA2v~Br&$#SR^YR8mfhEOWLLsLJp-Yf`&zjZVs&rQrUtr zE|S73wth+v-yue#1zCvNKtL8+k+fbG@v!uuu|y$)$R1a{#Kga$?+x>YIn8@8lhe`R zNYV>lFz2D!2DI1&Xt%%88fBUF`@I+ogoqU7r)i4gSe8u)0*|q*C`C=H>KfNR@QCJ%uI8tR=9_76~u#43;^SAS{cT3}q1& zi7Ybiasp`yP*@rZTr~m)13cw6I9e@|W}{|Apw=qJZ6y3$j4^q}lsJ<}G(|;dnu$bs zjx$ZO(P-3aHC@-W)}hs^s;Y{j5JE71_lb_)OT?)nNgc zhoQFh_D=w6!VAX|1tLE*2k*tTSX#iE0#g$#XLVhx)u?4Pm;U9FZzu+N^W>%Kh7h!n# zbZc{=T=u6kdIxy@l|2vUc~4bI2O^{68x`Mtm>XIuXmgv3^}(1YamkyU3LTCQkK|w& z2aZPXjUZ1Irf$ZQ8uZj*mg8cHPyG{buRj)YKXSiADPLdU{PUMrtL6RvgX2-DrPj+q zj^_pz;%~n6#XcXn(EUTdy$+v@9BYZG%Fv;)Lg&o-#JNZQ8<|n>^6FMo-uQW<^Ys1J z$2;iAHE;LwQh)HuS1#M#dn>eWX07n7I>|MYvrp!3555Sl9#7rF*G;fQH_?ckSA>bLY+-J9cdE-o0D5Ze6=}?b4-7=ggTiWy+MEo}QML zmg?&2;^N}$?ChwhsGy)AkP}D2Xb8|C1QdU=FfuThGw6WK2IUC`j{gk#95Nmo794Em z5Y~!WaiNu4j62ZAM1q;2K}g$ZTZN#rTaUPI*aC?_B{xTL28R@f1|?PoVU2(p3I`vx zun95*&0*Pau&HT=YQiD~#^9r@TnqtkSQ0m~bO|Z@%&4%u!otR&&9!gCiBgvEZk0W5 zx{QkxdRE3?uH)5OynttYyt)Ca!9&MzVZAfUVlN0E=-`#xH|vDggtl(s_(DB~1q|z4 zMfCkHwJ>^g4+o{~w8VZ@rIoUZ2$_?t8T6tRxBBsoUJJeYEN+aYF?8Pc^ZSR#r|0(@C@@$90Ddaf2mk;8 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/11.gif b/utils/wxParse/emojis/11.gif new file mode 100644 index 0000000000000000000000000000000000000000..b512dd5da196b15a6fa31115da13cb24730c14ef GIT binary patch literal 8033 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 JL>v}y{2v!$l}-Qv literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/110.gif b/utils/wxParse/emojis/110.gif new file mode 100644 index 0000000000000000000000000000000000000000..e253abcff6a046ec78559c5403e2e617a268ecb7 GIT binary patch literal 1082 zcmZ?wbhEHblwgox_&%NCKL{`Y;eQ4O5CNuuOnyGLqf7Z$Pm(ydLG{9B?Mqwr7xw6! zS|xREy~_Hj3KuqMUEHj5WQA6YzsSk823NM5T-{-Mb%)uN?WU*Jn_Syzadn6Jy6O5i z_SnftaNOKue{-+H&ApDd_BkD1WqoU(^X&s}ODCAt^Z=2loF`KT_e zb6ni$x~4aLdPBIMvq7l0MXaZWy^VQoRq6Zp?{D3@b@1T9UAuP8ojZ5Jgb5WD6^V(7 zhK7bpN=iaPLQG6dpeP&#WQBm@PZmZ7hUpACAl;xm!NBpKL7!8`W5a@j%^bp7F()=G zJlxdCWZNRaF=>8B<3EKXCkzFY85l%Z9~D3EbLnVhd%2QXy-&t#vI1j<$ciPN&5ay_ zw>}^DoozHx%X3zxhTuHw3O_y`6^;p>X4!`(6mH>Yn5&=sYf6Zg!Q;7h`P&LCo74Oj zyC+>*v9fYpBWyBoJToj z+fsJlEpTLRw6lnFN#xoFT{lJZs$-grm4O zARvc9sSFTK34k*FU7?gEl`$kG^*j;;v{V|M&+Rz`v_102l_x%h}660hDdZ$3HL+B)=NYPLRdA({W0gLfX#{_$M?ZdF%ZGd*kd zb;aH_9y>GsacSaP^~~eFFIn&AfKmsW8-L}W$M@WCJu>(TrPn&E>Atx(k~ma#xkiEU zzTLISnyJ{x{MN&!iORaB*!I|?e9dg_(9Ws8R63eFadUq%wI12|Qr|JZ6#uaP?AB`g z^{uVl#q%@M@W&^mr!of*K4}?Q=zKa|i_fv%mCe!WtC7wdDRtv@x}~Ww7g_wSr|uo@ RS#9k1S66;+R#bq~e*hcZ8%O{E literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/112.gif b/utils/wxParse/emojis/112.gif new file mode 100644 index 0000000000000000000000000000000000000000..c8ddce88a45b7fe4703a663ef2e6a7044c977601 GIT binary patch literal 1111 zcmeH`-%C?r9LC={*WQ%rnTl*8wNq+NMUJD3ExVZ0X{MB$7O{q;laNGd9SfnGnj?+v z!p#Fo?!q6On?leyhY}{Zh!K>dAYTmX5U8B1T6EE|F3z`k)gMt0JlD_XdEn{jY_~fG zOvr>3Kaypc5W@3(I2;y5F%Sr3H)w~$0SZba67aJYG6-Y@cPZFnfX9%=uxtl`NpPIi zY9)jNwN{p!;1vS|ku*yPtH=~ch-5^s*9$^K;(b}3W?5DeUFme1q-OC*yE zhon7u!y{!f>Q<8QT!v?11;e}t_8G-zQWQ*9c(TGt(epBEh0lz-y#>H190e?;3bSg+ zLwr`4w@c9g%-UfCL&!;@BZ`k!lLFzQ5b6XDtJ_J)A{e1KmleJ-5VC`aA<2M`k|aq{ zlx#K&Pz!({=l}XQ7NDW|Ud#iqX1P~Y4*>>8rq z&eeE6^i8nU+B(C`j<8me3YGQTsXKjtb9Yu(Tu~JpwzN(anWJsuQY?ba#omPj&+^kv zlVcn|9K3ANXtV{D!*BLSKdp~`EkAHR>dGrP`Mcm)_m!K@zpy%_MFwQd!H(x(_ns}f zQU-15*gIQK;ma_k8w)b4uC~UjXYNr4%!x_8zoCEcN3gwP+T7b)r30;$27cO56K39^bAfM%|N=FE%vj HM9qHy)!-g@ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/113.gif b/utils/wxParse/emojis/113.gif new file mode 100644 index 0000000000000000000000000000000000000000..272710453f6b8f6fc9b6c34192c52dfe5a538293 GIT binary patch literal 1015 zcmeHG%}W(g6u;&($4Ikh#E>s^3ei_mjXcP~5}kaegGoLJ>z{|M6L!&N6c!Nc*kr>ARidJMy8`_K{CrDEGEwY;$Ds^3wc| Mo!79ZK>|I008m#NO#lD@ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/114.gif b/utils/wxParse/emojis/114.gif new file mode 100644 index 0000000000000000000000000000000000000000..53918e2ae600a026da6e13bd2c26cb49c309f026 GIT binary patch literal 1003 zcmeHGO=}ZT6n(KGi4cgk#UMqK_z|ZRX;jc)l{jf*8dR{<8bTMEtaMyhW}^&9Y@ean zp@cAtF5aRp9;omjiw=k|P!YydVW?n(ZU(W1Yzk9X)zxw0-_Ud6+{@uE&OLCij^{3< z??y?K>`oDMLHq(CUHaSnky3+mQ=>k0D8~eaV(h96k^)&nNk_$i#-SRnVIrlXKz-3u z7^r~8T%B2x>Th;b4o$$Ypy`}wi0hCUCOCo=Q5|W90*7cLZXo6B0;&bqgT#>LC(L4ip>IfzgJ_Z9`aX4;34l1HBFILUEuvV6Jb&=B7ot z=>d#$E(BwYQrf-$KmOGO;=lI>2$>>7-2l2jL4qwJf&=;H^1HcU@8C$Z{9b+*Pt+nm zcVhDkeW!+B=GSLy`wz?azpvh0u7!>bTq~yISH?pJb3@gTI=Z$m94S7op3U|zCWr6* zy2s~c2Pdn!`OM1JYVV=b=fs;mwQw{!l39A)q~W8P@@Pul?72-(PJe06^gPgyq#Kuy ze=ge#=K12zdWt8W_nn#ky76MO)kyZ=T6y?1+lrjHUXMv@k3Q5tWg8jk)sL}y?9x)~ X+xFzxfy9j``I(PzO=U3OUr8Il3G`5#Y1gbvsMo+n>l-EvovdIJ=A7p zv~(`4t*L1jyz(J@its6ZT)bfd;stLZ!UPqt=r8CG=$!4G^KhPiznzSuNA{#-v4IUP zA*}iVf4BIpE`fmjfOSEJlJe5*8w1J_2SVU^)V<5irSyaW+`kU}l4n z4L@06V8I{@`dOf7f|dyyCJ;-y9j(tCb6@SF*?!~j;z>z>BA6R81j*V z^sOgpLrF3UNfAP-Sx2g;1b&T=|DKW2my{qX%gb)J+vRdOolb|tVYl0DHrw3X-0bY^%*@Qx)Rfg~ot&JUn3xzJAGcU6 zqobo{v)N=a8I8t~k&)ryVS~XiG&D3gI5;pc(BI#$*XwmUomQ*WXfy;tsMYG8o}TXR zZXCx|DwR^HR45dkot+&W9T2+eeAQWlHLe?31B(M3!&IXKjSef7ubpA$+=EQl=G>go$mswvyx)f?+=wkUy6R2 zTE|Jr_iV@{cWFf1SJZ zI9fP3syR5W2?(4M5I80vuvb7}tAM~-0fD6g0`Daxo=Zr~5fHd1A#qJY;+%v;4^WMS z#9j%Btr8O76&2qrDy{{pQB=IAsCZ3L@xP|#dri&fnws}CHLn5LhKA1#4gXtOUIQ{L zE$>-c{&#YE@8q-=DCp(&KPc#)m)HBCpld)fD(YHL(DSIM|HZ}stE=A^7e5CwdV2m( zneuN zv0=f%W)5Mkm=hZo9&YDI-|)fE;COetV;_&CV6tbsh^B=J&mm{eN%B%E4J@5W3k4)O zMHm(?Japugh>Dd`%EP1+{nDC#F$V-5rLoOrm5hjBWKM7AmRGXjNNhUNDJ-fZ(KGSt zG3G@Q3OXGd9yT#^i#hmMNGxU+RP`vCQX#;|6v{6y72uGy!JU`IHKRe`pkgbhh)~jp tRO`bWeY4f9bo?Zek9ACy5^;_ZTI|{*JK4Nj&Ue?AmzP)Yv#~H(0|4z%v4#Ku literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/117.gif b/utils/wxParse/emojis/117.gif new file mode 100644 index 0000000000000000000000000000000000000000..14611b6ef950a82aaf12e5c183b7c4f0edc7c243 GIT binary patch literal 1041 zcmeHG-)qxg6#XozMy)z2N`$J5n`l(Tf`VZBg605AVFPax6ph8|Y`-wv$ znF6SJ$X9oI? zvl$9dppgR2Hb9F_0NUkmYmLZM8$PxTUQ<|A1hz&YNV^7uHOAKCrpmx9?HH_U^0p!P zSavMg!)oAYF4mep!YV)tFlAt5fhGY(05&8og;Yh-h8>PZnF?iVG={XJGYB%S5w~^L zGkMPveI(h2=pot1N?^Bc>J8UudZwe%P@*toyw>E|_>^{lLqZO(@TW_rcti zSgtJ1Bnsm0;h}Tm`E9ZD&w9gCD+IZfh)$k(tT literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/118.gif b/utils/wxParse/emojis/118.gif new file mode 100644 index 0000000000000000000000000000000000000000..8c255004ceea385e7d193d36f9791885db5de933 GIT binary patch literal 1012 zcmZ?wbhEHblwgox`0mQ^9|RbH@IM0shyYVS=KJsei(95_J$CKh`~S(+J=If|w#->O zXX~-O*Pb7{_ddI2N^#Geo~2u-tlhiy+`V(pzh8U*zh}N#tHdgkms*D_@eQ0w#W z|C3v$WcSQzS-Q2lXUdeNYv-)py7kz(d+)zjFWuU*c5iZZOUs<4QN`8SEj`6OQ>v%T znX-24+GFRop1XGL`TOcQOOsoAvU{c!PXU^+wrB0ubMLC&xRL7o`}qai?a2q^w!VPs%%WzYfX0Obh=j*AT495Nmo794Em z5Y`gWa6IJHDqM6V{5OiPc9rvnaF8oqH*EI zfrTeIbu%(1d~9evJ>AxAONQek^$T()ITE50i`ctFyt_^AGMZ-bOKYwYd->py>+xmw zK_4^@9XQf1$z%2H#l+H9W)^t^mk+-#xbw?vMrC{u_};|PqR+&?rSN-e8<)Dl58EGy z+#X0dvIwnv=)}y*Ef6KPMX}`p_b!vFJqZny@*E}DJXa`edc?+|AXzs_B1maf?qWtp G25SJxwBaxS literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/119.gif b/utils/wxParse/emojis/119.gif new file mode 100644 index 0000000000000000000000000000000000000000..65bb468b950af19bb195dbfdc7f13c07d1006ae1 GIT binary patch literal 1101 zcmeHG-%C?b96#C?n-;BY<`PSWE8P-9=s}5ME?u*h#fl1_%K1?2A>l>@mtwlx72z1B z7m>J7qptSQ0Shh^b-|_{mE?wdxb{#7LGaW=U5elm6sNoXjOg=)?=L>^<@15>@veAl z+vNZV04ohx3BV2pKq>t#cB?7~3Q(36UXUb&GlC2ijTc}z#c>i6WYm^{Ej=8M^fXj5 z_6A|7>KwFbYFnD;kPa~orZQohqg%X21WYrs3N=I4sbZL%q#$BZi=_lv!UR)GHyI~D zgPNSddL#r1lXQwGOB*a>Fo7_cSPEqV(qwFC)WSBOFy5vSOQwuR8q{>nWW-_;Wr$j; z$#_}O2!-}&GQ(oJWuFizV;x0BO)vQdas2;9_9WRhyW3_$KG_Mf{CZ`MEpJ>1eP$H&9*^no16| z##cPm09;x17M?r?&8Vn@VVH1&v^d{_XK#7819`P9v|Izrluo5sB~8ydEo!N z3Pdq?wma}~W`4<6*O^StfOUsIckuS66dO2J`E-ADsWrB+yf#=m@`?ds_V;oR@d5hHSZA5zbyI=cwL_O52v^M?Zm7j|Lb*6sB5IQeR3Uq z-w^%v*W7XErN`H|@40nh@kPs)Xhq&ppC}vc7#jT$?S0>Ws?%KvH-W^}u~+IyAPy$M z-ftZ%4KZ&bGJ7wy>HfNP!L!^v7W%U7Q1EE>`Nn*;qv1w$_}#NdbK-Aj<9gO{cc%v& F{sWN6MD+jw literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/12.gif b/utils/wxParse/emojis/12.gif new file mode 100644 index 0000000000000000000000000000000000000000..547529cab6ec7ccc19719487e644b132b40f9d9c GIT binary patch literal 2247 zcmZ9Lc~sKr9>#ydF9icZL{rBF+_Ky=9V|x?H(Z)rI!&34W=__$XtnE zBme@_0kc((U?pApOdUuriXUtq7Yu`OI#@gn)@}mv;qI(&xM7fNhz5G?K0I^>ADpT+ zU^!P~#tV8JL8xGQtqk4+(k0NKKaocOq91^q51!+|T-ZBr74V8wpGW|MyF}fGz?e4} zb{^7M0VnCxIki>%* zM6eVm9dMP6_;z2?Dhx#fd1qd*Dj1;w(E%_U47#o5LoR@)yH<<=ZDwG|S=4_Aw3{tA z*>+zwd!McN=q{N2e&(STXf*|M;VZvuNZ;&SZMW%QsmWVRMIH3sZ1u$&6CiK{!!BUR zN7Q@vwS$VN)fIGDw*3PIstC(mT~VdUa;0uXoIa2w07+~<76R3p(~k_nr2mVP*uJjz zzV6pk&Dn>IA<$*Dwz?|(I5^n%c6wrLsJ{nvTY;%PVDfND2(<9pwL6`rrSZ)pD-HMXb zdA46Rs!6hz%cQ@b)g2z_U2L+Kir)>~CXbc}O>=`LhC7Ro;iiRyg4!!fZH{HJ7WJ20 zilZ%G=KM6p&*{IZxh8lh9WUXtU8*vIfAfJ?``u@257xvJB~9D=%T9jeo?U7>DB&OK zV4xP}=l5_b9c{#|pjmaNZd?d^Ayzp zCii@LLK@1|7Cf>P@oWTnCZbv!@wHPq>d<_BITs6yeIao{29VyHKH~^zk*a=#XUdpLUL1}ES zW~*K+@T$IGSI+hkQ1|gN9FB{R@=Le*hK`5O{ZyVKPtBJ)LB=qAREa`PbbLCX1nCmv z0ys)MC4yQ}`1`m{+EZkh7HZnKUOCyqH=ex`P2cb4UGqrk0Mu-lYl?;!rc|TSbL?=t z)O$3i8EKC4(F(hKMDd`e_Wj1Y_Tv3&j;ik)(PJf97_DSQyRNr?6!c1`3Qu(K}5n@2WxJTw5Be;psTSkjGPvVH{F{9Xlw0;>V~cC&Qk04(kx- z@p(1+V7pH0R))Gah4-6_zej8{^{PKD6-kEby?rg7H#Qq+X9V(gbd1pO=CdfWw*!MQ zqJqXRcfB_FFi1_=ngciVQEwKWQ`Pp$I&p*>&TR7)P{#rm9elJsc@|&zQ>!zv(SiV zyK$jxSBf9JG>207vjgeyY_7RHi+9sXy&_YCA9fFGdFm6MqE+K8uGW|k_J~2!pB^?r2vUQM8OwEE|B2+ zEPaJ&(R)eR>!Q&k@JvRGSx9LB8Dgd(QCI>!oaTkoF(dQ`us_p1n5hLmUjk861}B{F z>OQNBb;mK$DD!Z4T1O*O_=lRub@nXP*n>z|juM95AR%hx7LqrU?v=`>mmCUzGJ2Ur z!x*5;B!+GE8BW^&o9reCRsgRfUsfbbEIbpQ!9*#LIRPUXHk;u^b+XvEQ9lxI%@E=` z2+Ut7^#eyDukak@K@}_Csy*~&ogRhf`;Il#-nRciZPwkqgLD#cYeDasJLh(iQ8BY2 zZ7eTyeRZ*Y0i?@MkTE7btGG039HMI5Y$uyVO^YnspQ@Cfug5ZZAK?(Rm=?lXB`CxH zFY9{q=^L_&RTRyGaUB$yTyG8-6yn7Z5;IfV{^uUP(UDs6H|_+Mq@;{>zES?| ztPp~-T_in}wNw3Ew+UDDF^8%CsU;!MhW0YaOFp$5C1g+%PW;HykXX0W#Yx3n#)zpw z&EEypMRm3@sVa$!X8vNfV7w7$(0=C&Be|iDvBBo`*O1n;i~TyJ&FgGVEn96pXe@pC ziHr2Puym3NjsKW}_r~lW36)wjbZJ^(RY=h{jwIjo+rK97WuIe3T({RploHIDMwi!z uq?0^>q-i1!UeQ3YIDcF^4%d(H%LZKu{)V)bX6ANJ@{hP;`ltg5+Wj9mJt^G) literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/120.gif b/utils/wxParse/emojis/120.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ce77c05f0a63219bbc4623ae223c5b8cd6942c6 GIT binary patch literal 1008 zcmZ?wbhEHblwgox_%6lp9|RbH@IM0shyYVS=J)U4-@kwV{Q2{H_wHT0cJ17`bH|Py z+q-w~)~#FDu3fuy>C!oK=1iF~rKhK-rKP31y1KZyI6FHVWY#Dc4S}H(0*XIb7#SF( z7<52R2IUC`jric2;GNIT{NWxps5tn=l;MsLa5k;HZ`{ z;h+K=o2Wp=9|<8xCRQ=I1dR$KM%I4aShW=w4jlApQfD;jIAE00v{*nvXrTT#wK%Ho4MA;I`y4g@(*OH)fU zROT%0uBZnftCad@eT>*FgOTI4RV;HDrf4vg@Q~Mh$>(;VpGM| z!P1Hv&eV$AAVo=21w-Mf7G?@i8HmgiMKBd$G8htIi8nO?$zdviF76-_uO$T{0v0(+ zDK5H1NZ0jJUjOm0BoN#z^8k#%q0&L6p8&1^AGtt$`tjSVT+P8i|M$TM*L~i*!p7nH z`IKb#f6ewLYHH()7hbi;K1@xWed14b%%!*Q_02@XFB;$94xAXb?yO{E*(SbgbS%4? zt_rjbEJgP;lxLfE@kcY!mARWw+lH5xfBss&&s9e+X4VEfs-86u*Rgef)?2wd(0Hz{ zT-G19K03cP<~h05>yHnzOa6CXs`qWQa$!%ZH_$%5m`P3h(iOFD%-H(3bnpIqeFK+$ zeb;t|j*b6Vm~0rzwA7zooB!0gaI3CowE6dz(5Z^o-7hOQC)FFVmj36_NY84z`arFB aVrF<-{7mSxZ{mu0WY*0uH-%oG&y8EHY_;U%pt60 z@+1G@p?U#Utpba}2hD6kDt}hL*s!pP1DNuEs3$f$v1+hR5|IpYYHs5b445JC>EMYT z1I@H44M9#!z1*33e>x{FXX>$(OiP)t@gVbbmDy^lKh`q__wXy&l)e;JKg8;@JME9; z)NGgLa8;WfCqf%8gfOk?B!X=!Oda^}pLX=!I>&isGo%;U$8&zu1=fdW7opiv-4jDpb+phE~K{$ycf zU@&CR0oeu06AT=G7?L?;JT@#i*vuiUrSfC_!$Zxy|9b-rlpZ-Z{ui2Y<3yoLQ$4@& zKjV!Fjhz#vwe|jNZ*b}8&=K$Xvmzj=gGH{;%w^$3H79}p1_=?0Q(kZia87FSInl^^ zQB+KW=dZfb!G@(A|JVMw&UDzG!EtX~&%uM*fua%t0!L>F9J{b6-*C#0=}8N@`6cH3 zOE$dH%pu6_Uy|`+kyERn=RpSYUC7{l9(b8==ga* z8?Ro4S!2RyF8&;Dw$zX12RSFnH?`fEaPz^XdIhs-5{XF+ZbBOstr9LYx^(fY7^s4q>gB69ozFd~yaAFD^__XycJE4q9{L zp>rF*oK3|Ufkg{BdSr|$R(vQ-a^{tf?DL5%N@Sm*Vfp8G!$bLwHW8P$FB2S<+Gg=6 zb}=X}TFJpCJvoVmae-EYfP~hhiVDNU?X!d=f*3w*&}k8nGV}3}SmeyXt+*y^uR&;H z6OW8W!UX9?=AdmtHVhdb7G!nIkMcB$c+;@)nt-y1#f&=%pE}xLdGaGq~K@=4-w2{e328CI)K&RF;t` literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/125.gif b/utils/wxParse/emojis/125.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2c3c11c92c14fa76e5ae842af7e4b51a4cdec70 GIT binary patch literal 1013 zcmZ?wbhEHblwgox_-?@P9|RbH@IM0shyYVS=JG{Ljg8aN(q=Lk&s0`XV=zu*jNXzq z^9*Cd7sc8m3^V_OC1=i@nRe#P%>Vz-oJnIiGc)b~nVCMGZma4-&!idu**xv{p*3fW z8TRhlDayxlvNB~R1A{RG!x^Bd#>W3aTGP(VoC(wl1YjOe*cjxRQ7{?;^a=sRpDc_F z3mEFS`IQE>2Bq8^hi0txX4jJ!e+yd4~Z>D8zrq6 zUR+2#+R7(scPL>)QfsR?kHDUSjSnApbBn3{S-fE(>zRHYyFbnsoEo`Bb<}E7KAu0+ zC8(np6Vd3T=_0BXmG!`Y=|~5+mQIw!$AwQ>g;net{z@dZv~3b+@Y%Ym$c0-})XyM5 zGoa-@566tI2d~Xp8xAw5@%+;`)XL4E*Y@kF_rrKj!T(~b|4cvN*euSg^r7{mzY{a3 ckV40^-HI*U?A-rOKC`ag^7b}6GZTX~02q&@4FCWD literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/126.gif b/utils/wxParse/emojis/126.gif new file mode 100644 index 0000000000000000000000000000000000000000..24105c988898cc03bf21c4ef26df1f7fb6f34824 GIT binary patch literal 1030 zcmZ?wbhEHblwgox_-@GX9|RbH@IM0shyYVS=4(BZ{|v@IHlAO;XlYv7%rj^HE32rT z`TyV8m|^D3wEt%q&dg-^x1C{T8pHpY3}@09(u^5=Jl$5+h5k=t@KWQ=4RrmVX1sUT zPEkIdUmaCv7#LA%Ky& zr9)3hX@bT=&DLd%T7Q%q6%^T7nB81*v=o&(g*ieLdS)y-(!k=aTqV(Pz{RauQi+Md zAn8cM?sE4fC6SvKxG-pMT2=9}>0tLxhNwNNKf)V37!?J)@BKWV@U*@-P{F~V^4-Z( z?CxdL{wS<;5|VT~e>6erAuE@tRnN7AhfdkeqB<}31t=bBVincPSy8)t(Z|P(j11NQ D*;J>x literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/127.gif b/utils/wxParse/emojis/127.gif new file mode 100644 index 0000000000000000000000000000000000000000..0cead364a05f031b024181e7c778f8b206763312 GIT binary patch literal 956 zcmZ?wbhEHblwgox_^!n89|RbH@IM0shyYVS=1d0TGzQ}{X*16N@yxU{XJ-EYf9C(0 zwEsIpugnjfnPz-uX4?NVGriP!|IbYOvw2!>pzH5LYxeHic?PK07^pEV&DeNmTH2YJ zAONys6pV(z;0po8pDc_F3`z_-Ag6)y1OvxR23HOlj|~eBHggDT$*frL(5aQfOrc`N z1!g9G5y7Y zXcctgg91|vhnSL%z^et0%xt`3IvlemHZcqEnlvmhNOU^RAHLCShrz>?V_Yhc>q=&Z m=|*qWaZdR%!9n$oK#^vhhrnf(dwWFwbFq2uC^*=_U=0BHNPF`D literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/128.gif b/utils/wxParse/emojis/128.gif new file mode 100644 index 0000000000000000000000000000000000000000..3185861818bab566315b08e4484ebe313322d779 GIT binary patch literal 1022 zcmZ?wbhEHblwgox_-?`Q9|RbH@IM0shyYVS=JG{L(~Q%M8PaB^onc@AqL~Z~X$%a; zuI^Wijc2B%otZiFe_GniGiUxY7z5E6<1`>S(>U!+;kw_`w%ua@>H=z?`QI35z|1o< z&-`a>_@Y>Qgkk1?u#x|bff~>JPy7Er?aZ09nLzpfGl4dpnfd?!86Qu#+(6g=XU;r+ z{P+w|2q=*TR0wj}C>RX^>V|;gPZmZ71`7rqkg=dV!N75wp^!tyW5a@j%^bp7F()=W zbP_Ym*|R`#gB!23o{Uw+gNDOgeB5Ft1s#tWn*~+9mPiyPrZ}^kF(f!JHXQC0;x#fk zGokTt+XRQ`eP;@im{}Q&6FfQ=OipAIV{kbm@bTf{CTTe-GX}$l&8?Ci=_&;~4Val2 zWbJ%ds~2Y8~0`r&V*oVP;YD0ZwC$41r3PW^Mry6TcIO8hIEt=-x_rbD@=|!%X4W2FFd?-{0p0 HT4N0W2Y{>5 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/129.gif b/utils/wxParse/emojis/129.gif new file mode 100644 index 0000000000000000000000000000000000000000..ffd7c6ba331d56153f3366f181bd8ac78c845e98 GIT binary patch literal 972 zcmZ?wbhEHblwgox_%6lp9|RbH@IM0shyYVSCWG;RolVg}L*t?%3j>3SUB!h1O|6~W!VVua z4lZWpWbkY9;Yd_=n<5re<+8yjiFLACYE(snqLXivkhaT$hKngJQv}uisLXiKcwx4= zvP(fiV$-Eo?s;B!XNfd1xABX4gfJ|8eW^*3&q(05fb*@^e8F9^6^;*X?<(ehbajFl j^Syo5{J%sk$_pOu;$+W0;IQLkQpW^k?|FL+6d0@l-`aWZ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/13.gif b/utils/wxParse/emojis/13.gif new file mode 100644 index 0000000000000000000000000000000000000000..34753001ef80a38a08e8a75f23482f528313fd1b GIT binary patch literal 1736 zcmZ{jYgp3v0)YR-MNm`}RCJbMYG>ZXyfmGGC~8?#Ys0?8*@jT*?#g56@UTePd(20{{O z#Z`W}2Y^BFIt-{;@2m8|PKsvO9mo^Fo6|tk4Hju&=2Oi}zv2kEywhd(Dfa!sz|QJ; zHXWv!^4T3d4947~eP2jlgpN1lfi5eB(BXBZY2H!zbiSVWCp7Ph7t;fZIslCcJ0^yD zf$HbJg0rA=@5FE)SPKQ~$0ZXZg`qI88Vt1BnaR;t(&gO`AM!)@Xw|!5HDqZ{0yxG% znF`j9gXiY&8_cRAA@v6(5ZkIYmz&drz_4>msy*0FSZs{=&}rB8DB%tJn5qdcd%FR& z>Q_q=jq)|;I(D@L*HfLd@cb9)?BMRgAMFf+Li80Fu&;{301keo(r&4OFgHEk%`g?; zw3vB7lybe*&A8?H8EGW}{0BcfH8x*j12l~_v3S+y%B!`NRz_e;n&&Ha!~%;1RJmZ- zX=-$UlY6ou*`=C~``y@qP9^rxeT@472r7OyVO0YwVf zxw7=HeXBKA{aFSZLnmbAdQ%nt9XFhJ1TK%Gabtpix2BS1^;V$8u&wYydn#7`ZtKmn zNHF9iZ9XV%v6~#}2SO{rH3wolphyF=e#+L5z}DG~ZXeKVClydOL_SKkg+_7&%=l>< z^fV1vpzQ`4wRXx|{urwj*=l?2ly6s5Z<*uC~@ zX;?AyBqtK~O!sJvN>B4266^lj8fBMre8f2mQf*?a1D~l>_nb?r;Txr01 z5}r8)N96V!&3N9PF3Rj;@oISI0-2Y)Yeym6;~Y=3YjhKJS;!2MCQ6cL;9y}UNoM39 z$@lur%^5f82B{c#I)c)=4L)t%oa09QEwM9pz7F+S)|yOu8Igss{@+AXZIq?{P8~(HtPAx`6D%({k))w5yqYLlz}|G_KIJA z&kbD2Q1tI9%B2K(kk7jbD5dRXx#koK>`__`l*qK`3x)UWLoi`Mgx`sU>5l$~4rch# z)5C*&9aT=Ffq`@AJm26rI!qsa9m}8@ zV^oVGa!hksmZiC?Yv+MF^ts-EuXA}iq;CT<#f0(sXdO?ICKh8Bg3X|L9qDzepu%AP zO^W=#Nx|PI>l4da{yAtJ@||y%PC0+Uji17ei|K-l3yhffEPgsezdGf@lDu%}H#n)l zwWr%g^fSu7e(ham{jF;FO8jUv-2hgW?BCi`esv|y+-@gIgG zpU3GY@^ECzkNX2e;n|Yx&=M{)nVu6}W)zG|6lK6ZgM5iek?Xh$Sn*!h02A{n+dxA^ zw>3^i5$}D3?#9WX(!MU!b9Yd6XQY`DV>B#I(};r@PDy@(@U5$xeYZ1iP~CvyPkYw(=_<`$KeYvp9N1K_x-T& z?dR84XG=!DqaLN?TLxkiI)Q!ZW>`k)`BGCwO9o4AN3;``vgbN0(e6xnMy_qF7ugg1a6Ln4K`WNFu>9# zgmhwKo{xZU3}!)Nt_9uuy={yNUGg3Abcds&LKxiLcQJ3jFin2j?3|1mY%w%X&i3%0 b%wXQ%bA}&iOq(CqqD1myE4p=^k{ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/130.gif b/utils/wxParse/emojis/130.gif new file mode 100644 index 0000000000000000000000000000000000000000..d828e3da103099151b00c5e700302d8d9c69f6a7 GIT binary patch literal 980 zcmZ?wbhEHblwgox_%6@z9|RbH@IM0shyYU{CWG;RhBP2yoc2F$CXo5RaNTdl=q)qP z{AXsQAA^h@1*0J_ zh(kc}CkrD3gFJ%{$c>;p!N9SR!Jb3LW5a@j%^bp7F()=GJlw=7C*&gVk(sGcR6gy+ zf`!RV-F(6-4>l}(!p18ho24;R(bgC=GMei@e~5)T<0`WYlLN^S_McuW+QbYu9?fAIJ;4e50yD-}{sOym(}2-uKt z&~pyA?z=UWlO0dB^1A%%X>fSv-YF!@;Hq&&#e>~Yc-@v?fmvazVhod}aw)C|T_4x4 e)^cFM+UV`lp-vqJ+x23*Dn7rud)h#O!5RR?AYTyx literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/132.gif b/utils/wxParse/emojis/132.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b272a690b6740b94956037d021a9f0aa7136b64 GIT binary patch literal 936 zcmZ?wbhEHblwgox_%6=y9|RbH@IM0shyYVSrm}WOS{j3~F;L9-|NpfA*FFCq2>rh^ zGz};+)7Zz;%}b5<|I9Q|J|1I`K9IIiFd70wE(8>RvM@3*h%@MbTn@?;3>>Wt`W!MI z8x|aF<`CA3Ik92k;dbu-jwV0)n~rocYnx5rSg7p6Eh3{b!Qo+}YdeRNS;m6}2R+-w z6aq31EKqA^<5w`4^78>>Gpl|6tDF@HX$-TSq2ftn+(f` j_xE!N%K0cn1u;6V=hF@_=r&Bgy}jV^skzYx3Jlf&(}Y^Q literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/133.gif b/utils/wxParse/emojis/133.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d0e864264353800e362f1e7b160d9be9980a7b3 GIT binary patch literal 1012 zcmZ?wbhEHblwgox_^!SAHXQs{kf9Aik zids^TV45*d)_7)`@&7Y3eLUU%r!jb`@y;}6$PIKoW6U7R$MfHqA&r5-n1Lb97^n;c zjE#*!){KJD5Ex`3p!k!8k%2*(K?me6P@Z7mxX9qnA>*-O!NFz@VXc@G8xjxmO3OJ+ zc@gk{jZ@IX#FI38l=m9jD7vHZlyI$gk|qC&yxAv2r2Rmg$^lha$- zIVEabb|f|ia5301cyJ{&H?s)}ol4oTIsJTxoC=Sr#UiFQywg24xA!aQMV%C zt7AK#*crJqw-gVvua0MpyRhNvgVuT`*N}!CUmIJv_{zV@eq6XPK|n;U;RM5?MIB3R tr!$>+Ai&~scD8Fs-i*d34pt5kod%nQn=>y6YqYHJ*uCv-8zUowH30rSh)Dnd literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/134.gif b/utils/wxParse/emojis/134.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf48356e334edfac6890439290f2b5d8f109b594 GIT binary patch literal 968 zcmZ?wbhEHblwgox_%6lp9|RbH@IM0shyYVSrg7Stw3+{vRn&})8IpnoXQnZv88iGp zGt*0rccwAJpUu;916@V=c#IhsW*Qqme*E~%nKQ=5#vrps!Dt8!oe)s`$->CMAjO~q zaxy4SFmNnoFy)Z(*s$PWGl#HN%!v((hdBk5ok~_5WOU&aQt>PBP;6>p=Qr|7`LUkq z#AHchw}cHB4mS0xCtGz~n8bKyhJxmX5R1=@4fPC7Otl~Soldiv7yirs@u`t{Ccl)4 z3zyNMGt2pPELtX*JPGRhZ_s7x75Jcuhf86C?rg?}CU!1{lm#;u=0$TBy*0|IUbz15 dKJh1dIo*mH4J;g7>~o{HZG3#3otcTj8USjkX+Qt~ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/14.gif b/utils/wxParse/emojis/14.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a788f8be067976a32bf37c13482a2d41d367ba6 GIT binary patch literal 4006 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/15.gif b/utils/wxParse/emojis/15.gif new file mode 100644 index 0000000000000000000000000000000000000000..debab8ed082d3e38ac6a824193311c20f9584a45 GIT binary patch literal 1562 zcmYL|YgCd47{^}`^hM1O2~ADG3y~M{R%x|F4R2Jk?3}D@YFo9nE?RDDCp+O~d5M~~ z*=1`>o3$)gP@RM>3pMdt0+A-EsNuCFED|p-JhQ&+`Sg7FpWm0?{~sG46BeHCj5s4k zK)`tT<>hGjun!tMs&y_KfnRo8hV*+@nCxXVAS8#x}xG9JKoiGhC)+LD2gd7_-16 z(Vn$|=Rq^|3^3gSbvSf{!gN7#f-Q_Cg46}fjWAmVH6)Obp=Q3a*lD8L0mgTlG|{*A zxJ*CxG0OZVA26^xB+#sxyl|f0Ji4o6XNchkNC- zO@2KU9#8qG=#bygMbemfqq0H#zE?QfREiDWe0Yqdt@gRPo%rwvO4H3VW3RfKO4i)m zMH+m#c3jNuFQ>m3ISpQ6H0Dyx?Muxj?1kvt>D!LVGa-|*Erxd!Q!T0W+4Fn5o@>+{ z#-?pu=jbKt5YVtk1_!XwT{pHO4S(+YP_v}D>iCoDJmZ5ECJd|I=L2SJ^6^q_U(byU z|C%GgFwE764}dmC*Bk*8X~ImpuEtx}d9Jm9E+ce`{zdDj3DUTPKa)C!t&ZY)X_IZ{tdMv^?(gMN*LEK zU0vrclF0g_ToYE)_H8}P#h+rurigj6b)5vt_rY|3DmTA?$@L{w3AHGh=#+dpGmDfX zVm=8L5IYe*f3HTS;xnogw{o+|J>kKT#Su%CJA~+PnL3oo#I5sWjvFS16x9!mk33ZcLSRF3$I_W!+UH0L8z(zzY5c01biQld~I2Jc@sOuPj#3c zl}oS+c1|v#Dc9q?nCW&uJw3<@l%BHhyA~>PoYCxc)z^67LZX4t$?$dD_cb z70F>qc1<=-7sbag^=SPMG!2`Gep%>nc6ogU-> literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/16.gif b/utils/wxParse/emojis/16.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed5d29f428799b04d07715ccec87fd504d5325b8 GIT binary patch literal 1413 zcmV;01$z2NNk%w1VHf}y0Qdg@)uKApq*VU24*&f2|J*wG#xVc66aUvW|MhL<#A^TW zUD?#n|J5QMjYNWGVJ>gVL+-`w2S)Bpef z`}+Fb*wl_?LI2`H|H~%-=uH3VP5(JBq9vBgh~AH*2{?+r(h7wiz4pAQhRSB&VUI2`t1z?Wz6?(Fu)SzcC=TGS6;@zAd{oh2%sfO;kHtok#^|>?j zrwj0~AI^jhy?-wM_H<@oCbMrE*s*Km;N9lp-~ayn{NF+U>QRk%9slc5^U*fhq(a=K zM5<#G(v~x~f_8G0;5OaKv7&)tw=$LMI%-PY9U$(r$DePSFBi3LWlqZRmS`v zoTjP3xFlK>WKp0ciI5BobSXP_&`_HTiB2F8@!=hUEJx0{`{5bYT(E$HTDS zG2Da=OeM(h5-DD8aVU|-pOhtr$?S15(9S%|PaOMw0@~jk1HX(69EPp0;|CaQss4cj z%PSxQIpL$G!&whYEdq4_fvOWPAJ$x*5wHfhKy5Mz2sx4kL5OuCo*uRlLI8;b2+5eq z78pq#gA78h<=olxCj%-Pu;h>xWuTlsp-@1;6iQTK#T7~f;Zi9T7;wWOUBp6A81+zb z06r9qphgiz1c3w<6+l1(DVXFU*g&7e@rVSFynsYMMNATe1R59s3?O+J!Nfsm%)$-~ zBy12w5NAMu#RS__0z?xDmGR6nrqp1-43bQ+#TSk&AdN+06w}QqgYdydA(sGw3ndl_ z?aW2REs12d6;^kND-;_ T1`??H&;{Fp8wOrI7!UwEF@MpF literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/17.gif b/utils/wxParse/emojis/17.gif new file mode 100644 index 0000000000000000000000000000000000000000..85886fef9d4aab3f4b73d2d24866c444319c69f2 GIT binary patch literal 3366 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/18.gif b/utils/wxParse/emojis/18.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6af2189c8c6e5edaee66142a76d2ca56b45e8bc GIT binary patch literal 8137 zcmeI1d03K(zQRB%Pxu&l9k3N=eB%e2fol^|}pV_MociEHL$ zxlP$j3o0(DO=xDet65rB?ujcGtY(@sGo5qpx%WQzxzGKNKY8Bo`}uvB*TvPDV(p_2 zr~{K?K>Xp5c)n5m()C&_qqjbA{+VO3H(Wftt@@~OOQin8v&50d0>R%@2d~l}wBHdA ztQFU4J?-ikyK3;}#gp;-dq+!E$65nlG)2Da9Fo9-y;^cHASlz`(heT z7|v8Fy}I{v-2vpx9n0*Mz{Jm1qJf67nkC{^(wqLimgDl`Hw^Jpn{Iwmui$V;qUuPK z=hIs|#r629k$&-e&qsxhPqT62sW|c6wf6dI@l0-C(W2L$KwsVWHxH>kuR8dkX!ms2 z*3Nvx)-%0;sYT5SgC##WP9O_S7_4Cl;*$?Br!lC+|r9t{PcEZa- zjNc2>r=Ns~=gP%xro;C#J_wdf);Jagn0F;B&P-4Dl{t$Vmd~iL@jK6#EtTRYE4mAx-Hk$vMStrS zc+JmE3*(oz6#DblLf`&?8!RS_ces=vz*R6|qN|$EtF7O)m$zp)KjasRnSfXt}hIlYQS#zW@Hi zfN=U<`{ZEQz>FlIshOfoXFznWxN^=LfHtJ zesVogcG2c7LZV9#f5{>`mc%P^GF3|RUF9WmZRea?3@s*PupM;`5ndS{wRsKf@2orv zc5`bqv6-+5vM;9fc_Fbnxj>_`L08?$f`=i|WjAZ7!k0{qP3Fn5OZRkixS6%aERQ_G zSXIo0H7ahK?|!zLXryB3guZluWm#4e1BWLcn}{{yL(5QGsS56{^;8{GokX*~A^X@C z>x+G(YHLQ2L>)b3l&W=bh9hVNgzoXOi7jBzR;q_{(gF9N!}`tK0C=*c)!W|t0_GJe zRHLJe-+nmoD$ur|Qw?$Ugt~Z_!v=ZioGSK;*}dyIS$gu*hN5G;ehFLFWj?ND zKys~^nLLHiypNj6Uz{hapJF?mC~Vn`Sk%>mn7+tjDJILNv$Wm14#e2e$62j0Hu#>q z2<)TW^^jw-mXS(UBs2R^@2W1}(8Wa*`=~{#JV($jL0Tn(`>PMg(zhqErkF(Mn%{Z33L4kww@hG3xCIM78sLG%Xd1c zibek?qzuUaij?*peAk`8o+2ePlNw?^H2bI8HW>^iwiV2QX^y@Xn7 zKoSafA&o?h1x}XWYAzmu?Sg~%rz+u%)@Gj2-KPJD?U$5w!U0Po*8(4sf|N=ZJm$!V3b(Y2$ENfn$>SCwAEm4s_@?^AlM`okY(`8{V`9A|Dz5f6 z7-y|P83^u6q#US>_63_UW0k_Pdr(R+y->W;d?Gnl8#!zxM7VYE1c_wW13?OM27Ge+W^kCioRmDhx9eN800i9wrWo-RTMG8ZZ5iQ~| zELzhsY_Osu0~V!PAIPBoyE1}RQ5)nK4o2XUwj0n_j4nhuC4nh>%INp?>eNVP3U7P_ zdYQLYy98^yhBA}v$niU=L`JI8MHv%C@6rAtClwj*2gMgA{6EXc`QfqSzH4b4AU&FJ zI#_FOcyKrUH^|_oc`?NWzW5Z?V+Xd}Zp#f(G_F=$e9lMU5XBba{a!y90&CQq+>uGJ z(cirw;|AgWnn*nuebRy<2(yEtEzMY_3|h#weZO*2D%z9@iHHt} zwZ(KBe3Go-KyGeKfqOs?0<_MPC6NrXTF#;X0fIOOnAgS`s4hr0>_EN>Y+z#uPjYMI zGKHQWCF9zzp~7uq)Q3TY@l5+hZnTK${;OopajMZ<{(Z^*@`(1x|Ne+tmwjlKu&AG=f8&lMe V_d|8L= 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 Mr@cCoVQ=Ms0K+&lfC4>M083F{Q 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 Rn>5}2?ku!H@QL_0{{v#zS@-|| literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/20.gif b/utils/wxParse/emojis/20.gif new file mode 100644 index 0000000000000000000000000000000000000000..efd650f5598c031ec3a205351c95d9d83bada14b GIT binary patch literal 1808 zcmb8uSyWSZ0)X)ggph=U1c+&Xa7ZG^QUqj^MKEFCr9el}Dod@@gH^ORwWHWTB4QaW z3`oJT0xAqr2E$Saij@??8X-`WWdKPa?AnNIN$$;m@XVPxorigtx9|OTzTnUx56@&O zM1{5hv^?_p!Y>C_8Z5;eoRV*$>Tr;inmj&-ho_>!OP9^DQpJ6J^+?bV&rl_D9L{H~ zRPI7%V_w{#Xb@N~omL5~Ww-RF?wEtch{d1mL7x>o#$K&qs-D<_3D192`fHjDK&vs> zy0|cqAo`l{FvSR&@>Bh63+6+bvx3yaKFVe*<>X&mF1vJO8iV1z0Nw;^e_HJi1nOc< z7XxgZQTOcw%_M*{s9*SkX&>n=^6HOf&1txXlNfk1u>Yzl{K98^WKdqB504*&XQJTA zPWDrJakbi)lA9TJZY zKL;X<$2pQe6<-{^8tjrq&!oHzU3 zTXSP&4KdqYzOR3d-|9<+<&Uu?)Rci~#_R9L&+wHzYmDq84QQrQ2s_5<)wO?4(rQ2_` zy1aYlfh?vWvyswrM*kIz^x2;^OQ}x^KARqY@oM7bmM{>WIr65}eNir3?eU(kp~GFy zK$*Kb6a^0**cO<*so6DOW(dIOVyml07P-)5z0m5gHhA#eW5(NBL-00ny&B)~N8EZN zwfSr2LKl0!#sX}9xh7%#T5Qvt$y%E#>%B%rCJ$<+e35#6q#ln<$IB{c%d?Z>Z%CSz zPnC_v%0@CW6M;w%4dj^t02n|&DljhApB)|O?BJxM1wjx)iNfL_0NL;K&LmU_!T<E~Nv7hGSrv16dS*k% z8F%PQCFH$1#kmP7A$diPSl5fD7xG2cw$9rMt>~ZtLO_`CX?cNdjPRI9c1r4^4Ouw2 z+*YuQZXS}HwxAitk#JWTZjp}#ySewn^GtIlF2;ADw5|PgP8kaM0iAf-(T3B)eg2(B zc(3E|_~GygR+tyA;KPoq5tK6tccZm->om-fZb5{ADlT7&zBDbpWX!!)m|g&Q?ef$a zUE-NE*Yv_`VR(-}Ff+I<-}e$e$V5kll|NwXcwbzPug~5SX@1%V1?eo^em(V4v$u!}5_GXh6 zaCaw5ggB$PeP|RT!{zS`oNJ#K6qK8>E1Q`wl-_%h&ZUes--z^az}IeF*P}HRN|_fr$1Vde%AvMJI=x8miRO zMZIU&{eRg5rvEqln5*yQx`LzUt;`3`njW~})gvn;`{o8IY(hAk=lfDUk_$Aos9E$yPY9qqk}(4bE_*?@N=-JC?0y4nVoz+*Tkdw#P}Ky zM>V0gwQb*jRNRzR)JA3=&I#xG{C2nPy08!H?N#U>r|n8Az3CVJ%MP+$;=hosm4`5& zTtOdKaPIvZIVaKFW(PUxd`DneR-utiufoz|$5@5TjzLyC$S12fAsNSJ^x_g9L?=+B z!9Nh#27$@5%NT;a+{Wk*tEIY-g?>*=Qi@_C_4H^JLh^n~!w9<0()sI-zb8J&^N8T_ zS^6cgU%vD2iIa)Mh$Qx)UAu?z7>m^uOEl6=r?ZJZ0w**vmM7_jinkddY>m?lOAk%s zd`COqSwW!e$A6SF6O=S)_>bmu&!FWxv1f5 QBu;etXZK4eWD?~4PyES!QUCw| literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/21.gif b/utils/wxParse/emojis/21.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb8cf6d2a19857f6f6a13a16ce84b907da7b8500 GIT binary patch literal 1864 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 E0ebcLc>n+a literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/23.gif b/utils/wxParse/emojis/23.gif new file mode 100644 index 0000000000000000000000000000000000000000..96516b8d9368ae6562b4da1541b41390d56e4931 GIT binary patch literal 1950 zcmd7Ri#rtP9>DQ27Y1XQF{VkvjB#0p+)`SXxwxlNN_MIZgZ8o6wzhUVQfu5ARwAu% zdUDC7qztyQU0nv#P&0|J>zZq-iAmF7_#N42&-0xB;JoiY@cn&$@9XRDv)MJAj36UE zNe~N9qG7phvLzZ83#KQ>;JNLaGE#Fvj6!G&V)J)*w}Ij~e2j%hHp_K7b0W_20DGur z-(X*NM>-8A{F>s4Fdd|N>8fb-yOZeK^StBQ0nLHSM$mae*1D7E%( z#Ef0is{PUCegp!BLZE-kl4K(+)x*2JFysM?MX)S|2E&dN5=`!Z`$QOUhna&gf3_oe zJNmPi_ToKbhg zP|^CeQhacFv|lw|t?13~{mq~+kFxM|(}H~Rjnk*o6AW-@vGsT@iJu{1^ zZbTBM;Z95`6Y;J=Obspn;h;42B-&h~m6ET&)uQQ$<*u`wQ+4U0sP)mo+vux8bZL&PX17&6mU?e3{6z`eF6u z99NM$vA*X`ygk_0eaG1>r{$@6CuUej{+`VqIZlm1+j#ZSL4!J}S7z5iAEyC-E;DFvfVVO{C_wuF5N z%hM~Q)G|bEG!qGZg~*KQ#p7Ez*i(FlXNZ*%b^)`_(bI9*(X@%c z+fUZ3oYjwD6>d%UVBagvW$fD-8gOn`1HbD==&b+{Si%z#r zycOS;RQc>)=U}>8M*K&LxGL52Un%;P?!TpUPpwMjhJKd99$l59pPayt8E5Klo$gD* zofGF+6+Ts7os{H$fw&`81!JOEuKKvxod`riqHSv2F(FkdbmCUToybcc%QWC^i11i! zIm)c%ZrkiKf*Q{!A8au-lq0#gbr(Zqrc5rMYj@~rDlb8VN?c{)EeuD^<_st{fX(P%s78eAQZ=|m7~pd$sDeyzJlx0My#!2 Ml_pW68Hlg`1F!UCz5oCK literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/24.gif b/utils/wxParse/emojis/24.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f925c7bc15698964c943551584ed856aafada3c GIT binary patch literal 2257 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 ZAe=XE=`EVhT6UAy5GOqlm1`-s@L$#RTl)Y2 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/27.gif b/utils/wxParse/emojis/27.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb468901e4a9412da4f5fc0c4edeaa73b3acf570 GIT binary patch literal 2893 zcmdtjX;f2Z9tQCDE?EgAgaDDHULs&b#RObHC?^S9Si}^y!&q!1iVL8o7L``!n1n4L z+F$`u(E^I%N}^c6Wlk2L;8+co8F2vvir_jdvM-q+J*Uoe=F@zbp1JqjkMF(jd;Y)Y zxuIbpKECUjfC)?hn5HJOyus9~RTIt2?>FBz4R4=p4>|4!M$2udI>Jp8`^UBOhGby; z&+fx{gy9oZ)7aiAWAJbRdH5#VGKBjHutzJM z#wwjA3`@ICyHDQpF-_eat#lkZfE%oy`?R6TG*v%T%YL^Dyvcyan>ZIG^BXtdO#NSs zd`}zv26P)@rn;i8%0eDyQcXh%gV(%AA0K(y z58R(Fr2Sl9`=~syyPp5D``OE$t{2;ofhxDx$80r4oBO^cpW9&5Up~vI4S6AlYW{#e ztS)~25mPTdxttntJD1g{ z3^={gA}7**}PXs?qSqsuc}Vm#n`Gz%jWvh;E_XdA?YZ* z^8~6k>Jc}tWhcklMGmZRhj!9vP*56`ep-1g*g!ohN`OzvO0YDT7-1RH3(^YN>rhh> zlk+r83jEot8^Kbo6i*G9rz?-gimmWyt4K3P>cp^RFlaPa;2xC|eZYYkr^P`yFA=kY zjLV>SwP&`%e{9((D_BImB#lEm?VuB}F`~q~b3>x>V_P_w)`EDnYpuLjw;e&vyLaJ8 zatIb{l5bdwyU)L?P8a8k^0I4rtSCF_bp;3yiFRDSAMNWXLFv)$d-8k(<75h=cc+xD zJVV}3a`YDoD0>^_T3+hyJ|5Xdg~_4dSWLIiQD_8+Fv+XV8jb%%kJz|!`Liq*7!Iwp zKc{J=GXakVl3Oq>p6H{7NJI?dlPDENohvHYVsQAZRbGtDzo6Mb@mpL1Cv886Pl^e8|AH zD6UioS3>vSU+OO^ioYM79*Xk}WAjVN*+eD%b=g&{@RHaKkG|jg`%SQHR3Bg$?;(*0KjSS%9Od+yMq@loQOruMNxwZCNl|E9BG|iF^NX2!s})-WQv64xz7T93uld+qzZ!#lmftt7O1!{efb9;Z^ASf> zELI#spppz%CQVe14@sHP_OEQjAF_#URF&$pXmi4ggBgObgW+5UfuicE$zr0^xLoOrv+$})3AC&O1T z-xHtt=nNCP-vtwiw1@WZn9!Mvf5XJf2%qiS;7Il;VOrM&OIcqo`O3w35>lXxu%OQq zNji&~oz8V2P#o@RE~pYqaVUg#Y$0jcr7RnW6%~sVa9i+%i^1{{u?{rZ!W-`-U5>$6 zx?CUcf#f*udW6!pw@_^K?&jx^76iqbnV{pAR3Af|?Qfar_EIVgC>99*nTfgIGCajB zoGo>l$ydIho=nN7nVA?Q01#sPm9!n`J@c;wsB~7IRbssD$H0Khr_Iz;hj6Bz{OrCq zCuU12gh!Lk%B-&^H=PVkvI=S-sdcedJT;8C)u{q)j?zkGp@JLMLVFPa8uI(JFaHl|$N!pkzkdL5 C&j>*P literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/28.gif b/utils/wxParse/emojis/28.gif new file mode 100644 index 0000000000000000000000000000000000000000..f59dd58257545068f230bb6515c053a38f47d5ae GIT binary patch literal 3262 zcmds(YgiL!8iv1_B$Lw+LI@B!nP7y7fC0ec03H(5HtV5HKwYY+v7(EpbtVZ1 zQEE_YEm94LUe;4_wcx3m5KdC6fS_n81dxJ4Yj9OS(QK%Dt?llw{kz}%|E}wu`+e@` zn;SPr5~=0^960o<-v=1$PbNjuF z5OA-t-mU^~x)#{q%(P$iw2v;Z_bBX_J?yVzUtaWh-5zhR64`G@)M)7K_gi`!rEktV zy=*JA-wY|+;Z^Ur>bJl2-kkeb3ErGzwCr-T-Rodz+a^EAqO}}+f8cg}kI}c*kl1}XxW9l=mcf61oN;3f+J9wcf!x(jXh?pW4P zo?VTwszK*ruijg8N3IHgyOL-h9U88f+j)Rv{hZlcUEbZ%_Po8c<-G3Iy_oxI(0*}E zpJjLBxvasTDtCQ6=UG?7EKBH4Eqg!*=C>KE0KNe4gJ+v@16I}e-l2ux}mQ`(BIuQ&|2TR z*YnMAzwJsw&DL=*ewzQxB&pdWGp*;mxHRd^nnf;ZdiMFujkOs_n!PHZO!x8K0nlUL;1^L?k`;(c3XP4`9w|LD*LO% zhbKj^A7B46hSE}o4SX}cLci?pv7mvrnYM5JhE6$mnAhGuI^S-e{-k+I`Nr8JHM54l z^8)|BM=(OBpr9NG?92tRix)|wCES*BB)V-nP@SA-;zVMY+^i(Bs1_zF_X4X zJTA5CQ=0{XBi(tlP%}<=!?Y5G$y#?9LWQ_41+uQdWvCfUz8 z`WZilyb(zW>9g+Nz9$g5ESQ=1X}B$}Y&c2@5{m`eMmj>K@io>D2z|7ZQtWB2&{GmN_@!n{!0&ylBDEmYi0Tl)4su8dCwT^I66_-P6}kHr+s-n$+b+ql`&9WxrD7TbM(AkMB(;XleTZY{M(&uZ9XsbW zO(E^N1<|PTi|XW(xawtd6EPek@C4Y`SxieR5x}#9=mrfLSxNI>=MK!3VVvvp*bhquLCQFNZBmVkQl^J6}6Pmo`a#JFg zyxH(HTqV$U(p`^mT9;X)#|6zSV<@p!js8mR&}xIYms)t1H=XVGFy-K}#u!QLbW3>! zof^TCi@3(JUw?vpLq&4I9ul^Y4+hn%DBA9ta`~eR1XRHM$h%afF;ek0Va?}i$zNQVs)Z@EFD0MQlE{8q?g82!p1|l&9OiLxLuHSH442lt zycEL}Fqb8&)%4_H)6@BEcDTwkk)+(Uc*!OZb|^WA_O~LFX75F>Qs)q&;)P9reyM3UvC&*;bJ|zBzd1O_;_$r>Tf? zGKPPYBl_^V!!u44;UR0c3U#IwfRv7N zJMb5-lo0&0#tL<&0AX-IZDJSkiW7(kbIwWY_qmssG&dMNB6EkFX@ZLFob*yN)0?kh z!c);Ai1hU(gGnDERA3ZGw`Y@vBg3Vf{ak}Nhr%87ddtM;KbV|p&Br#*gQVz;0V{$| zk(h{a&Tl>NyS#&7@JA%v^p%P+B>bDtIvY&c@M+mfibK%wPT>ci!1*c$ZRgB9HrBK# zkg-t9BXUd&V_~63tuPL+AY{vZKTC(9UtkjA4_5GTpeKFUPAk#%(lcFVJ30P)lt>Xz z6`oga>L-!Vu|PEhYVS`=j$_kG%u5^@;o?46u?1XkK`siyRA;sDs#2R=gFAABL|dKI z7{)s0$*3QJ=1SF&B4D0R#vsta0p86jqcI@P812N4$kh^hF$=hr&co5wUroKKT4IRO zdQgLManZU0;e41X$3?cxy}Hl{2A6?-f8{yIWXRqogMy#g;@KnpeCt1E$r>N&D#DBnEDR9)04)j3cui5`Q|?O09@nSZjM zeW9c(cv6JO2r=GwM4Jdf&0w?dSohP~v?f%VV!{zmk>hc}O#G`B-72wmL`@Zj#zEss yWM7j#tj6EFKi_qW$Xx5;w%o>Gg^hK8QDItw_aYP9!kTdjvM^a16(WToFyo(6p0-;6 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/29.gif b/utils/wxParse/emojis/29.gif new file mode 100644 index 0000000000000000000000000000000000000000..3c5227e8e7796fcbfdfb8aece35232df864f5f00 GIT binary patch literal 5861 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/30.gif b/utils/wxParse/emojis/30.gif new file mode 100644 index 0000000000000000000000000000000000000000..e24a1801c48d9d149c96ea5bf449697c1ceac93c GIT binary patch literal 1780 zcmZ|Od05kj9mnzCFBb`riv$SaN*Gs(LoVe|XduCGbwaT%N}V7u?X$A#bdOjZmk3xL zMWvPr&rGWVMHCRqF)bz>$|Xkx1CnqWKm_sF_!G;)K#=!I4 zFue6zksudd$WJ&4+DiNfo!&H!5_6TM|U_Nqw_Sy8fLLq;g?j=t0sa0a-D$+3e7d?LU}@l_MjAYM|GZinu6-H;+Em^0 zlcjox1_n{N*J+wUuxsJc8;VLM&nuGhX;e!1{Vy6gP3VyW5n z-Y3Sl|3s}h##>*R9j^KF{G3Yi{h`(2f9h+DyR%L%wfo*rjF}X3Ri%zgoq{(jue4nU z#zuz5pFVk0X8gS4LSuI5oNB6?iGj_2(42TwdHNBXuB)SO>UFTG+bAs5bRD{3hQG}= z9B=$;q=-8+HLg?alC?Lg8$M_wVt+Zo+^i#y6L6c8f|hRr6gPww35<=$-VIs7ug9vj zqgU1xC7{!QPJQ=65)>7|s2_|6z^el=8=)WC`MR9^>ZXZ0_2kS|dgqR9EA3vO6OWa- zz)aX$Eo1Et6Yep`E>ah82&lqgZ09`R6E=#W-v!2n@FH^TGV=izyDV{&Wi#R3xM1{$ z;62fTz{p?^S2rw*AP9F2M`9v?Y1iT$op`Z2)+zSelBTnX zUs~SC4Dhf~c;$?sEXUGC?xB$A?U@0q?)DuYMfiK+giOZK9LW`5DTRBfwwhBDF55y} z3@mhZ+eSv@^GHWBm}1KSwvVDd1pK ze=MYyq!{mc!VjSz-F+Pi>7F>-Xcxpzl<{fgE5|d35<`$Fq2ly`OKDBCSzI0twV6<{ z+hfJIcN2t&kZ$hAr7+C*ph6tsyyy)1sF!=B%l^+3GH^k(%s>*0Hp$2DSfJspwjCbm zalr**f($WUNHA{lJoX@}6(hO4vg)kxcr5u+hnY(v5@`5(0l^r!aFAS!6AK>Mbc3kY z5Zh1ZYOw~+96oBwi18#+MfSJ|3-9t;gxgZ+DYeT;@sN0sNWw6)VX-WS6MtlqOl=r6 zndP6%`>T+#(>McX8@c(Da}bLD%8dVQW(FZ}_|~OcqF#m2qy8TzQcgg##s4s~{_f2A zf9BuyiTtwKTtjR5b-7X3itfdH96cA4aSZ=+D2CCUZzoLG?Q9j4%6ZXW@*Q}ril`6M z5C2V9ZNTrMS|8S{i|OSQ>8D@xuD4zg-pXkRJtAH_aVDq20qgm^Gt(?L&f0RqZ&&fP z(|5h^5qka5bME^b^rzI(Cf*_kYIZZn!kLF5?DJjkOskPzSV;2?BhB&idJ8gRB)*Ny z8B#wpo>yhUL>7+jO#AWFL|cOR4k2j8A*BW3=hg3S`$SHcaj;p3`zwqp9R(Pg)0BpsDUH1x)r5y+|Imb k{n_ye)X-{yMt$E}oY2c`*&^xt4eO8Jx86gUe`mepKi~&fM*si- literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/31.gif b/utils/wxParse/emojis/31.gif new file mode 100644 index 0000000000000000000000000000000000000000..073e743ce5f5611321cb04f9e6266024db0070e2 GIT binary patch literal 5174 zcmeH}YgAKb7KXob$;p*)0x<*#m_X17s1dCVig>~`;w>m@tachKt!TYOYpYdjPeQn; z*ak(#%3y*}X=OB8TxPT#PZH6H+ER-at(U|rVmqbQ0**)~1ZQcTwPt=yXU&?Kp7Z}* z`+N7Z-@P*@WGE7Ig+K_r2q+#2yg$6udr{%-?eVs&AAgnLy{+;(BbFvIzBzZ+dnDM~ zxx(A?p|@?4_h!aJ=OFLngWl7FygzC$fAe*@D!{7+k6dxR&BJSQkS&=kZ}%GOJmx2J zFmJER+uK~3g=`uFKm3$my)M!Fu=rvwXxD(=2JY?a*Dlqjx_3!$e=^Xqc0gl+=*S{Y z*S)KiW5N2DCElMG*XISdx81t1RoHgxdhfN=^E<-5k8NKV*gYK=9$w!0uu*>a?U2)Z z3;&SE_4agj9(|$nh^)CP_U3lh{k{CdYZ5MPVl`GR_I9m$P{;ZFZT?r=MmD|6uo)*@ zIyCLpnL}qR%Ubum*jl&p&V@5AhjxE^FzsHg;Lg?N8`m!Pv?vbgGrW(s?#rclsLU^` zM|PebeX=}m{}Q36aaLEO{D)8Fo@1qVU1jGQZ9TX4|7@Sw*}CKI-gs}1`Fq>M&(;ln zjEie_NMpPW|GToAoi>O|Kj+d(Bxg=%hj5eUS70pERe}hjpHq z-DOYz=|IRIOQyR_$t%-?54;(7W@FSY4ev_jz>5`#GniCX%O^mprw6TCL;tYxg)7^T*_+YH+V6GUH9*aOzwYo7g zhBUIerNRmoakqifdL)7uO+rHjT$yIX9CI~19dUngWQJo3#N$?Irila_=Q#)(6fJI`o{Ci!7ONaL&9k0-3bjfil(azy-64 zW~&L%*F~DIi}5I+0UQMST9)B&nNF)W_*#~eueCUf>5*BLbyldccxr;$dS6apu{j9} zO}-eA5CTwL+kvdDoVXCo=4<|@
    WnIIQGm1g>+S$^r%K51EpgOZ}bv2#_;u(KG+ zev4FS?_z7oPXoGn!?mU6(FOS82U?H_S2GO&9I&3 z*R?{ag^`i0Qdqn5NKy zZ3aCAJzFpW7=G0xaOjDu&tv2HK98BZ^32*=ZJ)Kc6lf^`APh6BYqKyoYAFE3?k`UO zd2S&&0Do4H2KpTs?|0S;{Bt(9L=LBFG?7_(b-8w!$&AT!;cl}53y=YZ*lh-M6c)-= zR&pYn#}y~x({J0!r`{%mUPJ=KA%W|0{puWFKf`nj5#FyzTWFaGvE3)d` zQ2jGiG6CjeitDR#JP3JWB^E%%l2%Dd4mWzt+Rc)Jtp%ZVYKzv?PpM2OPTd+Cni0g& zApnHM(vum)$lKI&nwVd6G}!XD_T;{$a_RI%(h*Wlxk;Y_Gy#k}KoBILL$IQ+*QXdf zZNw^_8}ygQWc5wc(*SJrPt%hC^qW`^o)@3T!#vfIqXbdyl8?pu;qy?wR;Xpr46n*c zR>>S}8pA47lX{>`6~Eq7!GZ58vq&^R({SyNwb1Cs|#h{sz#fQ0g%{3sojI=U*L=yhRCi#;@Osz@|+MlRvU!~ZfEz+iyy?~isq zLpr&NNHNqcXh=Ot6(b(hV@W3)VS%x`3@I~5M2-%_g%>HZF(5&t6oHcTiZV#55-!kY z2Zp^V9(P%ZWd}}Rk78`%xi<-KRlg@$pG4S9~*)WD{2#j!{f zM7Mb|ih22Gz{b#38dEuFFHQ-G|~ZFM+d}5JWt*W^!lod6X%06fZM^S=n4hZ0mL#B_h-ElY-S!xiV%V zcN8U^JxO~D9o*8K?QhxhFmC@l7>n`ftV-1ZkZuSZwva{2jFuSt5PTn6oRkSyu@!$cjP z!ofiU95cH+K6cI2n~!kFLd(Qp{TmSnL(O7iP!w__p){!7{BiMMZu@!FlZg1W@In~` zMfry7HnG}Pz^RVhEXWsz6;L4~U>0A+n;@=Dz!<17MbAdC=o4z(WA??h%u2n4oFGVA z)MsiE=pmYrfirxWcO={UbZeXNNu8ML@VNfb{L)Ig6IfF ziHFf&eOCjIAw0U390 zz3+U$0VdYs1S8EQSHXi<+;m1J)=xV=2@-vkCVES%PR)d8Uv~;^Vk*uOV_Ey{iivHw(v?fi#yWql`?11E+_8bT$tH1>diiTkvMl&=Fr)F0_= z2Xrnv5LXk+JTN&GgbS8;GYN4v5DKpLF!#1i#YN?RS({yr*0YdUlj?|$Dh{bqV*J=0l0la%A3s_nVuYWn=7q-ECq8HOjf-fxKg&+f@6J6#ax q3u#Jh935TLptU&QRR5mz2iW+3=bk*P=--q5Vf)(|_TO@bjr}V#m8a?e literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/32.gif b/utils/wxParse/emojis/32.gif new file mode 100644 index 0000000000000000000000000000000000000000..772eff23e345569189e0dd16516733f20d7b4442 GIT binary patch literal 7189 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 E4n1?-W&i*H literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/34.gif b/utils/wxParse/emojis/34.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9d42131a9bdb8556647e91fa3915425ab730102 GIT binary patch literal 2140 zcmZA1dpy+X9>DS6n86sDW=0pGq9WH-xvY_x8TUaUZFJe4N}aYgx03cmW6b1|S16Ri zBBbP$qWhL{ZPIcO-Q3F*k)5ewE`EOBGydwF^WXE|_x<{Qp6BuL^LD21F+dCuIUo}c z8~}X`b9baA`U7uz;PamMmu#ThR#X%Nm%CDH!qs$!>VOqc49cbXZS535R}1 zNyAQ%9RXQl)jsOn025SvwAbau>E)nI$68Hcwm{MLGvw~Nm+S+Dd{Mj=3~mBZ1_;l5 ztn&s{oO1L&$oInt3vJ)fk*o_-98^95=#282J&Xk^uLr?LU-Yq2W4a3{6XAuqcw|u7 zR{&GNFtQ19j)8O=JX!>=?WZ5wgE;L?cRMBygaK#hbD0}vL-BF=91LG~Lc2ep)ld}& zeY@sr7QnbK^zVhn<=8z6oXLT*DCj!`HxsdUn?Qa9p0Z)kA7)NZKX(LqJj|6t-wC*t z42nB26*zj4Bo#V;{xk|R1)$7>OBsNcd=Z_3ZvUBQJ3!2Y*(|7wh29IZH}#-%9ZYS9 zJRWrX2Cb1GJr4g$hYx!J&69W0LF@}tMesfVDt=eJ^8i%|^w_}@a~KVVZ;{xD546*v zWhI=A8m#i3ezFF}z2NInm}Eo8Ug&lJp&``xfIJ%NmVd3H$a7qv*lj3nCDiBiW>P;E zQ{b5`)NO)mZqT*uMIsRtWi~>LX@1 zqitkgrH@WJimoPf-H3l%lPG(2Vfwyh+wF^3u0QlJTPp>#BNeFlR&A7Fd%Bsp!UC@E zkxWf0THPL>+dqe*uRB^UvNVSKUSHd-1F134#s%34v#|+#8gSpBq4y;(j7;)vBbbq2x^ey^!UH`H9AQneAjMZ|Q6Bc@qo~wvLr8a6a5GUC zp;2ZIc@WyjF67v5KNkO)fVg|FVGosfroJrq&lA^&InRQ*&PcVT;>uqn?tpixM1EjP ziVb$$;r)o+z?G$hEUEO9$7y#m_LTVM!V zNVdschKi#jW7m=hI{AvS(cx<;n;o6>LiZ;vpmR9}4|2BW>-5KOX4pzoqxe=llAi0q zSn>7x#DJb?OYu&_t5j0-o_LDnq{%5!6e0kbjP8;L>4A*iHTlUNs$z08S0!I7!P(L$>m4xPL; z?xHRh@qlse*#!mbR(Y*TuTBocy9Y2^HS2562RSvnzSLNI!J#wBEJ8pF*gy}HwK@JJ z$j)$Dis-W(3B-Np7_S1FNH`BYCWGwNF{P}N;|^IZ)N&Uam4=x34L z>b_EMHM>xe(&WiI>8hBG&DN%HzZe?GBrU~=Kp*W5Go@rPxHv4vVa%@4-x>r8YK{rh z&qL$WuhQJlztFiFU(!h?LcV4>WXlj!$~MEe35VZ}#>R%0uhH!|VwA=nXsJDD^oQ;F zd$x^a8eZeOihvN*CbC-fn_7kX?Bf*kh}tYaQB7%6D*o;MBnwIVid20AmA^B4xRpEZ z8Y`8w{DSbpQ8T)rr8t*+6;l>08yTqx!3}{hw@%z8p#oOC{w+ z=}2YOIYELn!D5R;1Ej9BS4rOicr}2AP}G1@1mo;i z2gwOJ--b$gS3POR%4NlmT+N9j+QG_xp$o0{&_G+9brb*p?-K=Cs3shqC!{e=(s@L< zOOH+SZd~OZh8QR+x6oXOIWp7rM4zQRhvOE@@+2!4tzfXLJVj9zsYW{M6o4kLgs`o~iX4?aowTJ&_1)Az`3)J&Z z&Ceg>lr(UqdMs*KL&iluXvG;kXdGgY@wH*-_K0kT8q_?N}*?t3wv9piOvLKo;BwZu`Em$>Mf Xuxw23Rfpg9B+Sr_#wQz+kd6NVg=R#0 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/35.gif b/utils/wxParse/emojis/35.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6da2c33ab4139ac5ec7becbb7221008e0805034 GIT binary patch literal 13392 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/37.gif b/utils/wxParse/emojis/37.gif new file mode 100644 index 0000000000000000000000000000000000000000..92efec6ae180c7e685512017cfd06f75c36afa39 GIT binary patch literal 1195 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 x2->BLyW(_(N6e(g7IB0|H;fd~Kq literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/40.gif b/utils/wxParse/emojis/40.gif new file mode 100644 index 0000000000000000000000000000000000000000..24a8eb69149cc1b139e24d3ada04246c42e05c71 GIT binary patch literal 10092 zcmdsdi(3$}3+9eMXoJ$v`dh)d3kL;u)t zO3!V~Lx;{K9DRd#?>ogI!}Q+|@{Lnj_r6W|WFhaHePxY0!H>H}58eCqSF8H^)k}9Q zel4$y&)E-MZ%wjhBAno)8g=XR)V~~jwcir?SKGF4Dg*isWS?EzQV&;5s|oY^$-!)&%?S+wgw=rKd!FIUfAZHevu=F1yx zDg8eh=%Xj}|F@>o30kS={~pBmdaX`)iZ@_IE4K9^PvG6MpS0 z-EWt5{kz3KHl=NSKKAzc%u8oGZeQN`!zRD}#)&X`Ow3oj>sZ;J>iD2tx$efv_R&%#@s2$qG$Me5?!x z=|3gL{pYx80-!@cB|AuMFdSZ1!TDb=-=`GXCIEn2-E1Qr#G-xP#- z`7i*HoDx#UK}n58AqFmk5Q1E@-|bYEk16-sGFOAY470o>2^is|NM!LK64hwl$E)Dv zXdCxAqX34ljn}Kf6y!l*EnX+H#mxIu5>mnuY0cium*FNxJ&62p5ZjT|6PI?J3WPCS zOX|uhj=vfplWT$NOl6Rlw;ZRy3U-MiL(@wDml5wtGNVjpC!v5*Myc&>r9i-s7m=Hf zAWQUN^TZwf1j6J+scLs$*l8;j7rf^a*rlV2K)wW@Kf_F1?#{BPKluBykB%+cHhHs9 zrlqcGpUsHpmgJY0G5!`kcjf*YC8dEeQ^k`^{$Uam!L>E7(n9x-5y>TQ@kM}$kQF-1 zB?+w%Pk`oX{3^^YG6iTj)aE^@N1))a&r)riY;kikFYBHK5)?HxVsZ1j0a%dGqha!9 zs3XHx+KUxvOEP zSs1glWUpEVo!TmY^ZJD}8S}Xvfy5s> zX}LlFZmtl<$Xo!3pIgW=?_HOnSU$sXC;VVz=Pvd7sQF*F>^<`l2oC>u0q!pZ0SNF1 z{5l#)tI%U%Nr>r+&A?zXfx2GZ$u=YQMx7KeQ~LElycb?wc8dPf!asT%S^(fTHC_=1df>+KR z+HhnJO^?NJtD7D#eu^br`BU)%077`ODhDNw&EGR=C33BEy0#aFg0yv%za8-vB0(}) zc}hh;F(*CR!OUXsx7@qWA3XgX4^-|D5(Qf8&95MmZ585I@JG=~K<@A)|h zsOzK5H(oayj;+`fJ&xJE`-{r;{iivHFUxvySEaAeuVHKAvn$D){MRgl4zM%bh_K5d zF9L9j30N6uC)!qmgqs;bC{9Yuw+TZug@Nzm3w0>RTaHlWQ|?hPA~hgc{KO`_To7l+ zj(JC81IL5X6lN6Wkqs$)S&p)lzmPK9B}?QEDjU5+maPVhsv(v@MJYI#Hj-efWu~&# zT45f2Ufqi1YWH}5>QMm%Bhg$}{aF(@7xv1Q_M zJ%a3=BP&J=J}6^C2=3BLPTTlU7$q?&ctYl@WvzuqycFOBNTvK`I%!*)vevI|p4M9K z&5ye~Pvbmh@b|ZEMA6}i<^111Ks?9xC|5gxpkl4KzCP}Pedeo!sAJc2y&wybQ!@Q{ zBRfih%C%a~8p{f#Laf1)VL{3dGo|4>K|S{WZM7vxd=q1Z=aq|rvHsmEXcaJ94eQsCsWVo3Ygx6?6=){xt zpcb#S2x@bExXjlkV|uW3^+c>D(0LbUZbqS1%f*_OPZ3tV;pE}901swnS%@Q%-(8*o z!6_4*OAn+%g&5xoRz5sWvptJ;St#nD$HZ+J-ea9GWj~DlA?wiwQy1GLyuf z5?K-UnqU_p>tKAy+kb5?Vd^jUo)++)X|S)H;zH>}rM;+)6P3=~VZjWkeyd`yCB)~p zuSA9_M_?Nl|&+iYNi1D-&K~FjnU!4!8hTsH2 zW^M@>my;V`@NIx`k)NpXdrA+p`3NSL;rdY_FYQBfh}ld9BTA;3t@R}#8U3w|$-Kvd zTH-dOXlGg7<3TOq%D6{P)H*JIx2{tdT|$sB&*zSz&a5<$FmtI}TD+Svn1>ePJJG+e zQ&b5Z8Z9OAd+`@+NxqfHWQEJLb#T4BaJ%>0rb=R|dKH-bd^+k|u$FfJjd*Tz7{~9* z{7)n;vZAg<>nEODA5Y8k+MtLaz+VJrsxsBEf#;iw#0}V>xs;%7on(yT6?Kkge1Y{sG++w$L|<(;-> ze4*P0lET&PLbiM;pKR_~B6kXy15f5q>akbw>ia@xNYQa*WKsI3Yo>4JiO@EXX zS;973%oOoJTY8aUc|)N6pON(agM|M-)>Ww%|IZ+4uJj+e8T-5UU9W8ZIyO047=6p;XN!NE_@0x&UlU2>^yj z%}xb7L6rl0N2_&qW}IpOhE+WS3REf)wzKeuoRmogAgjcJANNYV=Njgu0(pKnVJ6~_ zC^CqrP4T}6-oI&z^?nGmY;f_(7apc-9SzlV!Hs;MQEtDtuS$8J5>0jhBmT(|Cl?N?F#~|=f;-o zq2iBzv!OS62}e74zi$oKl}{ozWXv2xjz%M@2%!F_xyXY+b70{aL(j68*CH$oYtm}`Vw&mZN!l(`wz-i)u{MfT zBVXhlD8(uLYBr815QZE&Y|u;Lwa!(!Mv#dlU|9u_ffpdvbYzBgF#I_;u_awLB9k31 zs}k(|oX|7AeW_$bOF6vz-&|Xv_vgNtw@033P~VDuK4xiz$+{cxkL+7FEp7pa?`7YS z8>RyfomkIs2i)Ldr$QfW83FKpSldD}!fHJ-sHE2vz-Ji1Qpp^1I~>?C%&M9W77ZXM zrU3+2Pr0Wp4UPfaUiMD_DmeZ}25KJH(IV=2I?kZn*f|z*CX)dk?BEAmtsn58#qM8) zQ40yw+h;!+Mscn!NWjNB%vLH5h@4@(t1X&D&BNaL4$u7BoLMR?th^|uix-$TI)NxO z)h}a8%EuhWJ}#!{btoqT&=VO<&KJ@~uVvPhbx9A`A)h(ytodfr;qRX$?MQB_WWW>0 z(CaN&>tKxc%d30QmV&s~Tk*UXY@NbL+gE$gX$v?X{B8axExEFTS2E)>Cl_Cn?J6zt z8^%s|=)`7*SeC+m#3y^PTRwBi&N4rVtPLhg0EAOnHUMU509rmVrCP~YoM=(-qAh@( zRzD!i4OdY6A9vcbr^;qyW;uiTyH1 zZ^X&Dz;rA_tk-sI+lh+pIt&1E@{_J@na%aEY*-J2A{V%^!(%H1qY?=Dya_NJ>C0M+ zTkntnD=K0z1&@Hs&+IA9>xq%s0T`ki-ve)NFr8s6d+7^T{W{8Rc(t_QF@38zd3mlr z!!N?O5wCvNyhdavf5x_+pG(@S#wH+d*B=%p7G`b@KwAs@>XYB~{%P)T{$x}|KIhjV z|H#fliLZgXRkwHfn8a8%>JelFG7PoO^7C;sL z7;Ng+krsI9@B`QaJzW=geC_y@Vc6&mmae%}NRX>jqV~Y1-E8oBf$6DLA2RO0h8nGw z=7=XyOTu#n(<>m^8&9A{ot3hMGjKA;;0H9?OKK;6O!p3x>z#`Vu}ie08{37S#{v2U zG~)_MQ#w)cP5yagMQ>j(A7;2M&$|EPWKs4ksfOrSb%$BG?WCQZPk zCbp8T4s)1Y6mis7*d9>SmBtWT2(E7;&Va|{8f;!~U_ZJ+w2+L0<75PvEos${O{mSX zMW&+3ZV>7GDaom$c}qv>wt42B^2 z`SDl>S*8$%#flfx%e=UpCo(V(o8AmF&VCi~!&--{$Tej6A;QVkN6z5oOO;A?ek5~8 zU0iu;GKl0Q3^=T%lvi-BJWp2MLr=J|-sSS`tMCm~V(FrYKCk?YT;O}1Y9|r=&PDl- zjKc>muNo=D|Fd%lF=Au-HM+F=O^<4b`2O!}Ri-U?{AuE04N;D9`gdc?w>_pFSsQ0c z!2o+ucy~n&tsde!zS-S>p+}bPB;;_+RP*p0f)G=jT3C0|Pgw)iabsFj#!`KrV$COf!06O3d@@Mf!V+su8a!R9l^q*WA0 zY%d^E**PwX`I>fs;j>AtsPY_=df)0%mU_1nuusqzAOp4|00Wccn0wcFRk*K7*Ie1d z*Cbm0TdkgJ(s=e`>A8)gqT&jwv8RHwCLqgGg1xj`yP$fcd>DrB(E#rKrvWsiyRHok z6w&oXn54RER+brnmU}e|yBc;uj07_51ceH!R)G*;QR=BM&8DDds{)+W7)RvA&Jf0gl6D||}_38&1F71pw| zl3_UX21(rTuA3Ch`t{nHa2GY%xLX`@O?@`MeckBv9ZO~S(`EV}#g2bvT^s{u^L=Dp z5Q~Ebd>Uc@5Wr8xNHqubFiSWJm12@oM6#6teci`OgXdVeZvzCOz)e{2SO*5Y&*|Xb zOnv-VS%Aik;utHRI#vQk$0`YTkQZLzwk~mmixH|O)E^W3M3F95;Dw&zZZKt2 zv>)$e(<>8h{QbK3+Z|a@n{ag`J$Kf3BDOClQty1UD#d$mo{$;msnsR7=a;i{KU44$ zWL7XDL#-ImKcC&X`ii(FAQ_pA`BX+>^sUC78!0%>9sJ)`nGD2pOPM1Fn?QH=P*Gt8 zs#%`w@yNsmx<*!SaC==)87F#sE3f?HqqUGW)9kGnQI*a#ZuKwk-E&MEFH`cKG8(%JS(RVF-yGcEA_MHwL z^s)y(J&j)uk=i}gq7Td+#Mbz4^q82#@Q(Np`Jv%loYfjwoiL1_{-tu?8cpyjw{>~h z<$a6?tGC(diH&2?!FC_PgG!S=MN@#F2%v@H>7DJ1!I6dgrQN`;x)Jd}9;E*NY6eMt z&TQoD{2Fg07!{42-H=8Tb`qP32@o;Yi5l3W?KKnA`>cD2=aApDvPsljY!u-L=IUOF zp1h}|C2RS^W2k(byY!Nf4oWH{%DvGdQU|?=`Q*qkbAsaIY2!&hbVTya!;;TqY)mqZ z-c_}MLBADf9C<5HwYKRO1uuRolN~VpR$xPANam3iTZJ??9INAYU0%(ACoDOy+Cnp$ zHHE%q5lcIKq9rl8&#Z{QNnQzT)u(t*#(qRcNXOG|FCEu7$ljhZx819#;e zs%)5a48w2*?Zg0|pFMoDr9&RP6gtr~8G!^%>O-HXx{9b()dJ6ohArfb9a*nE&j#EL zrSBicd=}@a%QZ7o1ZbRO8W6xTscp;xpqhnZ7%^*6D%W?TXm#Ntg?=+XNN#cvfF5EB z8#{f}X2TxO!FsQu5fJ5|6Uuzz5YXniPg(L$)D*kMYJgCljVa|SVPmTXKYe$PSak1nR)b71*|p2t^-;-=Iajm!Yfjh|jH zEa$=#JoiT9=?~tZ57rSj+Kr32g}9{fuMlq@(MhHKK757do1E9bbnhuMSE(&~V}d=FEKw0i%aa@WBV6 z07iogpy9x&n6U(5FoxTWnVzF8Y#gh>VE|yTBePo?agTR~xXJs-`7{5?`90@wi{O|Z y_Ckxy`38a}iyAA^5=w>?1WaMr!ml^jqw==RErN$1eyC93YUy^O^hF*DO!;41yN`qb literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/41.gif b/utils/wxParse/emojis/41.gif new file mode 100644 index 0000000000000000000000000000000000000000..99139e1d1ebbb9123de502b7b8bc0127dc55334f GIT binary patch literal 3368 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/43.gif b/utils/wxParse/emojis/43.gif new file mode 100644 index 0000000000000000000000000000000000000000..43504910020ead31098a489ea1e2b6fa51e8314a GIT binary patch literal 4327 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/44.gif b/utils/wxParse/emojis/44.gif new file mode 100644 index 0000000000000000000000000000000000000000..650d3dd84026c33b31712f94d1c189db2b3e7295 GIT binary patch literal 1571 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/46.gif b/utils/wxParse/emojis/46.gif new file mode 100644 index 0000000000000000000000000000000000000000..f3cb0742d7f2c12475b1fdfca98a46ce3d1dffbc GIT binary patch literal 5162 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 MvAwGZTHVF}1D`W;)c^nh literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/47.gif b/utils/wxParse/emojis/47.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b3057ab7eceb885238c9308a9591b118213703a GIT binary patch literal 3685 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/50.gif b/utils/wxParse/emojis/50.gif new file mode 100644 index 0000000000000000000000000000000000000000..029cf0feab9660a39b25111936e9b85835bb2a8d GIT binary patch literal 3073 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 Khets$pML`I4Xz0Q literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/51.gif b/utils/wxParse/emojis/51.gif new file mode 100644 index 0000000000000000000000000000000000000000..69f183f043a276acaf62658536b0c4561492578a GIT binary patch literal 3731 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 WTLS2#EB0uYB#v;55Kcmo4gUh0RX4N% literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/53.gif b/utils/wxParse/emojis/53.gif new file mode 100644 index 0000000000000000000000000000000000000000..56352dde46f7f530c7f4e9cc71a49a8db2e5d525 GIT binary patch literal 2056 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 bLsE#_O3>i{wNn!EA3LMRFhuj(&iDTfDU)yz literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/55.gif b/utils/wxParse/emojis/55.gif new file mode 100644 index 0000000000000000000000000000000000000000..e18da84c6e550fea8f3cc25d7d64188816f641fd GIT binary patch literal 1582 zcmciBYfMvT7{KxOwCA*kw$chMw-GLaMJ7xH12_;tEYw9tK^(3_L#J*)aPz*&l(Amu zg#s-FY+FC&!$op-4wsEBe%Tk#_w(faJ^%Mj z+>#KvUgQScz>^TbOU+1rSA+qOo^v!Jj=$}L1Id}W+js4KGW|^WQC?iqJ4rjUPhYfe zNf!+sL85s{F>j?#*>>D}G>Nsfg+<2;GIPH?b55nHEY#NxjXnDQ=7{}$Qun|JcKrD4 zeG-`%`4NN2ok4>~@@5eNnTjP(h#6--?t4FGqR+=B>>>CP;z?90#;E<0C zif(@b+q(NPCR0~$!?Lol&Q2^n9lY|-_c@HvfDrg%^tX9w+v4K{ywEp7$Pj*zAmT7Y zCP1|p2*nbqtWYjtausSR%%sA_Y9^pTeq}lt3oNUox>i*S0YrgJz+6-vO(!E1Is}5v zrxZa>Zz8s)v(1L$Fn83&!N#GRXw;~4va4%Dg08heXK5@ZTkZ5Zin~0_ifJT)3lgQ$fK| z2;JE;Zt0C!?N#rl+Hbjo$QN6`QWAGHb} z#hn|aR0%n<;37>CMO$9M(4;6KnTLj?HC0$nDZFKKKRXb6U$W%*#U)E&MUj-LF4btu z%7Cu&q~1_f&8@D{Gvtt|uD+qMNgE%bi{C797Jj8`k*pE(c_$-yB)+)4aLHT<_qhO9 z{7@srTqZ1$E0jXKT%k%M#M4pzO0{x4T{+cNZy?Iy$xUVzk*>Zm__UVj)1{pL!p;G6vVBe9Jzfg?K;gn-Weeg*Y3aMJ4?t3FDuM7NbtmTBQWVTbB`0Rz1W!3 z2o}vPHlnfQ3XZ;tTx=(v=6vKq1nQed_l();w-(V;t!)cvw=BC)aXJ}w6cjwA3Nlgp tnME>2kh>go3*_FHku9Mo?Cw@_GC%BdZl3SDl!}$BV`gT?rUgDA>M!*I5NrSd literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/56.gif b/utils/wxParse/emojis/56.gif new file mode 100644 index 0000000000000000000000000000000000000000..edf96f0a63e79e6eb80e22a0774137dab2852e5d GIT binary patch literal 1170 zcmV;D1a13ANk%w1VHf}y0Qda>@av*qqBrpW$N!g+$mO5Z?W|4B#0*tze)hmpT_|3yUlL_hdNKmV|$sT~>iFE98yH~&{p|GKdMWmf-ZSI*zW zx+Wsc-oyXm-v5(~`#e1VuA#3oB>$9(|EZhrA|wBOXzd^%?ja)oZ(IMUnerkd|Dloa zAR+NNGVvxR|4T{#w5kN(%! z|GTmOcxU)AGx%O!_KSG&G%&r=ec0vD|Fx_C$ie@1VDu|3?y!8zT}$M6XYnT}|4m8% zva0`IRGrFow9R(^j(h!WYUc3a|Dl%uhjaggfA?f%|7=$OP)qM4B=IjT|ErwvNlBm( z4f;1Y_)SCqQsZR1JD*te3@H#p5%%J~cRsV;8|BH9O(tg23 zIPgYC|A1@%TT$=Ul>dQj|AcSDRsVQm z?I|gRvr_v_MsurC|C52sab)>AIng*W|9fWc9v}EzOaE0)h|9ob>JuctfQ1TsG&1rK zqCpSLQcQSM(c(ZpGc?)ALan34YA!TnlU0vfm=7NNEukYyM22$2Fvu8Xu|^d`*2IXz zqYq275XB&>k)Q)sDqXFhB_VPTF_KBEv}xM6g!VG2Ya{O$hX^C! zu;8(SSD9-Ep_yY41O^xib}X1tfk~N{F3zH$F*t?EK6cRD>4UJ<-=5z}LP6?q%$kLcHam$#1F$f60a`VE| zmTgiB$vLvZ8!BL0ED0zO;L1QN037&lDT3nCmqp_Q0g9)<9jEO9IuH!7AVGK^LvWqQ z7tB!$HbB7FL_tCXV2d6A0H6vN@cfZZ9H$T=009Oxa8Ni81dt0l_9dtd4o*y1p+bEi k(1`)}%(B1_rH~QJ0pxge1`>DdG6+5gJg`AbJO%^+JI{4q@c;k- literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/57.gif b/utils/wxParse/emojis/57.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f0e2b9af46c46a72bb935137f139294f16ab7eb GIT binary patch literal 5072 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/59.gif b/utils/wxParse/emojis/59.gif new file mode 100644 index 0000000000000000000000000000000000000000..918288b007a2b32426fdc06ab03f5567bea96e1f GIT binary patch literal 1533 zcmdUuSy0nw6vb~sfPYBDKmb!Un2-UHfDIZ)T!3us5m^H$Vh}5~wiXAW>VqaM3T}nM zP{(3TE$)K}T|ltXuo@gHn-vf!i9Qe!BTGmK2EIb4&wcNCxR2+Y`Q15T5upLw(rG{g zvj$KapuK?h1KJ1k34l_;91Eu1fZ9I(Q~Pcq5nhapS>iwu3g|U^E*2J&U?>D`u)%Nv zP%@xBV3mL+9>(68=HdXQz(^P@NZ{8m*i#W;ih>Ct^aa6(L}(0xmm+vt5w}N14_1FjfLCE)5Q4T*IUE9ACk1Z>&{`N`T}mGwGxSwkZaG^MphgI9q5$=I z)&)avAdCltDF!CPz;e@hw7vvA_e33@6C!wV|5SB6HWmTD@S%|pZ=<1K1gM44R-Aye z>~0ZQR8*v6KMR6)u~5f@;cueNH{@u+Ln~Lt$XayoWWoeEp1(fO*FfZ5Axn1m<)$HE=+umvnZ)E>9o01c5t4fvtq)}df9o{1iPtQ_xZm^k7!+w};c z`Poc58uYVN$wwQNbGN8NkCeJ5h&_7v`4+`f6k=$@nB{b7%p)Q zWtrOFm8jp#v zcxwZ)DCfE=3(iPWw&!*x`F*!8Msv#JCZ(DENq|$}p}cbc3~(86DszZ($=~-^mW=D# zg2&+>IC5;gR+M_#ZuOU`AfHGkx&f3(s`I4hF#I%6Ex1D{qPF^QWMA&jz@<{kvt_c& zX+M7UoK}0m;dT3ArjV(BO~~I8-)Su6=%3lGz|r2@$}(0q@fzG2DZ)Ha0miAQlI@e# zoOP36({b5qbv}6&rlO?d1P%_WE!fOVq4Xlf-LW#2QzGXdcjDf=t)1jYROIbFk$O)! zb}n0=iczE-yP|KM?TJl7ECg!~&t6H(0)Mfh)JBGVdQ9ZZGHPuwhDM>mPKlh`1?4oI z$bLon0MCB&KzGl1Uk?|`GH~1f1g=prHxV#N0Jlipbbcq5C`t9#NkZk=@Xo6Yrmm*! zYTC8*%?F>{Ub8ja%QtuWO0l>gMtw}naJ;^ah~R#4Iv;G;#aRCZ?k45PnN9eNcJNlQ z4!Kr%+dcYCH|ZfCBoq-a^>&%t6|U&2i?|h<@2(=b4G3&Oy{FcJTwV z1y7DUjaHMid5TIK!f{cN_Hcft&)3ZR*T{v8@2TXMV*kFdX2p&*v|s}Xp19}9vjTa& zX9>lBa4LL{S|18XY{II$+oW3lSrQ?+NToP&qA=xjBjut~bBmm6w}~T>ZOpUFaabGV z-4T}+bStHYIBOX*lpv^kTHa8 cmcA*HM#?!*K&5jT2W;q_(v~o)Edh4?4Hk?_%K!iX literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/60.gif b/utils/wxParse/emojis/60.gif new file mode 100644 index 0000000000000000000000000000000000000000..66d21136de8dc3e26949cd6447d1ac9881e1a2b5 GIT binary patch literal 2667 zcmb8weLT~9AII_EZZOOmA*9nt;-Dm*BS%+;B;n}NRh_O=5jie(m2%gKquJcw4s$Oi zHz7B3({gXKW^U#_Oehu_TWmAqbaQs;T-E97bag$hf4+~;|If$k{XKHj*6e_r8lVQO zNr1HYX#UcRW!}OPkCzscw6rjj9+yOKZ79ejE-XBMHvROsH*bn=XOT*aL@UCC&}eF7 zU69Wu&iq_=d)w$>_xvn-MX)r%8vEJXpU36QvY!a~OZgcY0zMyasYWJM4E8bDPp9h2 zOBj^qlvCzYk4INlmPeQju}DN~X=tjcTonl;gRsdF@goDn%iP&gZ~KDu%>1lWjPEZ4 z%-%s}w^%H$E-fj_Arh=Lg#5)vgME4FX%nnr?)+3%i60LzghD~fgF1qZ#vFTwPHCB$U_F}{WRLfc zjt)0eSCFen{hbf{J01=&T9S^gf+=Gf1tS<@8xOdqd zVlS<^IOleKPFz`pZ^>n+xR9va>u2*quanEm?pKu7-76{cvJ3F|iO*YDTU{ZO$;HLR z+1c3zIq6+pT{!;`29+Keaw8p&A7XZ9IqEJv=Y;wNX5-WDSJu_nREk9_p#j(08XsiD z#J4v;5U&boX_&I?G(v2|aDQKbx5w(LC>nE<7~onLa^cE_f99qq2YOv8D=eZk)Rh(F z-SP=)xL@1R)=W%I@9ChG{A62OTRS~D9(5zAG?&;{Qy7m8j|mEo{UtKt7M9xFM6N2o zecXUtSr&5LFE1rK?8eVsbXpIcT2WM3QG9oHYP29HqcAhOzneZa+||#ZJ{}usxnF&o zkj`CLT;y`r#4D_R#`CA6Vv$h1Dq0h*aAzmRhWeQF_GGk1Lqh|tv6j|IZhf%v*7f%= z_}m4NaH+kuvA?IYp}KOgm)YLZguNC#*wZcIb9*1Q@aCrY0)bG#Ute3BWDTzfcrUmM z%iM(|v>KZ|)mUB0nPCZ+7m19NZC=1TQ~^Ncu@wG-UA zJ>%|4FB6ha&AK#!9bfmx?8o*Nv_DW)!UXPoBIi9ARWxU~0(?UguF;~Ri^FJgv4-7fb z)2s$`4clr9BV|msr2ZCP2El^w!Y*~I44iVL$NOwvFF&LDA`+yz`}J^?@4Ogh=N%n4w$zJK)WE(ZZfLFW~BE0W3D(yZD;RfM{Q8t4w{TS@&rh!xYM-{ zA*W|dM|$XyY}Dgz*!D2>vv^qu03gxOI{=X>)9;}_lnar9{%_OH_onMtlPqIZ^u7Ib z@Xrn0Z}jzPR^UCvgy1kFAYan(o%SeA48V5*z)!PJ4U zVH#)lsVSrBt*QFM!cR@dcwN7nQvPg;clna({?C|dK^4QK6#&a_T{XQ>D%@6$+5^EL zDPUcRvddv9S%(z#!K*O7w00B=7X=&w>r-TM;5rf8PCIPwkTdW~w$mQh!8&R?N&6(g zw;NhIOW9>;?ycF@Wj07}w5CKLftkFR_so=;q=S)O85Rb|Qp+ev&!cj*C&< z=^7!#U~7oSATbQv*Ij!(H$pw_OJPw9PQhj66)EQa4`~N$*M@F#RHH^Jts~8iG(G7( z(SHev!lTg81fny?mb5Mtm>;_58+#RfVd>dW-3d>+26bL>=I`>dlqRLCQsnE82YAP= z?W9tURw3xF>nNuTK-aLDBQu{3v+_eY*oViu0fi~p+Qz*`{(31_lnsO8M47Ajbg<#0I@}4 zs(pCVLFSHkp?)4UKlBTz9{9JYC_vj{DJm)v98Br5yub>jnyzf2rKj)bw6@^n+{i3IOO2O9~k=C^T;W^Ta ziwyD_{JbZk?PJd_gU@*OgYIv5*1LS-$!Q@;+vfa-=VcP9pYhfc`6o}#C9y{=?5$_> zN1mZB?>%knKkZd55-zP!9ua_c6h%1-R~whZvOmD9A;dX2QN1_fn!9FbO6BXcd%O41AGC#DHDk n=m_vJ!l0c_Wf*=?D${u5vsAP}$pPKLd}gZF+yQ4x;JbeTmbnUN literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/61.gif b/utils/wxParse/emojis/61.gif new file mode 100644 index 0000000000000000000000000000000000000000..034933ec3e3fed2ac2df7b7370289ec2e8feeb13 GIT binary patch literal 1136 zcmZ?wbhEHblwgox_`a6m?c2Ant{vZ5?zVL4(r4%Q-oJnUL>S|~RHcIl557FO_`-z? z*RNkcl<#;%i(%WgZKuK*F0_Ok*JU^t!F+i_=I!a3n>KB_P;R->n&I;0%XjuH{@P)_ zef#!52m4MNG8_+KJgUWTr$qB%GS7o}p4~BOhk_Viym;}s%l2mm!CagKM|zUJ%#FI?!E@4>;YI-0 ziv;0s$qYx29=#XC@aNB;r*+yl*3Z7SVe*$Q^UqBt-=}!Id-rZ@w8W=+t#c*}&-@vl z`ZD~PYIF7K)!R-CuYws~ma9H_^5oH@NAC;7zE5(z>BV#2l;K{X&hFj2za%oe&J}x< z!t*#!?6M`p1_y?>Gypc}*8I?G$PZk^9m zef8?qomkF4O-kG2^gl#1e5}{J>A>(Lne%hE?dwp6quLBttQj_EnS7t+wvLkY5y2ZBzagQT~KQ(AQS>1Hbl;K7s`>%C{=jXNkIoS0eo&U|7 zH~(sdA0~3%ym|AK0mFw6AMVHV+*#NAzT4s3?0{qOa-U)u=9@9ROp{rgp!Wa&e}<6? z6o0ZXGBB)V&;bPiC{HkO{AY;fl=0ZG;9xUzsDi_Z2@e|V*033PZB9&dZW8s{kffUB zFBlfb79%oaA=8T9HR~3N~;_Vt^(mTX?o!k(0; z{)~xX;{1kAZNlBopc-6MoFsO3%pv@W}euX#x|dYP0^%F znB@|eX+qr&&aV$!m5mY=WPB7>`iT3hGZjjfXgW0;mj%pWsx5Gm7OS5nF{yFIVMQsg zRXj5#Yk9-eac_b)o?5Ux9lG#InkulpQy*-gj zUjA)#F<2vXz~dcfK?6hZ8YP9sf1C~u3|xE`lN$LpF+FTz5lV4xkrX?U*sdTXBEVn` E0NRwC_W%F@ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/62.gif b/utils/wxParse/emojis/62.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d5c4fd39a08d0315c14c963336f079fef8fb380 GIT binary patch literal 1269 zcmd6m`!|~h9L8V4P>%DW7u`{#Qr08djGoc;vPk3Bb)9x?$2P~MdTQztdO4-mlM5QD zOY}y>DxtyDjG|Mq_6t~j z35-`@7zTZXaECRX>J6$ocu*ow@rLd^Xg&`OX;5<#E9V*nrTQY#Xm1-d{VGe^3IH`b z5nV~~aPXE4F9aGhpp~t^asxh0$vR-N3M3cdX=_=KEesVI4F+h-hskO~nMguIV6;pe z_PHzsG3fR9-}fTi5Iz3}443F$zcTb)(*IUDU7CFV_~tr#@KQDX?VP4QIS_80$F%o* zS>bb9&HdxsbdN`7^1{aWsaRFPK)e_Jav0MoJ7UQOaUwLZ^cCrkC&yk3j$*e&n*1a9 zvpaLbcpS&!Lx-woE9p|+32A~aCcMxTO@dlxT_SBHnLL#p3ay#9*fF4P#_EdTNrR%c zaDW><*LGb}!dU6fmp0unmR~iB`7rgTu|}Y-WNK=%UX^FxjQtXNO0oGdV_BZQ?BwJA z+lIcDrK;q<6J*7?uX_{y-nKBL2|J8aN(ud|!4yB^^4poKQPYnmpqJNu`80H1TbO@= ztD5yK1=v*YV7%u9d+#KBubT7SOyOZIKXO_72v@bYN0RXQVQA!NxchNc!V9Q6Yit!O zxknzJq0AQi&>l(F@nhbV9z*_TaeZ(0pAqRJKYjwS1SHYYDY#xJVOu&l)4EWT?p^2N z$0!^%E%OK~U3Y*H626AoL^xC|Q@e0o+)1^v*jdGDYX^7BM|LiUL)e}fGY3^6H$MwvFr#;q{U=t=oN+xbj9NmDpxFF;rY6sJ zgMDa#H(Qiz`u#~_hI571#+9O~^*7h;cHuIe5rnZ*uXW4d*&zbuO>uo$x$D)6j_I9UK!l&7Nixjy}tCM{nU)*Y4+(k9>kR4(Y)+Y#+l)Gxt;M$!WR8p{UQO2@15sJFpd~(A=*GhIq4cK}$ zQF?4?on2BiU5f5?u-M=;h+Mxd>9daW>*0EQv*>MOPIt|;MzZ1>hEP*dO4esR2`&Lv dtCVPvgE%yFpQ%%=KXYBi((l#&CML*^e*q`iZGQj& literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/63.gif b/utils/wxParse/emojis/63.gif new file mode 100644 index 0000000000000000000000000000000000000000..d58fcf671bdb51457baa9a88c599e5d4ae9be4e9 GIT binary patch literal 971 zcmZ?wbhEHblwgox_#VLEa6nefl~2-BK-N$6m5R!@&Mwmi743MX*D5MfUP4m^1p8Rd3Eyhr|j{yoTKQq((q<+v81Qq z-_!_(Q7{?;NFkv3lZBCiA%H;#BnHY83>+&M7IMgVY*=uxnL}8s<&ty4q(&AoF_%wA z4)(K2>A6g?5I8njU9^M2QK0#;gRuO3nZUrLCeKE@AiKa1j7PmSq*Kx?1Rtd}ipyI& zEI9B`Z3>e@-V%;WM>Isl#cVcMTsX8sKsBI1MdDC$d$5KjTaD}wheHtzCI%g)Tn9QB z1x-2J9-K&NWRwl)>WN@#ILNh}Dd&WO;p5c}8=2=Sh)EE6_t-lN_Pqi-^Is&^Kxt91a=6V0fmiyirBvdUp066&0)HGFJ=@Kf5~`HYsQ(Dzu4-#WsfbGBEU9t6U@}moz0( zFIMf0vT`2-!zT~VV-NPfS5mTEAYVJHQZruR|D?|8e0)v2N~QgT|EESUjDpb+z!3t9 zKUo+V7mEFVoq#Wc$k@a3XjEu2?`Ai%*+}qHJ&6L zWN?*HQ!Ko|&e-arWbpFh17;Rs7S1OT7Ke}VinzH*q-+pqZ0EH}2r*cZ(#XKbE;uJ* z(~`CpPD3s&!3|1`mzu<97|9-d)E=T{ZKPr_!|AnZQcSgF;c!J0ygXbcIFP z`VCk=GH|eRm+@OgEMjctlQH69F_UmnXm9M&4YP@GIGEDR#TBE+k?{G^S!r8i9u5X; E0PG>1$^ZZW literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/65.gif b/utils/wxParse/emojis/65.gif new file mode 100644 index 0000000000000000000000000000000000000000..da23bfaac75af2b450692e93890435fde4225efb GIT binary patch literal 5285 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/68.gif b/utils/wxParse/emojis/68.gif new file mode 100644 index 0000000000000000000000000000000000000000..345cb439104d5227534ae2188471176cdff04264 GIT binary patch literal 4148 zcmeH}|63D>9mnr3-!379kOUGU$^}D+h!_wpL@JjM0$S=55fByoB$!gfFNKy-+Pe0V zKtMzq>{_W)8_+pLrbulcsuvk zVDS3AW5Ew@T^p^C_8EdlE;bIFMVuXx4=)DXyB0FM`qkT8(Hq&Uhll)s_z1eSpLu6y z)WBcqBdzmCd%hg%itN5HwTU(e6;`SP|ln|mGD9pW!Rt`S)DpmJ7c&d z&v|Br<8?-F>&hRtvxh$2_3*9DL#ICOEnn-L6Ef7f&;AjmYZui~%l^rz`sr2u(BHD| zZdouknV*rq0wfV%lE}ShJCS%sl+A4SSeXvWsT@6^ z=chKQFBwTBB7oy2!8qQLF^XCA1oo_$Y)K_X@bHl*}pO(JhtQ)*_I&JLyES&N>@RKY(no65BYToD)pA)%HHXWSQuJ92A0SHR=tHpk@pp z?1M^|Mbzp+<{m6B2fLL*NIjLguAgMw9!{mvC6+6w4vKuI5w%`F3x#B;yAL_dy#|`k zZsF$;()tuqnZt7n>p8?8g@TMc9(>b*wi$Vggv|7B(pzq@>56Sram`Y_2Un883%^Dv zoTo|=?gTRvNwkp;u3vN9GKPPIaL~$0>rz>D2xeCL%%^jhE|Ao5kWWG?cMoZXEw>8< zAi*L|V`j~n?Ysp!SFkU8#}95UG)(@6W$4^lK1Qi4K18M?V5I{`LO1-P<5Q!G|%0u96&Aw(6^BHu<_#fw4nYAggMrGNue9F{ZMtGZ0*0PZihMw*-l0r(L?y5j^|)MrV-X%;A8dIJ?Px^ zERI-hKC1itXNPh=eJCK(pVM^nQj6?+&qa9lRne%fon8dwnzeD|c4FqLE4fnHEe4~Z z6>+o}iaLp*g;f_Y9egz)G0B1f#U-8mY|8O(G#4u9Y>`%7VJ6Rr7H74~5@(C#L}_Pg zQ8i|MUhe@*v^J-}I&1P!r3@P2ihaB*_OIB`$=C-m^T=>kN}m-4!Re^te@xx1gV`df z$|R5#Gq_Nq5U}WqDV|4}h3Xnb8JGPQC)aeqvV-bHb~g5FCaEG07uC8*P3FrqU)ma& zn0b9E08`UGobyQpNF=SOKjGY|MlmoARIl5XDg)u=mXw9{sYk%0T2D0nas1Jasqs(2 zo`p7d(Gni(7Gmu3NjGFs3lMt!v@Yqr)*$e!R zLRp<@ayn$zjgW67Co$LhnZZk#i2nv_%SKPD2dB6G;d(DsZA0U>dy2R zO~NSzFchHphGaC`H8n;$Zjw^Tii9$nr--JmJTPt&{|zgqH3_RoJB>+}s?}&mZSrYl z@pwREvt0rGi|$kRfZF?}Gf5pT=Sh={%em4IK3u1bqt9T$hqly#gH&>$G|I*@6nS|a zPFM_dV`&=c*-6WU_@($XgGvHeO8Adcjb1n-&t+HEpx358luO}9(#w%&f!c}ge0G+6TOWak?(K(>Sb znyP(CRi!eiXu#EZ`{~7Zy=O;k?evy;aD29DFf3(eac{Mf$A5cRQvQ9*9yk2*^0nIU6NkU^>$yjS_K< zwuhO3g?A0d&ywhigr7^)WN}GU^jM-2wS6+C z=@n+Br>prgSM`Zfy!tMtZxgx9a$cpw;LbD?XBsoH$S~KdNf$>AVuH}qucjwEqR@Ru zaKxCprIJW*>2*H zIHno3p?gUsurSx8R2ibhqIr!R4PWoKn?Y1m*2-eHBK>{)ofRJ}QIJ`JzbBlTxeK0H zA0*cppKcxgc23WeTCkL3!beWWM@M&#dGnOZPO}bOqr)}0r>?`&Lyw)_;~1b`niNpU z<=T1KViN*xqKuCYv&-pgxP_BWXD6r(p5w1aZ+7+Kd>;)Yh~T|j9pl>B`S{L`5A;Kf zDP}alYhU2(!o)URoYKn0Z%XiX%?(D5+uRt(_~fR~yWbSwhGqbCZ9{xzOl(8j@%{KV f3_eP2t87+4lnp|byg{?0C}7R`Jzq-@VDWzdo}+Pu literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/69.gif b/utils/wxParse/emojis/69.gif new file mode 100644 index 0000000000000000000000000000000000000000..e0f28a0736509c3e339f72c7f582db36bd52ad70 GIT binary patch literal 1015 zcmeH`>q}Ds9EQ(1+uG$Un@yLcAM64}7pW|ACAEvqOg|*JN~!RY6cV~zNNIvOCAG|3 zXj8+cXBThydwaHad&P#)*|=bmTb7`1BGr!uY6Mn}b_ znGX+gLK(JMb8hIi&Uja7#hbFOe65R{Dq;7QUjnoAM*)L;&VjdlsAt1BnI;Sa(xQvS zz;t4+ibGW~sjdz1PBy4s550026MHp`wsE2j3_hU6!Qcvg{I<-a{kQ14B&Mx|0kte!9iAmYKdSM%WcinLx*>tqS(cC` z!C=%MCUQIC=-DA&`4Ix3enK0!{vvIr8i)B$Kw0gN7)8O@;#e&JApiHz3v6AcqX?ox z_O6-NK7p`|2$St~N^7b}XYn_3c@m8wGwg={ZI8%wH!r?BCMwWKdoz*?%exOw$A}U6 z?#@xM!7M@oIHITmrm9bjw7Tsd2^`2T3obpcP-t>_VxPlCVPbS%8q@o1fTQrbD0`3Z z7QX|(?gVT`!*vez)$QC;&xio6H9t+_B@9XD5gsw8OLpSJj}%H%CcP*$|7JU%5aqe~ zbd$UEcL!1L=nF31%`z18kBN6_q7gZ$pXVW8LUTC-AHZUbXS!*NPXxy!bpis_Tg1wQ JNf#D!><`;@O+)|y literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/70.gif b/utils/wxParse/emojis/70.gif new file mode 100644 index 0000000000000000000000000000000000000000..24284cf39d84e7e70e1633199579330ac996e598 GIT binary patch literal 1162 zcmZ?wbhEHblwgox_{^ z1VU|WI5@c2*x0$bxH-9bzkK<^%Er#b%$$`|@L=|gOl+X8HE*I}0<*v8mIu zva&L>@^f;s_4IT#wDjbZv?{r|U%q@592)xS`IG-XJ^}*#tCuf!b9KFY<4Tx-z^z-i z>>b=zty(3(FL3_+`ROxe9Xxoz!rIBo&fV6|F*Gb}DKGDvH*em)eXFByb@uFe3kx$I z9$pPi?f-Rk+S-~|&!4t)^7()8U`a`_h_LX4zTW@dK4D?u(Qzq<4<7jS>zBEuMRRit zBNL;icK{O;V`FnC10&;)@89mCMaGpU2I5B_!SG2Lf)>WWJfmu#>~#-t;TMh&S=UqlotI2%_O zr~LSFiJ^6Z5#Lgu`VEt_z8-L2zJ@_z;+mU=TFLi(40LyfHZd8n&2uSv5+OvO5Y%)wr`N(YG{f9BpS=wa+ S1FMLNz(F?Ns}TVX4AuY|FMf;w literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/71.gif b/utils/wxParse/emojis/71.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0ccf2edf5f3c1760323012456f57ddd8e31afd7 GIT binary patch literal 824 zcmZ?wbhEHblwgoxxXZ-wpMhcO)T#gf|BsA}tgNie%F3$G;VmmGYj1B~(#94V8oF}j z%AGrRCMG7%=(O&sQM+*A!kag5{+~H>=gysH7h|?eQ}5~NIk4LB*hcfW*K>Dm$hdbh zWAF-+kB7o51+y?Sr)r+@eezclI4(W(WvlXYsBOWMGeG zW#nLCXA;zCjOJxzWak#CK*+!*3Ur``i$H7l;z=hGbfz~v zW%<>k*9=n03GyA1SBzj@SyFT|$7=qC6(v%v0pSa#mU2nvEsTF#TEjc}y!Pb?rU_FR z(==}PuDg8^Y$3!LCI&_ZAqFv^h5cY-xR{SUnGg`5CfL-tnWNQXxl>a^qeIfx?xUrv zQad)TJ|t#P#>b-2z_eDt;YP_pmJ2>Y93G{D3=CeZj4T}NOwH`AUf|GR;LTuW?qJD) z21cA0I4~B~YOA?If@9)Z1|erqfNXV=Wp{3I1_sFiPxW0+{7R?hva!u|!s&Z+SUBDVv>{uPCoK*knC9EiWy+ZAYcQ>>766$t*0o z9Tj!{c143+t`IbKK5XiE*3p-jUDnz2Zt16@v95V`PI0ZQE;XZ|XJBmT-Pdz5sa<`N zp?=A!lk8T}^Usstq~BKp4xIfsF*~=Q_#hd7J1Twnu!VCjO)@_3y(j3gsQcWhBqsC3 z)bwKb(e$q8!wCsFtxx+~9(CvB6d#Q^m!ESzEj^p+w4WWH86JMZdb`iQfRpb=KUedG z*=dCX{o{d$&rW<^df6k{w=dY+=ivSW;a{hv7M9fMZ_8t!esqZkW7!#%l@G&?#=jf> z($?{MW_C%os3@;!Jai!Z{O`%J#_2Y#f3jW=e)PzexK@rnmWv5OR zB&J-tcdyOMCp$ToS zGZ)&yW4|S~cfFaLTP(kEUn*VTS2UfE;k5~Rqt9gS^$l!o9TE!qs%sjDhbLbTf4bY) zx=xE&ly`H3uBkK4?>E-D)6sE~4>L`VyR5C98t#ejR6m-X``OyoRbBh|ZjG?Ay7B(~ zCpI?DH*Pib_P^ijA9R;5tgUOglvQfJ)lIf2AO9$w{4{-#5xa+eG$br#;fK8Pb`#CT zyQ|}kvFVOoy94a)y?i|n{9P$HAtBKn9dEn3 zM;4csdrG=eQ)Vd%mT|RzoRAxYuEz z$T4GoenO}6iaVMo@CE0U$1h>Xo+J)_{i%FWj|)Te@WgMY!$<n;7=uR>a+d$QCec0_);e%K8dN90hsuU3 zHzz=J=mgL&eaYP%u&R3we6wlyb%3E}3nfio7pd-~Q;@FP=Ae!ZbU~g(*ST#js1mt@ zQA#9NjA;b*8E&5u-@%cghDHBxVqgFmpbo(Pofy`L!4rVJ5I8Hk%Fu255ok_!gDSi! z(K-0i_iNBJp}Gq;#vE?qQ@)x;LNAF62BLt_9kTc3s!E8J226fk*Ym;ybnYmcE=j?t z#%p=8Hv*J!C)h6f{-J~-YV5Wmhf`KrmHiwRgG$c(m~UY4BWDn|NGzrzC`B^%Xj#B| zl+u;#r3*xttsFBG?@90*e zFS-NKa6;M|*hRUM1&N$F&kYJPK_h02#C)a0V>&-&!;1{Pwh}sL zp6*bD)WOaz@;B}t5$dH!H2oo(&1O*6pzXJEn>10mqh9OAFImhZm{0e(II!FEFu07$mWGZ7OhS$FBE6+4X6Q`ANvOMW2U z@lR+6*^GI!)@)nZLTxE2l#8%i5ryHz@qQ5I1fI&ZkR|}ZQxT{Z?lrIlOc6(uiFpT7 zIhZa_pSU)E101rVpf*=Bg5~J2G~+N119lo9DtuPL$SH9E+n?kuWFd`J>Wr4Rz-Pbp z#E~MPyKFL10xouwDKqM0)g`rc9ye6N1T$zw+$e#_rD^)>;JXZ%6}H|Uo`(` zt!Z~4Yy51C0or1|L`#i-HlPgPTBzjwnc@{{Bwd^0V+>94?UCScPOjvYUhZ|>yfdzy ziIugtBJ$a>#3b;c*Kw_w{>h!FNvM7n%C{&57lk<Pn9s!54d)vGOw%(Hen0jT2dmwjoCHXTM&Jc@RRve9;^15aVA-%T5jp%E!I&A;g z^8Z(F(F~`!q+zE$f9lOv_d&Xd&rgPc@xI7?XHwTcv6crD`|iWw7pQctNvoNvtJ|$+ z8}KmzCI`EgZskdLbEg#8MYq0P)f+YO5U~##?gY%VCx^2j5Bf!&_b484wFx38&fdLP zP4?ZeMybd}%PJH6lIVJVz$n70s_;p4kqtYRUic}EF=%&X~Q3cBy4&|8n|Z{PxbbYQ#1e8?zFg^NWNEp+Jqf_H>M_kR*eOfH;W$}`YA z&I2JqPXX;96#?JTfBE@bmP)64{WIepEH(4LTKk_s@ieJUrP(wSi>HsZiX3kiCHU8s z@{l^V8bO*CW*2pBAc2dm;c$Zv9T3zXN+d~& z8a=FySc5j691s*rMurn9aDo&2K?D6k>3XWkcYHsru7 zF~8>K8v&pC5ib07!$pc#Z#V~mY+W)Mz{wGLP1F*7Hm}}r-Q??#tQ>8z{Fcvk;fOV2 z?DVDw3u}Zb8Y$7hY&1l4ZQFY;Ay6PJL7~7ElOT&xKOLB=9x?%>)c$BQ*q+Xkt;wq2 z!H4^OzhOEcV62DNkoV2sCfqdfpO9PDOAi&qrjnI?b%^40ZSIhw(36SCHX#Ola^GA( W!5gs$c6vc*pd+9Tgpv{jVEZ4jVr)SG literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/73.gif b/utils/wxParse/emojis/73.gif new file mode 100644 index 0000000000000000000000000000000000000000..c0293c3ab0750b5a1f654fcd1851c5565dfd1199 GIT binary patch literal 2195 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 Cul<<- literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/75.gif b/utils/wxParse/emojis/75.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cb9aa7961f87230f198c3f85dbd14e5999af3ea GIT binary patch literal 1222 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/78.gif b/utils/wxParse/emojis/78.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0d0856045d240cd96871afa4fca7c48d8d152d9 GIT binary patch literal 1565 zcmd7R`&ZIu00!_EfeBu}A|NX*Fcs#|(KL^C*}k9@nJ!Hy)>bFXm9^|tYp1qVBQMiZ z6gpX{HO-kawS{SA!%?=T$@*zioBEUtj^hf+HZUQg6BM+^Q>FH);~Z* z12kZ01JQlXl3^cm3xIPuju`+c2ee!Oe-*A#+avYBp&7uDP&mMg(a_0K0FAjTx^29> zth~F3OWU!C5*VLtnbU?wbSyHob72dUmJMJNoq7)RD7QL21Z{;IcJwnMo-QJl0#X5Z zlDrB|?hH5+0Ox0q>Db+QJa#b!z7$4Q@)(Z+QVHN}rm$~u-*Gn7AA-Zdw0uCi36N5- zkcmzu)I=k90I!4tr}uu^ycuZ#aCifpzYbM?x}pQn)QH>!P|Gv?#DHo)*zN@%`@F0Q zK&k+o+6!l;@R1i(uW&8{zm>BTNpIc}b9$;mkYZrc2u(x5CgV&;E_(6BN_rW#E5n{y zKpHG$&ZvWCdUEEc2OS@P7nQ6bxy$_Q)Y$EfCgW^hwj-SUgjNWsSwJ_`3WwGqS3&DZ z8f;k7ql_JI@F_TIH&(&q+^~LG9i4N)YDZ1@Wz~hA>aU^6I9U2Vy&cPF$F=3JnEQRI z=>$dJvYIRhy+5Xp{i24=%Up`VW*Oe_fYW!;ZRta-PELQ4Mb@j%vr6peCN$HPw9)&S ziSwI5a51wrFTh(Bvy%IJ*XBfY|A@86)TZu=i!DH;2e7c@&2AQ~xWz@)kswtB$1%p7E)C7&!;dH#dnFAp-TmGNIfYu-IBO?O2Vf=T!Iatg>H^vN(NCs_yZSHBl2_Qg_ zM|2h_@@o?<4HwXRVHzT*Xe4O)V4Ns0LBu1L)D$M+gR|&c56Ov%HbQL9y=X?t#%$ST zcGeM0EJ5nzzB66s`>55)13Oi-iITGJT2S%YFK=xcsJHzP-DjNPj)oScoyxc(ZP%W7 z+tc!tKQU>@)niwD)EQ0q0Gdm0+9bg>jtFE+n|E>ur!P5NlI^-CRJRomdFZU3k&5pXp#!Aai@{q?Zk=+&zd+Tow@0nZKVQJ_~H=NA``C2PNe$@;Jz1 zh@3h2zUzwZvQ5b97eUids>TyhY^>$itj}BRIeL?I8f7p!>{~UzPq*{ zg&S29rx^Q;$OmNLMi8K}NXbfHfxYT)=xZ&=s)E{b)3tQ24IkU+nw>SbovON8eW~fRsZhDIHu0s?W7;C9WAdel zR(%PZnvG;_eOv2Gq#6|@4MNc*XtkqRiV#%S)|Zyxwe}C_Z~I|;{rLRhdG~zWy?p(A zT=&pzkPUhzL+~J*AtKgO5IibestJU_bWkNJ&LWs-g2!b+S$3eiwIT@vZIv_%fimtk z4Z*lbL`AO}sGw^~zJv9|BbaI%_z^V(Ay6m6SOaJTpsj$Jt~fCUGo3>$B#%b%Vk}#O z{XFiLJLINHeN)m{HtE}&h?FU4U7ZH%w3QXZ`e06E*~k4%hqjYQQ?M^Zflaouqbr?Y zx&xkEA1xv2OTLB&S-QILi6W2TLekP?KMb*;{|q&Ed*d;bB*)geV(&1V{}vv5DPe%N zdcNlZXe(bXEPygzo#_D6cUJp2hW>oe%iu|sBpm6k`Ny|l%i`nk*Oj|Dl-_iQmov=`ft5$o$68{=NQYjQS$U&>9ZYa=n;g=uBCWC$A3v3OX^&bgZHlxjo?*PQCc4s zU4y0dVyA`Jq$r9tfW4j_9xL}BFFvr=9Rp+aOeF@7iaKM_gG}PAz@H((VEAHpvYoE> zgyGL?Fx5Jo>$q@_H+L%rCR?<8&$Tz9u6b6HtZ#~$yg^-EdbT*xH`m6v&)vSLbA5Fg0MP&W?7=d?n-X}y^N9EE&s|K6-fXd7-eA5N z$N#ttv$xZ?G<@kvoAvPFZ}v&-jmxfA5yiLK7VIHbEhw0av*8!I_sm!173?&j zQ^+VVyC=u3lO$ILm#fq~8ZihLTwUd-Vpp41?pheL?K8i= m&vHrPCKWlCX3;&!AxzpkmC0ZJ7nG0wo62TnN1hEH?fnN<0-_`U literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/80.gif b/utils/wxParse/emojis/80.gif new file mode 100644 index 0000000000000000000000000000000000000000..9a779364b3381afe3c1faf86bf94a29825a43db0 GIT binary patch literal 1537 zcmdUu`8(8k0LMSfflxz|tk&_>LDFoqa%CA;2&*wNLJ?|2ZqbHj*n|#8a!frn({Apb z2H9+m<}etNVTq8{poAo>FwAG`57<9o-#@>8dA*+JeZ<+(%sfy7Xn-#q&_@Sws1Od^ zfMexwl+}C&!13zkau3*-3Pp*X7XX~?h<~ylzHcU{YY8I2mueqri@zudB=Qh`*jKm) zj#a?Pr*q|w1>+V^e1KHoU+WE)%iQ2FBc>jStw*5vF`EoBN0G)LaI??iSpa~e5AMA? z@)r#x@R8(BWb&^0Y(IB`VFo|6bfptu$CKHHEOoPlhjJHrk>-Fs#S#m~RZ1 zt#T4!XM~7BU3(s0?FC}kMqwp;h4HxQk8_h#)9~H1iE{Vk7YLkgle9#SmAEWd9-FUm z6<3niyE3~H0epQ+{QS<^(wy+pcc1@$A&63$xNW+&CV^9&;p_XBLrZp2V52p3rY>08 zdQ#eR8BWx}-jt6Ion}}^M{}(@uMni2=YMHK;%fIt)*zo=KZpI-B>br5{(F(N2y74N zO#zZd%IgAxRB%edi(IJiHds%lDyHCTx+M7eJ424^nxAbB)o!tngAaF}b0^ z4IR5>Z+Xs4C02~4*HRU<)=UC1zw4l!4T>st)Eqv=`5HLRh_I2WaMKvs31 z`$%ce?JbWNM4Dxah1%NbegYz=ICjrL=ULhiipr~^XMbOo!ge924k)<12?)Zz%5e^f znACJ4c9okSGIo|7PnX+%xMa$s$QIoqhik&}*fGps{@K+)5ojzvRK9;~GtbgD!(rZ? zzBuI*Y)BSf!DV46rX{p zP<1fB%0|=p>er)aESo@`UZR|J(q0cmy$n%WCJu}K)*JJmy*c@S(jFC9xVr|o*)?!t zOCF(4o$AL7ajZ~NvOQ>H=aEyPXc6vD?PrFdj1J(5D_*h=SSz%(^PuyTn>@-!nVjPp ze5Omu2Kzv4qGOLig&8Rox%Bf~-4Mqp%@zHgo0{$|cg={*Dj(UaDQ*-QgLWIzCb6Ns zg8}VL!-bjkJeIiq0X?fXaUKY+(fAo#zJ$h2@+%KN!A|og+pg+*N8_lkMlxMhEt$)J zfe#z|O|DG4O7%7~K9yuTSVT7oCKdbsi6wc&p1XPDXdb8jEf%$#s?X5n0UIdxSvtlrMJdAqCVI-OK` OtDG`%76yX`mj42tdy*3X literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/81.gif b/utils/wxParse/emojis/81.gif new file mode 100644 index 0000000000000000000000000000000000000000..2329101a71efc84d76fcdc0e0acab11fa4b832fd GIT binary patch literal 1591 zcmaiz`CHR<0DwP}L&lIuF*#H&O|Aezlbj_?5G=)s#*<+N0zN*8c|ifW$T?*MMCdV={!Xi5#LG40e4#>0i)q@ALlpK5xW<{lTBaI{*i;3;}$} zo2&VJ?ru0bb{CFO;ar!l`5Sby0ghKma=hOt`_WMkPIQLXrf3z(gKut4Lv*C23L3|6&JQ*MX zbb<*roc1Ijyb9n=;j92^T1=v>f03ktRQuT~ z!a(*`lPFW)U9jAE(!f90bsoTHm9k6#ry32yV)(3TIM+jzr1oB2-*eq*vFSUwC=#Vv_T3;3rn%|c;?#vKVA_qQ5Eo}x7aX1H4K&+_?L8l#2dP@f#e< zg^Oa-XqBpx0B73ZGz%48LHn<-h>P`Ixy!9rjDwWL`_bA5F=$^3R6hm)xItW0__3q= zLW$vlegS5fcS>iDwFeORzU8-*H~?Vv_7m*JNTi0BW3|rvL=Qsi%(o6A;m>9tv*n);d&Gsf8@<-chbWwt5gg<#MUjXc8KAc(0k)( zO)d6)Qr7A$U;h-(9G0lO!Fkt?ix@Vq`U^lbAK^|N78ZYpzh+ezBIwy}gI6PxX_3o1 zms7oc2#-}<>beItmJkx7HsTH~s7(2%JDY<7@4Z22Ns-F-J-wdRN2h>Gwywx+-}LlB zrR=IpTuhzijrF@$ZFLQeCOdmOaW2aWa`}A922Ke{xP{p5d1N0r#|Ho^})r`0x6f!&nrKuefeESr>H6W;o@;$Sugb3eS`&?dI) zkJyjw*<@hHMEK_G5=*&OOJ%H8n>@s{$xtu4ozU4aDlWv@(w9K64zNO^2-XO971o3R zGaJ7cn##wtON!9qc?%A3|fKf8MozIWHuB(tmRpWu-7~ zzZolM?=PPg1PtVD->{Doe0;6i;{E+OWgPkMVUw86fMM_Hx+Nlen8k}Z0B3`65CIb|6Tc~Tad44 zKhCo6S)1Ek?GjzkUzk9{e%k?SPq4ZM^E);YFWF#{r!DLP*Yb}Ab0b_`Q@?3NF72p$ zJn#5kV*lkPq1^{QDds9e;MT)ieVV_wa#^$u4~X7dlJ34OGLGz@`h?+~I9ssfu}r;) z(Dyy35qDqFq&h|Vc6pm`7ysoRkkm)sY3oo{=*H(6$shS;Fr@C_V?t~e5{`3A7l-0b zRf-9rJ|xVIZRSkw;a%9Fc#*RYE%C$*;<$b{C^QfUv~fi literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/82.gif b/utils/wxParse/emojis/82.gif new file mode 100644 index 0000000000000000000000000000000000000000..644748a96ca06c8518ed8618b9df99265748558b GIT binary patch literal 1547 zcmV+m2K4zyNk%w1VHf}y0Qdg@^Sy1*hbF{v7S)Oz(t{iAty=oLV&}GV>Zw-$>cr}z zLI3E%|Jjk&ls?LREU{Gp^s!d^%8LHYb?2c<|Jj!E!h6}4GymhV|KO+p)`_ll;@0_ST~O(V5nfGwsi#=d)|?uVUqw zHs6yv_Nr62T>!yq0J&cPy<`BpVgS>C0KaDd#B2c6fdIB!0L*p(v{?Y}(xcLT0RQB* z|L48Uc>vLU0LpX##%}=o(3bJ9Sk{jw|K+#;)Pcxy0J2vA|LDK{$7}!OwEx|o|K+ym z!H)Q{S?R=%+?PWC*o^qmnE&Cd|KhCAdjR;-n*Zm#`Mz)K#g6>KXaCT2_0N+0(wYC^ ztN+e%`M6*9t5o{Oh|Yr^@3?B}rAq(l!snkz>&&CoiYEWxquq)s`_7d9)Q-}NG~=#i z*OW8*$&9^W0{Ogf{L+&D;HdiZ>FmFK|JRV)n@9P#UdwkI(T_~-z8EW&PNq)}CDc(1QKep!Cm`^SENxi5BpnMc;@c-KuEtwO#$ncHgso`@m`7uzu{e zXU&2k>a%Onf++vjjPbg1{m5?kym;uLNYtNb>Y_}^b|B7v82{q0<(D|+m^t>fSJ;pz z{LhQtrd{gFqwAnO|JH}=%%#+cBKN~>{@}0Ws#NpNnCqrf%5DnSj2rE(R`bS$*o!an z%#r@ieCxPy?!R{a)Qs-1UjNsR(~dLOi80iTH2>9#`oM7W!+!k4Y5m1&*?SZ7tx(&e zSlgpq>6|+J&4d5vzWm2<_`Y}l<+%IEec`EI=crl!;jr$|qwK3w^wFF4)t48pl>h($A^!_bMO0HmK~P09E-(WD0000X`2-0R0RI3i000007yuXm00{p8{|OvO zu%N+%0-GdB(xjk5h6o25Nr1yhK_lr{Sd94336=y-3OZT9B_u~Fm$-ClGq6oDDB+}V z{CA~-8D;|pUNL0`&Xt*C27G`MWnh$QxgaAd(3JFso!WIbWQRoJ$ zI6@)|;dtc8882Rr%mWwUNHQpT5*$HD86T5LGr93^^Di--Zk*f{1Asf1-dZ6dRNU zIjBSl1PI(dDZyrFMVT_ZM0_*m;2@J-Oa#aTEwP-Ffe0qN!HOl2lycAv9{d8&2`j8X z!UiS0F-I2${IEqt4`gFa7uVQwLJ9^Lpn@12JTTJ(o&X`^j5E3j*Np)I03rDV1rz}P z04x9i000;O7ytkW{{a6997wRB!Gj3@HA#{LN5X*%lQbb{1Q-`14+R=YzyjkyCsm#} z$@ovojWrg`4U`g63P}r+o+$cMgO#Ds-eZ{KPnTz4B7_j6c#L0%<4iC0!jlUi@dBs;#7#= z9`P*E;|J z&>>HjAP1EwR}m0Ofe$5r9sy9bA&UqJq?8=w7mb7fCQLk};*_O?2@R9bLCFjVZBd6C x`_$qCGH+<0!5m%C!NC>}JphCwZlo}Q0UW9zMja23WFZhFmPlfVW~CSq06TQmCO`lH literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/83.gif b/utils/wxParse/emojis/83.gif new file mode 100644 index 0000000000000000000000000000000000000000..fbf275ba500778d06fb2709e0e5556ae8afddc16 GIT binary patch literal 1591 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 K=l^qQlJ>@a;;dZdr&ZaN zGSi1F_Sd7YYjT%ZvZywA76? z@484A^aR9bq1GZfO|LxBI>c+xt0p6ZS?66+{*_{5@n$mq2{?wQE zv0(q}$o#~0{KIqJnl;;_T=%eE;gdbFS_J>>%m3=d|LDH|$Yj$jVIfQBI2Y*xn2PO->d!Bp7zzB^2dYlzIX1wb?&}$ z!g({#eh~JmSFv0K%5MVcnnlu#ILv<;vRwoAsaF5tt<-@4|IdT}&Vc{ovD1J6|Ivr~ zx@!N}nD)ea__uG&cL4wB!O3#~_P}xf->LuLtpDP$z-R!@c>wmmZMtOwuUZ88w`Kp{ zsN|bDykh|WB9EHcImx@`PQ5J)|>g!l>5||`_7Z^uvq`*y7Iqv z@wjQSR{-IYFYc;Y{@tne$Aj3BJ-%oG!)pNl<+}gdp#RK$|K6$p&4Ko;S?{r1^vQ_d zoJHflm*bW-?5a@uzjf1zGyKJQ>9u9ec^vAhQS7W$^2UJq!h_wKMf1ac_QQDRuv*@Z zI@*UG@w{*OxM%Uni0Pz9(1a_#Zx#REr~lfX!FD3tlseFRAmhTL=(1h>&5-}$u+NZ6 z|KF_CgCgw7m;K0l|I2;eqDs(o1<8Rk;+aD9%Zb~pegD;w;G8-6)}Z*eXxWoG#&sCn zmp#&%T==qJ`OuI5(~SAloBGt4`onzt#ee(9i2TQW_tBO3(U$tsl#}fSoW@5^2LDo&yd-ZF!|G%z>%A^!_bMO0HmK~P09E-(WD0000X`2-0R0RI3i000007yuXm00{p8{|OvO zu%N+%2oow?$grWqe_JB%iMXX9f-e|d*kJI51PP896Ix(ELV*n&OepBXaiNqM7fTu( zMBwBO1r98G4OzqI$P*2M?r=b0u#J*B4Gi!rcEx~(9u0gD(BQO98mPoIwEaVZrQeQJoG18L>#D29lW@UK~u>AfVEe1>MdaTf>MTn|y4>h}k_x zgaZg3Y9PY`C)oitYzX4XL=TTB6ez4XFk-}x^?D%mB$0!M;4K=)E^&RMLubGWR-PtJ zLc_k9D^$MDl22naz? z#WFBF^2!5>bm3taDgZ$PItf9c%?vQ`l0pI%wD<@M>=d%lEQLrCM>L0op(8Zm$k<_#wjDpLTDU{h1J=PKbgX(j|f<$IJ~c9t0f7 zHbwJ^MQb_~{DJMq7%`~Fc-SDsUyTJQTJccxqhOG7pQ!Lap~uPy2p(!6n*t{mDO^Dc zb^I zLOSg0cVth8u!9iD2SW-EbfHKW2zD`!3NJvAP$5;!FyI3TRAAvFEW}|71`0uefh2L% fa!42?rXo!ig)me=7Fm$NB8y~%QUF8^1q1*)ck41~ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/86.gif b/utils/wxParse/emojis/86.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f09d336a30070add12af16be11397ac97436234 GIT binary patch literal 1519 zcmZ|OdpOg390%~PWrc;3Sn0@8opid;dgSt`7!HnvbR?0>=91i&lw86_Q_(tEDVJi! z2^HOp7RE3kw+@Sy%_WyOq#c*v=J!21|DXRp&-;1*@qS*<^ZC`@*2L5o5Aa|ff^W~f z<&EKRunbB{p`--;RD^yihM(?B?pVN&x7v~oVDB|vsD`W|W}z||sq&e7;@%z$+G4;| z$Fhkm%FYjW>yKchnc-R#SJEBEb4Und^ zo>YUjR3g%FMpjLcz73t?#z>w9O%=QMJUZVHiW|+f9L+g6nr%LE$E@cju_2!L!X3cj z*R9c@B^uNQfj54DcLr4X066*<;rhX`+Si`Tg;)Hu0FH3#LqJ0q;QE8NWbiHuG@k>F z;mdhNg%{{b05ySNvLdp~4SYxf(_L&h`K~$ubSHwP-h!q`0NbgH9B*lDe0K)1{5YsQ z4Fpusl}_Y%gU`23JLADnCJ~NQ$~tbtp%-wnRa$*P+Lbr=A$P9yIGk)*60&D2LqyDd zlNAx;59~YQz*65MR8kHHpTMD)@Cz4yW>51Iq%|?py2~#;z;yY^MSeIG-Gc)~vmC#< zH$Ku=rzZ+*;rqz<@!O}L9q-R^fZfTkJ!-zpYq-=K?a73qtm(27vu{G@YJz)jTMlMh zBfJPym@DH`Wlagv3g3YYlc{3YcKXigr>?LkeV~*qZ%cs_eEIuyc{}qvCs0~RMg-@P zx+pQr431ULmwUj$r^vfFwD+#8@dErngZ+1r<`{V!18u+5ebrFT4}p?rvsFQG;2|96 z&AjlNc}YfEljJRl9jUt!{-p&@Kvm%S%7BgB;Pq8O8_`y(v?g{u-%(x{D694#DDqlr zrizzm@Pp^x`Y$zw!0}os_q>!FJ(@>C``Pue#-e++P?Q7zN?mw$s*OS9#~F|2TJ_(v zlhucP%Cp&dJ8@ z7|GJvX5Sve6$(G1MMY&z0Ku;1d-+N504PBKl{eXyJ>b!l*6nmNvALRQfLnLcgWcp{ zO?L`gh@gHG=lpWuOVob60-1gjyRD;=U`a^dbe}396OI)o>6mKlbRpR^tL(S1c)6DS zP;K2dB_3Y^vr=Wv<|Ft0c&@2RT6Ei1j?wdx)HV8XVTMMSRqAW?m9Aw9+_(1KHMhB* zyVg~ar^;D%bWB*HulfoTziM>{ArL71v~uyE-zW+vS@wE|-3Z%?kF&J!vu;Kg`7U|q zqJJ+pFZkOI3wkof%)nO$Pgm7v=S{;kUEY*d z307E#FD0~l7U>CTOon^VExluefF(y|YMFXAl{vv<5bAZSEO*#ymaqtTD;?C8F*ak@ zpopC&`wEE7ZbMd9UJLc9T2BR50>UBr%wgm2N-vx>QF2!P_KnCotb;aI@dq&W|ABE% zH@8q6>aM`j(oTP@pViL?;!MgJ5v?p8e-qv7Ge*gFG>tJ4bB4K6Ex^R@Ib%b2t?DM_ zTYu*NLB?*()9qu}yI!%^pr0B95)781Ug%U4XFwXp)olw9?fOV12{aBK$l8@eyCTq_ zlN`o$wj2?p6FljL8&(zLr|L7Jj?}Bsyq#FHgFg3Z z{{b6KsqR(7aq*>*lNtrvh1pDJ=b%%MPdw{MIT1oNRH9Q7egF^Y?hce%GjWH5@pT7L zaf%o$13T@wUS?-%aCRBkc!BLeyt-8{ZLbH}S8bo>niVeEXjy)P`XO?yWW~uSo{J`$ P8RVDdk`v{67?}SHC9xom literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/87.gif b/utils/wxParse/emojis/87.gif new file mode 100644 index 0000000000000000000000000000000000000000..df70756f0c74d0aa64c84efe026966e941f40aab GIT binary patch literal 1558 zcmV+x2I=`nNk%w1VHf}y0Qdg@{LPC0&vfLWPTihLp?a$?-P~o0N z@Y=oq+nUvdE$+mL`N4Vdzje=n9P7Go&Uqitdm+PZ3G1Fl*^@fhkvX|v0Mm*nvR45A zB7Wp0K;nlyJ7&kU;w{o0KR4bz-R!$Y5@P` zxc}07|Il{Kb^yyvBGyT?@{o1Ad+NSo_p!v97|LVm5;;{eJg#Xor|K_^?-JkK_%>UPo@ywX?)1dv< zm-f+@?7D6I#A)=^rsuI~`nq8K*rME(I?;?X|JjoN=)eEuwg23j{n(@b*pUC%jOVgz z|KqXuv047oiS*E#*N`^iz@GZLV*0*l|K6kj*p( z(R%;nvg@!{|K+v+=ez&sy#L&u|I>v3)Pw%nq3oke{>^j$&T;(6c>KzJ{?B;Wlt8y# z0RQK{1<|KYFx-mKx7LH^Es@VjyI#eDn9iQ>PW z^U#|8)}H&%mH*Ox+L%M#nnBBa9Ob7>?73_G$8GGlX#d}*{mOLz;H%u2KJTnk__}ZY z)QBG>3 zEB@T1|Ln~F)`#@GWA(mg`MF^DyK(={bN}6-*polgjx+4CTK?Uu|LVrljWh7PbMe1( z|KhRvxn%s#j{oGe@xgc1kTdwQS^ddx&3qiqeICqy9ov;a`o@C#$AtdNZ~3}s)Q>vw z-pux@Qvd(}A^!_bMO0HmK~P09E-(WD0000X`2-0R0RI3i000007yuXm00{p8{|OvO zu%N+%2ooy&S0qZ5A`24^p<`x9M1(L}B!OXY2@DuZ6f$|yf{8&USw@&lD1@XCgF-aE zOn8Lk5rZ{b+)Sth5E~^1m5^xxG+~S~HDV|YqcmEKIWuA?yppHE3OIJI#92@w-5noS z26A}vM9jb^UuF!dfd-ctFf~4i@bP5ejZ+IU+z@y}*EwGATKKtf!O@HxjrI=Y;Ym|A z9{+fZiR25K0|z_`Y{Og(GQl1AEcMy3;{h!bAQZ^ip#i{ZMmr1=QD9{Tf(Idp5J0AZ zh=5hooOK{#&7Qijd=A2?L@yNeHxV0J#)fwrpKM^@fXzgZ)Uf zqqJ+%8bQlc2@@nijhb!~5GFXlV4gT20A6AYfB}HwjWr3e;Ez0YU?IbUh{zDiHF$V% zi$YHL?bSMiA;K*}=6A>BV&xt3VfT9r>wfIj!03rDV1rz}P04x9i000;O7ytkW z{{a6997wRB!Gi>gM2S)ap~Hbg=$IMu@F9#ANnjXU0t3d9hfQ9zXkxHQmJuW!QV~hT zAQg-)9U>8l#Nf;pH5~>4#3qQrAY@wjbm*c?4HrnmAdTl@&I}h1tK@000*;+3aTZi4 zcgIJSfgGSf*)tHzml=ai@XDS zkm-Z2$G;xABH4qGhFy;fuF~{?<(Qz3e3)wJ&|yWL30Aho=+NL!^)MXT`If~}>3UtA7u!Mn8$|7`uH=q&JICun-~a#s literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/88.gif b/utils/wxParse/emojis/88.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d8b15e7e625ddb98838f58ca001f3163c5fad45 GIT binary patch literal 2134 zcmeIx*;f;08prWB5RxDfSu%0He1Jb%FN;&Z-_?>-+_ zw_pok0hZ=K-3id}C8!Mq;&AZzBzWH#(wjnQ3I+F%gNGrYB?8DYC>rT^16L{1R7xj{ z(tjCraVYIqD8i$l>KIsjS^-}c4KM+mt{-Fp*mrK`HVrD9;pDxJa{#J4;8Y!)Zh-wP zMXnc=XXxbFaO(bQ54R_g(i;oli=sE}iRw~cD2alyIK{*3us;sUVwc1x;Q)K(@p+Ae z|1y=JF7c9bw~z4Lmc_wK;!_&&Uw)|w)V7~qtfH&SKZWv4@!3sqC~b8x?Oo-u)y_++ zPfn@wUA2;A<-RRes3?OYg4U=_vIL;*h|oQ~ z230L^{D+>)HWLDG*caWMK!PK=P}Qoe30I`s!P!T{-%{qEHR&V?>hk^L0&k@-r0)_K z;eQNY)x2+Is~Y0r&k~*DC-|a7ReurAKGuzv!O8o-$eUD+T=;YESjmw$-C1z@!BD#G z@b$d|9HaN$SKH14Rqbg_4-d|Y`r-|jAH~a(i1X4S8Os<>)%S6U?`lu4_UEk*<#$B` z84Eiq@O)L5FkkuAo0lzfy+zA&W7=nhLp;h`S>78_oc3w{!f?~dlPg;Joz=mc8rgN# zLnc(Vs_HIi$Eug^oq1W4u=F5C-58^l3lu*Djplx=s*BNdXFkoM%>NiV%(qike?40n z2CMuOSE-xg22$;09D?peg;riP zRdE8&G-`)S-rYR{{)Zz%qeI?Dk9gAjy`6WE^$~xcBCa3}abONOtWQl%+TplGjvOm8%mS9{W_!dxdHu+9kJ*J6y1 z1sJpt(TxHW9KtmPAgnzDrU}AD?*jryFTeU_)2RYr^H*fb-m}(R1B+cd8A$hl=~kM1 zW+=$5o=qZb-QrTaaG2Vi&BX=L+AJ?E@VpV2<|=PfoRf>#-NeUX9EmbO{zDY}j;PDO zL=__CnyAAGcI0A#18VE9(Jrp(EPG#)Q7Pzjw58b-4maS-(`a`74L%<&NSU{`)9u2B zRP~^@_@L3o4CiBxN4?O-I3~~2kFR(9r+{trFluKqA~Br74i$-*HF;)t2t1TNN{?iH z%$lJzN&W=+9X=z{&V%&HH>-Gy^UQD4c3o6)U3nc0Hf^IB*?FM#Q?}W@uszIk&CO|O zleTCTWGLEUi@0rH4N>9~ETT$iL64H`(^N zabrv`9%Ju}?h1IOvi$Md`aQ^@uS4)|d?P8HbiW{|o?d*}J6b_SU?R%$w}E7A9w!l% z6K~;Po<#ljyXo05Gf4_q75d zM1-gsA;NkCV{0n2gO}rmiHJ8fFI#77w&Svwn*&I-L?~`z+=CH52eB5ct2wbzJPBzt zwbbbW(JvXb{)2d&^tBB!aeHWE6?#J;j`45KR|<~Fp~!!78vI_EPQT^+f0+Lv%r(i~ Fe*@T%#YO-C literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/89.gif b/utils/wxParse/emojis/89.gif new file mode 100644 index 0000000000000000000000000000000000000000..05726dc4abb26afda444aa8b059006bff0af1bec GIT binary patch literal 1219 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/91.gif b/utils/wxParse/emojis/91.gif new file mode 100644 index 0000000000000000000000000000000000000000..608d0ad87c31a4e2ac8a28529c7af1a08a0abbbc GIT binary patch literal 654 zcmZ?wbhEHblwgoxc$UT>DJ1%zf#LuE|7&H%|I5nUHZsywQhm|M{`lRmIdkUxmy^A8 z=lzvb#)}s&|3AdY&B^)yLBzg8r@sCEAL1A2Z=n2oqh3UK`hOlCU+-uUK`9|VK}C7Z zoQ#59i8>Z$E+2mVDzz8-e%9^Gk?m*Cp1m}qOiEmF>5^qn=Eg=z$#k~1%SkIedi02! zgZBal`^yb=@0QDK(b4g9cb}@R{y#szt*ND@sYQ^ROGQcN$&;r?Sy@aBZGF9?q9U`N zudA)AX;zfel#)<9%*herAE+oQe)#a=V`r|pItT47a1x50c?DGz zbwd5aM0xlWgvGXR+qJ|*Xj0#Vv+Y*EuwtMdQ2fcl$iR@spaU`z6ekSquN%^unp;}i z+B-VCx_f#U)A~DO;yrW{485BfXV30PVi03kWX7-7G-qy`h19}D47^PIyvtX%nI^7V z#KgdFH>)!scISE~cE01?UQ&k_C9|LJGUf_mzIu&Wmzljg(24bP%N|W<4I=~A zH*dnimAjqH0$0LOp4Kfr?l^5_GZf?6uWBFp7VSD>Pz%Rrcsr<j!>0PZ-p&h<- zX*o@|TUafn=4EL+uT_U{=Sy9w)pgl6!I#vz3%A>}g!rxgf&Bsd{s*7WeZEP`#HeUJ z4sfvA1t5gO+5XE*i)6*&pBW&F1vtVJM$-t*cd42z;&L&R_hzd+EhWWrs$q04ootgH#g(^L02nzP)O zF1;(+a>JX;L}-0<>=lc(Uz^dznfuhJOxtqM`n5VeJew@1Eg3Ch}mhNAL15Eg{&+M|NeIJ0idGeT;#}DszeiZqn z3`B2>NmC?^U*HV(^}*$3Yc%~w1cN^yZWe1W6L@M*j^u*1Cz^64W9-Rvw-V?xvljkZ zow|C;s$;+8^ABd{6n$LuvXL`gQ`2&;^-yuigvAOsY*=1fb2e=C0MO9bG)tyrQQ4{S z3WsUS(?u67E1Q{_fzO_;x!urY`ukz`AAvzLFV>^{p6=#3^V9oGpJ~kqoR(*`ru$N@#0toiKM!T zh9%?;HEgPiI*_R|8VRH**+SJB1s!CBxgV*c9KGvQzEm~Aw%_YiY_-pIWwC=e|8V_R zJj1|Pr5CX{qr0b~ZEpq9jHd`5n~{nsto+tUe1V>Xlm=_<#(ep=6fCT}l5IH*BpBuL TdA22K#cA)aAqVW03PJ3@f(O+M literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/93.gif b/utils/wxParse/emojis/93.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f71a8c94cde07ca85f7e7880732cb41f02c053b GIT binary patch literal 1119 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 literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/96.gif b/utils/wxParse/emojis/96.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b709e15bade2f707632e1a4bdc2b7e97521b4d8 GIT binary patch literal 1796 zcmeH`{ZrC+0LMQ(2w!=SuRw}~^UG<@kQzF5nyo<4$TW2`Pn&CE+U#o0T4il!pkk(` zSX;B*F0klfs~_-Tsf;=_OdDIGS=losF3K%aNkz%;s&%)!tsi%{U-teB-tX7F-piK9 zMMlY3fCVOZ11{5R+&Me57dJLGcIu17XKbIM!jkDLTW?oL>@9_ZkEdrX!8V(1mKS_{ z4r4kzVy2+rLTA?x4En7?o)3f7*W2faPei}Rq7+J<7jrT%&(Yh|)ZBbk9#L0U_pHl% z;Et`Ty873%l{W@$ED{MdV~%N$4|6ygHsu1r&BR487>r^5eAJpg5FWvxdiGN(H?Q}j zZ5Z_C>XmVE=po!T8jPAS%92u^f8b5!B6}sVO|Pdww6FysdKtg7-O!(lxhsF`;qdUP zq%?{rJz%b%)9KtK|I#@**>a|B#^o9r8F|{Kw_LlwC_HiqMO`zlMs1~pU4kwkfKJ<*{Xd;gQ1n`arL%s_T+a{cg?PAH&7G#wjvC5xu%BtEth&v zgzzRNr_RH$!Pq%*EcVfUTF-XhhC^km(lbBLOn5RnT2)Z+IGEpUww$Renlzgyn#1)i zE$8$tGe0Lz7&BYmT|$8%^ku;R`A-ROQS!>z)c3`r^1UB^w)R%+Jq} zl`~mc(tH)S1jllF&uXtw5dq)}vhpleQAyN7z)aZ>gT0)@)RXx#5e^@nTxIxu23xIW zuw2rE9B?VS6!2gnZfBz!kQ!5gP6eQ_oIs*#i_(~^%vyvz2`#+{=KFtZuS;GhQ+biM z2Ix98@x>wJ)%c77QFqM)OMQ|(zd`?Wc;FNf|2h`q{~n95u(9lAd+G1wWWrgd@)!^n zsj(Nw$Pbdk@tS-qfT)1j1`rue%y#z(&B@ms5t0CCMI7L3Hv)yqUToQb5!S*au`RE- zUQU2MI9IC3#&^{!KXqm8u%6g51SD*_@H1>l?otdhrs*ZrC~Q?z=Evz4ENyA%7i*p}%uDzsKDluD1-j z?StU2k_V=WJ1Un1azb~=@a2B~MRG?*NTdK_>xu<^$>+r+BI3O20;0S@X){2M;L>@_N+$`Y&`YR_sB!dcmK*!#&H{qoLZhw1&@t@0K|2QP3zKhKEM844&N8Oa(yAmREKx56t1Hrs7 z6UM4tK_VO!I8yp@)!tD@1RK|nYik22N!Zb~CYtKN?&=_l?7UVzN18SjvL4qJ0|Ioq z48hv6!_gabAgEC#@ra`1Iq5$VS3v&2>l`w=%+2qOz{RDS@ja4EY-6 pdy_y~NrNP&ELe=khAb%N|AyH1Jm^usxwTxXZ+>{0fWw05KLB@?Q566H literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/97.gif b/utils/wxParse/emojis/97.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf29be87c890a6633eda84dacba996a29183c09e GIT binary patch literal 5300 zcmeI0YgE(s8OQ&@5E6nc2?+@yAy<+RLN1VmV1ncVA>2a{0tg`pB8p|v=@D9`34}`p z5kwRyR6&N;gDv31j^d64m{g}GMH$we0wY?SbI01XN@dO1&V0c+o}IpL-u+&G&iC{E zJk5yqKP5QaM_l4I-Z!Ck{=N!2=&S!Kcz#9Jcu0P7s66b8X%nC5dCRBIH|>(^3r>6kZmk zIYOc5=Ir^GotqLtd$n-Ob%znJ-sW1&4)7=W`w=5Ws-G71uO8i7F!R2y;xOr4ytnrf znRJ6rzsg`-B4Q;X)#&Kx+S==}v9VZ{R+qkmLFZDC$j}gx)A^|Ca7|zU^&n5&*WFXa z3r*J=eqfLt_SqFO>He%^?e*H~>M9l);DbcHUR(RpVZY-Au|vI@nwx*yKd}1prK>2z z6(_tpI_8o|Gt;tWXJ@yFB?0@$m^7eTL4sqoC}@)bz!H^K=5` zivY~E@$tOvdyp9H$0+pISWKN*5U0|at1KgzM`vbkR)&T?%Zzmyl1~QUPqv-vYH#oD z>AQvSd5py_E-d^YKf z3Z=EV$zgZwGaa~pe@-cl?#E*DIT7dasP_&XQ7TgAaQ;V0R0ok*keU4~gn67B^6Oo@ zGt#m@>^hs1nw}TKD=?G^_|im8+E!`eFb4hP$R*~S7xac4(QPiL1lIelvC#x#+*@`0CHnfUDK(+VnWWcYWnO0D^D z)vOQP8YV0*+^tb(>e7v4qo1cJ7uycsd3vfR0?feIG4W(1ONbK6%2y_ zE`YQCUY7(10MH)+7mT18Iy+GV^<(GF3>8i)jx6@$(r1pVEbnn!u9GKPTG59H&6VGJ zfGlKX6Am^q&vuVBt|W%}sq7taNh#S|NtOh!-apY{$6)eoUtk-L(Vh)l9<9(nH51rp9?{_Lp@ z<`IA|)xJ_%>io$p2o3BgnepPoB^5c!n#t;*-_V(dmzEUZqO_{gY{U}ibZvt1dg(}C zeG@VK0@;GxN%<8czNAe)d%FDW3JsgowUx?3SXN#~SA^mo0o0O@12=*G3#B z)<0W@RS*oF-^X!IIH4vK zG>dHR1$!T_jqG2vw-(jCBy2Gyd;flTczpG{mD^t6x8eDIBc7q&$$GD{{>k=G&rAD` z1vOWm0)ZefZ>v?_KiCU+@ie$>IlTc4FUF6)`)%JBH&3Dbx0OmPkKcquIk~;*K-`Z` zxZg#cGgp{*1#V`Sj~fJ=w6U|cy?^^}BnBUl!qxA{FF<24P-t=KS;Z3E6Q9esf`;de zeT75ahk?uHn$y8T2?wx!0J>m(SXWVjn3!)P;r(M*kmZ!o3{av;BhQ^~gMh7J$x0t} z8z#CKOqP4Xnpp5ke$-#Pz||P2k!7(JEo}~w9B_6_$m)Fw8Rhcs)N5l0>p-Blk#Kvn zp+?-^xV`yV-nfJEe}m$#l?}Dx{%_vQX>M=a-u(PA*6qz3Z`_5tp-|m5vav?IH*Ukf zTyH!BHj?;-d*jLa4-PN@27CeN`k6$(zWA>FxzN$@zUjq5oCKjiio{aC{M_7FcnvMm zecxDN`Ka;TO{<0DrsK=C{8vBS-u~dyAG?k)@}YlMXPilB=F0!HH=Wsd_e{=8!w}PM PZ8)cCg}lHb0O`L0!%Y2- literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/98.gif b/utils/wxParse/emojis/98.gif new file mode 100644 index 0000000000000000000000000000000000000000..c70e7d339fca9d0d12b9e66a1fbb6a68f4c6f4b4 GIT binary patch literal 1629 zcmb``=~Gi@6bA5n69`%1hU^O_VUs1YNKo85LD@k-ML@-o;D$O{A}%mRNgzPbfT)au z0}6-&gS0Fv7O^6mK~ZB_+%Xtzp|n5|p@G0#=yayjPCxWRpFiN7Ilp<1ufLDS3JDWp zLQ?}!gG6XaV|MR`S>`mLjWjnUw>@ZN>^x2)IwKpi-t!8-M<`VRJ}05sRIi0VOO#5eH8u;CUP#ht3%q9cPeP0x|`S zLI*gQeFWfI>2+W*9FpZuPELYF7R6-b$D4_OKxk`uI35r(m}xQ>A3s-KQ9`AzboUr) zNPc_HtIC2gYiIvXA^P0g2m%8OzuH*l>M&<(_qK3Pe|}Wo#i*XH$0w6g-zz=U>W=y2 zXAFk-GUwTcj2Q~0_uW9h!dW*s{7&WDcT(7DEtqw4t4iNGr^*^Bovj&kvZ>jKqp*@MCS!|$$hXVp%_We+uykX;pNWES^<>uzL#1)jo`}Te*Ad~Me;w|R#oEAIA5eSo0 z`iA=YtH%PqYp8!}f&t&4T!bQoNE}p|lrUL_83Sm8iDYvtCTH?w^46H0mJD`RSC@Wj zDl02X^Yr;8F16m)wtzz$=J7xSJWQu2P^pbPUQ%>O3l1xwQqxiu8m!5&qsO~FR!~gI z2@!r@C#@fsNK|yj^vczsnfzwy(y7OfK><4dfFJlH^9cWM1b`6i9kywmXQ=m5Cl@q4 zKV6_V!kIw>kZ@ts!ka+YIj952^{Xy=kcy=^M5(KbTQaa^6E25!tr&M?w}$^g&;|*t zE_fW-P?Rc{^4eKra)tLgpA@mGMPt-*$I4bC>Wo4Arc3?X)0DraAe?jrAGS}^gcSMb zq>IPeLOZSas}A3k6$`L*r*^tS!u7S!h;~%F!SYYLjNLcmC`OUd{*SJ>ZvQ#I{jCvRc<%R5{3wV@EaJif%GTGVfWLEu@@p6Q94dGjdZS;=5-Ah>T*Ydo4ShRxFgp5eh7^;;mpsoo%SUuvcd2MZ zi4&3PUN)VTM4gigVjB6a=>i3+5fM!H+}K8& nf|?2vjZkXVvPb9>MGz{H?Jm^WG#qu_Ej(q+3%Q&mhF1L!e4&X{ literal 0 HcmV?d00001 diff --git a/utils/wxParse/emojis/99.gif b/utils/wxParse/emojis/99.gif new file mode 100644 index 0000000000000000000000000000000000000000..05c18635da1b3258e044e30de4f7a72058bfd6c8 GIT binary patch literal 2261 zcmeIy`&X0q9l-JLlRODYAQwm=PeKAoxCO`{gou$=7jgp>FkDo?C<%(As1z7g>V+j- zBt+CqprWWv0@YY*8>_OmoOa<-q)dBg#e(*@1?(JhdN$BbYfs@BP&VmK_aE%}`TP9v zeSJUgPjae8w#I+}1fbzyZfh< zePbt7dw*N`ZFKbGiJOHI3EBsBO8urE&kHzF(=hHE8297YJ#kPa9aQ3e#I(In| z9i-0R7B?L~Udv;mPoF+zG8YWaDCh;@kp~VQI2{%?HTCFrNC^5F^hXv8MUV(i@JAnh z%x5r4!@`D!{!~LEJ^I_!QHzyLB2^!*eLOqc)%EVy0zClGE$gQ0eN~3ctP(Dl$qnjb zu?jYA(Qe$>6B;pfB{fZ2dg$6@MaPZVkN&ETpuFIEi+!%_Bi;I=6 z630q=n9NhHXWmDU{8({^<6@bF?y$f0JH3zdXgv7;_df*q&tW11H~=5@&QRxME0eTp zNsJf^EgTmu{<4?}AfP}^7CabdaH6~^-??Q@RZU)dxupC%t z6tF4O?`5%GZuI_@2-eApB{jjO6p~PDOfuCHy@I6ts)!mReLt`=u49y@i?{%htc(Zu z(kU$^{vUt=BsRXn4aM2smj60hxAV^1sXUx${eaFit4?Rf@Ba4M_-#|xNkU~erM#k! zfa7Y~t~EZvlh0GQY@+n_@3N0VQYURZP5${V>Sp}S$Q@Rd1;QRGyW3~GPG)WEOJmu} zfW?>0F1~XBug27esODxyKyN7>RH^cEaVb_G*87N;Q9j@oxr$L@F7If-i8-=dCJm}j z^Cgp3rx4tqe0-1?C>VZoBdV8!fAcL^;TNQ+%T|o~2dO3^e)}P0$i?qx5Pb-~JbeQo z08UBh?>#06i_sMu_?{X~!%CU*@kg+F9cGJO=)UT%!Ff^YXjKBtrwj_nq4CNfbKLe_ z-x#rlMs4P)d6yH|qQTlyILqx&-SkHaMmyuK4rbV)(s}Dt)O4MjpK+XKxAha66UzT= z>y6hNg$=6rUZv)gI2+%_$?Yx1Wn#5W z#Ut*nv3Q~1S%yq8N~Mx%;|Y*4x#d2l3lLB8l>rlgX3iD7g|8sTm44>}N3dSrCYzNS z>42W&iO`o_1+j+yzZ+i|K?_FoC8H+`^E5Eq>4vef>j=6bt=j*TL62O4WJee}% zHbPL$H5aXn-ysjhF@$cLySENYJ=3-{H0{enqg?CDG3SHArc=!RM6p=Q(Dc z1rrcf_^$hVNBFVRt6oby1mv6Dw1{N0cEnJZ+Ae!_q>j6F-y+0gKWpO8AkaAnhA3COd8|^gBe+m(2*$cJY zOl+~1FYkV*Lv=RM_|M)V@7g~k?5rg2(4P<{gs`Q^Fw@OSNK`NOkW@equTuGLTJ8b= zQxDRC55DNfAQX-Wu2EbtA0hi;oZD~Z_Z?aB#4lFHre9bYA?wekWKJHnc!}5QvE>?y zHcSNpt%9aP3SK5wx|~XtqVdj-3nG&yx!w{t4%Q1$Pm9j%wW8jmT?BrW;mb zl}n<}IDI7l@Zu`Ey1a_YmsXK@8`t(2O6rkURLJfVMwP1Y-y>LX6t$O55EK%#)kl2`WNaZ!~XyP literal 0 HcmV?d00001 diff --git a/utils/wxParse/html2json.js b/utils/wxParse/html2json.js new file mode 100644 index 0000000..6909559 --- /dev/null +++ b/utils/wxParse/html2json.js @@ -0,0 +1,303 @@ +/** + * html2Json 改造来自: https://github.com/Jxck/html2json + * + * + * author: Di (微信小程序开发工程师) + * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) + * 垂直微信小程序开发交流社区 + * + * github地址: https://github.com/icindy/wxParse + * + * for: 微信小程序富文本解析 + * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 + */ + +var __placeImgeUrlHttps = "https"; +var __emojisReg = ''; +var __emojisBaseSrc = ''; +var __emojis = {}; +var wxDiscode = require('./wxDiscode.js'); +var HTMLParser = require('./htmlparser.js'); +// Empty Elements - HTML 5 +var empty = makeMap("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr"); +// Block Elements - HTML 5 +var block = makeMap("br,a,code,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video"); + +// Inline Elements - HTML 5 +var inline = makeMap("abbr,acronym,applet,b,basefont,bdo,big,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"); + +// Elements that you can, intentionally, leave open +// (and which close themselves) +var closeSelf = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"); + +// Attributes that have their values filled in disabled="disabled" +var fillAttrs = makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"); + +// Special Elements (can contain anything) +var special = makeMap("wxxxcode-style,script,style,view,scroll-view,block"); +function makeMap(str) { + var obj = {}, items = str.split(","); + for (var i = 0; i < items.length; i++) + obj[items[i]] = true; + return obj; +} + +function q(v) { + return '"' + v + '"'; +} + +function removeDOCTYPE(html) { + return html + .replace(/<\?xml.*\?>\n/, '') + .replace(/<.*!doctype.*\>\n/, '') + .replace(/<.*!DOCTYPE.*\>\n/, ''); +} + +function trimHtml(html) { + return html + .replace(/\r?\n+/g, '') + .replace(//ig, '') + .replace(/\/\*.*?\*\//ig, '') + .replace(/[ ]+ + // add to parents + var parent = bufArray[0] || results; + if (parent.nodes === undefined) { + parent.nodes = []; + } + parent.nodes.push(node); + } else { + bufArray.unshift(node); + } + }, + end: function (tag) { + //debug(tag); + // merge into parent tag + var node = bufArray.shift(); + if (node.tag !== tag) console.error('invalid state: mismatch end tag'); + + //当有缓存source资源时于于video补上src资源 + if(node.tag === 'video' && results.source){ + node.attr.src = results.source; + delete results.source; + } + + if (bufArray.length === 0) { + results.nodes.push(node); + } else { + var parent = bufArray[0]; + if (parent.nodes === undefined) { + parent.nodes = []; + } + parent.nodes.push(node); + } + }, + chars: function (text) { + //debug(text); + var node = { + node: 'text', + text: text, + textArray:transEmojiStr(text) + }; + + if (bufArray.length === 0) { + node.index = index.toString() + index += 1 + results.nodes.push(node); + } else { + var parent = bufArray[0]; + if (parent.nodes === undefined) { + parent.nodes = []; + } + node.index = parent.index + '.' + parent.nodes.length + parent.nodes.push(node); + } + }, + comment: function (text) { + //debug(text); + // var node = { + // node: 'comment', + // text: text, + // }; + // var parent = bufArray[0]; + // if (parent.nodes === undefined) { + // parent.nodes = []; + // } + // parent.nodes.push(node); + }, + }); + return results; +}; + +function transEmojiStr(str){ + // var eReg = new RegExp("["+__reg+' '+"]"); +// str = str.replace(/\[([^\[\]]+)\]/g,':$1:') + + var emojiObjs = []; + //如果正则表达式为空 + if(__emojisReg.length == 0 || !__emojis){ + var emojiObj = {} + emojiObj.node = "text"; + emojiObj.text = str; + array = [emojiObj]; + return array; + } + //这个地方需要调整 + str = str.replace(/\[([^\[\]]+)\]/g,':$1:') + var eReg = new RegExp("[:]"); + var array = str.split(eReg); + for(var i = 0; i < array.length; i++){ + var ele = array[i]; + var emojiObj = {}; + if(__emojis[ele]){ + emojiObj.node = "element"; + emojiObj.tag = "emoji"; + emojiObj.text = __emojis[ele]; + emojiObj.baseSrc= __emojisBaseSrc; + }else{ + emojiObj.node = "text"; + emojiObj.text = ele; + } + emojiObjs.push(emojiObj); + } + + return emojiObjs; +} + +function emojisInit(reg='',baseSrc="/wxParse/emojis/",emojis){ + __emojisReg = reg; + __emojisBaseSrc=baseSrc; + __emojis=emojis; +} + +module.exports = { + html2json: html2json, + emojisInit:emojisInit +}; + diff --git a/utils/wxParse/htmlparser.js b/utils/wxParse/htmlparser.js new file mode 100644 index 0000000..75e33cd --- /dev/null +++ b/utils/wxParse/htmlparser.js @@ -0,0 +1,192 @@ +/** + * + * htmlParser改造自: https://github.com/blowsie/Pure-JavaScript-HTML5-Parser + * + * author: Di (微信小程序开发工程师) + * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) + * 垂直微信小程序开发交流社区 + * + * github地址: https://github.com/icindy/wxParse + * + * for: 微信小程序富文本解析 + * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 + */ +// Regular Expressions for parsing tags and attributes +var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/, + endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/, + attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; + +// Empty Elements - HTML 5 +var empty = makeMap("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr"); + +// Block Elements - HTML 5 +var block = makeMap("a,address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video"); + +// Inline Elements - HTML 5 +var inline = makeMap("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var"); + +// Elements that you can, intentionally, leave open +// (and which close themselves) +var closeSelf = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr"); + +// Attributes that have their values filled in disabled="disabled" +var fillAttrs = makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"); + +// Special Elements (can contain anything) +var special = makeMap("wxxxcode-style,script,style,view,scroll-view,block"); + +function HTMLParser(html, handler) { + var index, chars, match, stack = [], last = html; + stack.last = function () { + return this[this.length - 1]; + }; + + while (html) { + chars = true; + + // Make sure we're not in a script or style element + if (!stack.last() || !special[stack.last()]) { + + // Comment + if (html.indexOf(""); + + if (index >= 0) { + if (handler.comment) + handler.comment(html.substring(4, index)); + html = html.substring(index + 3); + chars = false; + } + + // end tag + } else if (html.indexOf("]*>"), function (all, text) { + text = text.replace(/|/g, "$1$2"); + if (handler.chars) + handler.chars(text); + + return ""; + }); + + + parseEndTag("", stack.last()); + } + + if (html == last) + throw "Parse Error: " + html; + last = html; + } + + // Clean up any remaining tags + parseEndTag(); + + function parseStartTag(tag, tagName, rest, unary) { + tagName = tagName.toLowerCase(); + + if (block[tagName]) { + while (stack.last() && inline[stack.last()]) { + parseEndTag("", stack.last()); + } + } + + if (closeSelf[tagName] && stack.last() == tagName) { + parseEndTag("", tagName); + } + + unary = empty[tagName] || !!unary; + + if (!unary) + stack.push(tagName); + + if (handler.start) { + var attrs = []; + + rest.replace(attr, function (match, name) { + var value = arguments[2] ? arguments[2] : + arguments[3] ? arguments[3] : + arguments[4] ? arguments[4] : + fillAttrs[name] ? name : ""; + + attrs.push({ + name: name, + value: value, + escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') //" + }); + }); + + if (handler.start) { + handler.start(tagName, attrs, unary); + } + + } + } + + function parseEndTag(tag, tagName) { + // If no tag name is provided, clean shop + if (!tagName) + var pos = 0; + + // Find the closest opened tag of the same type + else { + tagName = tagName.toLowerCase(); + for (var pos = stack.length - 1; pos >= 0; pos--) + if (stack[pos] == tagName) + break; + } + if (pos >= 0) { + // Close all the open elements, up the stack + for (var i = stack.length - 1; i >= pos; i--) + if (handler.end) + handler.end(stack[i]); + + // Remove the open elements from the stack + stack.length = pos; + } + } +}; + + +function makeMap(str) { + var obj = {}, items = str.split(","); + for (var i = 0; i < items.length; i++) + obj[items[i]] = true; + return obj; +} + +module.exports = HTMLParser; diff --git a/utils/wxParse/showdown.js b/utils/wxParse/showdown.js new file mode 100644 index 0000000..d29206d --- /dev/null +++ b/utils/wxParse/showdown.js @@ -0,0 +1,2532 @@ +/** + * + * showdown: https://github.com/showdownjs/showdown + * + * author: Di (微信小程序开发工程师) + * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) + * 垂直微信小程序开发交流社区 + * + * github地址: https://github.com/icindy/wxParse + * + * for: 微信小程序富文本解析 + * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 + */ + +function getDefaultOpts(simple) { + 'use strict'; + + var defaultOptions = { + omitExtraWLInCodeBlocks: { + defaultValue: false, + describe: 'Omit the default extra whiteline added to code blocks', + type: 'boolean' + }, + noHeaderId: { + defaultValue: false, + describe: 'Turn on/off generated header id', + type: 'boolean' + }, + prefixHeaderId: { + defaultValue: false, + describe: 'Specify a prefix to generated header ids', + type: 'string' + }, + headerLevelStart: { + defaultValue: false, + describe: 'The header blocks level start', + type: 'integer' + }, + parseImgDimensions: { + defaultValue: false, + describe: 'Turn on/off image dimension parsing', + type: 'boolean' + }, + simplifiedAutoLink: { + defaultValue: false, + describe: 'Turn on/off GFM autolink style', + type: 'boolean' + }, + literalMidWordUnderscores: { + defaultValue: false, + describe: 'Parse midword underscores as literal underscores', + type: 'boolean' + }, + strikethrough: { + defaultValue: false, + describe: 'Turn on/off strikethrough support', + type: 'boolean' + }, + tables: { + defaultValue: false, + describe: 'Turn on/off tables support', + type: 'boolean' + }, + tablesHeaderId: { + defaultValue: false, + describe: 'Add an id to table headers', + type: 'boolean' + }, + ghCodeBlocks: { + defaultValue: true, + describe: 'Turn on/off GFM fenced code blocks support', + type: 'boolean' + }, + tasklists: { + defaultValue: false, + describe: 'Turn on/off GFM tasklist support', + type: 'boolean' + }, + smoothLivePreview: { + defaultValue: false, + describe: 'Prevents weird effects in live previews due to incomplete input', + type: 'boolean' + }, + smartIndentationFix: { + defaultValue: false, + description: 'Tries to smartly fix identation in es6 strings', + type: 'boolean' + } + }; + if (simple === false) { + return JSON.parse(JSON.stringify(defaultOptions)); + } + var ret = {}; + for (var opt in defaultOptions) { + if (defaultOptions.hasOwnProperty(opt)) { + ret[opt] = defaultOptions[opt].defaultValue; + } + } + return ret; +} + +/** + * Created by Tivie on 06-01-2015. + */ + +// Private properties +var showdown = {}, + parsers = {}, + extensions = {}, + globalOptions = getDefaultOpts(true), + flavor = { + github: { + omitExtraWLInCodeBlocks: true, + prefixHeaderId: 'user-content-', + simplifiedAutoLink: true, + literalMidWordUnderscores: true, + strikethrough: true, + tables: true, + tablesHeaderId: true, + ghCodeBlocks: true, + tasklists: true + }, + vanilla: getDefaultOpts(true) + }; + +/** + * helper namespace + * @type {{}} + */ +showdown.helper = {}; + +/** + * TODO LEGACY SUPPORT CODE + * @type {{}} + */ +showdown.extensions = {}; + +/** + * Set a global option + * @static + * @param {string} key + * @param {*} value + * @returns {showdown} + */ +showdown.setOption = function (key, value) { + 'use strict'; + globalOptions[key] = value; + return this; +}; + +/** + * Get a global option + * @static + * @param {string} key + * @returns {*} + */ +showdown.getOption = function (key) { + 'use strict'; + return globalOptions[key]; +}; + +/** + * Get the global options + * @static + * @returns {{}} + */ +showdown.getOptions = function () { + 'use strict'; + return globalOptions; +}; + +/** + * Reset global options to the default values + * @static + */ +showdown.resetOptions = function () { + 'use strict'; + globalOptions = getDefaultOpts(true); +}; + +/** + * Set the flavor showdown should use as default + * @param {string} name + */ +showdown.setFlavor = function (name) { + 'use strict'; + if (flavor.hasOwnProperty(name)) { + var preset = flavor[name]; + for (var option in preset) { + if (preset.hasOwnProperty(option)) { + globalOptions[option] = preset[option]; + } + } + } +}; + +/** + * Get the default options + * @static + * @param {boolean} [simple=true] + * @returns {{}} + */ +showdown.getDefaultOptions = function (simple) { + 'use strict'; + return getDefaultOpts(simple); +}; + +/** + * Get or set a subParser + * + * subParser(name) - Get a registered subParser + * subParser(name, func) - Register a subParser + * @static + * @param {string} name + * @param {function} [func] + * @returns {*} + */ +showdown.subParser = function (name, func) { + 'use strict'; + if (showdown.helper.isString(name)) { + if (typeof func !== 'undefined') { + parsers[name] = func; + } else { + if (parsers.hasOwnProperty(name)) { + return parsers[name]; + } else { + throw Error('SubParser named ' + name + ' not registered!'); + } + } + } +}; + +/** + * Gets or registers an extension + * @static + * @param {string} name + * @param {object|function=} ext + * @returns {*} + */ +showdown.extension = function (name, ext) { + 'use strict'; + + if (!showdown.helper.isString(name)) { + throw Error('Extension \'name\' must be a string'); + } + + name = showdown.helper.stdExtName(name); + + // Getter + if (showdown.helper.isUndefined(ext)) { + if (!extensions.hasOwnProperty(name)) { + throw Error('Extension named ' + name + ' is not registered!'); + } + return extensions[name]; + + // Setter + } else { + // Expand extension if it's wrapped in a function + if (typeof ext === 'function') { + ext = ext(); + } + + // Ensure extension is an array + if (!showdown.helper.isArray(ext)) { + ext = [ext]; + } + + var validExtension = validate(ext, name); + + if (validExtension.valid) { + extensions[name] = ext; + } else { + throw Error(validExtension.error); + } + } +}; + +/** + * Gets all extensions registered + * @returns {{}} + */ +showdown.getAllExtensions = function () { + 'use strict'; + return extensions; +}; + +/** + * Remove an extension + * @param {string} name + */ +showdown.removeExtension = function (name) { + 'use strict'; + delete extensions[name]; +}; + +/** + * Removes all extensions + */ +showdown.resetExtensions = function () { + 'use strict'; + extensions = {}; +}; + +/** + * Validate extension + * @param {array} extension + * @param {string} name + * @returns {{valid: boolean, error: string}} + */ +function validate(extension, name) { + 'use strict'; + + var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension', + ret = { + valid: true, + error: '' + }; + + if (!showdown.helper.isArray(extension)) { + extension = [extension]; + } + + for (var i = 0; i < extension.length; ++i) { + var baseMsg = errMsg + ' sub-extension ' + i + ': ', + ext = extension[i]; + if (typeof ext !== 'object') { + ret.valid = false; + ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given'; + return ret; + } + + if (!showdown.helper.isString(ext.type)) { + ret.valid = false; + ret.error = baseMsg + 'property "type" must be a string, but ' + typeof ext.type + ' given'; + return ret; + } + + var type = ext.type = ext.type.toLowerCase(); + + // normalize extension type + if (type === 'language') { + type = ext.type = 'lang'; + } + + if (type === 'html') { + type = ext.type = 'output'; + } + + if (type !== 'lang' && type !== 'output' && type !== 'listener') { + ret.valid = false; + ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"'; + return ret; + } + + if (type === 'listener') { + if (showdown.helper.isUndefined(ext.listeners)) { + ret.valid = false; + ret.error = baseMsg + '. Extensions of type "listener" must have a property called "listeners"'; + return ret; + } + } else { + if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) { + ret.valid = false; + ret.error = baseMsg + type + ' extensions must define either a "regex" property or a "filter" method'; + return ret; + } + } + + if (ext.listeners) { + if (typeof ext.listeners !== 'object') { + ret.valid = false; + ret.error = baseMsg + '"listeners" property must be an object but ' + typeof ext.listeners + ' given'; + return ret; + } + for (var ln in ext.listeners) { + if (ext.listeners.hasOwnProperty(ln)) { + if (typeof ext.listeners[ln] !== 'function') { + ret.valid = false; + ret.error = baseMsg + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + ln + + ' must be a function but ' + typeof ext.listeners[ln] + ' given'; + return ret; + } + } + } + } + + if (ext.filter) { + if (typeof ext.filter !== 'function') { + ret.valid = false; + ret.error = baseMsg + '"filter" must be a function, but ' + typeof ext.filter + ' given'; + return ret; + } + } else if (ext.regex) { + if (showdown.helper.isString(ext.regex)) { + ext.regex = new RegExp(ext.regex, 'g'); + } + if (!ext.regex instanceof RegExp) { + ret.valid = false; + ret.error = baseMsg + '"regex" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given'; + return ret; + } + if (showdown.helper.isUndefined(ext.replace)) { + ret.valid = false; + ret.error = baseMsg + '"regex" extensions must implement a replace string or function'; + return ret; + } + } + } + return ret; +} + +/** + * Validate extension + * @param {object} ext + * @returns {boolean} + */ +showdown.validateExtension = function (ext) { + 'use strict'; + + var validateExtension = validate(ext, null); + if (!validateExtension.valid) { + console.warn(validateExtension.error); + return false; + } + return true; +}; + +/** + * showdownjs helper functions + */ + +if (!showdown.hasOwnProperty('helper')) { + showdown.helper = {}; +} + +/** + * Check if var is string + * @static + * @param {string} a + * @returns {boolean} + */ +showdown.helper.isString = function isString(a) { + 'use strict'; + return (typeof a === 'string' || a instanceof String); +}; + +/** + * Check if var is a function + * @static + * @param {string} a + * @returns {boolean} + */ +showdown.helper.isFunction = function isFunction(a) { + 'use strict'; + var getType = {}; + return a && getType.toString.call(a) === '[object Function]'; +}; + +/** + * ForEach helper function + * @static + * @param {*} obj + * @param {function} callback + */ +showdown.helper.forEach = function forEach(obj, callback) { + 'use strict'; + if (typeof obj.forEach === 'function') { + obj.forEach(callback); + } else { + for (var i = 0; i < obj.length; i++) { + callback(obj[i], i, obj); + } + } +}; + +/** + * isArray helper function + * @static + * @param {*} a + * @returns {boolean} + */ +showdown.helper.isArray = function isArray(a) { + 'use strict'; + return a.constructor === Array; +}; + +/** + * Check if value is undefined + * @static + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + */ +showdown.helper.isUndefined = function isUndefined(value) { + 'use strict'; + return typeof value === 'undefined'; +}; + +/** + * Standardidize extension name + * @static + * @param {string} s extension name + * @returns {string} + */ +showdown.helper.stdExtName = function (s) { + 'use strict'; + return s.replace(/[_-]||\s/g, '').toLowerCase(); +}; + +function escapeCharactersCallback(wholeMatch, m1) { + 'use strict'; + var charCodeToEscape = m1.charCodeAt(0); + return '~E' + charCodeToEscape + 'E'; +} + +/** + * Callback used to escape characters when passing through String.replace + * @static + * @param {string} wholeMatch + * @param {string} m1 + * @returns {string} + */ +showdown.helper.escapeCharactersCallback = escapeCharactersCallback; + +/** + * Escape characters in a string + * @static + * @param {string} text + * @param {string} charsToEscape + * @param {boolean} afterBackslash + * @returns {XML|string|void|*} + */ +showdown.helper.escapeCharacters = function escapeCharacters(text, charsToEscape, afterBackslash) { + 'use strict'; + // First we have to escape the escape characters so that + // we can build a character class out of them + var regexString = '([' + charsToEscape.replace(/([\[\]\\])/g, '\\$1') + '])'; + + if (afterBackslash) { + regexString = '\\\\' + regexString; + } + + var regex = new RegExp(regexString, 'g'); + text = text.replace(regex, escapeCharactersCallback); + + return text; +}; + +var rgxFindMatchPos = function (str, left, right, flags) { + 'use strict'; + var f = flags || '', + g = f.indexOf('g') > -1, + x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')), + l = new RegExp(left, f.replace(/g/g, '')), + pos = [], + t, s, m, start, end; + + do { + t = 0; + while ((m = x.exec(str))) { + if (l.test(m[0])) { + if (!(t++)) { + s = x.lastIndex; + start = s - m[0].length; + } + } else if (t) { + if (!--t) { + end = m.index + m[0].length; + var obj = { + left: {start: start, end: s}, + match: {start: s, end: m.index}, + right: {start: m.index, end: end}, + wholeMatch: {start: start, end: end} + }; + pos.push(obj); + if (!g) { + return pos; + } + } + } + } + } while (t && (x.lastIndex = s)); + + return pos; +}; + +/** + * matchRecursiveRegExp + * + * (c) 2007 Steven Levithan + * MIT License + * + * Accepts a string to search, a left and right format delimiter + * as regex patterns, and optional regex flags. Returns an array + * of matches, allowing nested instances of left/right delimiters. + * Use the "g" flag to return all matches, otherwise only the + * first is returned. Be careful to ensure that the left and + * right format delimiters produce mutually exclusive matches. + * Backreferences are not supported within the right delimiter + * due to how it is internally combined with the left delimiter. + * When matching strings whose format delimiters are unbalanced + * to the left or right, the output is intentionally as a + * conventional regex library with recursion support would + * produce, e.g. "<" and ">" both produce ["x"] when using + * "<" and ">" as the delimiters (both strings contain a single, + * balanced instance of ""). + * + * examples: + * matchRecursiveRegExp("test", "\\(", "\\)") + * returns: [] + * matchRecursiveRegExp(">>t<>", "<", ">", "g") + * returns: ["t<>", ""] + * matchRecursiveRegExp("

    test
    ", "]*>", "", "gi") + * returns: ["test"] + */ +showdown.helper.matchRecursiveRegExp = function (str, left, right, flags) { + 'use strict'; + + var matchPos = rgxFindMatchPos (str, left, right, flags), + results = []; + + for (var i = 0; i < matchPos.length; ++i) { + results.push([ + str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end), + str.slice(matchPos[i].match.start, matchPos[i].match.end), + str.slice(matchPos[i].left.start, matchPos[i].left.end), + str.slice(matchPos[i].right.start, matchPos[i].right.end) + ]); + } + return results; +}; + +/** + * + * @param {string} str + * @param {string|function} replacement + * @param {string} left + * @param {string} right + * @param {string} flags + * @returns {string} + */ +showdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) { + 'use strict'; + + if (!showdown.helper.isFunction(replacement)) { + var repStr = replacement; + replacement = function () { + return repStr; + }; + } + + var matchPos = rgxFindMatchPos(str, left, right, flags), + finalStr = str, + lng = matchPos.length; + + if (lng > 0) { + var bits = []; + if (matchPos[0].wholeMatch.start !== 0) { + bits.push(str.slice(0, matchPos[0].wholeMatch.start)); + } + for (var i = 0; i < lng; ++i) { + bits.push( + replacement( + str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end), + str.slice(matchPos[i].match.start, matchPos[i].match.end), + str.slice(matchPos[i].left.start, matchPos[i].left.end), + str.slice(matchPos[i].right.start, matchPos[i].right.end) + ) + ); + if (i < lng - 1) { + bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start)); + } + } + if (matchPos[lng - 1].wholeMatch.end < str.length) { + bits.push(str.slice(matchPos[lng - 1].wholeMatch.end)); + } + finalStr = bits.join(''); + } + return finalStr; +}; + +/** + * POLYFILLS + */ +if (showdown.helper.isUndefined(console)) { + console = { + warn: function (msg) { + 'use strict'; + alert(msg); + }, + log: function (msg) { + 'use strict'; + alert(msg); + }, + error: function (msg) { + 'use strict'; + throw msg; + } + }; +} + +/** + * Created by Estevao on 31-05-2015. + */ + +/** + * Showdown Converter class + * @class + * @param {object} [converterOptions] + * @returns {Converter} + */ +showdown.Converter = function (converterOptions) { + 'use strict'; + + var + /** + * Options used by this converter + * @private + * @type {{}} + */ + options = {}, + + /** + * Language extensions used by this converter + * @private + * @type {Array} + */ + langExtensions = [], + + /** + * Output modifiers extensions used by this converter + * @private + * @type {Array} + */ + outputModifiers = [], + + /** + * Event listeners + * @private + * @type {{}} + */ + listeners = {}; + + _constructor(); + + /** + * Converter constructor + * @private + */ + function _constructor() { + converterOptions = converterOptions || {}; + + for (var gOpt in globalOptions) { + if (globalOptions.hasOwnProperty(gOpt)) { + options[gOpt] = globalOptions[gOpt]; + } + } + + // Merge options + if (typeof converterOptions === 'object') { + for (var opt in converterOptions) { + if (converterOptions.hasOwnProperty(opt)) { + options[opt] = converterOptions[opt]; + } + } + } else { + throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions + + ' was passed instead.'); + } + + if (options.extensions) { + showdown.helper.forEach(options.extensions, _parseExtension); + } + } + + /** + * Parse extension + * @param {*} ext + * @param {string} [name=''] + * @private + */ + function _parseExtension(ext, name) { + + name = name || null; + // If it's a string, the extension was previously loaded + if (showdown.helper.isString(ext)) { + ext = showdown.helper.stdExtName(ext); + name = ext; + + // LEGACY_SUPPORT CODE + if (showdown.extensions[ext]) { + console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' + + 'Please inform the developer that the extension should be updated!'); + legacyExtensionLoading(showdown.extensions[ext], ext); + return; + // END LEGACY SUPPORT CODE + + } else if (!showdown.helper.isUndefined(extensions[ext])) { + ext = extensions[ext]; + + } else { + throw Error('Extension "' + ext + '" could not be loaded. It was either not found or is not a valid extension.'); + } + } + + if (typeof ext === 'function') { + ext = ext(); + } + + if (!showdown.helper.isArray(ext)) { + ext = [ext]; + } + + var validExt = validate(ext, name); + if (!validExt.valid) { + throw Error(validExt.error); + } + + for (var i = 0; i < ext.length; ++i) { + switch (ext[i].type) { + + case 'lang': + langExtensions.push(ext[i]); + break; + + case 'output': + outputModifiers.push(ext[i]); + break; + } + if (ext[i].hasOwnProperty(listeners)) { + for (var ln in ext[i].listeners) { + if (ext[i].listeners.hasOwnProperty(ln)) { + listen(ln, ext[i].listeners[ln]); + } + } + } + } + + } + + /** + * LEGACY_SUPPORT + * @param {*} ext + * @param {string} name + */ + function legacyExtensionLoading(ext, name) { + if (typeof ext === 'function') { + ext = ext(new showdown.Converter()); + } + if (!showdown.helper.isArray(ext)) { + ext = [ext]; + } + var valid = validate(ext, name); + + if (!valid.valid) { + throw Error(valid.error); + } + + for (var i = 0; i < ext.length; ++i) { + switch (ext[i].type) { + case 'lang': + langExtensions.push(ext[i]); + break; + case 'output': + outputModifiers.push(ext[i]); + break; + default:// should never reach here + throw Error('Extension loader error: Type unrecognized!!!'); + } + } + } + + /** + * Listen to an event + * @param {string} name + * @param {function} callback + */ + function listen(name, callback) { + if (!showdown.helper.isString(name)) { + throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given'); + } + + if (typeof callback !== 'function') { + throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given'); + } + + if (!listeners.hasOwnProperty(name)) { + listeners[name] = []; + } + listeners[name].push(callback); + } + + function rTrimInputText(text) { + var rsp = text.match(/^\s*/)[0].length, + rgx = new RegExp('^\\s{0,' + rsp + '}', 'gm'); + return text.replace(rgx, ''); + } + + /** + * Dispatch an event + * @private + * @param {string} evtName Event name + * @param {string} text Text + * @param {{}} options Converter Options + * @param {{}} globals + * @returns {string} + */ + this._dispatch = function dispatch (evtName, text, options, globals) { + if (listeners.hasOwnProperty(evtName)) { + for (var ei = 0; ei < listeners[evtName].length; ++ei) { + var nText = listeners[evtName][ei](evtName, text, this, options, globals); + if (nText && typeof nText !== 'undefined') { + text = nText; + } + } + } + return text; + }; + + /** + * Listen to an event + * @param {string} name + * @param {function} callback + * @returns {showdown.Converter} + */ + this.listen = function (name, callback) { + listen(name, callback); + return this; + }; + + /** + * Converts a markdown string into HTML + * @param {string} text + * @returns {*} + */ + this.makeHtml = function (text) { + //check if text is not falsy + if (!text) { + return text; + } + + var globals = { + gHtmlBlocks: [], + gHtmlMdBlocks: [], + gHtmlSpans: [], + gUrls: {}, + gTitles: {}, + gDimensions: {}, + gListLevel: 0, + hashLinkCounts: {}, + langExtensions: langExtensions, + outputModifiers: outputModifiers, + converter: this, + ghCodeBlocks: [] + }; + + // attacklab: Replace ~ with ~T + // This lets us use tilde as an escape char to avoid md5 hashes + // The choice of character is arbitrary; anything that isn't + // magic in Markdown will work. + text = text.replace(/~/g, '~T'); + + // attacklab: Replace $ with ~D + // RegExp interprets $ as a special character + // when it's in a replacement string + text = text.replace(/\$/g, '~D'); + + // Standardize line endings + text = text.replace(/\r\n/g, '\n'); // DOS to Unix + text = text.replace(/\r/g, '\n'); // Mac to Unix + + if (options.smartIndentationFix) { + text = rTrimInputText(text); + } + + // Make sure text begins and ends with a couple of newlines: + //text = '\n\n' + text + '\n\n'; + text = text; + // detab + text = showdown.subParser('detab')(text, options, globals); + + // stripBlankLines + text = showdown.subParser('stripBlankLines')(text, options, globals); + + //run languageExtensions + showdown.helper.forEach(langExtensions, function (ext) { + text = showdown.subParser('runExtension')(ext, text, options, globals); + }); + + // run the sub parsers + text = showdown.subParser('hashPreCodeTags')(text, options, globals); + text = showdown.subParser('githubCodeBlocks')(text, options, globals); + text = showdown.subParser('hashHTMLBlocks')(text, options, globals); + text = showdown.subParser('hashHTMLSpans')(text, options, globals); + text = showdown.subParser('stripLinkDefinitions')(text, options, globals); + text = showdown.subParser('blockGamut')(text, options, globals); + text = showdown.subParser('unhashHTMLSpans')(text, options, globals); + text = showdown.subParser('unescapeSpecialChars')(text, options, globals); + + // attacklab: Restore dollar signs + text = text.replace(/~D/g, '$$'); + + // attacklab: Restore tildes + text = text.replace(/~T/g, '~'); + + // Run output modifiers + showdown.helper.forEach(outputModifiers, function (ext) { + text = showdown.subParser('runExtension')(ext, text, options, globals); + }); + return text; + }; + + /** + * Set an option of this Converter instance + * @param {string} key + * @param {*} value + */ + this.setOption = function (key, value) { + options[key] = value; + }; + + /** + * Get the option of this Converter instance + * @param {string} key + * @returns {*} + */ + this.getOption = function (key) { + return options[key]; + }; + + /** + * Get the options of this Converter instance + * @returns {{}} + */ + this.getOptions = function () { + return options; + }; + + /** + * Add extension to THIS converter + * @param {{}} extension + * @param {string} [name=null] + */ + this.addExtension = function (extension, name) { + name = name || null; + _parseExtension(extension, name); + }; + + /** + * Use a global registered extension with THIS converter + * @param {string} extensionName Name of the previously registered extension + */ + this.useExtension = function (extensionName) { + _parseExtension(extensionName); + }; + + /** + * Set the flavor THIS converter should use + * @param {string} name + */ + this.setFlavor = function (name) { + if (flavor.hasOwnProperty(name)) { + var preset = flavor[name]; + for (var option in preset) { + if (preset.hasOwnProperty(option)) { + options[option] = preset[option]; + } + } + } + }; + + /** + * Remove an extension from THIS converter. + * Note: This is a costly operation. It's better to initialize a new converter + * and specify the extensions you wish to use + * @param {Array} extension + */ + this.removeExtension = function (extension) { + if (!showdown.helper.isArray(extension)) { + extension = [extension]; + } + for (var a = 0; a < extension.length; ++a) { + var ext = extension[a]; + for (var i = 0; i < langExtensions.length; ++i) { + if (langExtensions[i] === ext) { + langExtensions[i].splice(i, 1); + } + } + for (var ii = 0; ii < outputModifiers.length; ++i) { + if (outputModifiers[ii] === ext) { + outputModifiers[ii].splice(i, 1); + } + } + } + }; + + /** + * Get all extension of THIS converter + * @returns {{language: Array, output: Array}} + */ + this.getAllExtensions = function () { + return { + language: langExtensions, + output: outputModifiers + }; + }; +}; + +/** + * Turn Markdown link shortcuts into XHTML tags. + */ +showdown.subParser('anchors', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('anchors.before', text, options, globals); + + var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) { + if (showdown.helper.isUndefined(m7)) { + m7 = ''; + } + wholeMatch = m1; + var linkText = m2, + linkId = m3.toLowerCase(), + url = m4, + title = m7; + + if (!url) { + if (!linkId) { + // lower-case and turn embedded newlines into spaces + linkId = linkText.toLowerCase().replace(/ ?\n/g, ' '); + } + url = '#' + linkId; + + if (!showdown.helper.isUndefined(globals.gUrls[linkId])) { + url = globals.gUrls[linkId]; + if (!showdown.helper.isUndefined(globals.gTitles[linkId])) { + title = globals.gTitles[linkId]; + } + } else { + if (wholeMatch.search(/\(\s*\)$/m) > -1) { + // Special case for explicit empty url + url = ''; + } else { + return wholeMatch; + } + } + } + + url = showdown.helper.escapeCharacters(url, '*_', false); + var result = ''; + + return result; + }; + + // First, handle reference-style links: [link text] [id] + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ( + (?: + \[[^\]]*\] // allow brackets nested one level + | + [^\[] // or anything else + )* + ) + \] + + [ ]? // one optional space + (?:\n[ ]*)? // one optional newline followed by spaces + + \[ + (.*?) // id = $3 + \] + )()()()() // pad remaining backreferences + /g,_DoAnchors_callback); + */ + text = text.replace(/(\[((?:\[[^\]]*]|[^\[\]])*)][ ]?(?:\n[ ]*)?\[(.*?)])()()()()/g, writeAnchorTag); + + // + // Next, inline-style links: [link text](url "optional title") + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ( + (?: + \[[^\]]*\] // allow brackets nested one level + | + [^\[\]] // or anything else + ) + ) + \] + \( // literal paren + [ \t]* + () // no id, so leave $3 empty + ? // href = $4 + [ \t]* + ( // $5 + (['"]) // quote char = $6 + (.*?) // Title = $7 + \6 // matching quote + [ \t]* // ignore any spaces/tabs between closing quote and ) + )? // title is optional + \) + ) + /g,writeAnchorTag); + */ + text = text.replace(/(\[((?:\[[^\]]*]|[^\[\]])*)]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, + writeAnchorTag); + + // + // Last, handle reference-style shortcuts: [link text] + // These must come last in case you've also got [link test][1] + // or [link test](/foo) + // + + /* + text = text.replace(/ + ( // wrap whole match in $1 + \[ + ([^\[\]]+) // link text = $2; can't contain '[' or ']' + \] + )()()()()() // pad rest of backreferences + /g, writeAnchorTag); + */ + text = text.replace(/(\[([^\[\]]+)])()()()()()/g, writeAnchorTag); + + text = globals.converter._dispatch('anchors.after', text, options, globals); + return text; +}); + +showdown.subParser('autoLinks', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('autoLinks.before', text, options, globals); + + var simpleURLRegex = /\b(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+)(?=\s|$)(?!["<>])/gi, + delimUrlRegex = /<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)>/gi, + simpleMailRegex = /(?:^|[ \n\t])([A-Za-z0-9!#$%&'*+-/=?^_`\{|}~\.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?:$|[ \n\t])/gi, + delimMailRegex = /<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi; + + text = text.replace(delimUrlRegex, replaceLink); + text = text.replace(delimMailRegex, replaceMail); + // simpleURLRegex = /\b(((https?|ftp|dict):\/\/|www\.)[-.+~:?#@!$&'()*,;=[\]\w]+)\b/gi, + // Email addresses: + + if (options.simplifiedAutoLink) { + text = text.replace(simpleURLRegex, replaceLink); + text = text.replace(simpleMailRegex, replaceMail); + } + + function replaceLink(wm, link) { + var lnkTxt = link; + if (/^www\./i.test(link)) { + link = link.replace(/^www\./i, 'http://www.'); + } + return '' + lnkTxt + ''; + } + + function replaceMail(wholeMatch, m1) { + var unescapedStr = showdown.subParser('unescapeSpecialChars')(m1); + return showdown.subParser('encodeEmailAddress')(unescapedStr); + } + + text = globals.converter._dispatch('autoLinks.after', text, options, globals); + + return text; +}); + +/** + * These are all the transformations that form block-level + * tags like paragraphs, headers, and list items. + */ +showdown.subParser('blockGamut', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('blockGamut.before', text, options, globals); + + // we parse blockquotes first so that we can have headings and hrs + // inside blockquotes + text = showdown.subParser('blockQuotes')(text, options, globals); + text = showdown.subParser('headers')(text, options, globals); + + // Do Horizontal Rules: + var key = showdown.subParser('hashBlock')('
    ', options, globals); + text = text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, key); + text = text.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm, key); + text = text.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, key); + + text = showdown.subParser('lists')(text, options, globals); + text = showdown.subParser('codeBlocks')(text, options, globals); + text = showdown.subParser('tables')(text, options, globals); + + // We already ran _HashHTMLBlocks() before, in Markdown(), but that + // was to escape raw HTML in the original Markdown source. This time, + // we're escaping the markup we've just created, so that we don't wrap + //

    tags around block-level tags. + text = showdown.subParser('hashHTMLBlocks')(text, options, globals); + text = showdown.subParser('paragraphs')(text, options, globals); + + text = globals.converter._dispatch('blockGamut.after', text, options, globals); + + return text; +}); + +showdown.subParser('blockQuotes', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('blockQuotes.before', text, options, globals); + /* + text = text.replace(/ + ( // Wrap whole match in $1 + ( + ^[ \t]*>[ \t]? // '>' at the start of a line + .+\n // rest of the first line + (.+\n)* // subsequent consecutive lines + \n* // blanks + )+ + ) + /gm, function(){...}); + */ + + text = text.replace(/((^[ \t]{0,3}>[ \t]?.+\n(.+\n)*\n*)+)/gm, function (wholeMatch, m1) { + var bq = m1; + + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + bq = bq.replace(/^[ \t]*>[ \t]?/gm, '~0'); // trim one level of quoting + + // attacklab: clean up hack + bq = bq.replace(/~0/g, ''); + + bq = bq.replace(/^[ \t]+$/gm, ''); // trim whitespace-only lines + bq = showdown.subParser('githubCodeBlocks')(bq, options, globals); + bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse + + bq = bq.replace(/(^|\n)/g, '$1 '); + // These leading spaces screw with

     content, so we need to fix that:
    +    bq = bq.replace(/(\s*
    [^\r]+?<\/pre>)/gm, function (wholeMatch, m1) {
    +      var pre = m1;
    +      // attacklab: hack around Konqueror 3.5.4 bug:
    +      pre = pre.replace(/^  /mg, '~0');
    +      pre = pre.replace(/~0/g, '');
    +      return pre;
    +    });
    +
    +    return showdown.subParser('hashBlock')('
    \n' + bq + '\n
    ', options, globals); + }); + + text = globals.converter._dispatch('blockQuotes.after', text, options, globals); + return text; +}); + +/** + * Process Markdown `
    ` blocks.
    + */
    +showdown.subParser('codeBlocks', function (text, options, globals) {
    +  'use strict';
    +
    +  text = globals.converter._dispatch('codeBlocks.before', text, options, globals);
    +  /*
    +   text = text.replace(text,
    +   /(?:\n\n|^)
    +   (								// $1 = the code block -- one or more lines, starting with a space/tab
    +   (?:
    +   (?:[ ]{4}|\t)			// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width
    +   .*\n+
    +   )+
    +   )
    +   (\n*[ ]{0,3}[^ \t\n]|(?=~0))	// attacklab: g_tab_width
    +   /g,function(){...});
    +   */
    +
    +  // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
    +  text += '~0';
    +
    +  var pattern = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g;
    +  text = text.replace(pattern, function (wholeMatch, m1, m2) {
    +    var codeblock = m1,
    +        nextChar = m2,
    +        end = '\n';
    +
    +    codeblock = showdown.subParser('outdent')(codeblock);
    +    codeblock = showdown.subParser('encodeCode')(codeblock);
    +    codeblock = showdown.subParser('detab')(codeblock);
    +    codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
    +    codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing newlines
    +
    +    if (options.omitExtraWLInCodeBlocks) {
    +      end = '';
    +    }
    +
    +    codeblock = '
    ' + codeblock + end + '
    '; + + return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar; + }); + + // attacklab: strip sentinel + text = text.replace(/~0/, ''); + + text = globals.converter._dispatch('codeBlocks.after', text, options, globals); + return text; +}); + +/** + * + * * Backtick quotes are used for spans. + * + * * You can use multiple backticks as the delimiters if you want to + * include literal backticks in the code span. So, this input: + * + * Just type ``foo `bar` baz`` at the prompt. + * + * Will translate to: + * + *

    Just type foo `bar` baz at the prompt.

    + * + * There's no arbitrary limit to the number of backticks you + * can use as delimters. If you need three consecutive backticks + * in your code, use four for delimiters, etc. + * + * * You can use spaces to get literal backticks at the edges: + * + * ... type `` `bar` `` ... + * + * Turns to: + * + * ... type `bar` ... + */ +showdown.subParser('codeSpans', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('codeSpans.before', text, options, globals); + + /* + text = text.replace(/ + (^|[^\\]) // Character before opening ` can't be a backslash + (`+) // $2 = Opening run of ` + ( // $3 = The code block + [^\r]*? + [^`] // attacklab: work around lack of lookbehind + ) + \2 // Matching closer + (?!`) + /gm, function(){...}); + */ + + if (typeof(text) === 'undefined') { + text = ''; + } + text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, + function (wholeMatch, m1, m2, m3) { + var c = m3; + c = c.replace(/^([ \t]*)/g, ''); // leading whitespace + c = c.replace(/[ \t]*$/g, ''); // trailing whitespace + c = showdown.subParser('encodeCode')(c); + return m1 + '' + c + ''; + } + ); + + text = globals.converter._dispatch('codeSpans.after', text, options, globals); + return text; +}); + +/** + * Convert all tabs to spaces + */ +showdown.subParser('detab', function (text) { + 'use strict'; + + // expand first n-1 tabs + text = text.replace(/\t(?=\t)/g, ' '); // g_tab_width + + // replace the nth with two sentinels + text = text.replace(/\t/g, '~A~B'); + + // use the sentinel to anchor our regex so it doesn't explode + text = text.replace(/~B(.+?)~A/g, function (wholeMatch, m1) { + var leadingText = m1, + numSpaces = 4 - leadingText.length % 4; // g_tab_width + + // there *must* be a better way to do this: + for (var i = 0; i < numSpaces; i++) { + leadingText += ' '; + } + + return leadingText; + }); + + // clean up sentinels + text = text.replace(/~A/g, ' '); // g_tab_width + text = text.replace(/~B/g, ''); + + return text; + +}); + +/** + * Smart processing for ampersands and angle brackets that need to be encoded. + */ +showdown.subParser('encodeAmpsAndAngles', function (text) { + 'use strict'; + // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin: + // http://bumppo.net/projects/amputator/ + text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, '&'); + + // Encode naked <'s + text = text.replace(/<(?![a-z\/?\$!])/gi, '<'); + + return text; +}); + +/** + * Returns the string, with after processing the following backslash escape sequences. + * + * attacklab: The polite way to do this is with the new escapeCharacters() function: + * + * text = escapeCharacters(text,"\\",true); + * text = escapeCharacters(text,"`*_{}[]()>#+-.!",true); + * + * ...but we're sidestepping its use of the (slow) RegExp constructor + * as an optimization for Firefox. This function gets called a LOT. + */ +showdown.subParser('encodeBackslashEscapes', function (text) { + 'use strict'; + text = text.replace(/\\(\\)/g, showdown.helper.escapeCharactersCallback); + text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g, showdown.helper.escapeCharactersCallback); + return text; +}); + +/** + * Encode/escape certain characters inside Markdown code runs. + * The point is that in code, these characters are literals, + * and lose their special Markdown meanings. + */ +showdown.subParser('encodeCode', function (text) { + 'use strict'; + + // Encode all ampersands; HTML entities are not + // entities within a Markdown code span. + text = text.replace(/&/g, '&'); + + // Do the angle bracket song and dance: + text = text.replace(//g, '>'); + + // Now, escape characters that are magic in Markdown: + text = showdown.helper.escapeCharacters(text, '*_{}[]\\', false); + + // jj the line above breaks this: + //--- + //* Item + // 1. Subitem + // special char: * + // --- + + return text; +}); + +/** + * Input: an email address, e.g. "foo@example.com" + * + * Output: the email address as a mailto link, with each character + * of the address encoded as either a decimal or hex entity, in + * the hopes of foiling most address harvesting spam bots. E.g.: + * + * foo + * @example.com + * + * Based on a filter by Matthew Wickline, posted to the BBEdit-Talk + * mailing list: + * + */ +showdown.subParser('encodeEmailAddress', function (addr) { + 'use strict'; + + var encode = [ + function (ch) { + return '&#' + ch.charCodeAt(0) + ';'; + }, + function (ch) { + return '&#x' + ch.charCodeAt(0).toString(16) + ';'; + }, + function (ch) { + return ch; + } + ]; + + addr = 'mailto:' + addr; + + addr = addr.replace(/./g, function (ch) { + if (ch === '@') { + // this *must* be encoded. I insist. + ch = encode[Math.floor(Math.random() * 2)](ch); + } else if (ch !== ':') { + // leave ':' alone (to spot mailto: later) + var r = Math.random(); + // roughly 10% raw, 45% hex, 45% dec + ch = ( + r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch) + ); + } + return ch; + }); + + addr = '' + addr + ''; + addr = addr.replace(/">.+:/g, '">'); // strip the mailto: from the visible part + + return addr; +}); + +/** + * Within tags -- meaning between < and > -- encode [\ ` * _] so they + * don't conflict with their use in Markdown for code, italics and strong. + */ +showdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text) { + 'use strict'; + + // Build a regex to find HTML tags and comments. See Friedl's + // "Mastering Regular Expressions", 2nd Ed., pp. 200-201. + var regex = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi; + + text = text.replace(regex, function (wholeMatch) { + var tag = wholeMatch.replace(/(.)<\/?code>(?=.)/g, '$1`'); + tag = showdown.helper.escapeCharacters(tag, '\\`*_', false); + return tag; + }); + + return text; +}); + +/** + * Handle github codeblocks prior to running HashHTML so that + * HTML contained within the codeblock gets escaped properly + * Example: + * ```ruby + * def hello_world(x) + * puts "Hello, #{x}" + * end + * ``` + */ +showdown.subParser('githubCodeBlocks', function (text, options, globals) { + 'use strict'; + + // early exit if option is not enabled + if (!options.ghCodeBlocks) { + return text; + } + + text = globals.converter._dispatch('githubCodeBlocks.before', text, options, globals); + + text += '~0'; + + text = text.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g, function (wholeMatch, language, codeblock) { + var end = (options.omitExtraWLInCodeBlocks) ? '' : '\n'; + + // First parse the github code block + codeblock = showdown.subParser('encodeCode')(codeblock); + codeblock = showdown.subParser('detab')(codeblock); + codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines + codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing whitespace + + codeblock = '
    ' + codeblock + end + '
    '; + + codeblock = showdown.subParser('hashBlock')(codeblock, options, globals); + + // Since GHCodeblocks can be false positives, we need to + // store the primitive text and the parsed text in a global var, + // and then return a token + return '\n\n~G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n'; + }); + + // attacklab: strip sentinel + text = text.replace(/~0/, ''); + + return globals.converter._dispatch('githubCodeBlocks.after', text, options, globals); +}); + +showdown.subParser('hashBlock', function (text, options, globals) { + 'use strict'; + text = text.replace(/(^\n+|\n+$)/g, ''); + return '\n\n~K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\n\n'; +}); + +showdown.subParser('hashElement', function (text, options, globals) { + 'use strict'; + + return function (wholeMatch, m1) { + var blockText = m1; + + // Undo double lines + blockText = blockText.replace(/\n\n/g, '\n'); + blockText = blockText.replace(/^\n/, ''); + + // strip trailing blank lines + blockText = blockText.replace(/\n+$/g, ''); + + // Replace the element text with a marker ("~KxK" where x is its key) + blockText = '\n\n~K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\n\n'; + + return blockText; + }; +}); + +showdown.subParser('hashHTMLBlocks', function (text, options, globals) { + 'use strict'; + + var blockTags = [ + 'pre', + 'div', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'blockquote', + 'table', + 'dl', + 'ol', + 'ul', + 'script', + 'noscript', + 'form', + 'fieldset', + 'iframe', + 'math', + 'style', + 'section', + 'header', + 'footer', + 'nav', + 'article', + 'aside', + 'address', + 'audio', + 'canvas', + 'figure', + 'hgroup', + 'output', + 'video', + 'p' + ], + repFunc = function (wholeMatch, match, left, right) { + var txt = wholeMatch; + // check if this html element is marked as markdown + // if so, it's contents should be parsed as markdown + if (left.search(/\bmarkdown\b/) !== -1) { + txt = left + globals.converter.makeHtml(match) + right; + } + return '\n\n~K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n'; + }; + + for (var i = 0; i < blockTags.length; ++i) { + text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^(?: |\\t){0,3}<' + blockTags[i] + '\\b[^>]*>', '', 'gim'); + } + + // HR SPECIAL CASE + text = text.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, + showdown.subParser('hashElement')(text, options, globals)); + + // Special case for standalone HTML comments: + text = text.replace(/()/g, + showdown.subParser('hashElement')(text, options, globals)); + + // PHP and ASP-style processor instructions ( and <%...%>) + text = text.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, + showdown.subParser('hashElement')(text, options, globals)); + return text; +}); + +/** + * Hash span elements that should not be parsed as markdown + */ +showdown.subParser('hashHTMLSpans', function (text, config, globals) { + 'use strict'; + + var matches = showdown.helper.matchRecursiveRegExp(text, ']*>', '', 'gi'); + + for (var i = 0; i < matches.length; ++i) { + text = text.replace(matches[i][0], '~L' + (globals.gHtmlSpans.push(matches[i][0]) - 1) + 'L'); + } + return text; +}); + +/** + * Unhash HTML spans + */ +showdown.subParser('unhashHTMLSpans', function (text, config, globals) { + 'use strict'; + + for (var i = 0; i < globals.gHtmlSpans.length; ++i) { + text = text.replace('~L' + i + 'L', globals.gHtmlSpans[i]); + } + + return text; +}); + +/** + * Hash span elements that should not be parsed as markdown + */ +showdown.subParser('hashPreCodeTags', function (text, config, globals) { + 'use strict'; + + var repFunc = function (wholeMatch, match, left, right) { + // encode html entities + var codeblock = left + showdown.subParser('encodeCode')(match) + right; + return '\n\n~G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n'; + }; + + text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^(?: |\\t){0,3}]*>\\s*]*>', '^(?: |\\t){0,3}\\s*
    ', 'gim'); + return text; +}); + +showdown.subParser('headers', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('headers.before', text, options, globals); + + var prefixHeader = options.prefixHeaderId, + headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart), + + // Set text-style headers: + // Header 1 + // ======== + // + // Header 2 + // -------- + // + setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm, + setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm; + + text = text.replace(setextRegexH1, function (wholeMatch, m1) { + + var spanGamut = showdown.subParser('spanGamut')(m1, options, globals), + hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"', + hLevel = headerLevelStart, + hashBlock = '' + spanGamut + ''; + return showdown.subParser('hashBlock')(hashBlock, options, globals); + }); + + text = text.replace(setextRegexH2, function (matchFound, m1) { + var spanGamut = showdown.subParser('spanGamut')(m1, options, globals), + hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"', + hLevel = headerLevelStart + 1, + hashBlock = '' + spanGamut + ''; + return showdown.subParser('hashBlock')(hashBlock, options, globals); + }); + + // atx-style headers: + // # Header 1 + // ## Header 2 + // ## Header 2 with closing hashes ## + // ... + // ###### Header 6 + // + text = text.replace(/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm, function (wholeMatch, m1, m2) { + var span = showdown.subParser('spanGamut')(m2, options, globals), + hID = (options.noHeaderId) ? '' : ' id="' + headerId(m2) + '"', + hLevel = headerLevelStart - 1 + m1.length, + header = '' + span + ''; + + return showdown.subParser('hashBlock')(header, options, globals); + }); + + function headerId(m) { + var title, escapedId = m.replace(/[^\w]/g, '').toLowerCase(); + + if (globals.hashLinkCounts[escapedId]) { + title = escapedId + '-' + (globals.hashLinkCounts[escapedId]++); + } else { + title = escapedId; + globals.hashLinkCounts[escapedId] = 1; + } + + // Prefix id to prevent causing inadvertent pre-existing style matches. + if (prefixHeader === true) { + prefixHeader = 'section'; + } + + if (showdown.helper.isString(prefixHeader)) { + return prefixHeader + title; + } + return title; + } + + text = globals.converter._dispatch('headers.after', text, options, globals); + return text; +}); + +/** + * Turn Markdown image shortcuts into tags. + */ +showdown.subParser('images', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('images.before', text, options, globals); + + var inlineRegExp = /!\[(.*?)]\s?\([ \t]*()?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(['"])(.*?)\6[ \t]*)?\)/g, + referenceRegExp = /!\[([^\]]*?)] ?(?:\n *)?\[(.*?)]()()()()()/g; + + function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) { + + var gUrls = globals.gUrls, + gTitles = globals.gTitles, + gDims = globals.gDimensions; + + linkId = linkId.toLowerCase(); + + if (!title) { + title = ''; + } + + if (url === '' || url === null) { + if (linkId === '' || linkId === null) { + // lower-case and turn embedded newlines into spaces + linkId = altText.toLowerCase().replace(/ ?\n/g, ' '); + } + url = '#' + linkId; + + if (!showdown.helper.isUndefined(gUrls[linkId])) { + url = gUrls[linkId]; + if (!showdown.helper.isUndefined(gTitles[linkId])) { + title = gTitles[linkId]; + } + if (!showdown.helper.isUndefined(gDims[linkId])) { + width = gDims[linkId].width; + height = gDims[linkId].height; + } + } else { + return wholeMatch; + } + } + + altText = altText.replace(/"/g, '"'); + altText = showdown.helper.escapeCharacters(altText, '*_', false); + url = showdown.helper.escapeCharacters(url, '*_', false); + var result = '' + altText + 'x "optional title") + text = text.replace(inlineRegExp, writeImageTag); + + text = globals.converter._dispatch('images.after', text, options, globals); + return text; +}); + +showdown.subParser('italicsAndBold', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('italicsAndBold.before', text, options, globals); + + if (options.literalMidWordUnderscores) { + //underscores + // Since we are consuming a \s character, we need to add it + text = text.replace(/(^|\s|>|\b)__(?=\S)([\s\S]+?)__(?=\b|<|\s|$)/gm, '$1$2'); + text = text.replace(/(^|\s|>|\b)_(?=\S)([\s\S]+?)_(?=\b|<|\s|$)/gm, '$1$2'); + //asterisks + text = text.replace(/(\*\*)(?=\S)([^\r]*?\S[*]*)\1/g, '$2'); + text = text.replace(/(\*)(?=\S)([^\r]*?\S)\1/g, '$2'); + + } else { + // must go first: + text = text.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g, '$2'); + text = text.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g, '$2'); + } + + text = globals.converter._dispatch('italicsAndBold.after', text, options, globals); + return text; +}); + +/** + * Form HTML ordered (numbered) and unordered (bulleted) lists. + */ +showdown.subParser('lists', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('lists.before', text, options, globals); + /** + * Process the contents of a single ordered or unordered list, splitting it + * into individual list items. + * @param {string} listStr + * @param {boolean} trimTrailing + * @returns {string} + */ + function processListItems (listStr, trimTrailing) { + // The $g_list_level global keeps track of when we're inside a list. + // Each time we enter a list, we increment it; when we leave a list, + // we decrement. If it's zero, we're not in a list anymore. + // + // We do this because when we're not inside a list, we want to treat + // something like this: + // + // I recommend upgrading to version + // 8. Oops, now this line is treated + // as a sub-list. + // + // As a single paragraph, despite the fact that the second line starts + // with a digit-period-space sequence. + // + // Whereas when we're inside a list (or sub-list), that line will be + // treated as the start of a sub-list. What a kludge, huh? This is + // an aspect of Markdown's syntax that's hard to parse perfectly + // without resorting to mind-reading. Perhaps the solution is to + // change the syntax rules such that sub-lists must start with a + // starting cardinal number; e.g. "1." or "a.". + globals.gListLevel++; + + // trim trailing blank lines: + listStr = listStr.replace(/\n{2,}$/, '\n'); + + // attacklab: add sentinel to emulate \z + listStr += '~0'; + + var rgx = /(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm, + isParagraphed = (/\n[ \t]*\n(?!~0)/.test(listStr)); + + listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) { + checked = (checked && checked.trim() !== ''); + var item = showdown.subParser('outdent')(m4, options, globals), + bulletStyle = ''; + + // Support for github tasklists + if (taskbtn && options.tasklists) { + bulletStyle = ' class="task-list-item" style="list-style-type: none;"'; + item = item.replace(/^[ \t]*\[(x|X| )?]/m, function () { + var otp = ' -1)) { + item = showdown.subParser('githubCodeBlocks')(item, options, globals); + item = showdown.subParser('blockGamut')(item, options, globals); + } else { + // Recursion for sub-lists: + item = showdown.subParser('lists')(item, options, globals); + item = item.replace(/\n$/, ''); // chomp(item) + if (isParagraphed) { + item = showdown.subParser('paragraphs')(item, options, globals); + } else { + item = showdown.subParser('spanGamut')(item, options, globals); + } + } + item = '\n' + item + '\n'; + return item; + }); + + // attacklab: strip sentinel + listStr = listStr.replace(/~0/g, ''); + + globals.gListLevel--; + + if (trimTrailing) { + listStr = listStr.replace(/\s+$/, ''); + } + + return listStr; + } + + /** + * Check and parse consecutive lists (better fix for issue #142) + * @param {string} list + * @param {string} listType + * @param {boolean} trimTrailing + * @returns {string} + */ + function parseConsecutiveLists(list, listType, trimTrailing) { + // check if we caught 2 or more consecutive lists by mistake + // we use the counterRgx, meaning if listType is UL we look for UL and vice versa + var counterRxg = (listType === 'ul') ? /^ {0,2}\d+\.[ \t]/gm : /^ {0,2}[*+-][ \t]/gm, + subLists = [], + result = ''; + + if (list.search(counterRxg) !== -1) { + (function parseCL(txt) { + var pos = txt.search(counterRxg); + if (pos !== -1) { + // slice + result += '\n\n<' + listType + '>' + processListItems(txt.slice(0, pos), !!trimTrailing) + '\n\n'; + + // invert counterType and listType + listType = (listType === 'ul') ? 'ol' : 'ul'; + counterRxg = (listType === 'ul') ? /^ {0,2}\d+\.[ \t]/gm : /^ {0,2}[*+-][ \t]/gm; + + //recurse + parseCL(txt.slice(pos)); + } else { + result += '\n\n<' + listType + '>' + processListItems(txt, !!trimTrailing) + '\n\n'; + } + })(list); + for (var i = 0; i < subLists.length; ++i) { + + } + } else { + result = '\n\n<' + listType + '>' + processListItems(list, !!trimTrailing) + '\n\n'; + } + + return result; + } + + // attacklab: add sentinel to hack around khtml/safari bug: + // http://bugs.webkit.org/show_bug.cgi?id=11231 + text += '~0'; + + // Re-usable pattern to match any entire ul or ol list: + var wholeList = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; + + if (globals.gListLevel) { + text = text.replace(wholeList, function (wholeMatch, list, m2) { + var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol'; + return parseConsecutiveLists(list, listType, true); + }); + } else { + wholeList = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm; + //wholeList = /(\n\n|^\n?)( {0,3}([*+-]|\d+\.)[ \t]+[\s\S]+?)(?=(~0)|(\n\n(?!\t| {2,}| {0,3}([*+-]|\d+\.)[ \t])))/g; + text = text.replace(wholeList, function (wholeMatch, m1, list, m3) { + + var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol'; + return parseConsecutiveLists(list, listType); + }); + } + + // attacklab: strip sentinel + text = text.replace(/~0/, ''); + + text = globals.converter._dispatch('lists.after', text, options, globals); + return text; +}); + +/** + * Remove one level of line-leading tabs or spaces + */ +showdown.subParser('outdent', function (text) { + 'use strict'; + + // attacklab: hack around Konqueror 3.5.4 bug: + // "----------bug".replace(/^-/g,"") == "bug" + text = text.replace(/^(\t|[ ]{1,4})/gm, '~0'); // attacklab: g_tab_width + + // attacklab: clean up hack + text = text.replace(/~0/g, ''); + + return text; +}); + +/** + * + */ +showdown.subParser('paragraphs', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('paragraphs.before', text, options, globals); + // Strip leading and trailing lines: + text = text.replace(/^\n+/g, ''); + text = text.replace(/\n+$/g, ''); + + var grafs = text.split(/\n{2,}/g), + grafsOut = [], + end = grafs.length; // Wrap

    tags + + for (var i = 0; i < end; i++) { + var str = grafs[i]; + // if this is an HTML marker, copy it + if (str.search(/~(K|G)(\d+)\1/g) >= 0) { + grafsOut.push(str); + } else { + str = showdown.subParser('spanGamut')(str, options, globals); + str = str.replace(/^([ \t]*)/g, '

    '); + str += '

    '; + grafsOut.push(str); + } + } + + /** Unhashify HTML blocks */ + end = grafsOut.length; + for (i = 0; i < end; i++) { + var blockText = '', + grafsOutIt = grafsOut[i], + codeFlag = false; + // if this is a marker for an html block... + while (grafsOutIt.search(/~(K|G)(\d+)\1/) >= 0) { + var delim = RegExp.$1, + num = RegExp.$2; + + if (delim === 'K') { + blockText = globals.gHtmlBlocks[num]; + } else { + // we need to check if ghBlock is a false positive + if (codeFlag) { + // use encoded version of all text + blockText = showdown.subParser('encodeCode')(globals.ghCodeBlocks[num].text); + } else { + blockText = globals.ghCodeBlocks[num].codeblock; + } + } + blockText = blockText.replace(/\$/g, '$$$$'); // Escape any dollar signs + + grafsOutIt = grafsOutIt.replace(/(\n\n)?~(K|G)\d+\2(\n\n)?/, blockText); + // Check if grafsOutIt is a pre->code + if (/^]*>\s*]*>/.test(grafsOutIt)) { + codeFlag = true; + } + } + grafsOut[i] = grafsOutIt; + } + text = grafsOut.join('\n\n'); + // Strip leading and trailing lines: + text = text.replace(/^\n+/g, ''); + text = text.replace(/\n+$/g, ''); + return globals.converter._dispatch('paragraphs.after', text, options, globals); +}); + +/** + * Run extension + */ +showdown.subParser('runExtension', function (ext, text, options, globals) { + 'use strict'; + + if (ext.filter) { + text = ext.filter(text, globals.converter, options); + + } else if (ext.regex) { + // TODO remove this when old extension loading mechanism is deprecated + var re = ext.regex; + if (!re instanceof RegExp) { + re = new RegExp(re, 'g'); + } + text = text.replace(re, ext.replace); + } + + return text; +}); + +/** + * These are all the transformations that occur *within* block-level + * tags like paragraphs, headers, and list items. + */ +showdown.subParser('spanGamut', function (text, options, globals) { + 'use strict'; + + text = globals.converter._dispatch('spanGamut.before', text, options, globals); + text = showdown.subParser('codeSpans')(text, options, globals); + text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals); + text = showdown.subParser('encodeBackslashEscapes')(text, options, globals); + + // Process anchor and image tags. Images must come first, + // because ![foo][f] looks like an anchor. + text = showdown.subParser('images')(text, options, globals); + text = showdown.subParser('anchors')(text, options, globals); + + // Make links out of things like `` + // Must come after _DoAnchors(), because you can use < and > + // delimiters in inline links like [this](). + text = showdown.subParser('autoLinks')(text, options, globals); + text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals); + text = showdown.subParser('italicsAndBold')(text, options, globals); + text = showdown.subParser('strikethrough')(text, options, globals); + + // Do hard breaks: + text = text.replace(/ +\n/g, '
    \n'); + + text = globals.converter._dispatch('spanGamut.after', text, options, globals); + return text; +}); + +showdown.subParser('strikethrough', function (text, options, globals) { + 'use strict'; + + if (options.strikethrough) { + text = globals.converter._dispatch('strikethrough.before', text, options, globals); + text = text.replace(/(?:~T){2}([\s\S]+?)(?:~T){2}/g, '$1'); + text = globals.converter._dispatch('strikethrough.after', text, options, globals); + } + + return text; +}); + +/** + * Strip any lines consisting only of spaces and tabs. + * This makes subsequent regexs easier to write, because we can + * match consecutive blank lines with /\n+/ instead of something + * contorted like /[ \t]*\n+/ + */ +showdown.subParser('stripBlankLines', function (text) { + 'use strict'; + return text.replace(/^[ \t]+$/mg, ''); +}); + +/** + * Strips link definitions from text, stores the URLs and titles in + * hash references. + * Link defs are in the form: ^[id]: url "optional title" + * + * ^[ ]{0,3}\[(.+)\]: // id = $1 attacklab: g_tab_width - 1 + * [ \t]* + * \n? // maybe *one* newline + * [ \t]* + * ? // url = $2 + * [ \t]* + * \n? // maybe one newline + * [ \t]* + * (?: + * (\n*) // any lines skipped = $3 attacklab: lookbehind removed + * ["(] + * (.+?) // title = $4 + * [")] + * [ \t]* + * )? // title is optional + * (?:\n+|$) + * /gm, + * function(){...}); + * + */ +showdown.subParser('stripLinkDefinitions', function (text, options, globals) { + 'use strict'; + + var regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=~0))/gm; + + // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug + text += '~0'; + + text = text.replace(regex, function (wholeMatch, linkId, url, width, height, blankLines, title) { + linkId = linkId.toLowerCase(); + globals.gUrls[linkId] = showdown.subParser('encodeAmpsAndAngles')(url); // Link IDs are case-insensitive + + if (blankLines) { + // Oops, found blank lines, so it's not a title. + // Put back the parenthetical statement we stole. + return blankLines + title; + + } else { + if (title) { + globals.gTitles[linkId] = title.replace(/"|'/g, '"'); + } + if (options.parseImgDimensions && width && height) { + globals.gDimensions[linkId] = { + width: width, + height: height + }; + } + } + // Completely remove the definition from the text + return ''; + }); + + // attacklab: strip sentinel + text = text.replace(/~0/, ''); + + return text; +}); + +showdown.subParser('tables', function (text, options, globals) { + 'use strict'; + + if (!options.tables) { + return text; + } + + var tableRgx = /^[ \t]{0,3}\|?.+\|.+\n[ \t]{0,3}\|?[ \t]*:?[ \t]*(?:-|=){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:-|=){2,}[\s\S]+?(?:\n\n|~0)/gm; + + function parseStyles(sLine) { + if (/^:[ \t]*--*$/.test(sLine)) { + return ' style="text-align:left;"'; + } else if (/^--*[ \t]*:[ \t]*$/.test(sLine)) { + return ' style="text-align:right;"'; + } else if (/^:[ \t]*--*[ \t]*:$/.test(sLine)) { + return ' style="text-align:center;"'; + } else { + return ''; + } + } + + function parseHeaders(header, style) { + var id = ''; + header = header.trim(); + if (options.tableHeaderId) { + id = ' id="' + header.replace(/ /g, '_').toLowerCase() + '"'; + } + header = showdown.subParser('spanGamut')(header, options, globals); + + return '' + header + '\n'; + } + + function parseCells(cell, style) { + var subText = showdown.subParser('spanGamut')(cell, options, globals); + return '' + subText + '\n'; + } + + function buildTable(headers, cells) { + var tb = '\n\n\n', + tblLgn = headers.length; + + for (var i = 0; i < tblLgn; ++i) { + tb += headers[i]; + } + tb += '\n\n\n'; + + for (i = 0; i < cells.length; ++i) { + tb += '\n'; + for (var ii = 0; ii < tblLgn; ++ii) { + tb += cells[i][ii]; + } + tb += '\n'; + } + tb += '\n
    \n'; + return tb; + } + + text = globals.converter._dispatch('tables.before', text, options, globals); + + text = text.replace(tableRgx, function (rawTable) { + + var i, tableLines = rawTable.split('\n'); + + // strip wrong first and last column if wrapped tables are used + for (i = 0; i < tableLines.length; ++i) { + if (/^[ \t]{0,3}\|/.test(tableLines[i])) { + tableLines[i] = tableLines[i].replace(/^[ \t]{0,3}\|/, ''); + } + if (/\|[ \t]*$/.test(tableLines[i])) { + tableLines[i] = tableLines[i].replace(/\|[ \t]*$/, ''); + } + } + + var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}), + rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}), + rawCells = [], + headers = [], + styles = [], + cells = []; + + tableLines.shift(); + tableLines.shift(); + + for (i = 0; i < tableLines.length; ++i) { + if (tableLines[i].trim() === '') { + continue; + } + rawCells.push( + tableLines[i] + .split('|') + .map(function (s) { + return s.trim(); + }) + ); + } + + if (rawHeaders.length < rawStyles.length) { + return rawTable; + } + + for (i = 0; i < rawStyles.length; ++i) { + styles.push(parseStyles(rawStyles[i])); + } + + for (i = 0; i < rawHeaders.length; ++i) { + if (showdown.helper.isUndefined(styles[i])) { + styles[i] = ''; + } + headers.push(parseHeaders(rawHeaders[i], styles[i])); + } + + for (i = 0; i < rawCells.length; ++i) { + var row = []; + for (var ii = 0; ii < headers.length; ++ii) { + if (showdown.helper.isUndefined(rawCells[i][ii])) { + + } + row.push(parseCells(rawCells[i][ii], styles[ii])); + } + cells.push(row); + } + + return buildTable(headers, cells); + }); + + text = globals.converter._dispatch('tables.after', text, options, globals); + + return text; +}); + +/** + * Swap back in all the special characters we've hidden. + */ +showdown.subParser('unescapeSpecialChars', function (text) { + 'use strict'; + + text = text.replace(/~E(\d+)E/g, function (wholeMatch, m1) { + var charCodeToReplace = parseInt(m1); + return String.fromCharCode(charCodeToReplace); + }); + return text; +}); +module.exports = showdown; diff --git a/utils/wxParse/wxDiscode.js b/utils/wxParse/wxDiscode.js new file mode 100644 index 0000000..fca29bb --- /dev/null +++ b/utils/wxParse/wxDiscode.js @@ -0,0 +1,207 @@ +// HTML 支持的数学符号 +function strNumDiscode(str){ + str = str.replace(/∀/g, '∀'); + str = str.replace(/∂/g, '∂'); + str = str.replace(/&exists;/g, '∃'); + str = str.replace(/∅/g, '∅'); + str = str.replace(/∇/g, '∇'); + str = str.replace(/∈/g, '∈'); + str = str.replace(/∉/g, '∉'); + str = str.replace(/∋/g, '∋'); + str = str.replace(/∏/g, '∏'); + str = str.replace(/∑/g, '∑'); + str = str.replace(/−/g, '−'); + str = str.replace(/∗/g, '∗'); + str = str.replace(/√/g, '√'); + str = str.replace(/∝/g, '∝'); + str = str.replace(/∞/g, '∞'); + str = str.replace(/∠/g, '∠'); + str = str.replace(/∧/g, '∧'); + str = str.replace(/∨/g, '∨'); + str = str.replace(/∩/g, '∩'); + str = str.replace(/∩/g, '∪'); + str = str.replace(/∫/g, '∫'); + str = str.replace(/∴/g, '∴'); + str = str.replace(/∼/g, '∼'); + str = str.replace(/≅/g, '≅'); + str = str.replace(/≈/g, '≈'); + str = str.replace(/≠/g, '≠'); + str = str.replace(/≤/g, '≤'); + str = str.replace(/≥/g, '≥'); + str = str.replace(/⊂/g, '⊂'); + str = str.replace(/⊃/g, '⊃'); + str = str.replace(/⊄/g, '⊄'); + str = str.replace(/⊆/g, '⊆'); + str = str.replace(/⊇/g, '⊇'); + str = str.replace(/⊕/g, '⊕'); + str = str.replace(/⊗/g, '⊗'); + str = str.replace(/⊥/g, '⊥'); + str = str.replace(/⋅/g, '⋅'); + return str; +} + +//HTML 支持的希腊字母 +function strGreeceDiscode(str){ + str = str.replace(/Α/g, 'Α'); + str = str.replace(/Β/g, 'Β'); + str = str.replace(/Γ/g, 'Γ'); + str = str.replace(/Δ/g, 'Δ'); + str = str.replace(/Ε/g, 'Ε'); + str = str.replace(/Ζ/g, 'Ζ'); + str = str.replace(/Η/g, 'Η'); + str = str.replace(/Θ/g, 'Θ'); + str = str.replace(/Ι/g, 'Ι'); + str = str.replace(/Κ/g, 'Κ'); + str = str.replace(/Λ/g, 'Λ'); + str = str.replace(/Μ/g, 'Μ'); + str = str.replace(/Ν/g, 'Ν'); + str = str.replace(/Ξ/g, 'Ν'); + str = str.replace(/Ο/g, 'Ο'); + str = str.replace(/Π/g, 'Π'); + str = str.replace(/Ρ/g, 'Ρ'); + str = str.replace(/Σ/g, 'Σ'); + str = str.replace(/Τ/g, 'Τ'); + str = str.replace(/Υ/g, 'Υ'); + str = str.replace(/Φ/g, 'Φ'); + str = str.replace(/Χ/g, 'Χ'); + str = str.replace(/Ψ/g, 'Ψ'); + str = str.replace(/Ω/g, 'Ω'); + + str = str.replace(/α/g, 'α'); + str = str.replace(/β/g, 'β'); + str = str.replace(/γ/g, 'γ'); + str = str.replace(/δ/g, 'δ'); + str = str.replace(/ε/g, 'ε'); + str = str.replace(/ζ/g, 'ζ'); + str = str.replace(/η/g, 'η'); + str = str.replace(/θ/g, 'θ'); + str = str.replace(/ι/g, 'ι'); + str = str.replace(/κ/g, 'κ'); + str = str.replace(/λ/g, 'λ'); + str = str.replace(/μ/g, 'μ'); + str = str.replace(/ν/g, 'ν'); + str = str.replace(/ξ/g, 'ξ'); + str = str.replace(/ο/g, 'ο'); + str = str.replace(/π/g, 'π'); + str = str.replace(/ρ/g, 'ρ'); + str = str.replace(/ς/g, 'ς'); + str = str.replace(/σ/g, 'σ'); + str = str.replace(/τ/g, 'τ'); + str = str.replace(/υ/g, 'υ'); + str = str.replace(/φ/g, 'φ'); + str = str.replace(/χ/g, 'χ'); + str = str.replace(/ψ/g, 'ψ'); + str = str.replace(/ω/g, 'ω'); + str = str.replace(/ϑ/g, 'ϑ'); + str = str.replace(/ϒ/g, 'ϒ'); + str = str.replace(/ϖ/g, 'ϖ'); + str = str.replace(/·/g, '·'); + return str; +} + +// + +function strcharacterDiscode(str){ + // 加入常用解析 + str = str.replace(/ /g, ' '); + str = str.replace(/"/g, "'"); + str = str.replace(/&/g, '&'); + // str = str.replace(/</g, '‹'); + // str = str.replace(/>/g, '›'); + + str = str.replace(/</g, '<'); + str = str.replace(/>/g, '>'); + str = str.replace(/•/g, '•'); + + return str; +} + +// HTML 支持的其他实体 +function strOtherDiscode(str){ + str = str.replace(/Œ/g, 'Œ'); + str = str.replace(/œ/g, 'œ'); + str = str.replace(/Š/g, 'Š'); + str = str.replace(/š/g, 'š'); + str = str.replace(/Ÿ/g, 'Ÿ'); + str = str.replace(/ƒ/g, 'ƒ'); + str = str.replace(/ˆ/g, 'ˆ'); + str = str.replace(/˜/g, '˜'); + str = str.replace(/ /g, ''); + str = str.replace(/ /g, ''); + str = str.replace(/ /g, ''); + str = str.replace(/‌/g, ''); + str = str.replace(/‍/g, ''); + str = str.replace(/‎/g, ''); + str = str.replace(/‏/g, ''); + str = str.replace(/–/g, '–'); + str = str.replace(/—/g, '—'); + str = str.replace(/‘/g, '‘'); + str = str.replace(/’/g, '’'); + str = str.replace(/‚/g, '‚'); + str = str.replace(/“/g, '“'); + str = str.replace(/”/g, '”'); + str = str.replace(/„/g, '„'); + str = str.replace(/†/g, '†'); + str = str.replace(/‡/g, '‡'); + str = str.replace(/•/g, '•'); + str = str.replace(/…/g, '…'); + str = str.replace(/‰/g, '‰'); + str = str.replace(/′/g, '′'); + str = str.replace(/″/g, '″'); + str = str.replace(/‹/g, '‹'); + str = str.replace(/›/g, '›'); + str = str.replace(/‾/g, '‾'); + str = str.replace(/€/g, '€'); + str = str.replace(/™/g, '™'); + + str = str.replace(/←/g, '←'); + str = str.replace(/↑/g, '↑'); + str = str.replace(/→/g, '→'); + str = str.replace(/↓/g, '↓'); + str = str.replace(/↔/g, '↔'); + str = str.replace(/↵/g, '↵'); + str = str.replace(/⌈/g, '⌈'); + str = str.replace(/⌉/g, '⌉'); + + str = str.replace(/⌊/g, '⌊'); + str = str.replace(/⌋/g, '⌋'); + str = str.replace(/◊/g, '◊'); + str = str.replace(/♠/g, '♠'); + str = str.replace(/♣/g, '♣'); + str = str.replace(/♥/g, '♥'); + + str = str.replace(/♦/g, '♦'); + str = str.replace(/'/g, '\''); + return str; +} + +function strMoreDiscode(str){ + str = str.replace(/\r\n/g,""); + str = str.replace(/\n/g,""); + + str = str.replace(/code/g,"wxxxcode-style"); + return str; +} + +function strDiscode(str){ + str = strNumDiscode(str); + str = strGreeceDiscode(str); + str = strcharacterDiscode(str); + str = strOtherDiscode(str); + str = strMoreDiscode(str); + return str; +} +function urlToHttpUrl(url,rep){ + + var patt1 = new RegExp("^//"); + var result = patt1.test(url); + if(result){ + url = rep+":"+url; + } + return url; +} + +module.exports = { + strDiscode:strDiscode, + urlToHttpUrl:urlToHttpUrl +} \ No newline at end of file diff --git a/utils/wxParse/wxParse.js b/utils/wxParse/wxParse.js new file mode 100644 index 0000000..379f2f6 --- /dev/null +++ b/utils/wxParse/wxParse.js @@ -0,0 +1,159 @@ +/** + * author: Di (微信小程序开发工程师) + * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) + * 垂直微信小程序开发交流社区 + * + * github地址: https://github.com/icindy/wxParse + * + * for: 微信小程序富文本解析 + * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 + */ + +/** + * utils函数引入 + **/ +import showdown from './showdown.js'; +import HtmlToJson from './html2json.js'; +/** + * 配置及公有属性 + **/ +var realWindowWidth = 0; +var realWindowHeight = 0; +wx.getSystemInfo({ + success: function (res) { + realWindowWidth = res.windowWidth + realWindowHeight = res.windowHeight + } +}) +/** + * 主函数入口区 + **/ +function wxParse(bindName = 'wxParseData', type='html', data='
    数据不能为空
    ', target,imagePadding) { + var that = target; + var transData = {};//存放转化后的数据 + if (type == 'html') { + transData = HtmlToJson.html2json(data, bindName); + console.log(JSON.stringify(transData, ' ', ' ')); + } else if (type == 'md' || type == 'markdown') { + var converter = new showdown.Converter(); + var html = converter.makeHtml(data); + transData = HtmlToJson.html2json(html, bindName); + console.log(JSON.stringify(transData, ' ', ' ')); + } + transData.view = {}; + transData.view.imagePadding = 0; + if(typeof(imagePadding) != 'undefined'){ + transData.view.imagePadding = imagePadding + } + var bindData = {}; + bindData[bindName] = transData; + that.setData(bindData) + that.wxParseImgLoad = wxParseImgLoad; + that.wxParseImgTap = wxParseImgTap; +} +// 图片点击事件 +function wxParseImgTap(e) { + var that = this; + var nowImgUrl = e.target.dataset.src; + var tagFrom = e.target.dataset.from; + if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) { + wx.previewImage({ + current: nowImgUrl, // 当前显示图片的http链接 + urls: that.data[tagFrom].imageUrls // 需要预览的图片http链接列表 + }) + } +} + +/** + * 图片视觉宽高计算函数区 + **/ +function wxParseImgLoad(e) { + var that = this; + var tagFrom = e.target.dataset.from; + var idx = e.target.dataset.idx; + if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) { + calMoreImageInfo(e, idx, that, tagFrom) + } +} +// 假循环获取计算图片视觉最佳宽高 +function calMoreImageInfo(e, idx, that, bindName) { + var temData = that.data[bindName]; + if (!temData || temData.images.length == 0) { + return; + } + var temImages = temData.images; + //因为无法获取view宽度 需要自定义padding进行计算,稍后处理 + var recal = wxAutoImageCal(e.detail.width, e.detail.height,that,bindName); + // temImages[idx].width = recal.imageWidth; + // temImages[idx].height = recal.imageheight; + // temData.images = temImages; + // var bindData = {}; + // bindData[bindName] = temData; + // that.setData(bindData); + var index = temImages[idx].index + var key = `${bindName}` + for (var i of index.split('.')) key+=`.nodes[${i}]` + var keyW = key + '.width' + var keyH = key + '.height' + that.setData({ + [keyW]: recal.imageWidth, + [keyH]: recal.imageheight, + }) +} + +// 计算视觉优先的图片宽高 +function wxAutoImageCal(originalWidth, originalHeight,that,bindName) { + //获取图片的原始长宽 + var windowWidth = 0, windowHeight = 0; + var autoWidth = 0, autoHeight = 0; + var results = {}; + var padding = that.data[bindName].view.imagePadding; + windowWidth = realWindowWidth-2*padding; + windowHeight = realWindowHeight; + //判断按照那种方式进行缩放 + // console.log("windowWidth" + windowWidth); + if (originalWidth > windowWidth) {//在图片width大于手机屏幕width时候 + autoWidth = windowWidth; + // console.log("autoWidth" + autoWidth); + autoHeight = (autoWidth * originalHeight) / originalWidth; + // console.log("autoHeight" + autoHeight); + results.imageWidth = autoWidth; + results.imageheight = autoHeight; + } else {//否则展示原来的数据 + results.imageWidth = originalWidth; + results.imageheight = originalHeight; + } + return results; +} + +function wxParseTemArray(temArrayName,bindNameReg,total,that){ + var array = []; + var temData = that.data; + var obj = null; + for(var i = 0; i < total; i++){ + var simArr = temData[bindNameReg+i].nodes; + array.push(simArr); + } + + temArrayName = temArrayName || 'wxParseTemArray'; + obj = JSON.parse('{"'+ temArrayName +'":""}'); + obj[temArrayName] = array; + that.setData(obj); +} + +/** + * 配置emojis + * + */ + +function emojisInit(reg='',baseSrc="/wxParse/emojis/",emojis){ + HtmlToJson.emojisInit(reg,baseSrc,emojis); +} + +module.exports = { + wxParse: wxParse, + wxParseTemArray:wxParseTemArray, + emojisInit:emojisInit +} + + diff --git a/utils/wxParse/wxParse.wxml b/utils/wxParse/wxParse.wxml new file mode 100644 index 0000000..00fa568 --- /dev/null +++ b/utils/wxParse/wxParse.wxml @@ -0,0 +1,967 @@ + + + + + + + + + + + + +