WP Live Chat Support - Version 8.0.30

Version Description

It is highly recommended that you upgrade to WP Live Chat Support version 8.0.30 for security reasons.

Download this release

Release Info

Developer WP-LiveChat
Plugin Icon 128x128 WP Live Chat Support
Version 8.0.30
Comparing to
See all releases

Code changes from version 8.0.29 to 8.0.30

Files changed (336) hide show
  1. audio/ding.mp3 +0 -0
  2. audio/ring.wav +0 -0
  3. config.php +1 -6
  4. css/admin-chat-style.css +5 -2
  5. css/bootstrap.css +6732 -0
  6. css/chat_dashboard/admin_style.css +1829 -0
  7. css/chat_dashboard/admin_style_modern.css +2723 -0
  8. css/font-awesome.min.css +0 -0
  9. css/node_history_styles.css +0 -0
  10. css/remote_dash_styles.css +18 -6
  11. css/welcome_dashboard.css +158 -0
  12. fonts/FontAwesome.otf +0 -0
  13. fonts/fontawesome-webfont.eot +0 -0
  14. fonts/fontawesome-webfont.svg +0 -0
  15. fonts/fontawesome-webfont.ttf +0 -0
  16. fonts/fontawesome-webfont.woff +0 -0
  17. functions.php +286 -294
  18. images/48px.png +0 -0
  19. images/48px_n.png +0 -0
  20. images/arrow.png +0 -0
  21. images/browsers/android browser_16x16.png +0 -0
  22. images/browsers/chrome webview_16x16.png +0 -0
  23. images/browsers/chrome_16x16.png +0 -0
  24. images/browsers/chrome_32x32.png +0 -0
  25. images/browsers/edge_16x16.png +0 -0
  26. images/browsers/edge_32x32.png +0 -0
  27. images/browsers/facebook_16x16.png +0 -0
  28. images/browsers/firefox_16x16.png +0 -0
  29. images/browsers/firefox_32x32.png +0 -0
  30. images/browsers/ie_16x16.png +0 -0
  31. images/browsers/ie_32x32.png +0 -0
  32. images/browsers/internet-explorer_16x16.png +0 -0
  33. images/browsers/internet-explorer_32x32.png +0 -0
  34. images/browsers/mobile safari_16x16.png +0 -0
  35. images/browsers/mobile safari_32x32.png +0 -0
  36. images/browsers/opera_16x16.png +0 -0
  37. images/browsers/opera_32x32.png +0 -0
  38. images/browsers/safari_16x16.png +0 -0
  39. images/browsers/safari_32x32.png +0 -0
  40. images/browsers/unknown_16x16.png +0 -0
  41. images/browsers/web_16x16.png +0 -0
  42. images/browsers/web_32x32.png +0 -0
  43. images/browsers/webkit_16x16.png +0 -0
  44. images/devices/desktop.png +0 -0
  45. images/devices/mobile.png +0 -0
  46. images/flags/ad.png +0 -0
  47. images/flags/ae.png +0 -0
  48. images/flags/af.png +0 -0
  49. images/flags/ag.png +0 -0
  50. images/flags/ai.png +0 -0
  51. images/flags/al.png +0 -0
  52. images/flags/am.png +0 -0
  53. images/flags/an.png +0 -0
  54. images/flags/ao.png +0 -0
  55. images/flags/ar.png +0 -0
  56. images/flags/as.png +0 -0
  57. images/flags/at.png +0 -0
  58. images/flags/au.png +0 -0
  59. images/flags/aw.png +0 -0
  60. images/flags/ax.png +0 -0
  61. images/flags/az.png +0 -0
  62. images/flags/ba.png +0 -0
  63. images/flags/bb.png +0 -0
  64. images/flags/bd.png +0 -0
  65. images/flags/be.png +0 -0
  66. images/flags/bf.png +0 -0
  67. images/flags/bg.png +0 -0
  68. images/flags/bh.png +0 -0
  69. images/flags/bi.png +0 -0
  70. images/flags/bj.png +0 -0
  71. images/flags/bm.png +0 -0
  72. images/flags/bn.png +0 -0
  73. images/flags/bo.png +0 -0
  74. images/flags/br.png +0 -0
  75. images/flags/bs.png +0 -0
  76. images/flags/bt.png +0 -0
  77. images/flags/bv.png +0 -0
  78. images/flags/bw.png +0 -0
  79. images/flags/by.png +0 -0
  80. images/flags/bz.png +0 -0
  81. images/flags/ca.png +0 -0
  82. images/flags/catalonia.png +0 -0
  83. images/flags/cc.png +0 -0
  84. images/flags/cd.png +0 -0
  85. images/flags/cf.png +0 -0
  86. images/flags/cg.png +0 -0
  87. images/flags/ch.png +0 -0
  88. images/flags/ci.png +0 -0
  89. images/flags/ck.png +0 -0
  90. images/flags/cl.png +0 -0
  91. images/flags/cm.png +0 -0
  92. images/flags/cn.png +0 -0
  93. images/flags/co.png +0 -0
  94. images/flags/cr.png +0 -0
  95. images/flags/cs.png +0 -0
  96. images/flags/cu.png +0 -0
  97. images/flags/cv.png +0 -0
  98. images/flags/cx.png +0 -0
  99. images/flags/cy.png +0 -0
  100. images/flags/cz.png +0 -0
  101. images/flags/de.png +0 -0
  102. images/flags/dj.png +0 -0
  103. images/flags/dk.png +0 -0
  104. images/flags/dm.png +0 -0
  105. images/flags/do.png +0 -0
  106. images/flags/dz.png +0 -0
  107. images/flags/ec.png +0 -0
  108. images/flags/ee.png +0 -0
  109. images/flags/eg.png +0 -0
  110. images/flags/eh.png +0 -0
  111. images/flags/england.png +0 -0
  112. images/flags/er.png +0 -0
  113. images/flags/es.png +0 -0
  114. images/flags/et.png +0 -0
  115. images/flags/europeanunion.png +0 -0
  116. images/flags/fam.png +0 -0
  117. images/flags/fi.png +0 -0
  118. images/flags/fj.png +0 -0
  119. images/flags/fk.png +0 -0
  120. images/flags/fm.png +0 -0
  121. images/flags/fo.png +0 -0
  122. images/flags/fr.png +0 -0
  123. images/flags/ga.png +0 -0
  124. images/flags/gb.png +0 -0
  125. images/flags/gd.png +0 -0
  126. images/flags/ge.png +0 -0
  127. images/flags/gf.png +0 -0
  128. images/flags/gh.png +0 -0
  129. images/flags/gi.png +0 -0
  130. images/flags/gl.png +0 -0
  131. images/flags/gm.png +0 -0
  132. images/flags/gn.png +0 -0
  133. images/flags/gp.png +0 -0
  134. images/flags/gq.png +0 -0
  135. images/flags/gr.png +0 -0
  136. images/flags/gs.png +0 -0
  137. images/flags/gt.png +0 -0
  138. images/flags/gu.png +0 -0
  139. images/flags/gw.png +0 -0
  140. images/flags/gy.png +0 -0
  141. images/flags/hk.png +0 -0
  142. images/flags/hm.png +0 -0
  143. images/flags/hn.png +0 -0
  144. images/flags/hr.png +0 -0
  145. images/flags/ht.png +0 -0
  146. images/flags/hu.png +0 -0
  147. images/flags/id.png +0 -0
  148. images/flags/ie.png +0 -0
  149. images/flags/il.png +0 -0
  150. images/flags/in.png +0 -0
  151. images/flags/io.png +0 -0
  152. images/flags/iq.png +0 -0
  153. images/flags/ir.png +0 -0
  154. images/flags/is.png +0 -0
  155. images/flags/it.png +0 -0
  156. images/flags/jm.png +0 -0
  157. images/flags/jo.png +0 -0
  158. images/flags/jp.png +0 -0
  159. images/flags/ke.png +0 -0
  160. images/flags/kg.png +0 -0
  161. images/flags/kh.png +0 -0
  162. images/flags/ki.png +0 -0
  163. images/flags/km.png +0 -0
  164. images/flags/kn.png +0 -0
  165. images/flags/kp.png +0 -0
  166. images/flags/kr.png +0 -0
  167. images/flags/kw.png +0 -0
  168. images/flags/ky.png +0 -0
  169. images/flags/kz.png +0 -0
  170. images/flags/la.png +0 -0
  171. images/flags/lb.png +0 -0
  172. images/flags/lc.png +0 -0
  173. images/flags/li.png +0 -0
  174. images/flags/lk.png +0 -0
  175. images/flags/lr.png +0 -0
  176. images/flags/ls.png +0 -0
  177. images/flags/lt.png +0 -0
  178. images/flags/lu.png +0 -0
  179. images/flags/lv.png +0 -0
  180. images/flags/ly.png +0 -0
  181. images/flags/ma.png +0 -0
  182. images/flags/mc.png +0 -0
  183. images/flags/md.png +0 -0
  184. images/flags/me.png +0 -0
  185. images/flags/mg.png +0 -0
  186. images/flags/mh.png +0 -0
  187. images/flags/mk.png +0 -0
  188. images/flags/ml.png +0 -0
  189. images/flags/mm.png +0 -0
  190. images/flags/mn.png +0 -0
  191. images/flags/mo.png +0 -0
  192. images/flags/mp.png +0 -0
  193. images/flags/mq.png +0 -0
  194. images/flags/mr.png +0 -0
  195. images/flags/ms.png +0 -0
  196. images/flags/mt.png +0 -0
  197. images/flags/mu.png +0 -0
  198. images/flags/mv.png +0 -0
  199. images/flags/mw.png +0 -0
  200. images/flags/mx.png +0 -0
  201. images/flags/my.png +0 -0
  202. images/flags/mz.png +0 -0
  203. images/flags/na.png +0 -0
  204. images/flags/nc.png +0 -0
  205. images/flags/ne.png +0 -0
  206. images/flags/nf.png +0 -0
  207. images/flags/ng.png +0 -0
  208. images/flags/ni.png +0 -0
  209. images/flags/nl.png +0 -0
  210. images/flags/no.png +0 -0
  211. images/flags/np.png +0 -0
  212. images/flags/nr.png +0 -0
  213. images/flags/nu.png +0 -0
  214. images/flags/nz.png +0 -0
  215. images/flags/om.png +0 -0
  216. images/flags/pa.png +0 -0
  217. images/flags/pe.png +0 -0
  218. images/flags/pf.png +0 -0
  219. images/flags/pg.png +0 -0
  220. images/flags/ph.png +0 -0
  221. images/flags/pk.png +0 -0
  222. images/flags/pl.png +0 -0
  223. images/flags/pm.png +0 -0
  224. images/flags/pn.png +0 -0
  225. images/flags/pr.png +0 -0
  226. images/flags/ps.png +0 -0
  227. images/flags/pt.png +0 -0
  228. images/flags/pw.png +0 -0
  229. images/flags/py.png +0 -0
  230. images/flags/qa.png +0 -0
  231. images/flags/re.png +0 -0
  232. images/flags/ro.png +0 -0
  233. images/flags/rs.png +0 -0
  234. images/flags/ru.png +0 -0
  235. images/flags/rw.png +0 -0
  236. images/flags/sa.png +0 -0
  237. images/flags/sb.png +0 -0
  238. images/flags/sc.png +0 -0
  239. images/flags/scotland.png +0 -0
  240. images/flags/sd.png +0 -0
  241. images/flags/se.png +0 -0
  242. images/flags/sg.png +0 -0
  243. images/flags/sh.png +0 -0
  244. images/flags/si.png +0 -0
  245. images/flags/sj.png +0 -0
  246. images/flags/sk.png +0 -0
  247. images/flags/sl.png +0 -0
  248. images/flags/sm.png +0 -0
  249. images/flags/sn.png +0 -0
  250. images/flags/so.png +0 -0
  251. images/flags/sr.png +0 -0
  252. images/flags/st.png +0 -0
  253. images/flags/sv.png +0 -0
  254. images/flags/sy.png +0 -0
  255. images/flags/sz.png +0 -0
  256. images/flags/tc.png +0 -0
  257. images/flags/td.png +0 -0
  258. images/flags/tf.png +0 -0
  259. images/flags/tg.png +0 -0
  260. images/flags/th.png +0 -0
  261. images/flags/tj.png +0 -0
  262. images/flags/tk.png +0 -0
  263. images/flags/tl.png +0 -0
  264. images/flags/tm.png +0 -0
  265. images/flags/tn.png +0 -0
  266. images/flags/to.png +0 -0
  267. images/flags/tr.png +0 -0
  268. images/flags/tt.png +0 -0
  269. images/flags/tv.png +0 -0
  270. images/flags/tw.png +0 -0
  271. images/flags/tz.png +0 -0
  272. images/flags/ua.png +0 -0
  273. images/flags/ug.png +0 -0
  274. images/flags/um.png +0 -0
  275. images/flags/us.png +0 -0
  276. images/flags/uy.png +0 -0
  277. images/flags/uz.png +0 -0
  278. images/flags/va.png +0 -0
  279. images/flags/vc.png +0 -0
  280. images/flags/ve.png +0 -0
  281. images/flags/vg.png +0 -0
  282. images/flags/vi.png +0 -0
  283. images/flags/vn.png +0 -0
  284. images/flags/vu.png +0 -0
  285. images/flags/wales.png +0 -0
  286. images/flags/wf.png +0 -0
  287. images/flags/ws.png +0 -0
  288. images/flags/ye.png +0 -0
  289. images/flags/yt.png +0 -0
  290. images/flags/za.png +0 -0
  291. images/flags/zm.png +0 -0
  292. images/flags/zw.png +0 -0
  293. images/platforms/Android.png +0 -0
  294. images/platforms/iOS.png +0 -0
  295. images/random_images/1.jpeg +0 -0
  296. images/random_images/10.jpeg +0 -0
  297. images/random_images/11.jpeg +0 -0
  298. images/random_images/12.jpeg +0 -0
  299. images/random_images/13.jpeg +0 -0
  300. images/random_images/2.jpeg +0 -0
  301. images/random_images/3.jpeg +0 -0
  302. images/random_images/4.jpeg +0 -0
  303. images/random_images/5.jpeg +0 -0
  304. images/random_images/6.jpeg +0 -0
  305. images/random_images/7.jpeg +0 -0
  306. images/random_images/8.jpeg +0 -0
  307. images/random_images/9.jpeg +0 -0
  308. images/random_images/offline_images/1.jpg +0 -0
  309. images/random_images/offline_images/2.jpg +0 -0
  310. images/random_images/offline_images/3.jpg +0 -0
  311. images/random_images/offline_images/4.jpg +0 -0
  312. images/random_images/offline_images/5.jpg +0 -0
  313. images/random_images/offline_images/6.jpg +0 -0
  314. images/random_images/offline_images/7.jpg +0 -0
  315. images/random_images/offline_images/8.jpg +0 -0
  316. images/random_images/offline_images/9.jpg +0 -0
  317. images/wplc_loading.png +0 -0
  318. includes/blocks/wplc-chat-box/block.js +1 -1
  319. includes/blocks/wplc-chat-box/index.php +2 -2
  320. includes/dashboard_page.php +17 -42
  321. includes/modal_control.php +1 -2
  322. includes/shortcodes.php +18 -18
  323. includes/surveys.php +4 -7
  324. includes/wplc_custom_fields.php +38 -7
  325. includes/wplc_data_triggers.php +44 -24
  326. includes/wplc_departments.php +24 -6
  327. includes/wplc_roi.php +34 -17
  328. includes/wplc_transfer_chats.php +71 -71
  329. js/jscolor.js +26 -10
  330. js/nimblesquirrel.js +1 -0
  331. js/vendor/ace/ace.js +14 -0
  332. js/vendor/ace/mode-css.js +1 -0
  333. js/vendor/ace/mode-html.js +1 -0
  334. js/vendor/ace/mode-javascript.js +1 -0
  335. js/vendor/ace/theme-monokai.js +1 -0
  336. js/vendor/ace/worker-css.js +1 -0
audio/ding.mp3 ADDED
Binary file
audio/ring.wav ADDED
Binary file
config.php CHANGED
@@ -2,15 +2,10 @@
2
  /*
3
  * Define important constants
4
  */
5
-
6
- $wplc_version = "8.0.29";
7
-
8
  define('WPLC_PLUGIN_DIR', dirname(__FILE__));
9
  define('WPLC_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
10
  define('WPLC_PLUGIN', plugin_basename( __FILE__ ) );
11
  define('WLPC_UPDATE_SERVER', 'https://update.wp-livechat.com' );
12
 
13
- global $wplc_plugin_url;
14
- $wplc_plugin_url = WPLC_PLUGIN_URL;
15
-
16
  ?>
2
  /*
3
  * Define important constants
4
  */
5
+ define('WPLC_PLUGIN_VERSION', "8.0.30");
 
 
6
  define('WPLC_PLUGIN_DIR', dirname(__FILE__));
7
  define('WPLC_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
8
  define('WPLC_PLUGIN', plugin_basename( __FILE__ ) );
9
  define('WLPC_UPDATE_SERVER', 'https://update.wp-livechat.com' );
10
 
 
 
 
11
  ?>
css/admin-chat-style.css CHANGED
@@ -1,7 +1,7 @@
1
  /**
2
  * Chat page, header section, user info
3
  */
4
- #nifty_wrapper .user_header_wrapper_info {
5
  display: block;
6
  position: relative;
7
  top: -8px;
@@ -11,10 +11,11 @@
11
  padding: 8px;
12
  overflow-x: hidden;
13
  overflow-y: auto;
14
- font-size: 0.9em;
15
  line-height: 1em;
16
  background-color: #fefefe;
17
  border-radius: 3px;
 
18
  }
19
 
20
  #nifty_wrapper .user_header_wrapper_info h3 {
@@ -429,6 +430,8 @@ span.bleeper-edit-message {
429
  overflow-y: auto;
430
  border-radius: 2px;
431
  box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.1);
 
 
432
  }
433
 
434
  #chatTranscriptTitle {
1
  /**
2
  * Chat page, header section, user info
3
  */
4
+ #nifty_wrapper .user_header_wrapper_info {
5
  display: block;
6
  position: relative;
7
  top: -8px;
11
  padding: 8px;
12
  overflow-x: hidden;
13
  overflow-y: auto;
14
+ font-size: 0.7em;
15
  line-height: 1em;
16
  background-color: #fefefe;
17
  border-radius: 3px;
18
+ text-align: left;
19
  }
20
 
21
  #nifty_wrapper .user_header_wrapper_info h3 {
430
  overflow-y: auto;
431
  border-radius: 2px;
432
  box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.1);
433
+
434
+ transform: translateX(-50%);
435
  }
436
 
437
  #chatTranscriptTitle {
css/bootstrap.css ADDED
@@ -0,0 +1,6732 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
3
+ #nifty_wrapper * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
7
+ #nifty_wrapper html {
8
+ font-family: sans-serif;
9
+ -ms-text-size-adjust: 100%;
10
+ -webkit-text-size-adjust: 100%;
11
+ }
12
+ #nifty_wrapper body {
13
+ margin: 0;
14
+ }
15
+ article,
16
+ aside,
17
+ #nifty_wrapper details,
18
+ #nifty_wrapper figcaption,
19
+ #nifty_wrapper figure,
20
+ #nifty_wrapper footer,
21
+ #nifty_wrapper header,
22
+ #nifty_wrapper hgroup,
23
+ #nifty_wrapper main,
24
+ #nifty_wrapper menu,
25
+ #nifty_wrapper nav,
26
+ #nifty_wrapper section,
27
+ #nifty_wrapper summary {
28
+ display: block;
29
+ }
30
+ audio,
31
+ #nifty_wrapper canvas,
32
+ #nifty_wrapper progress,
33
+ #nifty_wrapper video {
34
+ display: inline-block;
35
+ vertical-align: baseline;
36
+ }
37
+ audio:not([controls]) {
38
+ display: none;
39
+ height: 0;
40
+ }
41
+ #nifty_wrapper [hidden],
42
+ #nifty_wrapper template {
43
+ display: none;
44
+ }
45
+ a {
46
+ background-color: transparent;
47
+ }
48
+ a:active,
49
+ a:hover {
50
+ outline: 0;
51
+ }
52
+ abbr[title] {
53
+ border-bottom: 1px dotted;
54
+ }
55
+ #nifty_wrapper b,
56
+ #nifty_wrapper strong {
57
+ font-weight: bold;
58
+ }
59
+ #nifty_wrapper dfn {
60
+ font-style: italic;
61
+ }
62
+ #nifty_wrapper h1 {
63
+ font-size: 2em;
64
+ margin: 0.67em 0;
65
+ }
66
+ #nifty_wrapper mark {
67
+ background: #ff0;
68
+ color: #000;
69
+ }
70
+ #nifty_wrapper small {
71
+ font-size: 80%;
72
+ }
73
+ #nifty_wrapper sub,
74
+ #nifty_wrapper sup {
75
+ font-size: 75%;
76
+ line-height: 0;
77
+ position: relative;
78
+ vertical-align: baseline;
79
+ }
80
+ #nifty_wrapper sup {
81
+ top: -0.5em;
82
+ }
83
+ #nifty_wrapper sub {
84
+ bottom: -0.25em;
85
+ }
86
+ #nifty_wrapper img {
87
+ border: 0;
88
+ }
89
+ #nifty_wrapper svg:not(:root) {
90
+ overflow: hidden;
91
+ }
92
+ #nifty_wrapper figure {
93
+ margin: 1em 40px;
94
+ }
95
+ #nifty_wrapper hr {
96
+ box-sizing: content-box;
97
+ height: 0;
98
+ }
99
+ #nifty_wrapper pre {
100
+ overflow: auto;
101
+ }
102
+ #nifty_wrapper code,
103
+ #nifty_wrapper kbd,
104
+ #nifty_wrapper pre,
105
+ #nifty_wrapper samp {
106
+ font-family: monospace, monospace;
107
+ font-size: 1em;
108
+ }
109
+ #nifty_wrapper button,
110
+ #nifty_wrapper input,
111
+ #nifty_wrapper optgroup,
112
+ #nifty_wrapper select,
113
+ #nifty_wrapper textarea {
114
+ color: inherit;
115
+ font: inherit;
116
+ margin: 0;
117
+ }
118
+ #nifty_wrapper button {
119
+ overflow: visible;
120
+ }
121
+ #nifty_wrapper button,
122
+ #nifty_wrapper select {
123
+ text-transform: none;
124
+ }
125
+ #nifty_wrapper button,
126
+ #nifty_wrapper html input[type="button"],
127
+ #nifty_wrapper input[type="reset"],
128
+ #nifty_wrapper input[type="submit"] {
129
+ -webkit-appearance: button;
130
+ cursor: pointer;
131
+ }
132
+ #nifty_wrapper button[disabled],
133
+ #nifty_wrapper html input[disabled] {
134
+ cursor: default;
135
+ }
136
+ #nifty_wrapper button::-moz-focus-inner,
137
+ #nifty_wrapper input::-moz-focus-inner {
138
+ border: 0;
139
+ padding: 0;
140
+ }
141
+ #nifty_wrapper input {
142
+ line-height: normal;
143
+ }
144
+ #nifty_wrapper input[type="checkbox"],
145
+ #nifty_wrapper input[type="radio"] {
146
+ box-sizing: border-box;
147
+ padding: 0;
148
+ }
149
+ #nifty_wrapper input[type="number"]::-webkit-inner-spin-button,
150
+ #nifty_wrapper input[type="number"]::-webkit-outer-spin-button {
151
+ height: auto;
152
+ }
153
+ #nifty_wrapper input[type="search"] {
154
+ -webkit-appearance: textfield;
155
+ box-sizing: content-box;
156
+ }
157
+ #nifty_wrapper input[type="search"]::-webkit-search-cancel-button,
158
+ #nifty_wrapper input[type="search"]::-webkit-search-decoration {
159
+ -webkit-appearance: none;
160
+ }
161
+ #nifty_wrapper fieldset {
162
+ border: 1px solid #c0c0c0;
163
+ margin: 0 2px;
164
+ padding: 0.35em 0.625em 0.75em;
165
+ }
166
+ #nifty_wrapper legend {
167
+ border: 0;
168
+ padding: 0;
169
+ }
170
+ #nifty_wrapper textarea {
171
+ overflow: auto;
172
+ }
173
+ #nifty_wrapper optgroup {
174
+ font-weight: bold;
175
+ }
176
+ #nifty_wrapper table {
177
+ border-collapse: collapse;
178
+ border-spacing: 0;
179
+ }
180
+ #nifty_wrapper td,
181
+ #nifty_wrapper th {
182
+ padding: 0;
183
+ }
184
+ /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
185
+ @media print {
186
+ #nifty_wrapper *,
187
+ #nifty_wrapper *:before,
188
+ #nifty_wrapper *:after {
189
+ background: transparent !important;
190
+ color: #000 !important;
191
+ box-shadow: none !important;
192
+ text-shadow: none !important;
193
+ }
194
+ #nifty_wrapper a,
195
+ #nifty_wrapper a:visited {
196
+ text-decoration: underline;
197
+ }
198
+ #nifty_wrapper a[href]:after {
199
+ content: " (" attr(href) ")";
200
+ }
201
+ #nifty_wrapper abbr[title]:after {
202
+ content: " (" attr(title) ")";
203
+ }
204
+ #nifty_wrapper a[href^="#"]:after,
205
+ #nifty_wrapper a[href^="javascript:"]:after {
206
+ content: "";
207
+ }
208
+ #nifty_wrapper pre,
209
+ #nifty_wrapper blockquote {
210
+ border: 1px solid #999;
211
+ page-break-inside: avoid;
212
+ }
213
+ #nifty_wrapper thead {
214
+ display: table-header-group;
215
+ }
216
+ #nifty_wrapper tr,
217
+ #nifty_wrapper img {
218
+ page-break-inside: avoid;
219
+ }
220
+ #nifty_wrapper img {
221
+ max-width: 100% !important;
222
+ }
223
+ #nifty_wrapper p,
224
+ #nifty_wrapper h2,
225
+ #nifty_wrapper h3 {
226
+ orphans: 3;
227
+ widows: 3;
228
+ }
229
+ #nifty_wrapper h2,
230
+ #nifty_wrapper h3 {
231
+ page-break-after: avoid;
232
+ }
233
+ #nifty_wrapper .navbar {
234
+ display: none;
235
+ }
236
+ .btn > .caret,
237
+ .dropup > .btn > .caret {
238
+ border-top-color: #000 !important;
239
+ }
240
+ #nifty_wrapper .label {
241
+ border: 1px solid #000;
242
+ }
243
+ #nifty_wrapper .table {
244
+ border-collapse: collapse !important;
245
+ }
246
+ #nifty_wrapper .table td,
247
+ #nifty_wrapper .table th {
248
+ background-color: #fff !important;
249
+ }
250
+ #nifty_wrapper .table-bordered th,
251
+ #nifty_wrapper .table-bordered td {
252
+ border: 1px solid #ddd !important;
253
+ }
254
+ }
255
+ #nifty_wrapper @font-face {
256
+ font-family: 'Glyphicons Halflings';
257
+ src: url('../fonts/glyphicons-halflings-regular.eot');
258
+ #nifty_wrapper src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
259
+ }
260
+ #nifty_wrapper .glyphicon {
261
+ position: relative;
262
+ top: 1px;
263
+ display: inline-block;
264
+ font-family: 'Glyphicons Halflings';
265
+ font-style: normal;
266
+ font-weight: normal;
267
+ line-height: 1;
268
+ -webkit-font-smoothing: antialiased;
269
+ -moz-osx-font-smoothing: grayscale;
270
+ }
271
+ #nifty_wrapper .glyphicon-asterisk:before {
272
+ content: "\002a";
273
+ }
274
+ #nifty_wrapper .glyphicon-plus:before {
275
+ content: "\002b";
276
+ }
277
+ #nifty_wrapper .glyphicon-euro:before,
278
+ #nifty_wrapper .glyphicon-eur:before {
279
+ content: "\20ac";
280
+ }
281
+ #nifty_wrapper .glyphicon-minus:before {
282
+ content: "\2212";
283
+ }
284
+ #nifty_wrapper .glyphicon-cloud:before {
285
+ content: "\2601";
286
+ }
287
+ #nifty_wrapper .glyphicon-envelope:before {
288
+ content: "\2709";
289
+ }
290
+ #nifty_wrapper .glyphicon-pencil:before {
291
+ content: "\270f";
292
+ }
293
+ #nifty_wrapper .glyphicon-glass:before {
294
+ content: "\e001";
295
+ }
296
+ #nifty_wrapper .glyphicon-music:before {
297
+ content: "\e002";
298
+ }
299
+ #nifty_wrapper .glyphicon-search:before {
300
+ content: "\e003";
301
+ }
302
+ #nifty_wrapper .glyphicon-heart:before {
303
+ content: "\e005";
304
+ }
305
+ #nifty_wrapper .glyphicon-star:before {
306
+ content: "\e006";
307
+ }
308
+ #nifty_wrapper .glyphicon-star-empty:before {
309
+ content: "\e007";
310
+ }
311
+ #nifty_wrapper .glyphicon-user:before {
312
+ content: "\e008";
313
+ }
314
+ #nifty_wrapper .glyphicon-film:before {
315
+ content: "\e009";
316
+ }
317
+ #nifty_wrapper .glyphicon-th-large:before {
318
+ content: "\e010";
319
+ }
320
+ #nifty_wrapper .glyphicon-th:before {
321
+ content: "\e011";
322
+ }
323
+ #nifty_wrapper .glyphicon-th-list:before {
324
+ content: "\e012";
325
+ }
326
+ #nifty_wrapper .glyphicon-ok:before {
327
+ content: "\e013";
328
+ }
329
+ #nifty_wrapper .glyphicon-remove:before {
330
+ content: "\e014";
331
+ }
332
+ #nifty_wrapper .glyphicon-zoom-in:before {
333
+ content: "\e015";
334
+ }
335
+ #nifty_wrapper .glyphicon-zoom-out:before {
336
+ content: "\e016";
337
+ }
338
+ #nifty_wrapper .glyphicon-off:before {
339
+ content: "\e017";
340
+ }
341
+ #nifty_wrapper .glyphicon-signal:before {
342
+ content: "\e018";
343
+ }
344
+ #nifty_wrapper .glyphicon-cog:before {
345
+ content: "\e019";
346
+ }
347
+ #nifty_wrapper .glyphicon-trash:before {
348
+ content: "\e020";
349
+ }
350
+ #nifty_wrapper .glyphicon-home:before {
351
+ content: "\e021";
352
+ }
353
+ #nifty_wrapper .glyphicon-file:before {
354
+ content: "\e022";
355
+ }
356
+ #nifty_wrapper .glyphicon-time:before {
357
+ content: "\e023";
358
+ }
359
+ #nifty_wrapper .glyphicon-road:before {
360
+ content: "\e024";
361
+ }
362
+ #nifty_wrapper .glyphicon-download-alt:before {
363
+ content: "\e025";
364
+ }
365
+ #nifty_wrapper .glyphicon-download:before {
366
+ content: "\e026";
367
+ }
368
+ #nifty_wrapper .glyphicon-upload:before {
369
+ content: "\e027";
370
+ }
371
+ #nifty_wrapper .glyphicon-inbox:before {
372
+ content: "\e028";
373
+ }
374
+ #nifty_wrapper .glyphicon-play-circle:before {
375
+ content: "\e029";
376
+ }
377
+ #nifty_wrapper .glyphicon-repeat:before {
378
+ content: "\e030";
379
+ }
380
+ #nifty_wrapper .glyphicon-refresh:before {
381
+ content: "\e031";
382
+ }
383
+ #nifty_wrapper .glyphicon-list-alt:before {
384
+ content: "\e032";
385
+ }
386
+ #nifty_wrapper .glyphicon-lock:before {
387
+ content: "\e033";
388
+ }
389
+ #nifty_wrapper .glyphicon-flag:before {
390
+ content: "\e034";
391
+ }
392
+ #nifty_wrapper .glyphicon-headphones:before {
393
+ content: "\e035";
394
+ }
395
+ #nifty_wrapper .glyphicon-volume-off:before {
396
+ content: "\e036";
397
+ }
398
+ #nifty_wrapper .glyphicon-volume-down:before {
399
+ content: "\e037";
400
+ }
401
+ #nifty_wrapper .glyphicon-volume-up:before {
402
+ content: "\e038";
403
+ }
404
+ #nifty_wrapper .glyphicon-qrcode:before {
405
+ content: "\e039";
406
+ }
407
+ #nifty_wrapper .glyphicon-barcode:before {
408
+ content: "\e040";
409
+ }
410
+ #nifty_wrapper .glyphicon-tag:before {
411
+ content: "\e041";
412
+ }
413
+ #nifty_wrapper .glyphicon-tags:before {
414
+ content: "\e042";
415
+ }
416
+ #nifty_wrapper .glyphicon-book:before {
417
+ content: "\e043";
418
+ }
419
+ #nifty_wrapper .glyphicon-bookmark:before {
420
+ content: "\e044";
421
+ }
422
+ #nifty_wrapper .glyphicon-print:before {
423
+ content: "\e045";
424
+ }
425
+ #nifty_wrapper .glyphicon-camera:before {
426
+ content: "\e046";
427
+ }
428
+ #nifty_wrapper .glyphicon-font:before {
429
+ content: "\e047";
430
+ }
431
+ #nifty_wrapper .glyphicon-bold:before {
432
+ content: "\e048";
433
+ }
434
+ #nifty_wrapper .glyphicon-italic:before {
435
+ content: "\e049";
436
+ }
437
+ #nifty_wrapper .glyphicon-text-height:before {
438
+ content: "\e050";
439
+ }
440
+ #nifty_wrapper .glyphicon-text-width:before {
441
+ content: "\e051";
442
+ }
443
+ #nifty_wrapper .glyphicon-align-left:before {
444
+ content: "\e052";
445
+ }
446
+ #nifty_wrapper .glyphicon-align-center:before {
447
+ content: "\e053";
448
+ }
449
+ #nifty_wrapper .glyphicon-align-right:before {
450
+ content: "\e054";
451
+ }
452
+ #nifty_wrapper .glyphicon-align-justify:before {
453
+ content: "\e055";
454
+ }
455
+ #nifty_wrapper .glyphicon-list:before {
456
+ content: "\e056";
457
+ }
458
+ #nifty_wrapper .glyphicon-indent-left:before {
459
+ content: "\e057";
460
+ }
461
+ #nifty_wrapper .glyphicon-indent-right:before {
462
+ content: "\e058";
463
+ }
464
+ #nifty_wrapper .glyphicon-facetime-video:before {
465
+ content: "\e059";
466
+ }
467
+ #nifty_wrapper .glyphicon-picture:before {
468
+ content: "\e060";
469
+ }
470
+ #nifty_wrapper .glyphicon-map-marker:before {
471
+ content: "\e062";
472
+ }
473
+ #nifty_wrapper .glyphicon-adjust:before {
474
+ content: "\e063";
475
+ }
476
+ #nifty_wrapper .glyphicon-tint:before {
477
+ content: "\e064";
478
+ }
479
+ #nifty_wrapper .glyphicon-edit:before {
480
+ content: "\e065";
481
+ }
482
+ #nifty_wrapper .glyphicon-share:before {
483
+ content: "\e066";
484
+ }
485
+ #nifty_wrapper .glyphicon-check:before {
486
+ content: "\e067";
487
+ }
488
+ #nifty_wrapper .glyphicon-move:before {
489
+ content: "\e068";
490
+ }
491
+ #nifty_wrapper .glyphicon-step-backward:before {
492
+ content: "\e069";
493
+ }
494
+ #nifty_wrapper .glyphicon-fast-backward:before {
495
+ content: "\e070";
496
+ }
497
+ #nifty_wrapper .glyphicon-backward:before {
498
+ content: "\e071";
499
+ }
500
+ #nifty_wrapper .glyphicon-play:before {
501
+ content: "\e072";
502
+ }
503
+ #nifty_wrapper .glyphicon-pause:before {
504
+ content: "\e073";
505
+ }
506
+ #nifty_wrapper .glyphicon-stop:before {
507
+ content: "\e074";
508
+ }
509
+ #nifty_wrapper .glyphicon-forward:before {
510
+ content: "\e075";
511
+ }
512
+ #nifty_wrapper .glyphicon-fast-forward:before {
513
+ content: "\e076";
514
+ }
515
+ #nifty_wrapper .glyphicon-step-forward:before {
516
+ content: "\e077";
517
+ }
518
+ #nifty_wrapper .glyphicon-eject:before {
519
+ content: "\e078";
520
+ }
521
+ #nifty_wrapper .glyphicon-chevron-left:before {
522
+ content: "\e079";
523
+ }
524
+ #nifty_wrapper .glyphicon-chevron-right:before {
525
+ content: "\e080";
526
+ }
527
+ #nifty_wrapper .glyphicon-plus-sign:before {
528
+ content: "\e081";
529
+ }
530
+ #nifty_wrapper .glyphicon-minus-sign:before {
531
+ content: "\e082";
532
+ }
533
+ #nifty_wrapper .glyphicon-remove-sign:before {
534
+ content: "\e083";
535
+ }
536
+ #nifty_wrapper .glyphicon-ok-sign:before {
537
+ content: "\e084";
538
+ }
539
+ #nifty_wrapper .glyphicon-question-sign:before {
540
+ content: "\e085";
541
+ }
542
+ #nifty_wrapper .glyphicon-info-sign:before {
543
+ content: "\e086";
544
+ }
545
+ #nifty_wrapper .glyphicon-screenshot:before {
546
+ content: "\e087";
547
+ }
548
+ #nifty_wrapper .glyphicon-remove-circle:before {
549
+ content: "\e088";
550
+ }
551
+ #nifty_wrapper .glyphicon-ok-circle:before {
552
+ content: "\e089";
553
+ }
554
+ #nifty_wrapper .glyphicon-ban-circle:before {
555
+ content: "\e090";
556
+ }
557
+ #nifty_wrapper .glyphicon-arrow-left:before {
558
+ content: "\e091";
559
+ }
560
+ #nifty_wrapper .glyphicon-arrow-right:before {
561
+ content: "\e092";
562
+ }
563
+ #nifty_wrapper .glyphicon-arrow-up:before {
564
+ content: "\e093";
565
+ }
566
+ #nifty_wrapper .glyphicon-arrow-down:before {
567
+ content: "\e094";
568
+ }
569
+ #nifty_wrapper .glyphicon-share-alt:before {
570
+ content: "\e095";
571
+ }
572
+ #nifty_wrapper .glyphicon-resize-full:before {
573
+ content: "\e096";
574
+ }
575
+ #nifty_wrapper .glyphicon-resize-small:before {
576
+ content: "\e097";
577
+ }
578
+ #nifty_wrapper .glyphicon-exclamation-sign:before {
579
+ content: "\e101";
580
+ }
581
+ #nifty_wrapper .glyphicon-gift:before {
582
+ content: "\e102";
583
+ }
584
+ #nifty_wrapper .glyphicon-leaf:before {
585
+ content: "\e103";
586
+ }
587
+ #nifty_wrapper .glyphicon-fire:before {
588
+ content: "\e104";
589
+ }
590
+ #nifty_wrapper .glyphicon-eye-open:before {
591
+ content: "\e105";
592
+ }
593
+ #nifty_wrapper .glyphicon-eye-close:before {
594
+ content: "\e106";
595
+ }
596
+ #nifty_wrapper .glyphicon-warning-sign:before {
597
+ content: "\e107";
598
+ }
599
+ #nifty_wrapper .glyphicon-plane:before {
600
+ content: "\e108";
601
+ }
602
+ #nifty_wrapper .glyphicon-calendar:before {
603
+ content: "\e109";
604
+ }
605
+ #nifty_wrapper .glyphicon-random:before {
606
+ content: "\e110";
607
+ }
608
+ #nifty_wrapper .glyphicon-comment:before {
609
+ content: "\e111";
610
+ }
611
+ #nifty_wrapper .glyphicon-magnet:before {
612
+ content: "\e112";
613
+ }
614
+ #nifty_wrapper .glyphicon-chevron-up:before {
615
+ content: "\e113";
616
+ }
617
+ #nifty_wrapper .glyphicon-chevron-down:before {
618
+ content: "\e114";
619
+ }
620
+ #nifty_wrapper .glyphicon-retweet:before {
621
+ content: "\e115";
622
+ }
623
+ #nifty_wrapper .glyphicon-shopping-cart:before {
624
+ content: "\e116";
625
+ }
626
+ #nifty_wrapper .glyphicon-folder-close:before {
627
+ content: "\e117";
628
+ }
629
+ #nifty_wrapper .glyphicon-folder-open:before {
630
+ content: "\e118";
631
+ }
632
+ #nifty_wrapper .glyphicon-resize-vertical:before {
633
+ content: "\e119";
634
+ }
635
+ #nifty_wrapper .glyphicon-resize-horizontal:before {
636
+ content: "\e120";
637
+ }
638
+ #nifty_wrapper .glyphicon-hdd:before {
639
+ content: "\e121";
640
+ }
641
+ #nifty_wrapper .glyphicon-bullhorn:before {
642
+ content: "\e122";
643
+ }
644
+ #nifty_wrapper .glyphicon-bell:before {
645
+ content: "\e123";
646
+ }
647
+ #nifty_wrapper .glyphicon-certificate:before {
648
+ content: "\e124";
649
+ }
650
+ #nifty_wrapper .glyphicon-thumbs-up:before {
651
+ content: "\e125";
652
+ }
653
+ #nifty_wrapper .glyphicon-thumbs-down:before {
654
+ content: "\e126";
655
+ }
656
+ #nifty_wrapper .glyphicon-hand-right:before {
657
+ content: "\e127";
658
+ }
659
+ #nifty_wrapper .glyphicon-hand-left:before {
660
+ content: "\e128";
661
+ }
662
+ #nifty_wrapper .glyphicon-hand-up:before {
663
+ content: "\e129";
664
+ }
665
+ #nifty_wrapper .glyphicon-hand-down:before {
666
+ content: "\e130";
667
+ }
668
+ #nifty_wrapper .glyphicon-circle-arrow-right:before {
669
+ content: "\e131";
670
+ }
671
+ #nifty_wrapper .glyphicon-circle-arrow-left:before {
672
+ content: "\e132";
673
+ }
674
+ #nifty_wrapper .glyphicon-circle-arrow-up:before {
675
+ content: "\e133";
676
+ }
677
+ #nifty_wrapper .glyphicon-circle-arrow-down:before {
678
+ content: "\e134";
679
+ }
680
+ #nifty_wrapper .glyphicon-globe:before {
681
+ content: "\e135";
682
+ }
683
+ #nifty_wrapper .glyphicon-wrench:before {
684
+ content: "\e136";
685
+ }
686
+ #nifty_wrapper .glyphicon-tasks:before {
687
+ content: "\e137";
688
+ }
689
+ #nifty_wrapper .glyphicon-filter:before {
690
+ content: "\e138";
691
+ }
692
+ #nifty_wrapper .glyphicon-briefcase:before {
693
+ content: "\e139";
694
+ }
695
+ #nifty_wrapper .glyphicon-fullscreen:before {
696
+ content: "\e140";
697
+ }
698
+ #nifty_wrapper .glyphicon-dashboard:before {
699
+ content: "\e141";
700
+ }
701
+ #nifty_wrapper .glyphicon-paperclip:before {
702
+ content: "\e142";
703
+ }
704
+ #nifty_wrapper .glyphicon-heart-empty:before {
705
+ content: "\e143";
706
+ }
707
+ #nifty_wrapper .glyphicon-link:before {
708
+ content: "\e144";
709
+ }
710
+ #nifty_wrapper .glyphicon-phone:before {
711
+ content: "\e145";
712
+ }
713
+ #nifty_wrapper .glyphicon-pushpin:before {
714
+ content: "\e146";
715
+ }
716
+ #nifty_wrapper .glyphicon-usd:before {
717
+ content: "\e148";
718
+ }
719
+ #nifty_wrapper .glyphicon-gbp:before {
720
+ content: "\e149";
721
+ }
722
+ #nifty_wrapper .glyphicon-sort:before {
723
+ content: "\e150";
724
+ }
725
+ #nifty_wrapper .glyphicon-sort-by-alphabet:before {
726
+ content: "\e151";
727
+ }
728
+ #nifty_wrapper .glyphicon-sort-by-alphabet-alt:before {
729
+ content: "\e152";
730
+ }
731
+ #nifty_wrapper .glyphicon-sort-by-order:before {
732
+ content: "\e153";
733
+ }
734
+ #nifty_wrapper .glyphicon-sort-by-order-alt:before {
735
+ content: "\e154";
736
+ }
737
+ #nifty_wrapper .glyphicon-sort-by-attributes:before {
738
+ content: "\e155";
739
+ }
740
+ #nifty_wrapper .glyphicon-sort-by-attributes-alt:before {
741
+ content: "\e156";
742
+ }
743
+ #nifty_wrapper .glyphicon-unchecked:before {
744
+ content: "\e157";
745
+ }
746
+ #nifty_wrapper .glyphicon-expand:before {
747
+ content: "\e158";
748
+ }
749
+ #nifty_wrapper .glyphicon-collapse-down:before {
750
+ content: "\e159";
751
+ }
752
+ #nifty_wrapper .glyphicon-collapse-up:before {
753
+ content: "\e160";
754
+ }
755
+ #nifty_wrapper .glyphicon-log-in:before {
756
+ content: "\e161";
757
+ }
758
+ #nifty_wrapper .glyphicon-flash:before {
759
+ content: "\e162";
760
+ }
761
+ #nifty_wrapper .glyphicon-log-out:before {
762
+ content: "\e163";
763
+ }
764
+ #nifty_wrapper .glyphicon-new-window:before {
765
+ content: "\e164";
766
+ }
767
+ #nifty_wrapper .glyphicon-record:before {
768
+ content: "\e165";
769
+ }
770
+ #nifty_wrapper .glyphicon-save:before {
771
+ content: "\e166";
772
+ }
773
+ #nifty_wrapper .glyphicon-open:before {
774
+ content: "\e167";
775
+ }
776
+ #nifty_wrapper .glyphicon-saved:before {
777
+ content: "\e168";
778
+ }
779
+ #nifty_wrapper .glyphicon-import:before {
780
+ content: "\e169";
781
+ }
782
+ #nifty_wrapper .glyphicon-export:before {
783
+ content: "\e170";
784
+ }
785
+ #nifty_wrapper .glyphicon-send:before {
786
+ content: "\e171";
787
+ }
788
+ #nifty_wrapper .glyphicon-floppy-disk:before {
789
+ content: "\e172";
790
+ }
791
+ #nifty_wrapper .glyphicon-floppy-saved:before {
792
+ content: "\e173";
793
+ }
794
+ #nifty_wrapper .glyphicon-floppy-remove:before {
795
+ content: "\e174";
796
+ }
797
+ #nifty_wrapper .glyphicon-floppy-save:before {
798
+ content: "\e175";
799
+ }
800
+ #nifty_wrapper .glyphicon-floppy-open:before {
801
+ content: "\e176";
802
+ }
803
+ #nifty_wrapper .glyphicon-credit-card:before {
804
+ content: "\e177";
805
+ }
806
+ #nifty_wrapper .glyphicon-transfer:before {
807
+ content: "\e178";
808
+ }
809
+ #nifty_wrapper .glyphicon-cutlery:before {
810
+ content: "\e179";
811
+ }
812
+ #nifty_wrapper .glyphicon-header:before {
813
+ content: "\e180";
814
+ }
815
+ #nifty_wrapper .glyphicon-compressed:before {
816
+ content: "\e181";
817
+ }
818
+ #nifty_wrapper .glyphicon-earphone:before {
819
+ content: "\e182";
820
+ }
821
+ #nifty_wrapper .glyphicon-phone-alt:before {
822
+ content: "\e183";
823
+ }
824
+ #nifty_wrapper .glyphicon-tower:before {
825
+ content: "\e184";
826
+ }
827
+ #nifty_wrapper .glyphicon-stats:before {
828
+ content: "\e185";
829
+ }
830
+ #nifty_wrapper .glyphicon-sd-video:before {
831
+ content: "\e186";
832
+ }
833
+ #nifty_wrapper .glyphicon-hd-video:before {
834
+ content: "\e187";
835
+ }
836
+ #nifty_wrapper .glyphicon-subtitles:before {
837
+ content: "\e188";
838
+ }
839
+ #nifty_wrapper .glyphicon-sound-stereo:before {
840
+ content: "\e189";
841
+ }
842
+ #nifty_wrapper .glyphicon-sound-dolby:before {
843
+ content: "\e190";
844
+ }
845
+ #nifty_wrapper .glyphicon-sound-5-1:before {
846
+ content: "\e191";
847
+ }
848
+ #nifty_wrapper .glyphicon-sound-6-1:before {
849
+ content: "\e192";
850
+ }
851
+ #nifty_wrapper .glyphicon-sound-7-1:before {
852
+ content: "\e193";
853
+ }
854
+ #nifty_wrapper .glyphicon-copyright-mark:before {
855
+ content: "\e194";
856
+ }
857
+ #nifty_wrapper .glyphicon-registration-mark:before {
858
+ content: "\e195";
859
+ }
860
+ #nifty_wrapper .glyphicon-cloud-download:before {
861
+ content: "\e197";
862
+ }
863
+ #nifty_wrapper .glyphicon-cloud-upload:before {
864
+ content: "\e198";
865
+ }
866
+ #nifty_wrapper .glyphicon-tree-conifer:before {
867
+ content: "\e199";
868
+ }
869
+ #nifty_wrapper .glyphicon-tree-deciduous:before {
870
+ content: "\e200";
871
+ }
872
+ #nifty_wrapper .glyphicon-cd:before {
873
+ content: "\e201";
874
+ }
875
+ #nifty_wrapper .glyphicon-save-file:before {
876
+ content: "\e202";
877
+ }
878
+ #nifty_wrapper .glyphicon-open-file:before {
879
+ content: "\e203";
880
+ }
881
+ #nifty_wrapper .glyphicon-level-up:before {
882
+ content: "\e204";
883
+ }
884
+ #nifty_wrapper .glyphicon-copy:before {
885
+ content: "\e205";
886
+ }
887
+ #nifty_wrapper .glyphicon-paste:before {
888
+ content: "\e206";
889
+ }
890
+ #nifty_wrapper .glyphicon-alert:before {
891
+ content: "\e209";
892
+ }
893
+ #nifty_wrapper .glyphicon-equalizer:before {
894
+ content: "\e210";
895
+ }
896
+ #nifty_wrapper .glyphicon-king:before {
897
+ content: "\e211";
898
+ }
899
+ #nifty_wrapper .glyphicon-queen:before {
900
+ content: "\e212";
901
+ }
902
+ #nifty_wrapper .glyphicon-pawn:before {
903
+ content: "\e213";
904
+ }
905
+ #nifty_wrapper .glyphicon-bishop:before {
906
+ content: "\e214";
907
+ }
908
+ #nifty_wrapper .glyphicon-knight:before {
909
+ content: "\e215";
910
+ }
911
+ #nifty_wrapper .glyphicon-baby-formula:before {
912
+ content: "\e216";
913
+ }
914
+ #nifty_wrapper .glyphicon-tent:before {
915
+ content: "\26fa";
916
+ }
917
+ #nifty_wrapper .glyphicon-blackboard:before {
918
+ content: "\e218";
919
+ }
920
+ #nifty_wrapper .glyphicon-bed:before {
921
+ content: "\e219";
922
+ }
923
+ #nifty_wrapper .glyphicon-apple:before {
924
+ content: "\f8ff";
925
+ }
926
+ #nifty_wrapper .glyphicon-erase:before {
927
+ content: "\e221";
928
+ }
929
+ #nifty_wrapper .glyphicon-hourglass:before {
930
+ content: "\231b";
931
+ }
932
+ #nifty_wrapper .glyphicon-lamp:before {
933
+ content: "\e223";
934
+ }
935
+ #nifty_wrapper .glyphicon-duplicate:before {
936
+ content: "\e224";
937
+ }
938
+ #nifty_wrapper .glyphicon-piggy-bank:before {
939
+ content: "\e225";
940
+ }
941
+ #nifty_wrapper .glyphicon-scissors:before {
942
+ content: "\e226";
943
+ }
944
+ #nifty_wrapper .glyphicon-bitcoin:before {
945
+ content: "\e227";
946
+ }
947
+ #nifty_wrapper .glyphicon-btc:before {
948
+ content: "\e227";
949
+ }
950
+ #nifty_wrapper .glyphicon-xbt:before {
951
+ content: "\e227";
952
+ }
953
+ #nifty_wrapper .glyphicon-yen:before {
954
+ content: "\00a5";
955
+ }
956
+ #nifty_wrapper .glyphicon-jpy:before {
957
+ content: "\00a5";
958
+ }
959
+ #nifty_wrapper .glyphicon-ruble:before {
960
+ content: "\20bd";
961
+ }
962
+ #nifty_wrapper .glyphicon-rub:before {
963
+ content: "\20bd";
964
+ }
965
+ #nifty_wrapper .glyphicon-scale:before {
966
+ content: "\e230";
967
+ }
968
+ #nifty_wrapper .glyphicon-ice-lolly:before {
969
+ content: "\e231";
970
+ }
971
+ #nifty_wrapper .glyphicon-ice-lolly-tasted:before {
972
+ content: "\e232";
973
+ }
974
+ #nifty_wrapper .glyphicon-education:before {
975
+ content: "\e233";
976
+ }
977
+ #nifty_wrapper .glyphicon-option-horizontal:before {
978
+ content: "\e234";
979
+ }
980
+ #nifty_wrapper .glyphicon-option-vertical:before {
981
+ content: "\e235";
982
+ }
983
+ #nifty_wrapper .glyphicon-menu-hamburger:before {
984
+ content: "\e236";
985
+ }
986
+ #nifty_wrapper .glyphicon-modal-window:before {
987
+ content: "\e237";
988
+ }
989
+ #nifty_wrapper .glyphicon-oil:before {
990
+ content: "\e238";
991
+ }
992
+ #nifty_wrapper .glyphicon-grain:before {
993
+ content: "\e239";
994
+ }
995
+ #nifty_wrapper .glyphicon-sunglasses:before {
996
+ content: "\e240";
997
+ }
998
+ #nifty_wrapper .glyphicon-text-size:before {
999
+ content: "\e241";
1000
+ }
1001
+ #nifty_wrapper .glyphicon-text-color:before {
1002
+ content: "\e242";
1003
+ }
1004
+ #nifty_wrapper .glyphicon-text-background:before {
1005
+ content: "\e243";
1006
+ }
1007
+ #nifty_wrapper .glyphicon-object-align-top:before {
1008
+ content: "\e244";
1009
+ }
1010
+ #nifty_wrapper .glyphicon-object-align-bottom:before {
1011
+ content: "\e245";
1012
+ }
1013
+ #nifty_wrapper .glyphicon-object-align-horizontal:before {
1014
+ content: "\e246";
1015
+ }
1016
+ #nifty_wrapper .glyphicon-object-align-left:before {
1017
+ content: "\e247";
1018
+ }
1019
+ #nifty_wrapper .glyphicon-object-align-vertical:before {
1020
+ content: "\e248";
1021
+ }
1022
+ #nifty_wrapper .glyphicon-object-align-right:before {
1023
+ content: "\e249";
1024
+ }
1025
+ #nifty_wrapper .glyphicon-triangle-right:before {
1026
+ content: "\e250";
1027
+ }
1028
+ #nifty_wrapper .glyphicon-triangle-left:before {
1029
+ content: "\e251";
1030
+ }
1031
+ #nifty_wrapper .glyphicon-triangle-bottom:before {
1032
+ content: "\e252";
1033
+ }
1034
+ #nifty_wrapper .glyphicon-triangle-top:before {
1035
+ content: "\e253";
1036
+ }
1037
+ #nifty_wrapper .glyphicon-console:before {
1038
+ content: "\e254";
1039
+ }
1040
+ #nifty_wrapper .glyphicon-superscript:before {
1041
+ content: "\e255";
1042
+ }
1043
+ #nifty_wrapper .glyphicon-subscript:before {
1044
+ content: "\e256";
1045
+ }
1046
+ #nifty_wrapper .glyphicon-menu-left:before {
1047
+ content: "\e257";
1048
+ }
1049
+ #nifty_wrapper .glyphicon-menu-right:before {
1050
+ content: "\e258";
1051
+ }
1052
+ #nifty_wrapper .glyphicon-menu-down:before {
1053
+ content: "\e259";
1054
+ }
1055
+ #nifty_wrapper .glyphicon-menu-up:before {
1056
+ content: "\e260";
1057
+ }
1058
+ #nifty_wrapper * {
1059
+ -webkit-box-sizing: border-box;
1060
+ -moz-box-sizing: border-box;
1061
+ box-sizing: border-box;
1062
+ }
1063
+ #nifty_wrapper *:before,
1064
+ #nifty_wrapper *:after {
1065
+ -webkit-box-sizing: border-box;
1066
+ -moz-box-sizing: border-box;
1067
+ box-sizing: border-box;
1068
+ }
1069
+ #nifty_wrapper html {
1070
+ font-size: 10px;
1071
+ #nifty_wrapper -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1072
+ }
1073
+ #nifty_wrapper body {
1074
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1075
+ font-size: 14px;
1076
+ line-height: 1.52857143;
1077
+ color: #515253;
1078
+ background-color: #f5f7fa;
1079
+ }
1080
+ #nifty_wrapper input,
1081
+ #nifty_wrapper button,
1082
+ #nifty_wrapper select,
1083
+ #nifty_wrapper textarea {
1084
+ font-family: inherit;
1085
+ font-size: inherit;
1086
+ line-height: inherit;
1087
+ }
1088
+ #nifty_wrapper a {
1089
+ color: #5d9cec;
1090
+ text-decoration: none;
1091
+ }
1092
+ #nifty_wrapper a:hover,
1093
+ #nifty_wrapper a:focus {
1094
+ color: #1b72e2;
1095
+ text-decoration: underline;
1096
+ }
1097
+ #nifty_wrapper a:focus {
1098
+ outline: thin dotted;
1099
+ outline: 5px auto -webkit-focus-ring-color;
1100
+ outline-offset: -2px;
1101
+ }
1102
+ #nifty_wrapper figure {
1103
+ margin: 0;
1104
+ }
1105
+ #nifty_wrapper img {
1106
+ vertical-align: middle;
1107
+ }
1108
+ #nifty_wrapper .img-responsive,
1109
+ #nifty_wrapper .thumbnail > img,
1110
+ #nifty_wrapper .thumbnail a > img,
1111
+ #nifty_wrapper .carousel-inner > .item > img,
1112
+ #nifty_wrapper .carousel-inner > .item > a > img {
1113
+ display: block;
1114
+ max-width: 100%;
1115
+ height: auto;
1116
+ }
1117
+ #nifty_wrapper .img-rounded {
1118
+ border-radius: 6px;
1119
+ }
1120
+ #nifty_wrapper .img-thumbnail {
1121
+ padding: 2px;
1122
+ line-height: 1.52857143;
1123
+ background-color: #e1e2e3;
1124
+ border: 1px solid #e1e2e3;
1125
+ border-radius: 3px;
1126
+ -webkit-transition: all 0.2s ease-in-out;
1127
+ -o-transition: all 0.2s ease-in-out;
1128
+ transition: all 0.2s ease-in-out;
1129
+ display: inline-block;
1130
+ max-width: 100%;
1131
+ height: auto;
1132
+ }
1133
+ #nifty_wrapper .img-circle {
1134
+ border-radius: 50%;
1135
+ }
1136
+ #nifty_wrapper hr {
1137
+ margin-top: 21px;
1138
+ margin-bottom: 21px;
1139
+ border: 0;
1140
+ border-top: 1px solid #edf1f2;
1141
+ }
1142
+ #nifty_wrapper .sr-only {
1143
+ position: absolute;
1144
+ width: 1px;
1145
+ height: 1px;
1146
+ margin: -1px;
1147
+ padding: 0;
1148
+ overflow: hidden;
1149
+ #nifty_wrapper clip: rect(0, 0, 0, 0);
1150
+ border: 0;
1151
+ }
1152
+ #nifty_wrapper .sr-only-focusable:active,
1153
+ #nifty_wrapper .sr-only-focusable:focus {
1154
+ position: static;
1155
+ width: auto;
1156
+ height: auto;
1157
+ margin: 0;
1158
+ overflow: visible;
1159
+ clip: auto;
1160
+ }
1161
+ #nifty_wrapper [role="button"] {
1162
+ cursor: pointer;
1163
+ }
1164
+ #nifty_wrapper h1,
1165
+ #nifty_wrapper h2,
1166
+ #nifty_wrapper h3,
1167
+ #nifty_wrapper h4,
1168
+ #nifty_wrapper h5,
1169
+ #nifty_wrapper h6,
1170
+ #nifty_wrapper .h1,
1171
+ #nifty_wrapper .h2,
1172
+ #nifty_wrapper .h3,
1173
+ #nifty_wrapper .h4,
1174
+ #nifty_wrapper .h5,
1175
+ #nifty_wrapper .h6 {
1176
+ font-family: inherit;
1177
+ font-weight: 500;
1178
+ line-height: 1.1;
1179
+ color: inherit;
1180
+ }
1181
+ #nifty_wrapper h1 small,
1182
+ #nifty_wrapper h2 small,
1183
+ #nifty_wrapper h3 small,
1184
+ #nifty_wrapper h4 small,
1185
+ #nifty_wrapper h5 small,
1186
+ #nifty_wrapper h6 small,
1187
+ #nifty_wrapper .h1 small,
1188
+ #nifty_wrapper .h2 small,
1189
+ #nifty_wrapper .h3 small,
1190
+ #nifty_wrapper .h4 small,
1191
+ #nifty_wrapper .h5 small,
1192
+ #nifty_wrapper .h6 small,
1193
+ #nifty_wrapper h1 .small,
1194
+ #nifty_wrapper h2 .small,
1195
+ #nifty_wrapper h3 .small,
1196
+ #nifty_wrapper h4 .small,
1197
+ #nifty_wrapper h5 .small,
1198
+ #nifty_wrapper h6 .small,
1199
+ #nifty_wrapper .h1 .small,
1200
+ #nifty_wrapper .h2 .small,
1201
+ #nifty_wrapper .h3 .small,
1202
+ #nifty_wrapper .h4 .small,
1203
+ #nifty_wrapper .h5 .small,
1204
+ #nifty_wrapper .h6 .small {
1205
+ font-weight: normal;
1206
+ line-height: 1;
1207
+ color: #3a3f51;
1208
+ }
1209
+ #nifty_wrapper h1,
1210
+ #nifty_wrapper .h1,
1211
+ #nifty_wrapper h2,
1212
+ #nifty_wrapper .h2,
1213
+ #nifty_wrapper h3,
1214
+ #nifty_wrapper .h3 {
1215
+ margin-top: 21px;
1216
+ margin-bottom: 10.5px;
1217
+ }
1218
+ #nifty_wrapper h1 small,
1219
+ #nifty_wrapper .h1 small,
1220
+ #nifty_wrapper h2 small,
1221
+ #nifty_wrapper .h2 small,
1222
+ #nifty_wrapper h3 small,
1223
+ #nifty_wrapper .h3 small,
1224
+ #nifty_wrapper h1 .small,
1225
+ #nifty_wrapper .h1 .small,
1226
+ #nifty_wrapper h2 .small,
1227
+ #nifty_wrapper .h2 .small,
1228
+ #nifty_wrapper h3 .small,
1229
+ #nifty_wrapper .h3 .small {
1230
+ font-size: 65%;
1231
+ }
1232
+ #nifty_wrapper h4,
1233
+ #nifty_wrapper .h4,
1234
+ #nifty_wrapper h5,
1235
+ #nifty_wrapper .h5,
1236
+ #nifty_wrapper h6,
1237
+ #nifty_wrapper .h6 {
1238
+ margin-top: 10.5px;
1239
+ margin-bottom: 10.5px;
1240
+ }
1241
+ #nifty_wrapper h4 small,
1242
+ #nifty_wrapper .h4 small,
1243
+ #nifty_wrapper h5 small,
1244
+ #nifty_wrapper .h5 small,
1245
+ #nifty_wrapper h6 small,
1246
+ #nifty_wrapper .h6 small,
1247
+ #nifty_wrapper h4 .small,
1248
+ #nifty_wrapper .h4 .small,
1249
+ #nifty_wrapper h5 .small,
1250
+ #nifty_wrapper .h5 .small,
1251
+ #nifty_wrapper h6 .small,
1252
+ #nifty_wrapper .h6 .small {
1253
+ font-size: 75%;
1254
+ }
1255
+ #nifty_wrapper h1,
1256
+ #nifty_wrapper .h1 {
1257
+ font-size: 36px;
1258
+ }
1259
+ #nifty_wrapper h2,
1260
+ #nifty_wrapper .h2 {
1261
+ font-size: 30px;
1262
+ }
1263
+ #nifty_wrapper h3,
1264
+ #nifty_wrapper .h3 {
1265
+ font-size: 24px;
1266
+ }
1267
+ #nifty_wrapper h4,
1268
+ #nifty_wrapper .h4 {
1269
+ font-size: 18px;
1270
+ }
1271
+ #nifty_wrapper h5,
1272
+ #nifty_wrapper .h5 {
1273
+ font-size: 14px;
1274
+ }
1275
+ #nifty_wrapper h6,
1276
+ #nifty_wrapper .h6 {
1277
+ font-size: 12px;
1278
+ }
1279
+ #nifty_wrapper p {
1280
+ margin: 0 0 10.5px;
1281
+ }
1282
+ #nifty_wrapper .lead {
1283
+ margin-bottom: 21px;
1284
+ font-size: 16px;
1285
+ font-weight: 300;
1286
+ line-height: 1.4;
1287
+ }
1288
+ @media (min-width: 768px) {
1289
+ #nifty_wrapper .lead {
1290
+ font-size: 21px;
1291
+ }
1292
+ }
1293
+ #nifty_wrapper small,
1294
+ #nifty_wrapper .small {
1295
+ font-size: 85%;
1296
+ }
1297
+ #nifty_wrapper mark,
1298
+ #nifty_wrapper .mark {
1299
+ background-color: #fcf8e3;
1300
+ padding: .2em;
1301
+ }
1302
+ #nifty_wrapper .text-left {
1303
+ text-align: left;
1304
+ }
1305
+ #nifty_wrapper .text-right {
1306
+ text-align: right;
1307
+ }
1308
+ #nifty_wrapper .text-center {
1309
+ text-align: center;
1310
+ }
1311
+ #nifty_wrapper .text-justify {
1312
+ text-align: justify;
1313
+ }
1314
+ #nifty_wrapper .text-nowrap {
1315
+ white-space: nowrap;
1316
+ }
1317
+ #nifty_wrapper .text-lowercase {
1318
+ text-transform: lowercase;
1319
+ }
1320
+ #nifty_wrapper .text-uppercase {
1321
+ text-transform: uppercase;
1322
+ }
1323
+ #nifty_wrapper .text-capitalize {
1324
+ text-transform: capitalize;
1325
+ }
1326
+ #nifty_wrapper .text-muted {
1327
+ color: #909fa7;
1328
+ }
1329
+ #nifty_wrapper .text-primary {
1330
+ color: #5d9cec;
1331
+ }
1332
+ a.text-primary:hover,
1333
+ a.text-primary:focus {
1334
+ color: #2f80e7;
1335
+ }
1336
+ #nifty_wrapper .text-success {
1337
+ color: #27c24c;
1338
+ }
1339
+ a.text-success:hover,
1340
+ a.text-success:focus {
1341
+ color: #1e983b;
1342
+ }
1343
+ #nifty_wrapper .text-info {
1344
+ color: #23b7e5;
1345
+ }
1346
+ a.text-info:hover,
1347
+ a.text-info:focus {
1348
+ color: #1797be;
1349
+ }
1350
+ #nifty_wrapper .text-warning {
1351
+ color: #ff902b;
1352
+ }
1353
+ a.text-warning:hover,
1354
+ a.text-warning:focus {
1355
+ color: #f77600;
1356
+ }
1357
+ #nifty_wrapper .text-danger {
1358
+ color: #f05050;
1359
+ }
1360
+ a.text-danger:hover,
1361
+ a.text-danger:focus {
1362
+ color: #ec2121;
1363
+ }
1364
+ #nifty_wrapper .bg-primary {
1365
+ color: #fff;
1366
+ background-color: #5d9cec;
1367
+ }
1368
+ a.bg-primary:hover,
1369
+ a.bg-primary:focus {
1370
+ background-color: #2f80e7;
1371
+ }
1372
+ #nifty_wrapper .bg-success {
1373
+ background-color: #dff0d8;
1374
+ }
1375
+ a.bg-success:hover,
1376
+ a.bg-success:focus {
1377
+ background-color: #c1e2b3;
1378
+ }
1379
+ #nifty_wrapper .bg-info {
1380
+ background-color: #d9edf7;
1381
+ }
1382
+ a.bg-info:hover,
1383
+ a.bg-info:focus {
1384
+ background-color: #afd9ee;
1385
+ }
1386
+ #nifty_wrapper .bg-warning {
1387
+ background-color: #fcf8e3;
1388
+ }
1389
+ a.bg-warning:hover,
1390
+ a.bg-warning:focus {
1391
+ background-color: #f7ecb5;
1392
+ }
1393
+ #nifty_wrapper .bg-danger {
1394
+ background-color: #f2dede;
1395
+ }
1396
+ a.bg-danger:hover,
1397
+ a.bg-danger:focus {
1398
+ background-color: #e4b9b9;
1399
+ }
1400
+ #nifty_wrapper .page-header {
1401
+ padding-bottom: 9.5px;
1402
+ margin: 42px 0 21px;
1403
+ border-bottom: 1px solid #edf1f2;
1404
+ }
1405
+ #nifty_wrapper ul,
1406
+ #nifty_wrapper ol {
1407
+ margin-top: 0;
1408
+ margin-bottom: 10.5px;
1409
+ }
1410
+ #nifty_wrapper ul ul,
1411
+ #nifty_wrapper ol ul,
1412
+ #nifty_wrapper ul ol,
1413
+ #nifty_wrapper ol ol {
1414
+ margin-bottom: 0;
1415
+ }
1416
+ #nifty_wrapper .list-unstyled {
1417
+ padding-left: 0;
1418
+ list-style: none;
1419
+ }
1420
+ #nifty_wrapper .list-inline {
1421
+ padding-left: 0;
1422
+ list-style: none;
1423
+ margin-left: -5px;
1424
+ }
1425
+ #nifty_wrapper .list-inline > li {
1426
+ display: inline-block;
1427
+ padding-left: 5px;
1428
+ padding-right: 5px;
1429
+ }
1430
+ #nifty_wrapper dl {
1431
+ margin-top: 0;
1432
+ margin-bottom: 21px;
1433
+ }
1434
+ #nifty_wrapper dt,
1435
+ #nifty_wrapper dd {
1436
+ line-height: 1.52857143;
1437
+ }
1438
+ #nifty_wrapper dt {
1439
+ font-weight: bold;
1440
+ }
1441
+ #nifty_wrapper dd {
1442
+ margin-left: 0;
1443
+ }
1444
+ @media (min-width: 768px) {
1445
+ #nifty_wrapper .dl-horizontal dt {
1446
+ float: left;
1447
+ width: 160px;
1448
+ clear: left;
1449
+ text-align: right;
1450
+ overflow: hidden;
1451
+ text-overflow: ellipsis;
1452
+ white-space: nowrap;
1453
+ }
1454
+ #nifty_wrapper .dl-horizontal dd {
1455
+ margin-left: 180px;
1456
+ }
1457
+ }
1458
+ abbr[title],
1459
+ abbr[data-original-title] {
1460
+ cursor: help;
1461
+ border-bottom: 1px dotted #3a3f51;
1462
+ }
1463
+ #nifty_wrapper .initialism {
1464
+ font-size: 90%;
1465
+ text-transform: uppercase;
1466
+ }
1467
+ #nifty_wrapper blockquote {
1468
+ padding: 10.5px 21px;
1469
+ margin: 0 0 21px;
1470
+ font-size: 17.5px;
1471
+ border-left: 5px solid #edf1f2;
1472
+ }
1473
+ #nifty_wrapper blockquote p:last-child,
1474
+ #nifty_wrapper blockquote ul:last-child,
1475
+ #nifty_wrapper blockquote ol:last-child {
1476
+ margin-bottom: 0;
1477
+ }
1478
+ #nifty_wrapper blockquote footer,
1479
+ #nifty_wrapper blockquote small,
1480
+ #nifty_wrapper blockquote .small {
1481
+ display: block;
1482
+ font-size: 80%;
1483
+ line-height: 1.52857143;
1484
+ color: #3a3f51;
1485
+ }
1486
+ #nifty_wrapper blockquote footer:before,
1487
+ #nifty_wrapper blockquote small:before,
1488
+ #nifty_wrapper blockquote .small:before {
1489
+ content: '\2014 \00A0';
1490
+ }
1491
+ #nifty_wrapper .blockquote-reverse,
1492
+ #nifty_wrapper blockquote.pull-right {
1493
+ padding-right: 15px;
1494
+ padding-left: 0;
1495
+ border-right: 5px solid #edf1f2;
1496
+ border-left: 0;
1497
+ text-align: right;
1498
+ }
1499
+ #nifty_wrapper .blockquote-reverse footer:before,
1500
+ #nifty_wrapper blockquote.pull-right footer:before,
1501
+ #nifty_wrapper .blockquote-reverse small:before,
1502
+ #nifty_wrapper blockquote.pull-right small:before,
1503
+ #nifty_wrapper .blockquote-reverse .small:before,
1504
+ #nifty_wrapper blockquote.pull-right .small:before {
1505
+ content: '';
1506
+ }
1507
+ #nifty_wrapper .blockquote-reverse footer:after,
1508
+ #nifty_wrapper blockquote.pull-right footer:after,
1509
+ #nifty_wrapper .blockquote-reverse small:after,
1510
+ #nifty_wrapper blockquote.pull-right small:after,
1511
+ #nifty_wrapper .blockquote-reverse .small:after,
1512
+ #nifty_wrapper blockquote.pull-right .small:after {
1513
+ content: '\00A0 \2014';
1514
+ }
1515
+ address {
1516
+ margin-bottom: 21px;
1517
+ font-style: normal;
1518
+ line-height: 1.52857143;
1519
+ }
1520
+ #nifty_wrapper code,
1521
+ #nifty_wrapper kbd,
1522
+ #nifty_wrapper pre,
1523
+ #nifty_wrapper samp {
1524
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
1525
+ }
1526
+ #nifty_wrapper code {
1527
+ padding: 2px 4px;
1528
+ font-size: 90%;
1529
+ color: #c7254e;
1530
+ background-color: #f9f2f4;
1531
+ border-radius: 4px;
1532
+ }
1533
+ #nifty_wrapper kbd {
1534
+ padding: 2px 4px;
1535
+ font-size: 90%;
1536
+ color: #ffffff;
1537
+ background-color: #333333;
1538
+ border-radius: 3px;
1539
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
1540
+ }
1541
+ #nifty_wrapper kbd kbd {
1542
+ padding: 0;
1543
+ font-size: 100%;
1544
+ font-weight: bold;
1545
+ box-shadow: none;
1546
+ }
1547
+ #nifty_wrapper pre {
1548
+ display: block;
1549
+ padding: 10px;
1550
+ margin: 0 0 10.5px;
1551
+ font-size: 13px;
1552
+ line-height: 1.52857143;
1553
+ word-break: break-all;
1554
+ word-wrap: break-word;
1555
+ color: #3a3f51;
1556
+ background-color: #f5f5f5;
1557
+ border: 1px solid #cccccc;
1558
+ border-radius: 4px;
1559
+ }
1560
+ #nifty_wrapper pre code {
1561
+ padding: 0;
1562
+ font-size: inherit;
1563
+ color: inherit;
1564
+ white-space: pre-wrap;
1565
+ background-color: transparent;
1566
+ border-radius: 0;
1567
+ }
1568
+ #nifty_wrapper .pre-scrollable {
1569
+ max-height: 340px;
1570
+ overflow-y: scroll;
1571
+ }
1572
+ #nifty_wrapper .container {
1573
+ margin-right: auto;
1574
+ margin-left: auto;
1575
+ padding-left: 15px;
1576
+ padding-right: 15px;
1577
+ }
1578
+ @media (min-width: 768px) {
1579
+ #nifty_wrapper .container {
1580
+ width: 750px;
1581
+ }
1582
+ }
1583
+ @media (min-width: 992px) {
1584
+ #nifty_wrapper .container {
1585
+ width: 970px;
1586
+ }
1587
+ }
1588
+ @media (min-width: 1200px) {
1589
+ #nifty_wrapper .container {
1590
+ width: 1170px;
1591
+ }
1592
+ }
1593
+ #nifty_wrapper .container-fluid {
1594
+ margin-right: auto;
1595
+ margin-left: auto;
1596
+ padding-left: 15px;
1597
+ padding-right: 15px;
1598
+ }
1599
+ #nifty_wrapper .row {
1600
+ margin-left: -15px;
1601
+ margin-right: -15px;
1602
+ }
1603
+ #nifty_wrapper .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
1604
+ position: relative;
1605
+ min-height: 1px;
1606
+ padding-left: 15px;
1607
+ padding-right: 15px;
1608
+ }
1609
+ #nifty_wrapper .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
1610
+ float: left;
1611
+ }
1612
+ #nifty_wrapper .col-xs-12 {
1613
+ width: 100%;
1614
+ }
1615
+ #nifty_wrapper .col-xs-11 {
1616
+ width: 91.66666667%;
1617
+ }
1618
+ #nifty_wrapper .col-xs-10 {
1619
+ width: 83.33333333%;
1620
+ }
1621
+ #nifty_wrapper .col-xs-9 {
1622
+ width: 75%;
1623
+ }
1624
+ #nifty_wrapper .col-xs-8 {
1625
+ width: 66.66666667%;
1626
+ }
1627
+ #nifty_wrapper .col-xs-7 {
1628
+ width: 58.33333333%;
1629
+ }
1630
+ #nifty_wrapper .col-xs-6 {
1631
+ width: 50%;
1632
+ }
1633
+ #nifty_wrapper .col-xs-5 {
1634
+ width: 41.66666667%;
1635
+ }
1636
+ #nifty_wrapper .col-xs-4 {
1637
+ width: 33.33333333%;
1638
+ }
1639
+ #nifty_wrapper .col-xs-3 {
1640
+ width: 25%;
1641
+ }
1642
+ #nifty_wrapper .col-xs-2 {
1643
+ width: 16.66666667%;
1644
+ }
1645
+ #nifty_wrapper .col-xs-1 {
1646
+ width: 8.33333333%;
1647
+ }
1648
+ #nifty_wrapper .col-xs-pull-12 {
1649
+ right: 100%;
1650
+ }
1651
+ #nifty_wrapper .col-xs-pull-11 {
1652
+ right: 91.66666667%;
1653
+ }
1654
+ #nifty_wrapper .col-xs-pull-10 {
1655
+ right: 83.33333333%;
1656
+ }
1657
+ #nifty_wrapper .col-xs-pull-9 {
1658
+ right: 75%;
1659
+ }
1660
+ #nifty_wrapper .col-xs-pull-8 {
1661
+ right: 66.66666667%;
1662
+ }
1663
+ #nifty_wrapper .col-xs-pull-7 {
1664
+ right: 58.33333333%;
1665
+ }
1666
+ #nifty_wrapper .col-xs-pull-6 {
1667
+ right: 50%;
1668
+ }
1669
+ #nifty_wrapper .col-xs-pull-5 {
1670
+ right: 41.66666667%;
1671
+ }
1672
+ #nifty_wrapper .col-xs-pull-4 {
1673
+ right: 33.33333333%;
1674
+ }
1675
+ #nifty_wrapper .col-xs-pull-3 {
1676
+ right: 25%;
1677
+ }
1678
+ #nifty_wrapper .col-xs-pull-2 {
1679
+ right: 16.66666667%;
1680
+ }
1681
+ #nifty_wrapper .col-xs-pull-1 {
1682
+ right: 8.33333333%;
1683
+ }
1684
+ #nifty_wrapper .col-xs-pull-0 {
1685
+ right: auto;
1686
+ }
1687
+ #nifty_wrapper .col-xs-push-12 {
1688
+ left: 100%;
1689
+ }
1690
+ #nifty_wrapper .col-xs-push-11 {
1691
+ left: 91.66666667%;
1692
+ }
1693
+ #nifty_wrapper .col-xs-push-10 {
1694
+ left: 83.33333333%;
1695
+ }
1696
+ #nifty_wrapper .col-xs-push-9 {
1697
+ left: 75%;
1698
+ }
1699
+ #nifty_wrapper .col-xs-push-8 {
1700
+ left: 66.66666667%;
1701
+ }
1702
+ #nifty_wrapper .col-xs-push-7 {
1703
+ left: 58.33333333%;
1704
+ }
1705
+ #nifty_wrapper .col-xs-push-6 {
1706
+ left: 50%;
1707
+ }
1708
+ #nifty_wrapper .col-xs-push-5 {
1709
+ left: 41.66666667%;
1710
+ }
1711
+ #nifty_wrapper .col-xs-push-4 {
1712
+ left: 33.33333333%;
1713
+ }
1714
+ #nifty_wrapper .col-xs-push-3 {
1715
+ left: 25%;
1716
+ }
1717
+ #nifty_wrapper .col-xs-push-2 {
1718
+ left: 16.66666667%;
1719
+ }
1720
+ #nifty_wrapper .col-xs-push-1 {
1721
+ left: 8.33333333%;
1722
+ }
1723
+ #nifty_wrapper .col-xs-push-0 {
1724
+ left: auto;
1725
+ }
1726
+ #nifty_wrapper .col-xs-offset-12 {
1727
+ margin-left: 100%;
1728
+ }
1729
+ #nifty_wrapper .col-xs-offset-11 {
1730
+ margin-left: 91.66666667%;
1731
+ }
1732
+ #nifty_wrapper .col-xs-offset-10 {
1733
+ margin-left: 83.33333333%;
1734
+ }
1735
+ #nifty_wrapper .col-xs-offset-9 {
1736
+ margin-left: 75%;
1737
+ }
1738
+ #nifty_wrapper .col-xs-offset-8 {
1739
+ margin-left: 66.66666667%;
1740
+ }
1741
+ #nifty_wrapper .col-xs-offset-7 {
1742
+ margin-left: 58.33333333%;
1743
+ }
1744
+ #nifty_wrapper .col-xs-offset-6 {
1745
+ margin-left: 50%;
1746
+ }
1747
+ #nifty_wrapper .col-xs-offset-5 {
1748
+ margin-left: 41.66666667%;
1749
+ }
1750
+ #nifty_wrapper .col-xs-offset-4 {
1751
+ margin-left: 33.33333333%;
1752
+ }
1753
+ #nifty_wrapper .col-xs-offset-3 {
1754
+ margin-left: 25%;
1755
+ }
1756
+ #nifty_wrapper .col-xs-offset-2 {
1757
+ margin-left: 16.66666667%;
1758
+ }
1759
+ #nifty_wrapper .col-xs-offset-1 {
1760
+ margin-left: 8.33333333%;
1761
+ }
1762
+ #nifty_wrapper .col-xs-offset-0 {
1763
+ margin-left: 0%;
1764
+ }
1765
+ @media (min-width: 768px) {
1766
+ #nifty_wrapper .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
1767
+ float: left;
1768
+ }
1769
+ #nifty_wrapper .col-sm-12 {
1770
+ width: 100%;
1771
+ }
1772
+ #nifty_wrapper .col-sm-11 {
1773
+ width: 91.66666667%;
1774
+ }
1775
+ #nifty_wrapper .col-sm-10 {
1776
+ width: 83.33333333%;
1777
+ }
1778
+ #nifty_wrapper .col-sm-9 {
1779
+ width: 75%;
1780
+ }
1781
+ #nifty_wrapper .col-sm-8 {
1782
+ width: 66.66666667%;
1783
+ }
1784
+ #nifty_wrapper .col-sm-7 {
1785
+ width: 58.33333333%;
1786
+ }
1787
+ #nifty_wrapper .col-sm-6 {
1788
+ width: 50%;
1789
+ }
1790
+ #nifty_wrapper .col-sm-5 {
1791
+ width: 41.66666667%;
1792
+ }
1793
+ #nifty_wrapper .col-sm-4 {
1794
+ width: 33.33333333%;
1795
+ }
1796
+ #nifty_wrapper .col-sm-3 {
1797
+ width: 25%;
1798
+ }
1799
+ #nifty_wrapper .col-sm-2 {
1800
+ width: 16.66666667%;
1801
+ }
1802
+ #nifty_wrapper .col-sm-1 {
1803
+ width: 8.33333333%;
1804
+ }
1805
+ #nifty_wrapper .col-sm-pull-12 {
1806
+ right: 100%;
1807
+ }
1808
+ #nifty_wrapper .col-sm-pull-11 {
1809
+ right: 91.66666667%;
1810
+ }
1811
+ #nifty_wrapper .col-sm-pull-10 {
1812
+ right: 83.33333333%;
1813
+ }
1814
+ #nifty_wrapper .col-sm-pull-9 {
1815
+ right: 75%;
1816
+ }
1817
+ #nifty_wrapper .col-sm-pull-8 {
1818
+ right: 66.66666667%;
1819
+ }
1820
+ #nifty_wrapper .col-sm-pull-7 {
1821
+ right: 58.33333333%;
1822
+ }
1823
+ #nifty_wrapper .col-sm-pull-6 {
1824
+ right: 50%;
1825
+ }
1826
+ #nifty_wrapper .col-sm-pull-5 {
1827
+ right: 41.66666667%;
1828
+ }
1829
+ #nifty_wrapper .col-sm-pull-4 {
1830
+ right: 33.33333333%;
1831
+ }
1832
+ #nifty_wrapper .col-sm-pull-3 {
1833
+ right: 25%;
1834
+ }
1835
+ #nifty_wrapper .col-sm-pull-2 {
1836
+ right: 16.66666667%;
1837
+ }
1838
+ #nifty_wrapper .col-sm-pull-1 {
1839
+ right: 8.33333333%;
1840
+ }
1841
+ #nifty_wrapper .col-sm-pull-0 {
1842
+ right: auto;
1843
+ }
1844
+ #nifty_wrapper .col-sm-push-12 {
1845
+ left: 100%;
1846
+ }
1847
+ #nifty_wrapper .col-sm-push-11 {
1848
+ left: 91.66666667%;
1849
+ }
1850
+ #nifty_wrapper .col-sm-push-10 {
1851
+ left: 83.33333333%;
1852
+ }
1853
+ #nifty_wrapper .col-sm-push-9 {
1854
+ left: 75%;
1855
+ }
1856
+ #nifty_wrapper .col-sm-push-8 {
1857
+ left: 66.66666667%;
1858
+ }
1859
+ #nifty_wrapper .col-sm-push-7 {
1860
+ left: 58.33333333%;
1861
+ }
1862
+ #nifty_wrapper .col-sm-push-6 {
1863
+ left: 50%;
1864
+ }
1865
+ #nifty_wrapper .col-sm-push-5 {
1866
+ left: 41.66666667%;
1867
+ }
1868
+ #nifty_wrapper .col-sm-push-4 {
1869
+ left: 33.33333333%;
1870
+ }
1871
+ #nifty_wrapper .col-sm-push-3 {
1872
+ left: 25%;
1873
+ }
1874
+ #nifty_wrapper .col-sm-push-2 {
1875
+ left: 16.66666667%;
1876
+ }
1877
+ #nifty_wrapper .col-sm-push-1 {
1878
+ left: 8.33333333%;
1879
+ }
1880
+ #nifty_wrapper .col-sm-push-0 {
1881
+ left: auto;
1882
+ }
1883
+ #nifty_wrapper .col-sm-offset-12 {
1884
+ margin-left: 100%;
1885
+ }
1886
+ #nifty_wrapper .col-sm-offset-11 {
1887
+ margin-left: 91.66666667%;
1888
+ }
1889
+ #nifty_wrapper .col-sm-offset-10 {
1890
+ margin-left: 83.33333333%;
1891
+ }
1892
+ #nifty_wrapper .col-sm-offset-9 {
1893
+ margin-left: 75%;
1894
+ }
1895
+ #nifty_wrapper .col-sm-offset-8 {
1896
+ margin-left: 66.66666667%;
1897
+ }
1898
+ #nifty_wrapper .col-sm-offset-7 {
1899
+ margin-left: 58.33333333%;
1900
+ }
1901
+ #nifty_wrapper .col-sm-offset-6 {
1902
+ margin-left: 50%;
1903
+ }
1904
+ #nifty_wrapper .col-sm-offset-5 {
1905
+ margin-left: 41.66666667%;
1906
+ }
1907
+ #nifty_wrapper .col-sm-offset-4 {
1908
+ margin-left: 33.33333333%;
1909
+ }
1910
+ #nifty_wrapper .col-sm-offset-3 {
1911
+ margin-left: 25%;
1912
+ }
1913
+ #nifty_wrapper .col-sm-offset-2 {
1914
+ margin-left: 16.66666667%;
1915
+ }
1916
+ #nifty_wrapper .col-sm-offset-1 {
1917
+ margin-left: 8.33333333%;
1918
+ }
1919
+ #nifty_wrapper .col-sm-offset-0 {
1920
+ margin-left: 0%;
1921
+ }
1922
+ }
1923
+ @media (min-width: 992px) {
1924
+ #nifty_wrapper .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
1925
+ float: left;
1926
+ }
1927
+ #nifty_wrapper .col-md-12 {
1928
+ width: 100%;
1929
+ }
1930
+ #nifty_wrapper .col-md-11 {
1931
+ width: 91.66666667%;
1932
+ }
1933
+ #nifty_wrapper .col-md-10 {
1934
+ width: 83.33333333%;
1935
+ }
1936
+ #nifty_wrapper .col-md-9 {
1937
+ width: 75%;
1938
+ }
1939
+ #nifty_wrapper .col-md-8 {
1940
+ width: 66.66666667%;
1941
+ }
1942
+ #nifty_wrapper .col-md-7 {
1943
+ width: 58.33333333%;
1944
+ }
1945
+ #nifty_wrapper .col-md-6 {
1946
+ width: 50%;
1947
+ }
1948
+ #nifty_wrapper .col-md-5 {
1949
+ width: 41.66666667%;
1950
+ }
1951
+ #nifty_wrapper .col-md-4 {
1952
+ width: 33.33333333%;
1953
+ }
1954
+ #nifty_wrapper .col-md-3 {
1955
+ width: 25%;
1956
+ }
1957
+ #nifty_wrapper .col-md-2 {
1958
+ width: 16.66666667%;
1959
+ }
1960
+ #nifty_wrapper .col-md-1 {
1961
+ width: 8.33333333%;
1962
+ }
1963
+ #nifty_wrapper .col-md-pull-12 {
1964
+ right: 100%;
1965
+ }
1966
+ #nifty_wrapper .col-md-pull-11 {
1967
+ right: 91.66666667%;
1968
+ }
1969
+ #nifty_wrapper .col-md-pull-10 {
1970
+ right: 83.33333333%;
1971
+ }
1972
+ #nifty_wrapper .col-md-pull-9 {
1973
+ right: 75%;
1974
+ }
1975
+ #nifty_wrapper .col-md-pull-8 {
1976
+ right: 66.66666667%;
1977
+ }
1978
+ #nifty_wrapper .col-md-pull-7 {
1979
+ right: 58.33333333%;
1980
+ }
1981
+ #nifty_wrapper .col-md-pull-6 {
1982
+ right: 50%;
1983
+ }
1984
+ #nifty_wrapper .col-md-pull-5 {
1985
+ right: 41.66666667%;
1986
+ }
1987
+ #nifty_wrapper .col-md-pull-4 {
1988
+ right: 33.33333333%;
1989
+ }
1990
+ #nifty_wrapper .col-md-pull-3 {
1991
+ right: 25%;
1992
+ }
1993
+ #nifty_wrapper .col-md-pull-2 {
1994
+ right: 16.66666667%;
1995
+ }
1996
+ #nifty_wrapper .col-md-pull-1 {
1997
+ right: 8.33333333%;
1998
+ }
1999
+ #nifty_wrapper .col-md-pull-0 {
2000
+ right: auto;
2001
+ }
2002
+ #nifty_wrapper .col-md-push-12 {
2003
+ left: 100%;
2004
+ }
2005
+ #nifty_wrapper .col-md-push-11 {
2006
+ left: 91.66666667%;
2007
+ }
2008
+ #nifty_wrapper .col-md-push-10 {
2009
+ left: 83.33333333%;
2010
+ }
2011
+ #nifty_wrapper .col-md-push-9 {
2012
+ left: 75%;
2013
+ }
2014
+ #nifty_wrapper .col-md-push-8 {
2015
+ left: 66.66666667%;
2016
+ }
2017
+ #nifty_wrapper .col-md-push-7 {
2018
+ left: 58.33333333%;
2019
+ }
2020
+ #nifty_wrapper .col-md-push-6 {
2021
+ left: 50%;
2022
+ }
2023
+ #nifty_wrapper .col-md-push-5 {
2024
+ left: 41.66666667%;
2025
+ }
2026
+ #nifty_wrapper .col-md-push-4 {
2027
+ left: 33.33333333%;
2028
+ }
2029
+ #nifty_wrapper .col-md-push-3 {
2030
+ left: 25%;
2031
+ }
2032
+ #nifty_wrapper .col-md-push-2 {
2033
+ left: 16.66666667%;
2034
+ }
2035
+ #nifty_wrapper .col-md-push-1 {
2036
+ left: 8.33333333%;
2037
+ }
2038
+ #nifty_wrapper .col-md-push-0 {
2039
+ left: auto;
2040
+ }
2041
+ #nifty_wrapper .col-md-offset-12 {
2042
+ margin-left: 100%;
2043
+ }
2044
+ #nifty_wrapper .col-md-offset-11 {
2045
+ margin-left: 91.66666667%;
2046
+ }
2047
+ #nifty_wrapper .col-md-offset-10 {
2048
+ margin-left: 83.33333333%;
2049
+ }
2050
+ #nifty_wrapper .col-md-offset-9 {
2051
+ margin-left: 75%;
2052
+ }
2053
+ #nifty_wrapper .col-md-offset-8 {
2054
+ margin-left: 66.66666667%;
2055
+ }
2056
+ #nifty_wrapper .col-md-offset-7 {
2057
+ margin-left: 58.33333333%;
2058
+ }
2059
+ #nifty_wrapper .col-md-offset-6 {
2060
+ margin-left: 50%;
2061
+ }
2062
+ #nifty_wrapper .col-md-offset-5 {
2063
+ margin-left: 41.66666667%;
2064
+ }
2065
+ #nifty_wrapper .col-md-offset-4 {
2066
+ margin-left: 33.33333333%;
2067
+ }
2068
+ #nifty_wrapper .col-md-offset-3 {
2069
+ margin-left: 25%;
2070
+ }
2071
+ #nifty_wrapper .col-md-offset-2 {
2072
+ margin-left: 16.66666667%;
2073
+ }
2074
+ #nifty_wrapper .col-md-offset-1 {
2075
+ margin-left: 8.33333333%;
2076
+ }
2077
+ #nifty_wrapper .col-md-offset-0 {
2078
+ margin-left: 0%;
2079
+ }
2080
+ }
2081
+ @media (min-width: 1200px) {
2082
+ #nifty_wrapper .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
2083
+ float: left;
2084
+ }
2085
+ #nifty_wrapper .col-lg-12 {
2086
+ width: 100%;
2087
+ }
2088
+ #nifty_wrapper .col-lg-11 {
2089
+ width: 91.66666667%;
2090
+ }
2091
+ #nifty_wrapper .col-lg-10 {
2092
+ width: 83.33333333%;
2093
+ }
2094
+ #nifty_wrapper .col-lg-9 {
2095
+ width: 75%;
2096
+ }
2097
+ #nifty_wrapper .col-lg-8 {
2098
+ width: 66.66666667%;
2099
+ }
2100
+ #nifty_wrapper .col-lg-7 {
2101
+ width: 58.33333333%;
2102
+ }
2103
+ #nifty_wrapper .col-lg-6 {
2104
+ width: 50%;
2105
+ }
2106
+ #nifty_wrapper .col-lg-5 {
2107
+ width: 41.66666667%;
2108
+ }
2109
+ #nifty_wrapper .col-lg-4 {
2110
+ width: 33.33333333%;
2111
+ }
2112
+ #nifty_wrapper .col-lg-3 {
2113
+ width: 25%;
2114
+ }
2115
+ #nifty_wrapper .col-lg-2 {
2116
+ width: 16.66666667%;
2117
+ }
2118
+ #nifty_wrapper .col-lg-1 {
2119
+ width: 8.33333333%;
2120
+ }
2121
+ #nifty_wrapper .col-lg-pull-12 {
2122
+ right: 100%;
2123
+ }
2124
+ #nifty_wrapper .col-lg-pull-11 {
2125
+ right: 91.66666667%;
2126
+ }
2127
+ #nifty_wrapper .col-lg-pull-10 {
2128
+ right: 83.33333333%;
2129
+ }
2130
+ #nifty_wrapper .col-lg-pull-9 {
2131
+ right: 75%;
2132
+ }
2133
+ #nifty_wrapper .col-lg-pull-8 {
2134
+ right: 66.66666667%;
2135
+ }
2136
+ #nifty_wrapper .col-lg-pull-7 {
2137
+ right: 58.33333333%;
2138
+ }
2139
+ #nifty_wrapper .col-lg-pull-6 {
2140
+ right: 50%;
2141
+ }
2142
+ #nifty_wrapper .col-lg-pull-5 {
2143
+ right: 41.66666667%;
2144
+ }
2145
+ #nifty_wrapper .col-lg-pull-4 {
2146
+ right: 33.33333333%;
2147
+ }
2148
+ #nifty_wrapper .col-lg-pull-3 {
2149
+ right: 25%;
2150
+ }
2151
+ #nifty_wrapper .col-lg-pull-2 {
2152
+ right: 16.66666667%;
2153
+ }
2154
+ #nifty_wrapper .col-lg-pull-1 {
2155
+ right: 8.33333333%;
2156
+ }
2157
+ #nifty_wrapper .col-lg-pull-0 {
2158
+ right: auto;
2159
+ }
2160
+ #nifty_wrapper .col-lg-push-12 {
2161
+ left: 100%;
2162
+ }
2163
+ #nifty_wrapper .col-lg-push-11 {
2164
+ left: 91.66666667%;
2165
+ }
2166
+ #nifty_wrapper .col-lg-push-10 {
2167
+ left: 83.33333333%;
2168
+ }
2169
+ #nifty_wrapper .col-lg-push-9 {
2170
+ left: 75%;
2171
+ }
2172
+ #nifty_wrapper .col-lg-push-8 {
2173
+ left: 66.66666667%;
2174
+ }
2175
+ #nifty_wrapper .col-lg-push-7 {
2176
+ left: 58.33333333%;
2177
+ }
2178
+ #nifty_wrapper .col-lg-push-6 {
2179
+ left: 50%;
2180
+ }
2181
+ #nifty_wrapper .col-lg-push-5 {
2182
+ left: 41.66666667%;
2183
+ }
2184
+ #nifty_wrapper .col-lg-push-4 {
2185
+ left: 33.33333333%;
2186
+ }
2187
+ #nifty_wrapper .col-lg-push-3 {
2188
+ left: 25%;
2189
+ }
2190
+ #nifty_wrapper .col-lg-push-2 {
2191
+ left: 16.66666667%;
2192
+ }
2193
+ #nifty_wrapper .col-lg-push-1 {
2194
+ left: 8.33333333%;
2195
+ }
2196
+ #nifty_wrapper .col-lg-push-0 {
2197
+ left: auto;
2198
+ }
2199
+ #nifty_wrapper .col-lg-offset-12 {
2200
+ margin-left: 100%;
2201
+ }
2202
+ #nifty_wrapper .col-lg-offset-11 {
2203
+ margin-left: 91.66666667%;
2204
+ }
2205
+ #nifty_wrapper .col-lg-offset-10 {
2206
+ margin-left: 83.33333333%;
2207
+ }
2208
+ #nifty_wrapper .col-lg-offset-9 {
2209
+ margin-left: 75%;
2210
+ }
2211
+ #nifty_wrapper .col-lg-offset-8 {
2212
+ margin-left: 66.66666667%;
2213
+ }
2214
+ #nifty_wrapper .col-lg-offset-7 {
2215
+ margin-left: 58.33333333%;
2216
+ }
2217
+ #nifty_wrapper .col-lg-offset-6 {
2218
+ margin-left: 50%;
2219
+ }
2220
+ #nifty_wrapper .col-lg-offset-5 {
2221
+ margin-left: 41.66666667%;
2222
+ }
2223
+ #nifty_wrapper .col-lg-offset-4 {
2224
+ margin-left: 33.33333333%;
2225
+ }
2226
+ #nifty_wrapper .col-lg-offset-3 {
2227
+ margin-left: 25%;
2228
+ }
2229
+ #nifty_wrapper .col-lg-offset-2 {
2230
+ margin-left: 16.66666667%;
2231
+ }
2232
+ #nifty_wrapper .col-lg-offset-1 {
2233
+ margin-left: 8.33333333%;
2234
+ }
2235
+ #nifty_wrapper .col-lg-offset-0 {
2236
+ margin-left: 0%;
2237
+ }
2238
+ }
2239
+ #nifty_wrapper table {
2240
+ background-color: transparent;
2241
+ }
2242
+ #nifty_wrapper caption {
2243
+ padding-top: 8px;
2244
+ padding-bottom: 8px;
2245
+ color: #909fa7;
2246
+ text-align: left;
2247
+ }
2248
+ #nifty_wrapper th {
2249
+ text-align: left;
2250
+ }
2251
+ #nifty_wrapper .table {
2252
+ width: 100%;
2253
+ max-width: 100%;
2254
+ margin-bottom: 21px;
2255
+ }
2256
+ #nifty_wrapper .table > thead > tr > th,
2257
+ #nifty_wrapper .table > tbody > tr > th,
2258
+ #nifty_wrapper .table > tfoot > tr > th,
2259
+ #nifty_wrapper .table > thead > tr > td,
2260
+ #nifty_wrapper .table > tbody > tr > td,
2261
+ #nifty_wrapper .table > tfoot > tr > td {
2262
+ padding: 8px;
2263
+ line-height: 1.52857143;
2264
+ vertical-align: top;
2265
+ border-top: 1px solid #eeeeee;
2266
+ }
2267
+ #nifty_wrapper .table > thead > tr > th {
2268
+ vertical-align: bottom;
2269
+ border-bottom: 2px solid #eeeeee;
2270
+ }
2271
+ #nifty_wrapper .table > caption + thead > tr:first-child > th,
2272
+ #nifty_wrapper .table > colgroup + thead > tr:first-child > th,
2273
+ #nifty_wrapper .table > thead:first-child > tr:first-child > th,
2274
+ #nifty_wrapper .table > caption + thead > tr:first-child > td,
2275
+ #nifty_wrapper .table > colgroup + thead > tr:first-child > td,
2276
+ #nifty_wrapper .table > thead:first-child > tr:first-child > td {
2277
+ border-top: 0;
2278
+ }
2279
+ #nifty_wrapper .table > tbody + tbody {
2280
+ border-top: 2px solid #eeeeee;
2281
+ }
2282
+ #nifty_wrapper .table .table {
2283
+ background-color: #f5f7fa;
2284
+ }
2285
+ #nifty_wrapper .table-condensed > thead > tr > th,
2286
+ #nifty_wrapper .table-condensed > tbody > tr > th,
2287
+ #nifty_wrapper .table-condensed > tfoot > tr > th,
2288
+ #nifty_wrapper .table-condensed > thead > tr > td,
2289
+ #nifty_wrapper .table-condensed > tbody > tr > td,
2290
+ #nifty_wrapper .table-condensed > tfoot > tr > td {
2291
+ padding: 5px;
2292
+ }
2293
+ #nifty_wrapper .table-bordered {
2294
+ border: 1px solid #eeeeee;
2295
+ }
2296
+ #nifty_wrapper .table-bordered > thead > tr > th,
2297
+ #nifty_wrapper .table-bordered > tbody > tr > th,
2298
+ #nifty_wrapper .table-bordered > tfoot > tr > th,
2299
+ #nifty_wrapper .table-bordered > thead > tr > td,
2300
+ #nifty_wrapper .table-bordered > tbody > tr > td,
2301
+ #nifty_wrapper .table-bordered > tfoot > tr > td {
2302
+ border: 1px solid #eeeeee;
2303
+ }
2304
+ #nifty_wrapper .table-bordered > thead > tr > th,
2305
+ #nifty_wrapper .table-bordered > thead > tr > td {
2306
+ border-bottom-width: 2px;
2307
+ }
2308
+ #nifty_wrapper .table-striped > tbody > tr:nth-of-type(odd) {
2309
+ background-color: #fafbfc;
2310
+ }
2311
+ #nifty_wrapper .table-hover > tbody > tr:hover {
2312
+ background-color: #fafbfc;
2313
+ }
2314
+ #nifty_wrapper table col[class*="col-"] {
2315
+ position: static;
2316
+ float: none;
2317
+ display: table-column;
2318
+ }
2319
+ #nifty_wrapper table td[class*="col-"],
2320
+ #nifty_wrapper table th[class*="col-"] {
2321
+ position: static;
2322
+ float: none;
2323
+ display: table-cell;
2324
+ }
2325
+ #nifty_wrapper .table > thead > tr > td.active,
2326
+ #nifty_wrapper .table > tbody > tr > td.active,
2327
+ #nifty_wrapper .table > tfoot > tr > td.active,
2328
+ #nifty_wrapper .table > thead > tr > th.active,
2329
+ #nifty_wrapper .table > tbody > tr > th.active,
2330
+ #nifty_wrapper .table > tfoot > tr > th.active,
2331
+ #nifty_wrapper .table > thead > tr.active > td,
2332
+ #nifty_wrapper .table > tbody > tr.active > td,
2333
+ #nifty_wrapper .table > tfoot > tr.active > td,
2334
+ #nifty_wrapper .table > thead > tr.active > th,
2335
+ #nifty_wrapper .table > tbody > tr.active > th,
2336
+ #nifty_wrapper .table > tfoot > tr.active > th {
2337
+ background-color: #fafbfc;
2338
+ }
2339
+ #nifty_wrapper .table-hover > tbody > tr > td.active:hover,
2340
+ #nifty_wrapper .table-hover > tbody > tr > th.active:hover,
2341
+ #nifty_wrapper .table-hover > tbody > tr.active:hover > td,
2342
+ #nifty_wrapper .table-hover > tbody > tr:hover > .active,
2343
+ #nifty_wrapper .table-hover > tbody > tr.active:hover > th {
2344
+ background-color: #eaeef2;
2345
+ }
2346
+ #nifty_wrapper .table > thead > tr > td.success,
2347
+ #nifty_wrapper .table > tbody > tr > td.success,
2348
+ #nifty_wrapper .table > tfoot > tr > td.success,
2349
+ #nifty_wrapper .table > thead > tr > th.success,
2350
+ #nifty_wrapper .table > tbody > tr > th.success,
2351
+ #nifty_wrapper .table > tfoot > tr > th.success,
2352
+ #nifty_wrapper .table > thead > tr.success > td,
2353
+ #nifty_wrapper .table > tbody > tr.success > td,
2354
+ #nifty_wrapper .table > tfoot > tr.success > td,
2355
+ #nifty_wrapper .table > thead > tr.success > th,
2356
+ #nifty_wrapper .table > tbody > tr.success > th,
2357
+ #nifty_wrapper .table > tfoot > tr.success > th {
2358
+ background-color: #dff0d8;
2359
+ }
2360
+ #nifty_wrapper .table-hover > tbody > tr > td.success:hover,
2361
+ #nifty_wrapper .table-hover > tbody > tr > th.success:hover,
2362
+ #nifty_wrapper .table-hover > tbody > tr.success:hover > td,
2363
+ #nifty_wrapper .table-hover > tbody > tr:hover > .success,
2364
+ #nifty_wrapper .table-hover > tbody > tr.success:hover > th {
2365
+ background-color: #d0e9c6;
2366
+ }
2367
+ #nifty_wrapper .table > thead > tr > td.info,
2368
+ #nifty_wrapper .table > tbody > tr > td.info,
2369
+ #nifty_wrapper .table > tfoot > tr > td.info,
2370
+ #nifty_wrapper .table > thead > tr > th.info,
2371
+ #nifty_wrapper .table > tbody > tr > th.info,
2372
+ #nifty_wrapper .table > tfoot > tr > th.info,
2373
+ #nifty_wrapper .table > thead > tr.info > td,
2374
+ #nifty_wrapper .table > tbody > tr.info > td,
2375
+ #nifty_wrapper .table > tfoot > tr.info > td,
2376
+ #nifty_wrapper .table > thead > tr.info > th,
2377
+ #nifty_wrapper .table > tbody > tr.info > th,
2378
+ #nifty_wrapper .table > tfoot > tr.info > th {
2379
+ background-color: #d9edf7;
2380
+ }
2381
+ #nifty_wrapper .table-hover > tbody > tr > td.info:hover,
2382
+ #nifty_wrapper .table-hover > tbody > tr > th.info:hover,
2383
+ #nifty_wrapper .table-hover > tbody > tr.info:hover > td,
2384
+ #nifty_wrapper .table-hover > tbody > tr:hover > .info,
2385
+ #nifty_wrapper .table-hover > tbody > tr.info:hover > th {
2386
+ background-color: #c4e3f3;
2387
+ }
2388
+ #nifty_wrapper .table > thead > tr > td.warning,
2389
+ #nifty_wrapper .table > tbody > tr > td.warning,
2390
+ #nifty_wrapper .table > tfoot > tr > td.warning,
2391
+ #nifty_wrapper .table > thead > tr > th.warning,
2392
+ #nifty_wrapper .table > tbody > tr > th.warning,
2393
+ #nifty_wrapper .table > tfoot > tr > th.warning,
2394
+ #nifty_wrapper .table > thead > tr.warning > td,
2395
+ #nifty_wrapper .table > tbody > tr.warning > td,
2396
+ #nifty_wrapper .table > tfoot > tr.warning > td,
2397
+ #nifty_wrapper .table > thead > tr.warning > th,
2398
+ #nifty_wrapper .table > tbody > tr.warning > th,
2399
+ #nifty_wrapper .table > tfoot > tr.warning > th {
2400
+ background-color: #fcf8e3;
2401
+ }
2402
+ #nifty_wrapper .table-hover > tbody > tr > td.warning:hover,
2403
+ #nifty_wrapper .table-hover > tbody > tr > th.warning:hover,
2404
+ #nifty_wrapper .table-hover > tbody > tr.warning:hover > td,
2405
+ #nifty_wrapper .table-hover > tbody > tr:hover > .warning,
2406
+ #nifty_wrapper .table-hover > tbody > tr.warning:hover > th {
2407
+ background-color: #faf2cc;
2408
+ }
2409
+ #nifty_wrapper .table > thead > tr > td.danger,
2410
+ #nifty_wrapper .table > tbody > tr > td.danger,
2411
+ #nifty_wrapper .table > tfoot > tr > td.danger,
2412
+ #nifty_wrapper .table > thead > tr > th.danger,
2413
+ #nifty_wrapper .table > tbody > tr > th.danger,
2414
+ #nifty_wrapper .table > tfoot > tr > th.danger,
2415
+ #nifty_wrapper .table > thead > tr.danger > td,
2416
+ #nifty_wrapper .table > tbody > tr.danger > td,
2417
+ #nifty_wrapper .table > tfoot > tr.danger > td,
2418
+ #nifty_wrapper .table > thead > tr.danger > th,
2419
+ #nifty_wrapper .table > tbody > tr.danger > th,
2420
+ #nifty_wrapper .table > tfoot > tr.danger > th {
2421
+ background-color: #f2dede;
2422
+ }
2423
+ #nifty_wrapper .table-hover > tbody > tr > td.danger:hover,
2424
+ #nifty_wrapper .table-hover > tbody > tr > th.danger:hover,
2425
+ #nifty_wrapper .table-hover > tbody > tr.danger:hover > td,
2426
+ #nifty_wrapper .table-hover > tbody > tr:hover > .danger,
2427
+ #nifty_wrapper .table-hover > tbody > tr.danger:hover > th {
2428
+ background-color: #ebcccc;
2429
+ }
2430
+ #nifty_wrapper .table-responsive {
2431
+ overflow-x: auto;
2432
+ min-height: 0.01%;
2433
+ }
2434
+ @media screen and (max-width: 767px) {
2435
+ #nifty_wrapper .table-responsive {
2436
+ width: 100%;
2437
+ margin-bottom: 15.75px;
2438
+ overflow-y: hidden;
2439
+ -ms-overflow-style: -ms-autohiding-scrollbar;
2440
+ border: 1px solid #eeeeee;
2441
+ }
2442
+ #nifty_wrapper .table-responsive > .table {
2443
+ margin-bottom: 0;
2444
+ }
2445
+ #nifty_wrapper .table-responsive > .table > thead > tr > th,
2446
+ #nifty_wrapper .table-responsive > .table > tbody > tr > th,
2447
+ #nifty_wrapper .table-responsive > .table > tfoot > tr > th,
2448
+ #nifty_wrapper .table-responsive > .table > thead > tr > td,
2449
+ #nifty_wrapper .table-responsive > .table > tbody > tr > td,
2450
+ #nifty_wrapper .table-responsive > .table > tfoot > tr > td {
2451
+ white-space: nowrap;
2452
+ }
2453
+ #nifty_wrapper .table-responsive > .table-bordered {
2454
+ border: 0;
2455
+ }
2456
+ #nifty_wrapper .table-responsive > .table-bordered > thead > tr > th:first-child,
2457
+ #nifty_wrapper .table-responsive > .table-bordered > tbody > tr > th:first-child,
2458
+ #nifty_wrapper .table-responsive > .table-bordered > tfoot > tr > th:first-child,
2459
+ #nifty_wrapper .table-responsive > .table-bordered > thead > tr > td:first-child,
2460
+ #nifty_wrapper .table-responsive > .table-bordered > tbody > tr > td:first-child,
2461
+ #nifty_wrapper .table-responsive > .table-bordered > tfoot > tr > td:first-child {
2462
+ border-left: 0;
2463
+ }
2464
+ #nifty_wrapper .table-responsive > .table-bordered > thead > tr > th:last-child,
2465
+ #nifty_wrapper .table-responsive > .table-bordered > tbody > tr > th:last-child,
2466
+ #nifty_wrapper .table-responsive > .table-bordered > tfoot > tr > th:last-child,
2467
+ #nifty_wrapper .table-responsive > .table-bordered > thead > tr > td:last-child,
2468
+ #nifty_wrapper .table-responsive > .table-bordered > tbody > tr > td:last-child,
2469
+ #nifty_wrapper .table-responsive > .table-bordered > tfoot > tr > td:last-child {
2470
+ border-right: 0;
2471
+ }
2472
+ #nifty_wrapper .table-responsive > .table-bordered > tbody > tr:last-child > th,
2473
+ #nifty_wrapper .table-responsive > .table-bordered > tfoot > tr:last-child > th,
2474
+ #nifty_wrapper .table-responsive > .table-bordered > tbody > tr:last-child > td,
2475
+ #nifty_wrapper .table-responsive > .table-bordered > tfoot > tr:last-child > td {
2476
+ border-bottom: 0;
2477
+ }
2478
+ }
2479
+ #nifty_wrapper fieldset {
2480
+ padding: 0;
2481
+ margin: 0;
2482
+ border: 0;
2483
+ min-width: 0;
2484
+ }
2485
+ #nifty_wrapper legend {
2486
+ display: block;
2487
+ width: 100%;
2488
+ padding: 0;
2489
+ margin-bottom: 21px;
2490
+ font-size: 21px;
2491
+ line-height: inherit;
2492
+ color: #3a3f51;
2493
+ border: 0;
2494
+ border-bottom: 1px solid #e5e5e5;
2495
+ }
2496
+ #nifty_wrapper label {
2497
+ display: inline-block;
2498
+ max-width: 100%;
2499
+ margin-bottom: 5px;
2500
+ font-weight: bold;
2501
+ }
2502
+ #nifty_wrapper input[type="search"] {
2503
+ -webkit-box-sizing: border-box;
2504
+ -moz-box-sizing: border-box;
2505
+ box-sizing: border-box;
2506
+ }
2507
+ #nifty_wrapper input[type="radio"],
2508
+ #nifty_wrapper input[type="checkbox"] {
2509
+ margin: 4px 0 0;
2510
+ margin-top: 1px \9;
2511
+ line-height: normal;
2512
+ }
2513
+ #nifty_wrapper input[type="file"] {
2514
+ display: block;
2515
+ }
2516
+ #nifty_wrapper input[type="range"] {
2517
+ display: block;
2518
+ width: 100%;
2519
+ }
2520
+ #nifty_wrapper select[multiple],
2521
+ #nifty_wrapper select[size] {
2522
+ height: auto;
2523
+ }
2524
+ #nifty_wrapper input[type="file"]:focus,
2525
+ #nifty_wrapper input[type="radio"]:focus,
2526
+ #nifty_wrapper input[type="checkbox"]:focus {
2527
+ outline: thin dotted;
2528
+ outline: 5px auto -webkit-focus-ring-color;
2529
+ outline-offset: -2px;
2530
+ }
2531
+ #nifty_wrapper output {
2532
+ display: block;
2533
+ padding-top: 7px;
2534
+ font-size: 14px;
2535
+ line-height: 1.52857143;
2536
+ color: #3a3f51;
2537
+ }
2538
+ #nifty_wrapper .form-control {
2539
+ display: block;
2540
+ width: 100%;
2541
+ height: 35px;
2542
+ padding: 6px 16px;
2543
+ font-size: 14px;
2544
+ line-height: 1.52857143;
2545
+ color: #3a3f51;
2546
+ background-color: #ffffff;
2547
+ background-image: none;
2548
+ border: 1px solid #dde6e9;
2549
+ border-radius: 4px;
2550
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2551
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2552
+ -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
2553
+ -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
2554
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
2555
+ }
2556
+ #nifty_wrapper .form-control:focus {
2557
+ border-color: #66afe9;
2558
+ outline: 0;
2559
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
2560
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
2561
+ }
2562
+ #nifty_wrapper .form-control::-moz-placeholder {
2563
+ color: #b7bac9;
2564
+ opacity: 1;
2565
+ }
2566
+ #nifty_wrapper .form-control:-ms-input-placeholder {
2567
+ color: #b7bac9;
2568
+ }
2569
+ #nifty_wrapper .form-control::-webkit-input-placeholder {
2570
+ color: #b7bac9;
2571
+ }
2572
+ #nifty_wrapper .form-control::-ms-expand {
2573
+ border: 0;
2574
+ background-color: transparent;
2575
+ }
2576
+ #nifty_wrapper .form-control[disabled],
2577
+ #nifty_wrapper .form-control[readonly],
2578
+ #nifty_wrapper fieldset[disabled] .form-control {
2579
+ background-color: #edf1f2;
2580
+ opacity: 1;
2581
+ }
2582
+ #nifty_wrapper .form-control[disabled],
2583
+ #nifty_wrapper fieldset[disabled] .form-control {
2584
+ cursor: not-allowed;
2585
+ }
2586
+ #nifty_wrapper textarea.form-control {
2587
+ height: auto;
2588
+ }
2589
+ #nifty_wrapper input[type="search"] {
2590
+ -webkit-appearance: none;
2591
+ }
2592
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
2593
+ #nifty_wrapper input[type="date"].form-control,
2594
+ #nifty_wrapper input[type="time"].form-control,
2595
+ #nifty_wrapper input[type="datetime-local"].form-control,
2596
+ #nifty_wrapper input[type="month"].form-control {
2597
+ line-height: 35px;
2598
+ }
2599
+ #nifty_wrapper input[type="date"].input-sm,
2600
+ #nifty_wrapper input[type="time"].input-sm,
2601
+ #nifty_wrapper input[type="datetime-local"].input-sm,
2602
+ #nifty_wrapper input[type="month"].input-sm,
2603
+ #nifty_wrapper .input-group-sm input[type="date"],
2604
+ #nifty_wrapper .input-group-sm input[type="time"],
2605
+ #nifty_wrapper .input-group-sm input[type="datetime-local"],
2606
+ #nifty_wrapper .input-group-sm input[type="month"] {
2607
+ line-height: 30px;
2608
+ }
2609
+ #nifty_wrapper input[type="date"].input-lg,
2610
+ #nifty_wrapper input[type="time"].input-lg,
2611
+ #nifty_wrapper input[type="datetime-local"].input-lg,
2612
+ #nifty_wrapper input[type="month"].input-lg,
2613
+ #nifty_wrapper .input-group-lg input[type="date"],
2614
+ #nifty_wrapper .input-group-lg input[type="time"],
2615
+ #nifty_wrapper .input-group-lg input[type="datetime-local"],
2616
+ #nifty_wrapper .input-group-lg input[type="month"] {
2617
+ line-height: 46px;
2618
+ }
2619
+ }
2620
+ #nifty_wrapper .form-group {
2621
+ margin-bottom: 15px;
2622
+ }
2623
+ #nifty_wrapper .radio,
2624
+ #nifty_wrapper .checkbox {
2625
+ position: relative;
2626
+ display: block;
2627
+ margin-top: 10px;
2628
+ margin-bottom: 10px;
2629
+ }
2630
+ #nifty_wrapper .radio label,
2631
+ #nifty_wrapper .checkbox label {
2632
+ min-height: 21px;
2633
+ padding-left: 20px;
2634
+ margin-bottom: 0;
2635
+ font-weight: normal;
2636
+ cursor: pointer;
2637
+ }
2638
+ #nifty_wrapper .radio input[type="radio"],
2639
+ #nifty_wrapper .radio-inline input[type="radio"],
2640
+ #nifty_wrapper .checkbox input[type="checkbox"],
2641
+ #nifty_wrapper .checkbox-inline input[type="checkbox"] {
2642
+ position: absolute;
2643
+ margin-left: -20px;
2644
+ margin-top: 4px \9;
2645
+ }
2646
+ #nifty_wrapper .radio + .radio,
2647
+ #nifty_wrapper .checkbox + .checkbox {
2648
+ margin-top: -5px;
2649
+ }
2650
+ #nifty_wrapper .radio-inline,
2651
+ #nifty_wrapper .checkbox-inline {
2652
+ position: relative;
2653
+ display: inline-block;
2654
+ padding-left: 20px;
2655
+ margin-bottom: 0;
2656
+ vertical-align: middle;
2657
+ font-weight: normal;
2658
+ cursor: pointer;
2659
+ }
2660
+ #nifty_wrapper .radio-inline + .radio-inline,
2661
+ #nifty_wrapper .checkbox-inline + .checkbox-inline {
2662
+ margin-top: 0;
2663
+ margin-left: 10px;
2664
+ }
2665
+ #nifty_wrapper input[type="radio"][disabled],
2666
+ #nifty_wrapper input[type="checkbox"][disabled],
2667
+ #nifty_wrapper input[type="radio"].disabled,
2668
+ #nifty_wrapper input[type="checkbox"].disabled,
2669
+ #nifty_wrapper fieldset[disabled] input[type="radio"],
2670
+ #nifty_wrapper fieldset[disabled] input[type="checkbox"] {
2671
+ cursor: not-allowed;
2672
+ }
2673
+ #nifty_wrapper .radio-inline.disabled,
2674
+ #nifty_wrapper .checkbox-inline.disabled,
2675
+ #nifty_wrapper fieldset[disabled] .radio-inline,
2676
+ #nifty_wrapper fieldset[disabled] .checkbox-inline {
2677
+ cursor: not-allowed;
2678
+ }
2679
+ #nifty_wrapper .radio.disabled label,
2680
+ #nifty_wrapper .checkbox.disabled label,
2681
+ #nifty_wrapper fieldset[disabled] .radio label,
2682
+ #nifty_wrapper fieldset[disabled] .checkbox label {
2683
+ cursor: not-allowed;
2684
+ }
2685
+ #nifty_wrapper .form-control-static {
2686
+ padding-top: 7px;
2687
+ padding-bottom: 7px;
2688
+ margin-bottom: 0;
2689
+ min-height: 35px;
2690
+ }
2691
+ #nifty_wrapper .form-control-static.input-lg,
2692
+ #nifty_wrapper .form-control-static.input-sm {
2693
+ padding-left: 0;
2694
+ padding-right: 0;
2695
+ }
2696
+ #nifty_wrapper .input-sm {
2697
+ height: 30px;
2698
+ padding: 5px 10px;
2699
+ font-size: 12px;
2700
+ line-height: 1.5;
2701
+ border-radius: 3px;
2702
+ }
2703
+ #nifty_wrapper select.input-sm {
2704
+ height: 30px;
2705
+ line-height: 30px;
2706
+ }
2707
+ #nifty_wrapper textarea.input-sm,
2708
+ #nifty_wrapper select[multiple].input-sm {
2709
+ height: auto;
2710
+ }
2711
+ #nifty_wrapper .form-group-sm .form-control {
2712
+ height: 30px;
2713
+ padding: 5px 10px;
2714
+ font-size: 12px;
2715
+ line-height: 1.5;
2716
+ border-radius: 3px;
2717
+ }
2718
+ #nifty_wrapper .form-group-sm select.form-control {
2719
+ height: 30px;
2720
+ line-height: 30px;
2721
+ }
2722
+ #nifty_wrapper .form-group-sm textarea.form-control,
2723
+ #nifty_wrapper .form-group-sm select[multiple].form-control {
2724
+ height: auto;
2725
+ }
2726
+ #nifty_wrapper .form-group-sm .form-control-static {
2727
+ height: 30px;
2728
+ min-height: 33px;
2729
+ padding: 6px 10px;
2730
+ font-size: 12px;
2731
+ line-height: 1.5;
2732
+ }
2733
+ #nifty_wrapper .input-lg {
2734
+ height: 46px;
2735
+ padding: 10px 20px;
2736
+ font-size: 18px;
2737
+ line-height: 1.33;
2738
+ border-radius: 6px;
2739
+ }
2740
+ #nifty_wrapper select.input-lg {
2741
+ height: 46px;
2742
+ line-height: 46px;
2743
+ }
2744
+ #nifty_wrapper textarea.input-lg,
2745
+ #nifty_wrapper select[multiple].input-lg {
2746
+ height: auto;
2747
+ }
2748
+ #nifty_wrapper .form-group-lg .form-control {
2749
+ height: 46px;
2750
+ padding: 10px 20px;
2751
+ font-size: 18px;
2752
+ line-height: 1.33;
2753
+ border-radius: 6px;
2754
+ }
2755
+ #nifty_wrapper .form-group-lg select.form-control {
2756
+ height: 46px;
2757
+ line-height: 46px;
2758
+ }
2759
+ #nifty_wrapper .form-group-lg textarea.form-control,
2760
+ #nifty_wrapper .form-group-lg select[multiple].form-control {
2761
+ height: auto;
2762
+ }
2763
+ #nifty_wrapper .form-group-lg .form-control-static {
2764
+ height: 46px;
2765
+ min-height: 39px;
2766
+ padding: 11px 20px;
2767
+ font-size: 18px;
2768
+ line-height: 1.33;
2769
+ }
2770
+ #nifty_wrapper .has-feedback {
2771
+ position: relative;
2772
+ }
2773
+ #nifty_wrapper .has-feedback .form-control {
2774
+ padding-right: 43.75px;
2775
+ }
2776
+ #nifty_wrapper .form-control-feedback {
2777
+ position: absolute;
2778
+ top: 0;
2779
+ right: 0;
2780
+ z-index: 2;
2781
+ display: block;
2782
+ width: 35px;
2783
+ height: 35px;
2784
+ line-height: 35px;
2785
+ text-align: center;
2786
+ pointer-events: none;
2787
+ }
2788
+ #nifty_wrapper .input-lg + .form-control-feedback,
2789
+ #nifty_wrapper .input-group-lg + .form-control-feedback,
2790
+ #nifty_wrapper .form-group-lg .form-control + .form-control-feedback {
2791
+ width: 46px;
2792
+ height: 46px;
2793
+ line-height: 46px;
2794
+ }
2795
+ #nifty_wrapper .input-sm + .form-control-feedback,
2796
+ #nifty_wrapper .input-group-sm + .form-control-feedback,
2797
+ #nifty_wrapper .form-group-sm .form-control + .form-control-feedback {
2798
+ width: 30px;
2799
+ height: 30px;
2800
+ line-height: 30px;
2801
+ }
2802
+ #nifty_wrapper .has-success .help-block,
2803
+ #nifty_wrapper .has-success .control-label,
2804
+ #nifty_wrapper .has-success .radio,
2805
+ #nifty_wrapper .has-success .checkbox,
2806
+ #nifty_wrapper .has-success .radio-inline,
2807
+ #nifty_wrapper .has-success .checkbox-inline,
2808
+ #nifty_wrapper .has-success.radio label,
2809
+ #nifty_wrapper .has-success.checkbox label,
2810
+ #nifty_wrapper .has-success.radio-inline label,
2811
+ #nifty_wrapper .has-success.checkbox-inline label {
2812
+ color: #27c24c;
2813
+ }
2814
+ #nifty_wrapper .has-success .form-control {
2815
+ border-color: #27c24c;
2816
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2817
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2818
+ }
2819
+ #nifty_wrapper .has-success .form-control:focus {
2820
+ border-color: #1e983b;
2821
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #6de289;
2822
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #6de289;
2823
+ }
2824
+ #nifty_wrapper .has-success .input-group-addon {
2825
+ color: #27c24c;
2826
+ border-color: #27c24c;
2827
+ background-color: #dff0d8;
2828
+ }
2829
+ #nifty_wrapper .has-success .form-control-feedback {
2830
+ color: #27c24c;
2831
+ }
2832
+ #nifty_wrapper .has-warning .help-block,
2833
+ #nifty_wrapper .has-warning .control-label,
2834
+ #nifty_wrapper .has-warning .radio,
2835
+ #nifty_wrapper .has-warning .checkbox,
2836
+ #nifty_wrapper .has-warning .radio-inline,
2837
+ #nifty_wrapper .has-warning .checkbox-inline,
2838
+ #nifty_wrapper .has-warning.radio label,
2839
+ #nifty_wrapper .has-warning.checkbox label,
2840
+ #nifty_wrapper .has-warning.radio-inline label,
2841
+ #nifty_wrapper .has-warning.checkbox-inline label {
2842
+ color: #ff902b;
2843
+ }
2844
+ #nifty_wrapper .has-warning .form-control {
2845
+ border-color: #ff902b;
2846
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2847
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2848
+ }
2849
+ #nifty_wrapper .has-warning .form-control:focus {
2850
+ border-color: #f77600;
2851
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffc591;
2852
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffc591;
2853
+ }
2854
+ #nifty_wrapper .has-warning .input-group-addon {
2855
+ color: #ff902b;
2856
+ border-color: #ff902b;
2857
+ background-color: #fcf8e3;
2858
+ }
2859
+ #nifty_wrapper .has-warning .form-control-feedback {
2860
+ color: #ff902b;
2861
+ }
2862
+ #nifty_wrapper .has-error .help-block,
2863
+ #nifty_wrapper .has-error .control-label,
2864
+ #nifty_wrapper .has-error .radio,
2865
+ #nifty_wrapper .has-error .checkbox,
2866
+ #nifty_wrapper .has-error .radio-inline,
2867
+ #nifty_wrapper .has-error .checkbox-inline,
2868
+ #nifty_wrapper .has-error.radio label,
2869
+ #nifty_wrapper .has-error.checkbox label,
2870
+ #nifty_wrapper .has-error.radio-inline label,
2871
+ #nifty_wrapper .has-error.checkbox-inline label {
2872
+ color: #f05050;
2873
+ }
2874
+ #nifty_wrapper .has-error .form-control {
2875
+ border-color: #f05050;
2876
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2877
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
2878
+ }
2879
+ #nifty_wrapper .has-error .form-control:focus {
2880
+ border-color: #ec2121;
2881
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8aeae;
2882
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8aeae;
2883
+ }
2884
+ #nifty_wrapper .has-error .input-group-addon {
2885
+ color: #f05050;
2886
+ border-color: #f05050;
2887
+ background-color: #f2dede;
2888
+ }
2889
+ #nifty_wrapper .has-error .form-control-feedback {
2890
+ color: #f05050;
2891
+ }
2892
+ #nifty_wrapper .has-feedback label ~ .form-control-feedback {
2893
+ top: 26px;
2894
+ }
2895
+ #nifty_wrapper .has-feedback label.sr-only ~ .form-control-feedback {
2896
+ top: 0;
2897
+ }
2898
+ #nifty_wrapper .help-block {
2899
+ display: block;
2900
+ margin-top: 5px;
2901
+ margin-bottom: 10px;
2902
+ color: #909293;
2903
+ }
2904
+ @media (min-width: 768px) {
2905
+ #nifty_wrapper .form-inline .form-group {
2906
+ display: inline-block;
2907
+ margin-bottom: 0;
2908
+ vertical-align: middle;
2909
+ }
2910
+ #nifty_wrapper .form-inline .form-control {
2911
+ display: inline-block;
2912
+ width: auto;
2913
+ vertical-align: middle;
2914
+ }
2915
+ #nifty_wrapper .form-inline .form-control-static {
2916
+ display: inline-block;
2917
+ }
2918
+ #nifty_wrapper .form-inline .input-group {
2919
+ display: inline-table;
2920
+ vertical-align: middle;
2921
+ }
2922
+ #nifty_wrapper .form-inline .input-group .input-group-addon,
2923
+ #nifty_wrapper .form-inline .input-group .input-group-btn,
2924
+ #nifty_wrapper .form-inline .input-group .form-control {
2925
+ width: auto;
2926
+ }
2927
+ #nifty_wrapper .form-inline .input-group > .form-control {
2928
+ width: 100%;
2929
+ }
2930
+ #nifty_wrapper .form-inline .control-label {
2931
+ margin-bottom: 0;
2932
+ vertical-align: middle;
2933
+ }
2934
+ #nifty_wrapper .form-inline .radio,
2935
+ #nifty_wrapper .form-inline .checkbox {
2936
+ display: inline-block;
2937
+ margin-top: 0;
2938
+ margin-bottom: 0;
2939
+ vertical-align: middle;
2940
+ }
2941
+ #nifty_wrapper .form-inline .radio label,
2942
+ #nifty_wrapper .form-inline .checkbox label {
2943
+ padding-left: 0;
2944
+ }
2945
+ #nifty_wrapper .form-inline .radio input[type="radio"],
2946
+ #nifty_wrapper .form-inline .checkbox input[type="checkbox"] {
2947
+ position: relative;
2948
+ margin-left: 0;
2949
+ }
2950
+ #nifty_wrapper .form-inline .has-feedback .form-control-feedback {
2951
+ top: 0;
2952
+ }
2953
+ }
2954
+ #nifty_wrapper .form-horizontal .radio,
2955
+ #nifty_wrapper .form-horizontal .checkbox,
2956
+ #nifty_wrapper .form-horizontal .radio-inline,
2957
+ #nifty_wrapper .form-horizontal .checkbox-inline {
2958
+ margin-top: 0;
2959
+ margin-bottom: 0;
2960
+ padding-top: 7px;
2961
+ }
2962
+ #nifty_wrapper .form-horizontal .radio,
2963
+ #nifty_wrapper .form-horizontal .checkbox {
2964
+ min-height: 28px;
2965
+ }
2966
+ #nifty_wrapper .form-horizontal .form-group {
2967
+ margin-left: -15px;
2968
+ margin-right: -15px
2969
+ }
2970
+ #nifty_wrapper @media (min-width: 768px) {
2971
+ #nifty_wrapper .form-horizontal .control-label {
2972
+ text-align: right;
2973
+ margin-bottom: 0;
2974
+ padding-top: 7px;
2975
+ }
2976
+ }
2977
+ #nifty_wrapper .form-horizontal .has-feedback .form-control-feedback {
2978
+ right: 15px;
2979
+ }
2980
+ @media (min-width: 768px) {
2981
+ #nifty_wrapper .form-horizontal .form-group-lg .control-label {
2982
+ padding-top: 11px;
2983
+ font-size: 18px;
2984
+ }
2985
+ }
2986
+ @media (min-width: 768px) {
2987
+ #nifty_wrapper .form-horizontal .form-group-sm .control-label {
2988
+ padding-top: 6px;
2989
+ font-size: 12px;
2990
+ }
2991
+ }
2992
+ .btn {
2993
+ display: inline-block;
2994
+ margin-bottom: 0;
2995
+ font-weight: normal;
2996
+ text-align: center;
2997
+ vertical-align: middle;
2998
+ touch-action: manipulation;
2999
+ cursor: pointer;
3000
+ background-image: none;
3001
+ border: 1px solid transparent;
3002
+ white-space: nowrap;
3003
+ padding: 6px 16px;
3004
+ font-size: 14px;
3005
+ line-height: 1.52857143;
3006
+ border-radius: 4px;
3007
+ -webkit-user-select: none;
3008
+ -moz-user-select: none;
3009
+ -ms-user-select: none;
3010
+ user-select: none;
3011
+ }
3012
+ .btn:focus,
3013
+ .btn:active:focus,
3014
+ .btn.active:focus,
3015
+ .btn.focus,
3016
+ .btn:active.focus,
3017
+ .btn.active.focus {
3018
+ outline: thin dotted;
3019
+ outline: 5px auto -webkit-focus-ring-color;
3020
+ outline-offset: -2px;
3021
+ }
3022
+ .btn:hover,
3023
+ .btn:focus,
3024
+ .btn.focus {
3025
+ color: #333333;
3026
+ text-decoration: none;
3027
+ }
3028
+ .btn:active,
3029
+ .btn.active {
3030
+ outline: 0;
3031
+ background-image: none;
3032
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3033
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3034
+ }
3035
+ .btn.disabled,
3036
+ .btn[disabled],
3037
+ fieldset[disabled] .btn {
3038
+ cursor: not-allowed;
3039
+ opacity: 0.65;
3040
+ filter: alpha(opacity=65);
3041
+ -webkit-box-shadow: none;
3042
+ box-shadow: none;
3043
+ }
3044
+ a.btn.disabled,
3045
+ fieldset[disabled] a.btn {
3046
+ pointer-events: none;
3047
+ }
3048
+ .btn-default {
3049
+ color: #333333;
3050
+ background-color: #ffffff;
3051
+ border-color: #eaeaea;
3052
+ }
3053
+ .btn-default:focus,
3054
+ .btn-default.focus {
3055
+ color: #333333;
3056
+ background-color: #f5f5f5;
3057
+ border-color: #d6d6d6;
3058
+ }
3059
+ .btn-default:hover {
3060
+ color: #333333;
3061
+ background-color: #f5f5f5;
3062
+ border-color: #d6d6d6;
3063
+ }
3064
+ .btn-default:active,
3065
+ .btn-default.active,
3066
+ #nifty_wrapper .open > .dropdown-toggle.btn-default {
3067
+ color: #333333;
3068
+ background-color: #f5f5f5;
3069
+ border-color: #d6d6d6;
3070
+ }
3071
+ .btn-default:active:hover,
3072
+ .btn-default.active:hover,
3073
+ #nifty_wrapper .open > .dropdown-toggle.btn-default:hover,
3074
+ .btn-default:active:focus,
3075
+ .btn-default.active:focus,
3076
+ #nifty_wrapper .open > .dropdown-toggle.btn-default:focus,
3077
+ .btn-default:active.focus,
3078
+ .btn-default.active.focus,
3079
+ #nifty_wrapper .open > .dropdown-toggle.btn-default.focus {
3080
+ color: #333333;
3081
+ background-color: #f5f5f5;
3082
+ border-color: #d6d6d6;
3083
+ }
3084
+ .btn-default:active,
3085
+ .btn-default.active,
3086
+ #nifty_wrapper .open > .dropdown-toggle.btn-default {
3087
+ background-image: none;
3088
+ }
3089
+ .btn-default.disabled:hover,
3090
+ .btn-default[disabled]:hover,
3091
+ #nifty_wrapper fieldset[disabled] .btn-default:hover,
3092
+ .btn-default.disabled:focus,
3093
+ .btn-default[disabled]:focus,
3094
+ #nifty_wrapper fieldset[disabled] .btn-default:focus,
3095
+ .btn-default.disabled.focus,
3096
+ .btn-default[disabled].focus,
3097
+ #nifty_wrapper fieldset[disabled] .btn-default.focus {
3098
+ background-color: #ffffff;
3099
+ border-color: #eaeaea;
3100
+ }
3101
+ .btn-default .badge {
3102
+ color: #ffffff;
3103
+ background-color: #333333;
3104
+ }
3105
+ .btn-primary {
3106
+ color: #ffffff;
3107
+ background-color: #5d9cec;
3108
+ border-color: #5899eb;
3109
+ }
3110
+ .btn-primary:focus,
3111
+ .btn-primary.focus {
3112
+ color: #ffffff;
3113
+ background-color: #4b91ea;
3114
+ border-color: #3483e7;
3115
+ }
3116
+ .btn-primary:hover {
3117
+ color: #ffffff;
3118
+ background-color: #4b91ea;
3119
+ border-color: #3483e7;
3120
+ }
3121
+ .btn-primary:active,
3122
+ .btn-primary.active,
3123
+ .open > .dropdown-toggle.btn-primary {
3124
+ color: #ffffff;
3125
+ background-color: #4b91ea;
3126
+ border-color: #3483e7;
3127
+ }
3128
+ .btn-primary:active:hover,
3129
+ .btn-primary.active:hover,
3130
+ .open > .dropdown-toggle.btn-primary:hover,
3131
+ .btn-primary:active:focus,
3132
+ .btn-primary.active:focus,
3133
+ .open > .dropdown-toggle.btn-primary:focus,
3134
+ .btn-primary:active.focus,
3135
+ .btn-primary.active.focus,
3136
+ .open > .dropdown-toggle.btn-primary.focus {
3137
+ color: #ffffff;
3138
+ background-color: #4b91ea;
3139
+ border-color: #3483e7;
3140
+ }
3141
+ .btn-primary:active,
3142
+ .btn-primary.active,
3143
+ .open > .dropdown-toggle.btn-primary {
3144
+ background-image: none;
3145
+ }
3146
+ .btn-primary.disabled:hover,
3147
+ .btn-primary[disabled]:hover,
3148
+ fieldset[disabled] .btn-primary:hover,
3149
+ .btn-primary.disabled:focus,
3150
+ .btn-primary[disabled]:focus,
3151
+ fieldset[disabled] .btn-primary:focus,
3152
+ .btn-primary.disabled.focus,
3153
+ .btn-primary[disabled].focus,
3154
+ fieldset[disabled] .btn-primary.focus {
3155
+ background-color: #5d9cec;
3156
+ border-color: #5899eb;
3157
+ }
3158
+ .btn-primary .badge {
3159
+ color: #5d9cec;
3160
+ background-color: #ffffff;
3161
+ }
3162
+ .btn-success {
3163
+ color: #ffffff;
3164
+ background-color: #27c24c;
3165
+ border-color: #26be4a;
3166
+ }
3167
+ .btn-success:focus,
3168
+ .btn-success.focus {
3169
+ color: #ffffff;
3170
+ background-color: #24b145;
3171
+ border-color: #1f9c3d;
3172
+ }
3173
+ .btn-success:hover {
3174
+ color: #ffffff;
3175
+ background-color: #24b145;
3176
+ border-color: #1f9c3d;
3177
+ }
3178
+ .btn-success:active,
3179
+ .btn-success.active,
3180
+ .open > .dropdown-toggle.btn-success {
3181
+ color: #ffffff;
3182
+ background-color: #24b145;
3183
+ border-color: #1f9c3d;
3184
+ }
3185
+ .btn-success:active:hover,
3186
+ .btn-success.active:hover,
3187
+ .open > .dropdown-toggle.btn-success:hover,
3188
+ .btn-success:active:focus,
3189
+ .btn-success.active:focus,
3190
+ .open > .dropdown-toggle.btn-success:focus,
3191
+ .btn-success:active.focus,
3192
+ .btn-success.active.focus,
3193
+ .open > .dropdown-toggle.btn-success.focus {
3194
+ color: #ffffff;
3195
+ background-color: #24b145;
3196
+ border-color: #1f9c3d;
3197
+ }
3198
+ .btn-success:active,
3199
+ .btn-success.active,
3200
+ .open > .dropdown-toggle.btn-success {
3201
+ background-image: none;
3202
+ }
3203
+ .btn-success.disabled:hover,
3204
+ .btn-success[disabled]:hover,
3205
+ fieldset[disabled] .btn-success:hover,
3206
+ .btn-success.disabled:focus,
3207
+ .btn-success[disabled]:focus,
3208
+ fieldset[disabled] .btn-success:focus,
3209
+ .btn-success.disabled.focus,
3210
+ .btn-success[disabled].focus,
3211
+ fieldset[disabled] .btn-success.focus {
3212
+ background-color: #27c24c;
3213
+ border-color: #26be4a;
3214
+ }
3215
+ .btn-success .badge {
3216
+ color: #27c24c;
3217
+ background-color: #ffffff;
3218
+ }
3219
+ .btn-info {
3220
+ color: #ffffff;
3221
+ background-color: #23b7e5;
3222
+ border-color: #1eb6e4;
3223
+ }
3224
+ .btn-info:focus,
3225
+ .btn-info.focus {
3226
+ color: #ffffff;
3227
+ background-color: #1aacda;
3228
+ border-color: #179ac3;
3229
+ }
3230
+ .btn-info:hover {
3231
+ color: #ffffff;
3232
+ background-color: #1aacda;
3233
+ border-color: #179ac3;
3234
+ }
3235
+ .btn-info:active,
3236
+ .btn-info.active,
3237
+ .open > .dropdown-toggle.btn-info {
3238
+ color: #ffffff;
3239
+ background-color: #1aacda;
3240
+ border-color: #179ac3;
3241
+ }
3242
+ .btn-info:active:hover,
3243
+ .btn-info.active:hover,
3244
+ .open > .dropdown-toggle.btn-info:hover,
3245
+ .btn-info:active:focus,
3246
+ .btn-info.active:focus,
3247
+ .open > .dropdown-toggle.btn-info:focus,
3248
+ .btn-info:active.focus,
3249
+ .btn-info.active.focus,
3250
+ .open > .dropdown-toggle.btn-info.focus {
3251
+ color: #ffffff;
3252
+ background-color: #1aacda;
3253
+ border-color: #179ac3;
3254
+ }
3255
+ .btn-info:active,
3256
+ .btn-info.active,
3257
+ .open > .dropdown-toggle.btn-info {
3258
+ background-image: none;
3259
+ }
3260
+ .btn-info.disabled:hover,
3261
+ .btn-info[disabled]:hover,
3262
+ fieldset[disabled] .btn-info:hover,
3263
+ .btn-info.disabled:focus,
3264
+ .btn-info[disabled]:focus,
3265
+ fieldset[disabled] .btn-info:focus,
3266
+ .btn-info.disabled.focus,
3267
+ .btn-info[disabled].focus,
3268
+ fieldset[disabled] .btn-info.focus {
3269
+ background-color: #23b7e5;
3270
+ border-color: #1eb6e4;
3271
+ }
3272
+ .btn-info .badge {
3273
+ color: #23b7e5;
3274
+ background-color: #ffffff;
3275
+ }
3276
+ .btn-warning {
3277
+ color: #ffffff;
3278
+ background-color: #ff902b;
3279
+ border-color: #ff8d26;
3280
+ }
3281
+ .btn-warning:focus,
3282
+ .btn-warning.focus {
3283
+ color: #ffffff;
3284
+ background-color: #ff8517;
3285
+ border-color: #fc7800;
3286
+ }
3287
+ .btn-warning:hover {
3288
+ color: #ffffff;
3289
+ background-color: #ff8517;
3290
+ border-color: #fc7800;
3291
+ }
3292
+ .btn-warning:active,
3293
+ .btn-warning.active,
3294
+ .open > .dropdown-toggle.btn-warning {
3295
+ color: #ffffff;
3296
+ background-color: #ff8517;
3297
+ border-color: #fc7800;
3298
+ }
3299
+ .btn-warning:active:hover,
3300
+ .btn-warning.active:hover,
3301
+ .open > .dropdown-toggle.btn-warning:hover,
3302
+ .btn-warning:active:focus,
3303
+ .btn-warning.active:focus,
3304
+ .open > .dropdown-toggle.btn-warning:focus,
3305
+ .btn-warning:active.focus,
3306
+ .btn-warning.active.focus,
3307
+ .open > .dropdown-toggle.btn-warning.focus {
3308
+ color: #ffffff;
3309
+ background-color: #ff8517;
3310
+ border-color: #fc7800;
3311
+ }
3312
+ .btn-warning:active,
3313
+ .btn-warning.active,
3314
+ .open > .dropdown-toggle.btn-warning {
3315
+ background-image: none;
3316
+ }
3317
+ .btn-warning.disabled:hover,
3318
+ .btn-warning[disabled]:hover,
3319
+ fieldset[disabled] .btn-warning:hover,
3320
+ .btn-warning.disabled:focus,
3321
+ .btn-warning[disabled]:focus,
3322
+ fieldset[disabled] .btn-warning:focus,
3323
+ .btn-warning.disabled.focus,
3324
+ .btn-warning[disabled].focus,
3325
+ fieldset[disabled] .btn-warning.focus {
3326
+ background-color: #ff902b;
3327
+ border-color: #ff8d26;
3328
+ }
3329
+ .btn-warning .badge {
3330
+ color: #ff902b;
3331
+ background-color: #ffffff;
3332
+ }
3333
+
3334
+ .btn-secondary {
3335
+ color: #373a3c;
3336
+ background-color: #fff;
3337
+ border-color: #ccc !important;
3338
+ }
3339
+ .btn-danger {
3340
+ color: #ffffff;
3341
+ background-color: #f05050;
3342
+ border-color: #f04b4b;
3343
+ }
3344
+ .btn-danger:focus,
3345
+ .btn-danger.focus {
3346
+ color: #ffffff;
3347
+ background-color: #ee3d3d;
3348
+ border-color: #ec2626;
3349
+ }
3350
+ .btn-danger:hover {
3351
+ color: #ffffff;
3352
+ background-color: #ee3d3d;
3353
+ border-color: #ec2626;
3354
+ }
3355
+ .btn-danger:active,
3356
+ .btn-danger.active,
3357
+ #nifty_wrapper .open > .dropdown-toggle.btn-danger {
3358
+ color: #ffffff;
3359
+ background-color: #ee3d3d;
3360
+ border-color: #ec2626;
3361
+ }
3362
+ .btn-danger:active:hover,
3363
+ .btn-danger.active:hover,
3364
+ #nifty_wrapper .open > .dropdown-toggle.btn-danger:hover,
3365
+ .btn-danger:active:focus,
3366
+ .btn-danger.active:focus,
3367
+ #nifty_wrapper .open > .dropdown-toggle.btn-danger:focus,
3368
+ .btn-danger:active.focus,
3369
+ .btn-danger.active.focus,
3370
+ #nifty_wrapper .open > .dropdown-toggle.btn-danger.focus {
3371
+ color: #ffffff;
3372
+ background-color: #ee3d3d;
3373
+ border-color: #ec2626;
3374
+ }
3375
+ .btn-danger:active,
3376
+ .btn-danger.active,
3377
+ #nifty_wrapper .open > .dropdown-toggle.btn-danger {
3378
+ background-image: none;
3379
+ }
3380
+ .btn-danger.disabled:hover,
3381
+ .btn-danger[disabled]:hover,
3382
+ #nifty_wrapper fieldset[disabled] .btn-danger:hover,
3383
+ .btn-danger.disabled:focus,
3384
+ .btn-danger[disabled]:focus,
3385
+ #nifty_wrapper fieldset[disabled] .btn-danger:focus,
3386
+ .btn-danger.disabled.focus,
3387
+ .btn-danger[disabled].focus,
3388
+ #nifty_wrapper fieldset[disabled] .btn-danger.focus {
3389
+ background-color: #f05050;
3390
+ border-color: #f04b4b;
3391
+ }
3392
+ .btn-danger .badge {
3393
+ color: #f05050;
3394
+ background-color: #ffffff;
3395
+ }
3396
+ .btn-link {
3397
+ color: #5d9cec;
3398
+ font-weight: normal;
3399
+ border-radius: 0;
3400
+ }
3401
+ .btn-link,
3402
+ .btn-link:active,
3403
+ .btn-link.active,
3404
+ .btn-link[disabled],
3405
+ #nifty_wrapper fieldset[disabled] .btn-link {
3406
+ background-color: transparent;
3407
+ -webkit-box-shadow: none;
3408
+ box-shadow: none;
3409
+ }
3410
+ .btn-link,
3411
+ .btn-link:hover,
3412
+ .btn-link:focus,
3413
+ .btn-link:active {
3414
+ border-color: transparent;
3415
+ }
3416
+ .btn-link:hover,
3417
+ .btn-link:focus {
3418
+ color: #1b72e2;
3419
+ text-decoration: underline;
3420
+ background-color: transparent;
3421
+ }
3422
+ .btn-link[disabled]:hover,
3423
+ #nifty_wrapper fieldset[disabled] .btn-link:hover,
3424
+ .btn-link[disabled]:focus,
3425
+ #nifty_wrapper fieldset[disabled] .btn-link:focus {
3426
+ color: #e4eaec;
3427
+ text-decoration: none;
3428
+ }
3429
+ .btn-lg,
3430
+ .btn-group-lg > .btn {
3431
+ padding: 10px 20px;
3432
+ font-size: 18px;
3433
+ line-height: 1.33;
3434
+ border-radius: 6px;
3435
+ }
3436
+ .btn-sm,
3437
+ .btn-group-sm > .btn {
3438
+ padding: 5px 10px;
3439
+ font-size: 12px;
3440
+ line-height: 1.5;
3441
+ border-radius: 3px;
3442
+ }
3443
+ .btn-xs,
3444
+ .btn-group-xs > .btn {
3445
+ padding: 1px 5px;
3446
+ font-size: 12px;
3447
+ line-height: 1.5;
3448
+ border-radius: 3px;
3449
+ }
3450
+ .btn-block {
3451
+ display: block;
3452
+ width: 100%;
3453
+ }
3454
+ .btn-block + .btn-block {
3455
+ margin-top: 5px;
3456
+ }
3457
+ #nifty_wrapper input[type="submit"].btn-block,
3458
+ #nifty_wrapper input[type="reset"].btn-block,
3459
+ #nifty_wrapper input[type="button"].btn-block {
3460
+ width: 100%;
3461
+ }
3462
+ #nifty_wrapper .fade {
3463
+ opacity: 0;
3464
+ -webkit-transition: opacity 0.15s linear;
3465
+ -o-transition: opacity 0.15s linear;
3466
+ transition: opacity 0.15s linear;
3467
+ }
3468
+ #nifty_wrapper .fade.in {
3469
+ opacity: 1;
3470
+ }
3471
+ #nifty_wrapper .collapse {
3472
+ display: none;
3473
+ }
3474
+ #nifty_wrapper .collapse.in {
3475
+ display: block;
3476
+ }
3477
+ #nifty_wrapper tr.collapse.in {
3478
+ display: table-row;
3479
+ }
3480
+ #nifty_wrapper tbody.collapse.in {
3481
+ display: table-row-group;
3482
+ }
3483
+ #nifty_wrapper .collapsing {
3484
+ position: relative;
3485
+ height: 0;
3486
+ overflow: hidden;
3487
+ -webkit-transition-property: height, visibility;
3488
+ transition-property: height, visibility;
3489
+ -webkit-transition-duration: 0.35s;
3490
+ transition-duration: 0.35s;
3491
+ -webkit-transition-timing-function: ease;
3492
+ transition-timing-function: ease;
3493
+ }
3494
+ #nifty_wrapper .caret {
3495
+ display: inline-block;
3496
+ width: 0;
3497
+ height: 0;
3498
+ margin-left: 2px;
3499
+ vertical-align: middle;
3500
+ border-top: 4px dashed;
3501
+ border-top: 4px solid \9;
3502
+ border-right: 4px solid transparent;
3503
+ border-left: 4px solid transparent;
3504
+ }
3505
+ #nifty_wrapper .dropup,
3506
+ #nifty_wrapper .dropdown {
3507
+ position: relative;
3508
+ }
3509
+ #nifty_wrapper .dropdown-toggle:focus {
3510
+ outline: 0;
3511
+ }
3512
+ #nifty_wrapper .dropdown-menu {
3513
+ position: absolute;
3514
+ top: 100%;
3515
+ left: 0;
3516
+ z-index: 1000;
3517
+ display: none;
3518
+ float: left;
3519
+ min-width: 160px;
3520
+ padding: 5px 0;
3521
+ margin: 2px 0 0;
3522
+ list-style: none;
3523
+ font-size: 14px;
3524
+ text-align: left;
3525
+ background-color: #ffffff;
3526
+ border: 1px solid #cccccc;
3527
+ border: 1px solid #e1e1e1;
3528
+ border-radius: 4px;
3529
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3530
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3531
+ background-clip: padding-box;
3532
+ }
3533
+ #nifty_wrapper .dropdown-menu.pull-right {
3534
+ right: 0;
3535
+ left: auto;
3536
+ }
3537
+ #nifty_wrapper .dropdown-menu .divider {
3538
+ height: 1px;
3539
+ margin: 9.5px 0;
3540
+ overflow: hidden;
3541
+ background-color: #e5e5e5;
3542
+ }
3543
+ #nifty_wrapper .dropdown-menu > li > a {
3544
+ display: block;
3545
+ padding: 3px 20px;
3546
+ clear: both;
3547
+ font-weight: normal;
3548
+ line-height: 1.52857143;
3549
+ color: #5f5f5f;
3550
+ white-space: nowrap;
3551
+ }
3552
+ #nifty_wrapper .dropdown-menu > li > a:hover,
3553
+ #nifty_wrapper .dropdown-menu > li > a:focus {
3554
+ text-decoration: none;
3555
+ color: #2f3342;
3556
+ background-color: #fafbfc;
3557
+ }
3558
+ #nifty_wrapper .dropdown-menu > .active > a,
3559
+ #nifty_wrapper .dropdown-menu > .active > a:hover,
3560
+ #nifty_wrapper .dropdown-menu > .active > a:focus {
3561
+ color: #ffffff;
3562
+ text-decoration: none;
3563
+ outline: 0;
3564
+ background-color: #5d9cec;
3565
+ }
3566
+ #nifty_wrapper .dropdown-menu > .disabled > a,
3567
+ #nifty_wrapper .dropdown-menu > .disabled > a:hover,
3568
+ #nifty_wrapper .dropdown-menu > .disabled > a:focus {
3569
+ color: #e4eaec;
3570
+ }
3571
+ #nifty_wrapper .dropdown-menu > .disabled > a:hover,
3572
+ #nifty_wrapper .dropdown-menu > .disabled > a:focus {
3573
+ text-decoration: none;
3574
+ background-color: transparent;
3575
+ background-image: none;
3576
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
3577
+ cursor: not-allowed;
3578
+ }
3579
+ #nifty_wrapper .open > .dropdown-menu {
3580
+ display: block;
3581
+ }
3582
+ #nifty_wrapper .open > a {
3583
+ outline: 0;
3584
+ }
3585
+ #nifty_wrapper .dropdown-menu-right {
3586
+ left: auto;
3587
+ right: 0;
3588
+ }
3589
+ #nifty_wrapper .dropdown-menu-left {
3590
+ left: 0;
3591
+ right: auto;
3592
+ }
3593
+ #nifty_wrapper .dropdown-header {
3594
+ display: block;
3595
+ padding: 3px 20px;
3596
+ font-size: 12px;
3597
+ line-height: 1.52857143;
3598
+ color: #e4eaec;
3599
+ white-space: nowrap;
3600
+ }
3601
+ #nifty_wrapper .dropdown-backdrop {
3602
+ position: fixed;
3603
+ left: 0;
3604
+ right: 0;
3605
+ bottom: 0;
3606
+ top: 0;
3607
+ z-index: 990;
3608
+ }
3609
+ #nifty_wrapper .pull-right > .dropdown-menu {
3610
+ right: 0;
3611
+ left: auto;
3612
+ }
3613
+ #nifty_wrapper .dropup .caret,
3614
+ #nifty_wrapper .navbar-fixed-bottom .dropdown .caret {
3615
+ border-top: 0;
3616
+ border-bottom: 4px dashed;
3617
+ border-bottom: 4px solid \9;
3618
+ content: "";
3619
+ }
3620
+ #nifty_wrapper .dropup .dropdown-menu,
3621
+ #nifty_wrapper .navbar-fixed-bottom .dropdown .dropdown-menu {
3622
+ top: auto;
3623
+ bottom: 100%;
3624
+ margin-bottom: 2px;
3625
+ }
3626
+ @media (min-width: 768px) {
3627
+ #nifty_wrapper .navbar-right .dropdown-menu {
3628
+ left: auto;
3629
+ right: 0;
3630
+ }
3631
+ #nifty_wrapper .navbar-right .dropdown-menu-left {
3632
+ left: 0;
3633
+ right: auto;
3634
+ }
3635
+ }
3636
+ .btn-group,
3637
+ .btn-group-vertical {
3638
+ position: relative;
3639
+ display: inline-block;
3640
+ vertical-align: middle;
3641
+ }
3642
+ .btn-group > .btn,
3643
+ .btn-group-vertical > .btn {
3644
+ position: relative;
3645
+ float: left;
3646
+ }
3647
+ .btn-group > .btn:hover,
3648
+ .btn-group-vertical > .btn:hover,
3649
+ .btn-group > .btn:focus,
3650
+ .btn-group-vertical > .btn:focus,
3651
+ .btn-group > .btn:active,
3652
+ .btn-group-vertical > .btn:active,
3653
+ .btn-group > .btn.active,
3654
+ .btn-group-vertical > .btn.active {
3655
+ z-index: 2;
3656
+ }
3657
+ .btn-group .btn + .btn,
3658
+ .btn-group .btn + .btn-group,
3659
+ .btn-group .btn-group + .btn,
3660
+ .btn-group .btn-group + .btn-group {
3661
+ margin-left: -1px;
3662
+ }
3663
+ .btn-toolbar {
3664
+ margin-left: -5px;
3665
+ }
3666
+ .btn-toolbar .btn,
3667
+ .btn-toolbar .btn-group,
3668
+ .btn-toolbar .input-group {
3669
+ float: left;
3670
+ }
3671
+ .btn-toolbar > .btn,
3672
+ .btn-toolbar > .btn-group,
3673
+ .btn-toolbar > .input-group {
3674
+ margin-left: 5px;
3675
+ }
3676
+ .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3677
+ border-radius: 0;
3678
+ }
3679
+ .btn-group > .btn:first-child {
3680
+ margin-left: 0;
3681
+ }
3682
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3683
+ border-bottom-right-radius: 0;
3684
+ border-top-right-radius: 0;
3685
+ }
3686
+ .btn-group > .btn:last-child:not(:first-child),
3687
+ .btn-group > .dropdown-toggle:not(:first-child) {
3688
+ border-bottom-left-radius: 0;
3689
+ border-top-left-radius: 0;
3690
+ }
3691
+ .btn-group > .btn-group {
3692
+ float: left;
3693
+ }
3694
+ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3695
+ border-radius: 0;
3696
+ }
3697
+ .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
3698
+ .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3699
+ border-bottom-right-radius: 0;
3700
+ border-top-right-radius: 0;
3701
+ }
3702
+ .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
3703
+ border-bottom-left-radius: 0;
3704
+ border-top-left-radius: 0;
3705
+ }
3706
+ .btn-group .dropdown-toggle:active,
3707
+ .btn-group.open .dropdown-toggle {
3708
+ outline: 0;
3709
+ }
3710
+ .btn-group > .btn + .dropdown-toggle {
3711
+ padding-left: 8px;
3712
+ padding-right: 8px;
3713
+ }
3714
+ .btn-group > .btn-lg + .dropdown-toggle {
3715
+ padding-left: 12px;
3716
+ padding-right: 12px;
3717
+ }
3718
+ .btn-group.open .dropdown-toggle {
3719
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3720
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3721
+ }
3722
+ .btn-group.open .dropdown-toggle.btn-link {
3723
+ -webkit-box-shadow: none;
3724
+ box-shadow: none;
3725
+ }
3726
+ .btn .caret {
3727
+ margin-left: 0;
3728
+ }
3729
+ .btn-lg .caret {
3730
+ border-width: 5px 5px 0;
3731
+ border-bottom-width: 0;
3732
+ }
3733
+ #nifty_wrapper .dropup .btn-lg .caret {
3734
+ border-width: 0 5px 5px;
3735
+ }
3736
+ .btn-group-vertical > .btn,
3737
+ .btn-group-vertical > .btn-group,
3738
+ .btn-group-vertical > .btn-group > .btn {
3739
+ display: block;
3740
+ float: none;
3741
+ width: 100%;
3742
+ max-width: 100%;
3743
+ }
3744
+ .btn-group-vertical > .btn-group > .btn {
3745
+ float: none;
3746
+ }
3747
+ .btn-group-vertical > .btn + .btn,
3748
+ .btn-group-vertical > .btn + .btn-group,
3749
+ .btn-group-vertical > .btn-group + .btn,
3750
+ .btn-group-vertical > .btn-group + .btn-group {
3751
+ margin-top: -1px;
3752
+ margin-left: 0;
3753
+ }
3754
+ .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3755
+ border-radius: 0;
3756
+ }
3757
+ .btn-group-vertical > .btn:first-child:not(:last-child) {
3758
+ border-top-right-radius: 4px;
3759
+ border-top-left-radius: 4px;
3760
+ border-bottom-right-radius: 0;
3761
+ border-bottom-left-radius: 0;
3762
+ }
3763
+ .btn-group-vertical > .btn:last-child:not(:first-child) {
3764
+ border-top-right-radius: 0;
3765
+ border-top-left-radius: 0;
3766
+ border-bottom-right-radius: 4px;
3767
+ border-bottom-left-radius: 4px;
3768
+ }
3769
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3770
+ border-radius: 0;
3771
+ }
3772
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
3773
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3774
+ border-bottom-right-radius: 0;
3775
+ border-bottom-left-radius: 0;
3776
+ }
3777
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
3778
+ border-top-right-radius: 0;
3779
+ border-top-left-radius: 0;
3780
+ }
3781
+ .btn-group-justified {
3782
+ display: table;
3783
+ width: 100%;
3784
+ table-layout: fixed;
3785
+ border-collapse: separate;
3786
+ }
3787
+ .btn-group-justified > .btn,
3788
+ .btn-group-justified > .btn-group {
3789
+ float: none;
3790
+ display: table-cell;
3791
+ width: 1%;
3792
+ }
3793
+ .btn-group-justified > .btn-group .btn {
3794
+ width: 100%;
3795
+ }
3796
+ .btn-group-justified > .btn-group .dropdown-menu {
3797
+ left: auto;
3798
+ }
3799
+ #nifty_wrapper [data-toggle="buttons"] > .btn input[type="radio"],
3800
+ #nifty_wrapper [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
3801
+ #nifty_wrapper [data-toggle="buttons"] > .btn input[type="checkbox"],
3802
+ #nifty_wrapper [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
3803
+ position: absolute;
3804
+ #nifty_wrapper clip: rect(0, 0, 0, 0);
3805
+ pointer-events: none;
3806
+ }
3807
+ #nifty_wrapper .input-group {
3808
+ position: relative;
3809
+ display: table;
3810
+ border-collapse: separate;
3811
+ }
3812
+ #nifty_wrapper .input-group[class*="col-"] {
3813
+ float: none;
3814
+ padding-left: 0;
3815
+ padding-right: 0;
3816
+ }
3817
+ #nifty_wrapper .input-group .form-control {
3818
+ position: relative;
3819
+ z-index: 2;
3820
+ float: left;
3821
+ width: 100%;
3822
+ margin-bottom: 0;
3823
+ }
3824
+ #nifty_wrapper .input-group .form-control:focus {
3825
+ z-index: 3;
3826
+ }
3827
+ #nifty_wrapper .input-group-lg > .form-control,
3828
+ #nifty_wrapper .input-group-lg > .input-group-addon,
3829
+ #nifty_wrapper .input-group-lg > .input-group-btn > .btn {
3830
+ height: 46px;
3831
+ padding: 10px 20px;
3832
+ font-size: 18px;
3833
+ line-height: 1.33;
3834
+ border-radius: 6px;
3835
+ }
3836
+ #nifty_wrapper select.input-group-lg > .form-control,
3837
+ #nifty_wrapper select.input-group-lg > .input-group-addon,
3838
+ #nifty_wrapper select.input-group-lg > .input-group-btn > .btn {
3839
+ height: 46px;
3840
+ line-height: 46px;
3841
+ }
3842
+ #nifty_wrapper textarea.input-group-lg > .form-control,
3843
+ #nifty_wrapper textarea.input-group-lg > .input-group-addon,
3844
+ #nifty_wrapper textarea.input-group-lg > .input-group-btn > .btn,
3845
+ #nifty_wrapper select[multiple].input-group-lg > .form-control,
3846
+ #nifty_wrapper select[multiple].input-group-lg > .input-group-addon,
3847
+ #nifty_wrapper select[multiple].input-group-lg > .input-group-btn > .btn {
3848
+ height: auto;
3849
+ }
3850
+ #nifty_wrapper .input-group-sm > .form-control,
3851
+ #nifty_wrapper .input-group-sm > .input-group-addon,
3852
+ #nifty_wrapper .input-group-sm > .input-group-btn > .btn {
3853
+ height: 30px;
3854
+ padding: 5px 10px;
3855
+ font-size: 12px;
3856
+ line-height: 1.5;
3857
+ border-radius: 3px;
3858
+ }
3859
+ #nifty_wrapper select.input-group-sm > .form-control,
3860
+ #nifty_wrapper select.input-group-sm > .input-group-addon,
3861
+ #nifty_wrapper select.input-group-sm > .input-group-btn > .btn {
3862
+ height: 30px;
3863
+ line-height: 30px;
3864
+ }
3865
+ #nifty_wrapper textarea.input-group-sm > .form-control,
3866
+ #nifty_wrapper textarea.input-group-sm > .input-group-addon,
3867
+ #nifty_wrapper textarea.input-group-sm > .input-group-btn > .btn,
3868
+ #nifty_wrapper select[multiple].input-group-sm > .form-control,
3869
+ #nifty_wrapper select[multiple].input-group-sm > .input-group-addon,
3870
+ #nifty_wrapper select[multiple].input-group-sm > .input-group-btn > .btn {
3871
+ height: auto;
3872
+ }
3873
+ #nifty_wrapper .input-group-addon,
3874
+ #nifty_wrapper .input-group-btn,
3875
+ #nifty_wrapper .input-group .form-control {
3876
+ display: table-cell;
3877
+ }
3878
+ #nifty_wrapper .input-group-addon:not(:first-child):not(:last-child),
3879
+ #nifty_wrapper .input-group-btn:not(:first-child):not(:last-child),
3880
+ #nifty_wrapper .input-group .form-control:not(:first-child):not(:last-child) {
3881
+ border-radius: 0;
3882
+ }
3883
+ #nifty_wrapper .input-group-addon,
3884
+ #nifty_wrapper .input-group-btn {
3885
+ width: 1%;
3886
+ white-space: nowrap;
3887
+ vertical-align: middle;
3888
+ }
3889
+ #nifty_wrapper .input-group-addon {
3890
+ padding: 6px 16px;
3891
+ font-size: 14px;
3892
+ font-weight: normal;
3893
+ line-height: 1;
3894
+ color: #3a3f51;
3895
+ text-align: center;
3896
+ background-color: #edf1f2;
3897
+ border: 1px solid #dde6e9;
3898
+ border-radius: 4px;
3899
+ }
3900
+ #nifty_wrapper .input-group-addon.input-sm {
3901
+ padding: 5px 10px;
3902
+ font-size: 12px;
3903
+ border-radius: 3px;
3904
+ }
3905
+ #nifty_wrapper .input-group-addon.input-lg {
3906
+ padding: 10px 20px;
3907
+ font-size: 18px;
3908
+ border-radius: 6px;
3909
+ }
3910
+ #nifty_wrapper .input-group-addon input[type="radio"],
3911
+ #nifty_wrapper .input-group-addon input[type="checkbox"] {
3912
+ margin-top: 0;
3913
+ }
3914
+ #nifty_wrapper .input-group .form-control:first-child,
3915
+ #nifty_wrapper .input-group-addon:first-child,
3916
+ #nifty_wrapper .input-group-btn:first-child > .btn,
3917
+ #nifty_wrapper .input-group-btn:first-child > .btn-group > .btn,
3918
+ #nifty_wrapper .input-group-btn:first-child > .dropdown-toggle,
3919
+ #nifty_wrapper .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
3920
+ #nifty_wrapper .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
3921
+ border-bottom-right-radius: 0;
3922
+ border-top-right-radius: 0;
3923
+ }
3924
+ #nifty_wrapper .input-group-addon:first-child {
3925
+ border-right: 0;
3926
+ }
3927
+ #nifty_wrapper .input-group .form-control:last-child,
3928
+ #nifty_wrapper .input-group-addon:last-child,
3929
+ #nifty_wrapper .input-group-btn:last-child > .btn,
3930
+ #nifty_wrapper .input-group-btn:last-child > .btn-group > .btn,
3931
+ #nifty_wrapper .input-group-btn:last-child > .dropdown-toggle,
3932
+ #nifty_wrapper .input-group-btn:first-child > .btn:not(:first-child),
3933
+ #nifty_wrapper .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
3934
+ border-bottom-left-radius: 0;
3935
+ border-top-left-radius: 0;
3936
+ }
3937
+ #nifty_wrapper .input-group-addon:last-child {
3938
+ border-left: 0;
3939
+ }
3940
+ #nifty_wrapper .input-group-btn {
3941
+ position: relative;
3942
+ font-size: 0;
3943
+ white-space: nowrap;
3944
+ }
3945
+ #nifty_wrapper .input-group-btn > .btn {
3946
+ position: relative;
3947
+ }
3948
+ #nifty_wrapper .input-group-btn > .btn + .btn {
3949
+ margin-left: -1px;
3950
+ }
3951
+ #nifty_wrapper .input-group-btn > .btn:hover,
3952
+ #nifty_wrapper .input-group-btn > .btn:focus,
3953
+ #nifty_wrapper .input-group-btn > .btn:active {
3954
+ z-index: 2;
3955
+ }
3956
+ #nifty_wrapper .input-group-btn:first-child > .btn,
3957
+ #nifty_wrapper .input-group-btn:first-child > .btn-group {
3958
+ margin-right: -1px;
3959
+ }
3960
+ #nifty_wrapper .input-group-btn:last-child > .btn,
3961
+ #nifty_wrapper .input-group-btn:last-child > .btn-group {
3962
+ z-index: 2;
3963
+ margin-left: -1px;
3964
+ }
3965
+ #nifty_wrapper .nav {
3966
+ margin-bottom: 0;
3967
+ padding-left: 0;
3968
+ list-style: none;
3969
+ }
3970
+ #nifty_wrapper .nav > li {
3971
+ position: relative;
3972
+ display: block;
3973
+ }
3974
+ #nifty_wrapper .nav > li > a {
3975
+ position: relative;
3976
+ display: block;
3977
+ padding: 10px 15px;
3978
+ }
3979
+ #nifty_wrapper .nav > li > a:hover,
3980
+ #nifty_wrapper .nav > li > a:focus {
3981
+ text-decoration: none;
3982
+ background-color: transparent;
3983
+ }
3984
+ #nifty_wrapper .nav > li.disabled > a {
3985
+ color: #e4eaec;
3986
+ }
3987
+ #nifty_wrapper .nav > li.disabled > a:hover,
3988
+ #nifty_wrapper .nav > li.disabled > a:focus {
3989
+ color: #e4eaec;
3990
+ text-decoration: none;
3991
+ background-color: transparent;
3992
+ cursor: not-allowed;
3993
+ }
3994
+ #nifty_wrapper .nav .open > a,
3995
+ #nifty_wrapper .nav .open > a:hover,
3996
+ #nifty_wrapper .nav .open > a:focus {
3997
+ background-color: transparent;
3998
+ border-color: #5d9cec;
3999
+ }
4000
+ #nifty_wrapper .nav .nav-divider {
4001
+ height: 1px;
4002
+ margin: 9.5px 0;
4003
+ overflow: hidden;
4004
+ background-color: #e5e5e5;
4005
+ }
4006
+ #nifty_wrapper .nav > li > a > img {
4007
+ max-width: none;
4008
+ }
4009
+ #nifty_wrapper .nav-tabs {
4010
+ border-bottom: 1px solid #dddddd;
4011
+ }
4012
+ #nifty_wrapper .nav-tabs > li {
4013
+ float: left;
4014
+ margin-bottom: -1px;
4015
+ }
4016
+ #nifty_wrapper .nav-tabs > li > a {
4017
+ margin-right: 2px;
4018
+ line-height: 1.52857143;
4019
+ border: 1px solid transparent;
4020
+ border-radius: 4px 4px 0 0;
4021
+ }
4022
+ #nifty_wrapper .nav-tabs > li > a:hover {
4023
+ border-color: #dddddd #dddddd #dddddd;
4024
+ }
4025
+ #nifty_wrapper .nav-tabs > li.active > a,
4026
+ #nifty_wrapper .nav-tabs > li.active > a:hover,
4027
+ #nifty_wrapper .nav-tabs > li.active > a:focus {
4028
+ color: #dde6e9;
4029
+ background-color: #ffffff;
4030
+ border: 1px solid #dddddd;
4031
+ border-bottom-color: transparent;
4032
+ cursor: default;
4033
+ }
4034
+ #nifty_wrapper .nav-tabs.nav-justified {
4035
+ width: 100%;
4036
+ border-bottom: 0;
4037
+ }
4038
+ #nifty_wrapper .nav-tabs.nav-justified > li {
4039
+ float: none;
4040
+ }
4041
+ #nifty_wrapper .nav-tabs.nav-justified > li > a {
4042
+ text-align: center;
4043
+ margin-bottom: 5px;
4044
+ }
4045
+ #nifty_wrapper .nav-tabs.nav-justified > .dropdown .dropdown-menu {
4046
+ top: auto;
4047
+ left: auto;
4048
+ }
4049
+ @media (min-width: 768px) {
4050
+ #nifty_wrapper .nav-tabs.nav-justified > li {
4051
+ display: table-cell;
4052
+ width: 1%;
4053
+ }
4054
+ #nifty_wrapper .nav-tabs.nav-justified > li > a {
4055
+ margin-bottom: 0;
4056
+ }
4057
+ }
4058
+ #nifty_wrapper .nav-tabs.nav-justified > li > a {
4059
+ margin-right: 0;
4060
+ border-radius: 4px;
4061
+ }
4062
+ #nifty_wrapper .nav-tabs.nav-justified > .active > a,
4063
+ #nifty_wrapper .nav-tabs.nav-justified > .active > a:hover,
4064
+ #nifty_wrapper .nav-tabs.nav-justified > .active > a:focus {
4065
+ border: 1px solid #dddddd;
4066
+ }
4067
+ @media (min-width: 768px) {
4068
+ #nifty_wrapper .nav-tabs.nav-justified > li > a {
4069
+ border-bottom: 1px solid #dddddd;
4070
+ border-radius: 4px 4px 0 0;
4071
+ }
4072
+ #nifty_wrapper .nav-tabs.nav-justified > .active > a,
4073
+ #nifty_wrapper .nav-tabs.nav-justified > .active > a:hover,
4074
+ #nifty_wrapper .nav-tabs.nav-justified > .active > a:focus {
4075
+ border-bottom-color: #f5f7fa;
4076
+ }
4077
+ }
4078
+ #nifty_wrapper .nav-pills > li {
4079
+ float: left;
4080
+ }
4081
+ #nifty_wrapper .nav-pills > li > a {
4082
+ border-radius: 4px;
4083
+ }
4084
+ #nifty_wrapper .nav-pills > li + li {
4085
+ margin-left: 2px;
4086
+ }
4087
+ #nifty_wrapper .nav-pills > li.active > a,
4088
+ #nifty_wrapper .nav-pills > li.active > a:hover,
4089
+ #nifty_wrapper .nav-pills > li.active > a:focus {
4090
+ color: #ffffff;
4091
+ background-color: #5d9cec;
4092
+ }
4093
+ #nifty_wrapper .nav-stacked > li {
4094
+ float: none;
4095
+ }
4096
+ #nifty_wrapper .nav-stacked > li + li {
4097
+ margin-top: 2px;
4098
+ margin-left: 0;
4099
+ }
4100
+ #nifty_wrapper .nav-justified {
4101
+ width: 100%;
4102
+ }
4103
+ #nifty_wrapper .nav-justified > li {
4104
+ float: none;
4105
+ }
4106
+ #nifty_wrapper .nav-justified > li > a {
4107
+ text-align: center;
4108
+ margin-bottom: 5px;
4109
+ }
4110
+ #nifty_wrapper .nav-justified > .dropdown .dropdown-menu {
4111
+ top: auto;
4112
+ left: auto;
4113
+ }
4114
+ @media (min-width: 768px) {
4115
+ #nifty_wrapper .nav-justified > li {
4116
+ display: table-cell;
4117
+ width: 1%;
4118
+ }
4119
+ #nifty_wrapper .nav-justified > li > a {
4120
+ margin-bottom: 0;
4121
+ }
4122
+ }
4123
+ #nifty_wrapper .nav-tabs-justified {
4124
+ border-bottom: 0;
4125
+ }
4126
+ #nifty_wrapper .nav-tabs-justified > li > a {
4127
+ margin-right: 0;
4128
+ border-radius: 4px;
4129
+ }
4130
+ #nifty_wrapper .nav-tabs-justified > .active > a,
4131
+ #nifty_wrapper .nav-tabs-justified > .active > a:hover,
4132
+ #nifty_wrapper .nav-tabs-justified > .active > a:focus {
4133
+ border: 1px solid #dddddd;
4134
+ }
4135
+ @media (min-width: 768px) {
4136
+ #nifty_wrapper .nav-tabs-justified > li > a {
4137
+ border-bottom: 1px solid #dddddd;
4138
+ border-radius: 4px 4px 0 0;
4139
+ }
4140
+ #nifty_wrapper .nav-tabs-justified > .active > a,
4141
+ #nifty_wrapper .nav-tabs-justified > .active > a:hover,
4142
+ #nifty_wrapper .nav-tabs-justified > .active > a:focus {
4143
+ border-bottom-color: #f5f7fa;
4144
+ }
4145
+ }
4146
+ #nifty_wrapper .tab-content > .tab-pane {
4147
+ display: none;
4148
+ }
4149
+ #nifty_wrapper .tab-content > .active {
4150
+ display: block;
4151
+ }
4152
+ #nifty_wrapper .nav-tabs .dropdown-menu {
4153
+ margin-top: -1px;
4154
+ border-top-right-radius: 0;
4155
+ border-top-left-radius: 0;
4156
+ }
4157
+ #nifty_wrapper .navbar {
4158
+ position: relative;
4159
+ min-height: 55px;
4160
+ margin-bottom: 21px;
4161
+ border: 1px solid transparent;
4162
+ }
4163
+ @media (min-width: 768px) {
4164
+ #nifty_wrapper .navbar {
4165
+ border-radius: 4px;
4166
+ }
4167
+ }
4168
+ @media (min-width: 768px) {
4169
+ #nifty_wrapper .navbar-header {
4170
+ float: left;
4171
+ }
4172
+ }
4173
+ #nifty_wrapper .navbar-collapse {
4174
+ overflow-x: visible;
4175
+ padding-right: 15px;
4176
+ padding-left: 15px;
4177
+ border-top: 1px solid transparent;
4178
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
4179
+ -webkit-overflow-scrolling: touch;
4180
+ }
4181
+ #nifty_wrapper .navbar-collapse.in {
4182
+ overflow-y: auto;
4183
+ }
4184
+ @media (min-width: 768px) {
4185
+ #nifty_wrapper .navbar-collapse {
4186
+ width: auto;
4187
+ border-top: 0;
4188
+ box-shadow: none;
4189
+ }
4190
+ #nifty_wrapper .navbar-collapse.collapse {
4191
+ display: block !important;
4192
+ height: auto !important;
4193
+ padding-bottom: 0;
4194
+ overflow: visible !important;
4195
+ }
4196
+ #nifty_wrapper .navbar-collapse.in {
4197
+ overflow-y: visible;
4198
+ }
4199
+ #nifty_wrapper .navbar-fixed-top .navbar-collapse,
4200
+ #nifty_wrapper .navbar-static-top .navbar-collapse,
4201
+ #nifty_wrapper .navbar-fixed-bottom .navbar-collapse {
4202
+ padding-left: 0;
4203
+ padding-right: 0;
4204
+ }
4205
+ }
4206
+ #nifty_wrapper .navbar-fixed-top .navbar-collapse,
4207
+ #nifty_wrapper .navbar-fixed-bottom .navbar-collapse {
4208
+ max-height: 340px;
4209
+ }
4210
+ @media (max-device-width: 480px) and (orientation: landscape) {
4211
+ #nifty_wrapper .navbar-fixed-top .navbar-collapse,
4212
+ #nifty_wrapper .navbar-fixed-bottom .navbar-collapse {
4213
+ max-height: 200px;
4214
+ }
4215
+ }
4216
+ #nifty_wrapper .container > .navbar-header,
4217
+ #nifty_wrapper .container-fluid > .navbar-header,
4218
+ #nifty_wrapper .container > .navbar-collapse,
4219
+ #nifty_wrapper .container-fluid > .navbar-collapse {
4220
+ margin-right: -15px;
4221
+ margin-left: -15px;
4222
+ }
4223
+ @media (min-width: 768px) {
4224
+ #nifty_wrapper .container > .navbar-header,
4225
+ #nifty_wrapper .container-fluid > .navbar-header,
4226
+ #nifty_wrapper .container > .navbar-collapse,
4227
+ #nifty_wrapper .container-fluid > .navbar-collapse {
4228
+ margin-right: 0;
4229
+ margin-left: 0;
4230
+ }
4231
+ }
4232
+ #nifty_wrapper .navbar-static-top {
4233
+ z-index: 1000;
4234
+ border-width: 0 0 1px;
4235
+ }
4236
+ @media (min-width: 768px) {
4237
+ #nifty_wrapper .navbar-static-top {
4238
+ border-radius: 0;
4239
+ }
4240
+ }
4241
+ #nifty_wrapper .navbar-fixed-top,
4242
+ #nifty_wrapper .navbar-fixed-bottom {
4243
+ position: fixed;
4244
+ right: 0;
4245
+ left: 0;
4246
+ z-index: 1030;
4247
+ }
4248
+ @media (min-width: 768px) {
4249
+ #nifty_wrapper .navbar-fixed-top,
4250
+ #nifty_wrapper .navbar-fixed-bottom {
4251
+ border-radius: 0;
4252
+ }
4253
+ }
4254
+ #nifty_wrapper .navbar-fixed-top {
4255
+ top: 0;
4256
+ border-width: 0 0 1px;
4257
+ }
4258
+ #nifty_wrapper .navbar-fixed-bottom {
4259
+ bottom: 0;
4260
+ margin-bottom: 0;
4261
+ border-width: 1px 0 0;
4262
+ }
4263
+ #nifty_wrapper .navbar-brand {
4264
+ float: left;
4265
+ padding: 17px 15px;
4266
+ font-size: 18px;
4267
+ line-height: 21px;
4268
+ height: 55px;
4269
+ }
4270
+ #nifty_wrapper .navbar-brand:hover,
4271
+ #nifty_wrapper .navbar-brand:focus {
4272
+ text-decoration: none;
4273
+ }
4274
+ #nifty_wrapper .navbar-brand > img {
4275
+ display: block;
4276
+ }
4277
+ @media (min-width: 768px) {
4278
+ #nifty_wrapper .navbar > .container .navbar-brand,
4279
+ #nifty_wrapper .navbar > .container-fluid .navbar-brand {
4280
+ margin-left: -15px;
4281
+ }
4282
+ }
4283
+ #nifty_wrapper .navbar-toggle {
4284
+ position: relative;
4285
+ float: right;
4286
+ margin-right: 15px;
4287
+ padding: 9px 10px;
4288
+ margin-top: 10.5px;
4289
+ margin-bottom: 10.5px;
4290
+ background-color: transparent;
4291
+ background-image: none;
4292
+ border: 1px solid transparent;
4293
+ border-radius: 4px;
4294
+ }
4295
+ #nifty_wrapper .navbar-toggle:focus {
4296
+ outline: 0;
4297
+ }
4298
+ #nifty_wrapper .navbar-toggle .icon-bar {
4299
+ display: block;
4300
+ width: 22px;
4301
+ height: 2px;
4302
+ border-radius: 1px;
4303
+ }
4304
+ #nifty_wrapper .navbar-toggle .icon-bar + .icon-bar {
4305
+ margin-top: 4px;
4306
+ }
4307
+ @media (min-width: 768px) {
4308
+ #nifty_wrapper .navbar-toggle {
4309
+ display: none;
4310
+ }
4311
+ }
4312
+ #nifty_wrapper .navbar-nav {
4313
+ margin: 8.5px -15px;
4314
+ }
4315
+ #nifty_wrapper .navbar-nav > li > a {
4316
+ padding-top: 10px;
4317
+ padding-bottom: 10px;
4318
+ line-height: 21px;
4319
+ }
4320
+ @media (max-width: 767px) {
4321
+ #nifty_wrapper .navbar-nav .open .dropdown-menu {
4322
+ position: static;
4323
+ float: none;
4324
+ width: auto;
4325
+ margin-top: 0;
4326
+ background-color: transparent;
4327
+ border: 0;
4328
+ box-shadow: none;
4329
+ }
4330
+ #nifty_wrapper .navbar-nav .open .dropdown-menu > li > a,
4331
+ #nifty_wrapper .navbar-nav .open .dropdown-menu .dropdown-header {
4332
+ padding: 5px 15px 5px 25px;
4333
+ }
4334
+ #nifty_wrapper .navbar-nav .open .dropdown-menu > li > a {
4335
+ line-height: 21px;
4336
+ }
4337
+ #nifty_wrapper .navbar-nav .open .dropdown-menu > li > a:hover,
4338
+ #nifty_wrapper .navbar-nav .open .dropdown-menu > li > a:focus {
4339
+ background-image: none;
4340
+ }
4341
+ }
4342
+ @media (min-width: 768px) {
4343
+ #nifty_wrapper .navbar-nav {
4344
+ float: left;
4345
+ margin: 0;
4346
+ }
4347
+ #nifty_wrapper .navbar-nav > li {
4348
+ float: left;
4349
+ }
4350
+ #nifty_wrapper .navbar-nav > li > a {
4351
+ padding-top: 17px;
4352
+ padding-bottom: 17px;
4353
+ }
4354
+ }
4355
+ #nifty_wrapper .navbar-form {
4356
+ margin-left: -15px;
4357
+ margin-right: -15px;
4358
+ padding: 10px 15px;
4359
+ border-top: 1px solid transparent;
4360
+ border-bottom: 1px solid transparent;
4361
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
4362
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
4363
+ margin-top: 10px;
4364
+ margin-bottom: 10px;
4365
+ }
4366
+ @media (min-width: 768px) {
4367
+ #nifty_wrapper .navbar-form .form-group {
4368
+ display: inline-block;
4369
+ margin-bottom: 0;
4370
+ vertical-align: middle;
4371
+ }
4372
+ #nifty_wrapper .navbar-form .form-control {
4373
+ display: inline-block;
4374
+ width: auto;
4375
+ vertical-align: middle;
4376
+ }
4377
+ #nifty_wrapper .navbar-form .form-control-static {
4378
+ display: inline-block;
4379
+ }
4380
+ #nifty_wrapper .navbar-form .input-group {
4381
+ display: inline-table;
4382
+ vertical-align: middle;
4383
+ }
4384
+ #nifty_wrapper .navbar-form .input-group .input-group-addon,
4385
+ #nifty_wrapper .navbar-form .input-group .input-group-btn,
4386
+ #nifty_wrapper .navbar-form .input-group .form-control {
4387
+ width: auto;
4388
+ }
4389
+ #nifty_wrapper .navbar-form .input-group > .form-control {
4390
+ width: 100%;
4391
+ }
4392
+ #nifty_wrapper .navbar-form .control-label {
4393
+ margin-bottom: 0;
4394
+ vertical-align: middle;
4395
+ }
4396
+ #nifty_wrapper .navbar-form .radio,
4397
+ #nifty_wrapper .navbar-form .checkbox {
4398
+ display: inline-block;
4399
+ margin-top: 0;
4400
+ margin-bottom: 0;
4401
+ vertical-align: middle;
4402
+ }
4403
+ #nifty_wrapper .navbar-form .radio label,
4404
+ #nifty_wrapper .navbar-form .checkbox label {
4405
+ padding-left: 0;
4406
+ }
4407
+ #nifty_wrapper .navbar-form .radio input[type="radio"],
4408
+ #nifty_wrapper .navbar-form .checkbox input[type="checkbox"] {
4409
+ position: relative;
4410
+ margin-left: 0;
4411
+ }
4412
+ #nifty_wrapper .navbar-form .has-feedback .form-control-feedback {
4413
+ top: 0;
4414
+ }
4415
+ }
4416
+ @media (max-width: 767px) {
4417
+ #nifty_wrapper .navbar-form .form-group {
4418
+ margin-bottom: 5px;
4419
+ }
4420
+ #nifty_wrapper .navbar-form .form-group:last-child {
4421
+ margin-bottom: 0;
4422
+ }
4423
+ }
4424
+ @media (min-width: 768px) {
4425
+ #nifty_wrapper .navbar-form {
4426
+ width: auto;
4427
+ border: 0;
4428
+ margin-left: 0;
4429
+ margin-right: 0;
4430
+ padding-top: 0;
4431
+ padding-bottom: 0;
4432
+ -webkit-box-shadow: none;
4433
+ box-shadow: none;
4434
+ }
4435
+ }
4436
+ #nifty_wrapper .navbar-nav > li > .dropdown-menu {
4437
+ margin-top: 0;
4438
+ border-top-right-radius: 0;
4439
+ border-top-left-radius: 0;
4440
+ }
4441
+ #nifty_wrapper .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
4442
+ margin-bottom: 0;
4443
+ border-top-right-radius: 4px;
4444
+ border-top-left-radius: 4px;
4445
+ border-bottom-right-radius: 0;
4446
+ border-bottom-left-radius: 0;
4447
+ }
4448
+ #nifty_wrapper .navbar-btn {
4449
+ margin-top: 10px;
4450
+ margin-bottom: 10px;
4451
+ }
4452
+ #nifty_wrapper .navbar-btn.btn-sm {
4453
+ margin-top: 12.5px;
4454
+ margin-bottom: 12.5px;
4455
+ }
4456
+ #nifty_wrapper .navbar-btn.btn-xs {
4457
+ margin-top: 16.5px;
4458
+ margin-bottom: 16.5px;
4459
+ }
4460
+ #nifty_wrapper .navbar-text {
4461
+ margin-top: 17px;
4462
+ margin-bottom: 17px;
4463
+ }
4464
+ @media (min-width: 768px) {
4465
+ #nifty_wrapper .navbar-text {
4466
+ float: left;
4467
+ margin-left: 15px;
4468
+ margin-right: 15px;
4469
+ }
4470
+ }
4471
+ @media (min-width: 768px) {
4472
+ #nifty_wrapper .navbar-left {
4473
+ float: left !important;
4474
+ }
4475
+ #nifty_wrapper .navbar-right {
4476
+ float: right !important;
4477
+ margin-right: -15px;
4478
+ }
4479
+ #nifty_wrapper .navbar-right ~ .navbar-right {
4480
+ margin-right: 0;
4481
+ }
4482
+ }
4483
+ #nifty_wrapper .navbar-default {
4484
+ background-color: #f8f8f8;
4485
+ border-color: #e7e7e7;
4486
+ }
4487
+ #nifty_wrapper .navbar-default .navbar-brand {
4488
+ color: #ffffff;
4489
+ }
4490
+ #nifty_wrapper .navbar-default .navbar-brand:hover,
4491
+ #nifty_wrapper .navbar-default .navbar-brand:focus {
4492
+ color: #e6e6e6;
4493
+ background-color: transparent;
4494
+ }
4495
+ #nifty_wrapper .navbar-default .navbar-text {
4496
+ color: #777777;
4497
+ }
4498
+ #nifty_wrapper .navbar-default .navbar-nav > li > a {
4499
+ color: #ffffff;
4500
+ }
4501
+ #nifty_wrapper .navbar-default .navbar-nav > li > a:hover,
4502
+ #nifty_wrapper .navbar-default .navbar-nav > li > a:focus {
4503
+ color: #dddddd;
4504
+ background-color: transparent;
4505
+ }
4506
+ #nifty_wrapper .navbar-default .navbar-nav > .active > a,
4507
+ #nifty_wrapper .navbar-default .navbar-nav > .active > a:hover,
4508
+ #nifty_wrapper .navbar-default .navbar-nav > .active > a:focus {
4509
+ color: #dddddd;
4510
+ background-color: #e7e7e7;
4511
+ }
4512
+ #nifty_wrapper .navbar-default .navbar-nav > .disabled > a,
4513
+ #nifty_wrapper .navbar-default .navbar-nav > .disabled > a:hover,
4514
+ #nifty_wrapper .navbar-default .navbar-nav > .disabled > a:focus {
4515
+ color: #cccccc;
4516
+ background-color: transparent;
4517
+ }
4518
+ #nifty_wrapper .navbar-default .navbar-toggle {
4519
+ border-color: #dddddd;
4520
+ }
4521
+ #nifty_wrapper .navbar-default .navbar-toggle:hover,
4522
+ #nifty_wrapper .navbar-default .navbar-toggle:focus {
4523
+ background-color: #dddddd;
4524
+ }
4525
+ #nifty_wrapper .navbar-default .navbar-toggle .icon-bar {
4526
+ background-color: #888888;
4527
+ }
4528
+ #nifty_wrapper .navbar-default .navbar-collapse,
4529
+ #nifty_wrapper .navbar-default .navbar-form {
4530
+ border-color: #e7e7e7;
4531
+ }
4532
+ #nifty_wrapper .navbar-default .navbar-nav > .open > a,
4533
+ #nifty_wrapper .navbar-default .navbar-nav > .open > a:hover,
4534
+ #nifty_wrapper .navbar-default .navbar-nav > .open > a:focus {
4535
+ background-color: #e7e7e7;
4536
+ color: #dddddd;
4537
+ }
4538
+ @media (max-width: 767px) {
4539
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a {
4540
+ color: #ffffff;
4541
+ }
4542
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
4543
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
4544
+ color: #dddddd;
4545
+ background-color: transparent;
4546
+ }
4547
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
4548
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
4549
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
4550
+ color: #dddddd;
4551
+ background-color: #e7e7e7;
4552
+ }
4553
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
4554
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4555
+ #nifty_wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4556
+ color: #cccccc;
4557
+ background-color: transparent;
4558
+ }
4559
+ }
4560
+ #nifty_wrapper .navbar-default .navbar-link {
4561
+ color: #ffffff;
4562
+ }
4563
+ #nifty_wrapper .navbar-default .navbar-link:hover {
4564
+ color: #dddddd;
4565
+ }
4566
+ #nifty_wrapper .navbar-default .btn-link {
4567
+ color: #ffffff;
4568
+ }
4569
+ #nifty_wrapper .navbar-default .btn-link:hover,
4570
+ #nifty_wrapper .navbar-default .btn-link:focus {
4571
+ color: #dddddd;
4572
+ }
4573
+ #nifty_wrapper .navbar-default .btn-link[disabled]:hover,
4574
+ #nifty_wrapper fieldset[disabled] .navbar-default .btn-link:hover,
4575
+ #nifty_wrapper .navbar-default .btn-link[disabled]:focus,
4576
+ #nifty_wrapper fieldset[disabled] .navbar-default .btn-link:focus {
4577
+ color: #cccccc;
4578
+ }
4579
+ #nifty_wrapper .navbar-inverse {
4580
+ background-color: #222222;
4581
+ border-color: #080808;
4582
+ }
4583
+ #nifty_wrapper .navbar-inverse .navbar-brand {
4584
+ color: #e4eaec;
4585
+ }
4586
+ #nifty_wrapper .navbar-inverse .navbar-brand:hover,
4587
+ #nifty_wrapper .navbar-inverse .navbar-brand:focus {
4588
+ color: #ffffff;
4589
+ background-color: transparent;
4590
+ }
4591
+ #nifty_wrapper .navbar-inverse .navbar-text {
4592
+ color: #e4eaec;
4593
+ }
4594
+ #nifty_wrapper .navbar-inverse .navbar-nav > li > a {
4595
+ color: #e4eaec;
4596
+ }
4597
+ #nifty_wrapper .navbar-inverse .navbar-nav > li > a:hover,
4598
+ #nifty_wrapper .navbar-inverse .navbar-nav > li > a:focus {
4599
+ color: #ffffff;
4600
+ background-color: transparent;
4601
+ }
4602
+ #nifty_wrapper .navbar-inverse .navbar-nav > .active > a,
4603
+ #nifty_wrapper .navbar-inverse .navbar-nav > .active > a:hover,
4604
+ #nifty_wrapper .navbar-inverse .navbar-nav > .active > a:focus {
4605
+ color: #ffffff;
4606
+ background-color: #080808;
4607
+ }
4608
+ #nifty_wrapper .navbar-inverse .navbar-nav > .disabled > a,
4609
+ #nifty_wrapper .navbar-inverse .navbar-nav > .disabled > a:hover,
4610
+ #nifty_wrapper .navbar-inverse .navbar-nav > .disabled > a:focus {
4611
+ color: #444444;
4612
+ background-color: transparent;
4613
+ }
4614
+ #nifty_wrapper .navbar-inverse .navbar-toggle {
4615
+ border-color: #333333;
4616
+ }
4617
+ #nifty_wrapper .navbar-inverse .navbar-toggle:hover,
4618
+ #nifty_wrapper .navbar-inverse .navbar-toggle:focus {
4619
+ background-color: #333333;
4620
+ }
4621
+ #nifty_wrapper .navbar-inverse .navbar-toggle .icon-bar {
4622
+ background-color: #ffffff;
4623
+ }
4624
+ #nifty_wrapper .navbar-inverse .navbar-collapse,
4625
+ #nifty_wrapper .navbar-inverse .navbar-form {
4626
+ border-color: #101010;
4627
+ }
4628
+ #nifty_wrapper .navbar-inverse .navbar-nav > .open > a,
4629
+ #nifty_wrapper .navbar-inverse .navbar-nav > .open > a:hover,
4630
+ #nifty_wrapper .navbar-inverse .navbar-nav > .open > a:focus {
4631
+ background-color: #080808;
4632
+ color: #ffffff;
4633
+ }
4634
+ @media (max-width: 767px) {
4635
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4636
+ border-color: #080808;
4637
+ }
4638
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4639
+ background-color: #080808;
4640
+ }
4641
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4642
+ color: #e4eaec;
4643
+ }
4644
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4645
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4646
+ color: #ffffff;
4647
+ background-color: transparent;
4648
+ }
4649
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4650
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4651
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4652
+ color: #ffffff;
4653
+ background-color: #080808;
4654
+ }
4655
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4656
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4657
+ #nifty_wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4658
+ color: #444444;
4659
+ background-color: transparent;
4660
+ }
4661
+ }
4662
+ #nifty_wrapper .navbar-inverse .navbar-link {
4663
+ color: #e4eaec;
4664
+ }
4665
+ #nifty_wrapper .navbar-inverse .navbar-link:hover {
4666
+ color: #ffffff;
4667
+ }
4668
+ #nifty_wrapper .navbar-inverse .btn-link {
4669
+ color: #e4eaec;
4670
+ }
4671
+ #nifty_wrapper .navbar-inverse .btn-link:hover,
4672
+ #nifty_wrapper .navbar-inverse .btn-link:focus {
4673
+ color: #ffffff;
4674
+ }
4675
+ #nifty_wrapper .navbar-inverse .btn-link[disabled]:hover,
4676
+ #nifty_wrapper fieldset[disabled] .navbar-inverse .btn-link:hover,
4677
+ #nifty_wrapper .navbar-inverse .btn-link[disabled]:focus,
4678
+ #nifty_wrapper fieldset[disabled] .navbar-inverse .btn-link:focus {
4679
+ color: #444444;
4680
+ }
4681
+ #nifty_wrapper .breadcrumb {
4682
+ padding: 12px 15px;
4683
+ margin-bottom: 21px;
4684
+ list-style: none;
4685
+ background-color: #fafafa;
4686
+ border-radius: 4px;
4687
+ }
4688
+ #nifty_wrapper .breadcrumb > li {
4689
+ display: inline-block;
4690
+ }
4691
+ #nifty_wrapper .breadcrumb > li + li:before {
4692
+ content: "/\00a0";
4693
+ padding: 0 5px;
4694
+ color: #c1c2c3;
4695
+ }
4696
+ #nifty_wrapper .breadcrumb > .active {
4697
+ color: #515253;
4698
+ }
4699
+ #nifty_wrapper .pagination {
4700
+ display: inline-block;
4701
+ padding-left: 0;
4702
+ margin: 21px 0;
4703
+ border-radius: 4px;
4704
+ }
4705
+ #nifty_wrapper .pagination > li {
4706
+ display: inline;
4707
+ }
4708
+ #nifty_wrapper .pagination > li > a,
4709
+ #nifty_wrapper .pagination > li > span {
4710
+ position: relative;
4711
+ float: left;
4712
+ padding: 6px 16px;
4713
+ line-height: 1.52857143;
4714
+ text-decoration: none;
4715
+ color: #515253;
4716
+ background-color: #ffffff;
4717
+ border: 1px solid #eeeeee;
4718
+ margin-left: -1px;
4719
+ }
4720
+ #nifty_wrapper .pagination > li:first-child > a,
4721
+ #nifty_wrapper .pagination > li:first-child > span {
4722
+ margin-left: 0;
4723
+ border-bottom-left-radius: 4px;
4724
+ border-top-left-radius: 4px;
4725
+ }
4726
+ #nifty_wrapper .pagination > li:last-child > a,
4727
+ #nifty_wrapper .pagination > li:last-child > span {
4728
+ border-bottom-right-radius: 4px;
4729
+ border-top-right-radius: 4px;
4730
+ }
4731
+ #nifty_wrapper .pagination > li > a:hover,
4732
+ #nifty_wrapper .pagination > li > span:hover,
4733
+ #nifty_wrapper .pagination > li > a:focus,
4734
+ #nifty_wrapper .pagination > li > span:focus {
4735
+ z-index: 2;
4736
+ color: #1b72e2;
4737
+ background-color: #fafafa;
4738
+ border-color: #eeeeee;
4739
+ }
4740
+ #nifty_wrapper .pagination > .active > a,
4741
+ #nifty_wrapper .pagination > .active > span,
4742
+ #nifty_wrapper .pagination > .active > a:hover,
4743
+ #nifty_wrapper .pagination > .active > span:hover,
4744
+ #nifty_wrapper .pagination > .active > a:focus,
4745
+ #nifty_wrapper .pagination > .active > span:focus {
4746
+ z-index: 3;
4747
+ color: #ffffff;
4748
+ background-color: #5d9cec;
4749
+ border-color: #5d9cec;
4750
+ cursor: default;
4751
+ }
4752
+ #nifty_wrapper .pagination > .disabled > span,
4753
+ #nifty_wrapper .pagination > .disabled > span:hover,
4754
+ #nifty_wrapper .pagination > .disabled > span:focus,
4755
+ #nifty_wrapper .pagination > .disabled > a,
4756
+ #nifty_wrapper .pagination > .disabled > a:hover,
4757
+ #nifty_wrapper .pagination > .disabled > a:focus {
4758
+ color: #e4eaec;
4759
+ background-color: #ffffff;
4760
+ border-color: #eeeeee;
4761
+ cursor: not-allowed;
4762
+ }
4763
+ #nifty_wrapper .pagination-lg > li > a,
4764
+ #nifty_wrapper .pagination-lg > li > span {
4765
+ padding: 10px 20px;
4766
+ font-size: 18px;
4767
+ line-height: 1.33;
4768
+ }
4769
+ #nifty_wrapper .pagination-lg > li:first-child > a,
4770
+ #nifty_wrapper .pagination-lg > li:first-child > span {
4771
+ border-bottom-left-radius: 6px;
4772
+ border-top-left-radius: 6px;
4773
+ }
4774
+ #nifty_wrapper .pagination-lg > li:last-child > a,
4775
+ #nifty_wrapper .pagination-lg > li:last-child > span {
4776
+ border-bottom-right-radius: 6px;
4777
+ border-top-right-radius: 6px;
4778
+ }
4779
+ #nifty_wrapper .pagination-sm > li > a,
4780
+ #nifty_wrapper .pagination-sm > li > span {
4781
+ padding: 5px 10px;
4782
+ font-size: 12px;
4783
+ line-height: 1.5;
4784
+ }
4785
+ #nifty_wrapper .pagination-sm > li:first-child > a,
4786
+ #nifty_wrapper .pagination-sm > li:first-child > span {
4787
+ border-bottom-left-radius: 3px;
4788
+ border-top-left-radius: 3px;
4789
+ }
4790
+ #nifty_wrapper .pagination-sm > li:last-child > a,
4791
+ #nifty_wrapper .pagination-sm > li:last-child > span {
4792
+ border-bottom-right-radius: 3px;
4793
+ border-top-right-radius: 3px;
4794
+ }
4795
+ #nifty_wrapper .pager {
4796
+ padding-left: 0;
4797
+ margin: 21px 0;
4798
+ list-style: none;
4799
+ text-align: center;
4800
+ }
4801
+ #nifty_wrapper .pager li {
4802
+ display: inline;
4803
+ }
4804
+ #nifty_wrapper .pager li > a,
4805
+ #nifty_wrapper .pager li > span {
4806
+ display: inline-block;
4807
+ padding: 5px 14px;
4808
+ background-color: #ffffff;
4809
+ border: 1px solid #eeeeee;
4810
+ border-radius: 15px;
4811
+ }
4812
+ #nifty_wrapper .pager li > a:hover,
4813
+ #nifty_wrapper .pager li > a:focus {
4814
+ text-decoration: none;
4815
+ background-color: #fafafa;
4816
+ }
4817
+ #nifty_wrapper .pager .next > a,
4818
+ #nifty_wrapper .pager .next > span {
4819
+ float: right;
4820
+ }
4821
+ #nifty_wrapper .pager .previous > a,
4822
+ #nifty_wrapper .pager .previous > span {
4823
+ float: left;
4824
+ }
4825
+ #nifty_wrapper .pager .disabled > a,
4826
+ #nifty_wrapper .pager .disabled > a:hover,
4827
+ #nifty_wrapper .pager .disabled > a:focus,
4828
+ #nifty_wrapper .pager .disabled > span {
4829
+ color: #e4eaec;
4830
+ background-color: #ffffff;
4831
+ cursor: not-allowed;
4832
+ }
4833
+ #nifty_wrapper .label {
4834
+ display: inline;
4835
+ padding: .2em .6em .3em;
4836
+ font-size: 75%;
4837
+ font-weight: bold;
4838
+ line-height: 1;
4839
+ color: #ffffff;
4840
+ text-align: center;
4841
+ white-space: nowrap;
4842
+ vertical-align: baseline;
4843
+ border-radius: .25em;
4844
+ }
4845
+ a.label:hover,
4846
+ a.label:focus {
4847
+ color: #ffffff;
4848
+ text-decoration: none;
4849
+ cursor: pointer;
4850
+ }
4851
+ #nifty_wrapper .label:empty {
4852
+ display: none;
4853
+ }
4854
+ .btn .label {
4855
+ position: relative;
4856
+ top: -1px;
4857
+ }
4858
+ #nifty_wrapper .label-default {
4859
+ background-color: #e4eaec;
4860
+ }
4861
+ #nifty_wrapper .label-default[href]:hover,
4862
+ #nifty_wrapper .label-default[href]:focus {
4863
+ background-color: #c6d3d7;
4864
+ }
4865
+ #nifty_wrapper .label-primary {
4866
+ background-color: #5d9cec;
4867
+ }
4868
+ #nifty_wrapper .label-primary[href]:hover,
4869
+ #nifty_wrapper .label-primary[href]:focus {
4870
+ background-color: #2f80e7;
4871
+ }
4872
+ #nifty_wrapper .label-success {
4873
+ background-color: #27c24c;
4874
+ }
4875
+ #nifty_wrapper .label-success[href]:hover,
4876
+ #nifty_wrapper .label-success[href]:focus {
4877
+ background-color: #1e983b;
4878
+ }
4879
+ #nifty_wrapper .label-info {
4880
+ background-color: #23b7e5;
4881
+ }
4882
+ #nifty_wrapper .label-info[href]:hover,
4883
+ #nifty_wrapper .label-info[href]:focus {
4884
+ background-color: #1797be;
4885
+ }
4886
+ #nifty_wrapper .label-warning {
4887
+ background-color: #ff902b;
4888
+ }
4889
+ #nifty_wrapper .label-warning[href]:hover,
4890
+ #nifty_wrapper .label-warning[href]:focus {
4891
+ background-color: #f77600;
4892
+ }
4893
+ #nifty_wrapper .label-danger {
4894
+ background-color: #f05050;
4895
+ }
4896
+ #nifty_wrapper .label-danger[href]:hover,
4897
+ #nifty_wrapper .label-danger[href]:focus {
4898
+ background-color: #ec2121;
4899
+ }
4900
+ #nifty_wrapper .badge {
4901
+ display: inline-block;
4902
+ min-width: 10px;
4903
+ padding: 3px 7px;
4904
+ font-size: 12px;
4905
+ font-weight: bold;
4906
+ color: #ffffff;
4907
+ line-height: 1;
4908
+ vertical-align: middle;
4909
+ white-space: nowrap;
4910
+ text-align: center;
4911
+ background-color: #e4eaec;
4912
+ border-radius: 10px;
4913
+ }
4914
+ #nifty_wrapper .badge:empty {
4915
+ display: none;
4916
+ }
4917
+ .btn .badge {
4918
+ position: relative;
4919
+ top: -1px;
4920
+ }
4921
+ .btn-xs .badge,
4922
+ .btn-group-xs > .btn .badge {
4923
+ top: 0;
4924
+ padding: 1px 5px;
4925
+ }
4926
+ a.badge:hover,
4927
+ a.badge:focus {
4928
+ color: #ffffff;
4929
+ text-decoration: none;
4930
+ cursor: pointer;
4931
+ }
4932
+ #nifty_wrapper .list-group-item.active > .badge,
4933
+ #nifty_wrapper .nav-pills > .active > a > .badge {
4934
+ color: #5d9cec;
4935
+ background-color: #ffffff;
4936
+ }
4937
+ #nifty_wrapper .list-group-item > .badge {
4938
+ float: right;
4939
+ }
4940
+ #nifty_wrapper .list-group-item > .badge + .badge {
4941
+ margin-right: 5px;
4942
+ }
4943
+ #nifty_wrapper .nav-pills > li > a > .badge {
4944
+ margin-left: 3px;
4945
+ }
4946
+ #nifty_wrapper .jumbotron {
4947
+ padding-top: 30px;
4948
+ padding-bottom: 30px;
4949
+ margin-bottom: 30px;
4950
+ color: inherit;
4951
+ background-color: #fcfcfc;
4952
+ }
4953
+ #nifty_wrapper .jumbotron h1,
4954
+ #nifty_wrapper .jumbotron .h1 {
4955
+ color: inherit;
4956
+ }
4957
+ #nifty_wrapper .jumbotron p {
4958
+ margin-bottom: 15px;
4959
+ font-size: 21px;
4960
+ font-weight: 200;
4961
+ }
4962
+ #nifty_wrapper .jumbotron > hr {
4963
+ border-top-color: #e3e3e3;
4964
+ }
4965
+ #nifty_wrapper .container .jumbotron,
4966
+ #nifty_wrapper .container-fluid .jumbotron {
4967
+ border-radius: 6px;
4968
+ padding-left: 15px;
4969
+ padding-right: 15px;
4970
+ }
4971
+ #nifty_wrapper .jumbotron .container {
4972
+ max-width: 100%;
4973
+ }
4974
+ @media screen and (min-width: 768px) {
4975
+ #nifty_wrapper .jumbotron {
4976
+ padding-top: 48px;
4977
+ padding-bottom: 48px;
4978
+ }
4979
+ #nifty_wrapper .container .jumbotron,
4980
+ #nifty_wrapper .container-fluid .jumbotron {
4981
+ padding-left: 60px;
4982
+ padding-right: 60px;
4983
+ }
4984
+ #nifty_wrapper .jumbotron h1,
4985
+ #nifty_wrapper .jumbotron .h1 {
4986
+ font-size: 63px;
4987
+ }
4988
+ }
4989
+ #nifty_wrapper .thumbnail {
4990
+ display: block;
4991
+ padding: 2px;
4992
+ margin-bottom: 21px;
4993
+ line-height: 1.52857143;
4994
+ background-color: #e1e2e3;
4995
+ border: 1px solid #e1e2e3;
4996
+ border-radius: 3px;
4997
+ -webkit-transition: border 0.2s ease-in-out;
4998
+ -o-transition: border 0.2s ease-in-out;
4999
+ transition: border 0.2s ease-in-out;
5000
+ }
5001
+ #nifty_wrapper .thumbnail > img,
5002
+ #nifty_wrapper .thumbnail a > img {
5003
+ margin-left: auto;
5004
+ margin-right: auto;
5005
+ }
5006
+ a.thumbnail:hover,
5007
+ a.thumbnail:focus,
5008
+ a.thumbnail.active {
5009
+ border-color: #5d9cec;
5010
+ }
5011
+ #nifty_wrapper .thumbnail .caption {
5012
+ padding: 9px;
5013
+ color: #515253;
5014
+ }
5015
+ #nifty_wrapper .alert {
5016
+ padding: 8px;
5017
+ margin-bottom: 21px;
5018
+ border: 1px solid transparent;
5019
+ border-radius: 3px;
5020
+ }
5021
+ #nifty_wrapper .alert h4 {
5022
+ margin-top: 0;
5023
+ color: inherit;
5024
+ }
5025
+ #nifty_wrapper .alert .alert-link {
5026
+ font-weight: bold;
5027
+ }
5028
+ #nifty_wrapper .alert > p,
5029
+ #nifty_wrapper .alert > ul {
5030
+ margin-bottom: 0;
5031
+ }
5032
+ #nifty_wrapper .alert > p + p {
5033
+ margin-top: 5px;
5034
+ }
5035
+ #nifty_wrapper .alert-dismissable,
5036
+ #nifty_wrapper .alert-dismissible {
5037
+ padding-right: 28px;
5038
+ }
5039
+ #nifty_wrapper .alert-dismissable .close,
5040
+ #nifty_wrapper .alert-dismissible .close {
5041
+ position: relative;
5042
+ top: -2px;
5043
+ right: -21px;
5044
+ color: inherit;
5045
+ }
5046
+ #nifty_wrapper .alert-success {
5047
+ background-color: #27c24c;
5048
+ #nifty_wrapper border-color: rgba(0, 0, 0, 0.1);
5049
+ color: #ffffff;
5050
+ }
5051
+ #nifty_wrapper .alert-success hr {
5052
+ #nifty_wrapper border-top-color: rgba(0, 0, 0, 0.1);
5053
+ }
5054
+ #nifty_wrapper .alert-success .alert-link {
5055
+ color: #e6e6e6;
5056
+ }
5057
+ #nifty_wrapper .alert-info {
5058
+ background-color: #cd4747;
5059
+ #nifty_wrapper border-color: rgba(0, 0, 0, 0.1);
5060
+ color: #ffffff;
5061
+ }
5062
+ #nifty_wrapper .alert-info hr {
5063
+ #nifty_wrapper border-top-color: rgba(0, 0, 0, 0.1);
5064
+ }
5065
+ #nifty_wrapper .alert-info .alert-link {
5066
+ color: #e6e6e6;
5067
+ }
5068
+ #nifty_wrapper .alert-warning {
5069
+ background-color: #ff902b;
5070
+ #nifty_wrapper border-color: rgba(0, 0, 0, 0.1);
5071
+ color: #ffffff;
5072
+ }
5073
+ #nifty_wrapper .alert-warning hr {
5074
+ #nifty_wrapper border-top-color: rgba(0, 0, 0, 0.1);
5075
+ }
5076
+ #nifty_wrapper .alert-warning .alert-link {
5077
+ color: #e6e6e6;
5078
+ }
5079
+ #nifty_wrapper .alert-danger {
5080
+ background-color: #f05050;
5081
+ #nifty_wrapper border-color: rgba(0, 0, 0, 0.1);
5082
+ color: #ffffff;
5083
+ }
5084
+ #nifty_wrapper .alert-danger hr {
5085
+ #nifty_wrapper border-top-color: rgba(0, 0, 0, 0.1);
5086
+ }
5087
+ #nifty_wrapper .alert-danger .alert-link {
5088
+ color: #e6e6e6;
5089
+ }
5090
+ #nifty_wrapper @-webkit-keyframes progress-bar-stripes {
5091
+ #nifty_wrapper from {
5092
+ background-position: 40px 0;
5093
+ }
5094
+ #nifty_wrapper to {
5095
+ background-position: 0 0;
5096
+ }
5097
+ }
5098
+ #nifty_wrapper @keyframes progress-bar-stripes {
5099
+ #nifty_wrapper from {
5100
+ background-position: 40px 0;
5101
+ }
5102
+ #nifty_wrapper to {
5103
+ background-position: 0 0;
5104
+ }
5105
+ }
5106
+ #nifty_wrapper .progress {
5107
+ overflow: hidden;
5108
+ height: 21px;
5109
+ margin-bottom: 21px;
5110
+ background-color: #f1f1f1;
5111
+ border-radius: 4px;
5112
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5113
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5114
+ }
5115
+ #nifty_wrapper .progress-bar {
5116
+ float: left;
5117
+ width: 0%;
5118
+ height: 100%;
5119
+ font-size: 12px;
5120
+ line-height: 21px;
5121
+ color: #ffffff;
5122
+ text-align: center;
5123
+ background-color: #5d9cec;
5124
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5125
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5126
+ -webkit-transition: width 0.6s ease;
5127
+ -o-transition: width 0.6s ease;
5128
+ transition: width 0.6s ease;
5129
+ }
5130
+ #nifty_wrapper .progress-striped .progress-bar,
5131
+ #nifty_wrapper .progress-bar-striped {
5132
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5133
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5134
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5135
+ background-size: 40px 40px;
5136
+ }
5137
+ #nifty_wrapper .progress.active .progress-bar,
5138
+ #nifty_wrapper .progress-bar.active {
5139
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
5140
+ -o-animation: progress-bar-stripes 2s linear infinite;
5141
+ animation: progress-bar-stripes 2s linear infinite;
5142
+ }
5143
+ #nifty_wrapper .progress-bar-success {
5144
+ background-color: #27c24c;
5145
+ }
5146
+ #nifty_wrapper .progress-striped .progress-bar-success {
5147
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5148
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5149
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5150
+ }
5151
+ #nifty_wrapper .progress-bar-info {
5152
+ background-color: #23b7e5;
5153
+ }
5154
+ #nifty_wrapper .progress-striped .progress-bar-info {
5155
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5156
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5157
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5158
+ }
5159
+ #nifty_wrapper .progress-bar-warning {
5160
+ background-color: #ff902b;
5161
+ }
5162
+ #nifty_wrapper .progress-striped .progress-bar-warning {
5163
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5164
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5165
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5166
+ }
5167
+ #nifty_wrapper .progress-bar-danger {
5168
+ background-color: #f05050;
5169
+ }
5170
+ #nifty_wrapper .progress-striped .progress-bar-danger {
5171
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5172
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5173
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5174
+ }
5175
+ #nifty_wrapper .media {
5176
+ margin-top: 15px;
5177
+ }
5178
+ #nifty_wrapper .media:first-child {
5179
+ margin-top: 0;
5180
+ }
5181
+ #nifty_wrapper .media,
5182
+ #nifty_wrapper .media-body {
5183
+ zoom: 1;
5184
+ overflow: hidden;
5185
+ }
5186
+ #nifty_wrapper .media-body {
5187
+ width: 10000px;
5188
+ }
5189
+ #nifty_wrapper .media-object {
5190
+ display: block;
5191
+ }
5192
+ #nifty_wrapper .media-object.img-thumbnail {
5193
+ max-width: none;
5194
+ }
5195
+ #nifty_wrapper .media-right,
5196
+ #nifty_wrapper .media > .pull-right {
5197
+ padding-left: 10px;
5198
+ }
5199
+ #nifty_wrapper .media-left,
5200
+ #nifty_wrapper .media > .pull-left {
5201
+ padding-right: 10px;
5202
+ }
5203
+ #nifty_wrapper .media-left,
5204
+ #nifty_wrapper .media-right,
5205
+ #nifty_wrapper .media-body {
5206
+ display: table-cell;
5207
+ vertical-align: top;
5208
+ }
5209
+ #nifty_wrapper .media-middle {
5210
+ vertical-align: middle;
5211
+ }
5212
+ #nifty_wrapper .media-bottom {
5213
+ vertical-align: bottom;
5214
+ }
5215
+ #nifty_wrapper .media-heading {
5216
+ margin-top: 0;
5217
+ margin-bottom: 5px;
5218
+ }
5219
+ #nifty_wrapper .media-list {
5220
+ padding-left: 0;
5221
+ list-style: none;
5222
+ }
5223
+ #nifty_wrapper .list-group {
5224
+ margin-bottom: 20px;
5225
+ padding-left: 0;
5226
+ }
5227
+ #nifty_wrapper .list-group-item {
5228
+ position: relative;
5229
+ display: block;
5230
+ padding: 10px 15px;
5231
+ margin-bottom: -1px;
5232
+ background-color: #ffffff;
5233
+ border: 1px solid #e4eaec;
5234
+ }
5235
+ #nifty_wrapper .list-group-item:first-child {
5236
+ border-top-right-radius: 4px;
5237
+ border-top-left-radius: 4px;
5238
+ }
5239
+ #nifty_wrapper .list-group-item:last-child {
5240
+ margin-bottom: 0;
5241
+ border-bottom-right-radius: 4px;
5242
+ border-bottom-left-radius: 4px;
5243
+ }
5244
+ a.list-group-item,
5245
+ #nifty_wrapper button.list-group-item {
5246
+ color: #555555;
5247
+ }
5248
+ a.list-group-item .list-group-item-heading,
5249
+ #nifty_wrapper button.list-group-item .list-group-item-heading {
5250
+ color: #333333;
5251
+ }
5252
+ a.list-group-item:hover,
5253
+ #nifty_wrapper button.list-group-item:hover,
5254
+ a.list-group-item:focus,
5255
+ #nifty_wrapper button.list-group-item:focus {
5256
+ text-decoration: none;
5257
+ color: #555555;
5258
+ background-color: #fafbfc;
5259
+ }
5260
+ #nifty_wrapper button.list-group-item {
5261
+ width: 100%;
5262
+ text-align: left;
5263
+ }
5264
+ #nifty_wrapper .list-group-item.disabled,
5265
+ #nifty_wrapper .list-group-item.disabled:hover,
5266
+ #nifty_wrapper .list-group-item.disabled:focus {
5267
+ background-color: #edf1f2;
5268
+ color: #e4eaec;
5269
+ cursor: not-allowed;
5270
+ }
5271
+ #nifty_wrapper .list-group-item.disabled .list-group-item-heading,
5272
+ #nifty_wrapper .list-group-item.disabled:hover .list-group-item-heading,
5273
+ #nifty_wrapper .list-group-item.disabled:focus .list-group-item-heading {
5274
+ color: inherit;
5275
+ }
5276
+ #nifty_wrapper .list-group-item.disabled .list-group-item-text,
5277
+ #nifty_wrapper .list-group-item.disabled:hover .list-group-item-text,
5278
+ #nifty_wrapper .list-group-item.disabled:focus .list-group-item-text {
5279
+ color: #e4eaec;
5280
+ }
5281
+ #nifty_wrapper .list-group-item.active,
5282
+ #nifty_wrapper .list-group-item.active:hover,
5283
+ #nifty_wrapper .list-group-item.active:focus {
5284
+ z-index: 2;
5285
+ color: #ffffff;
5286
+ background-color: #5d9cec;
5287
+ border-color: #5d9cec;
5288
+ }
5289
+ #nifty_wrapper .list-group-item.active .list-group-item-heading,
5290
+ #nifty_wrapper .list-group-item.active:hover .list-group-item-heading,
5291
+ #nifty_wrapper .list-group-item.active:focus .list-group-item-heading,
5292
+ #nifty_wrapper .list-group-item.active .list-group-item-heading > small,
5293
+ #nifty_wrapper .list-group-item.active:hover .list-group-item-heading > small,
5294
+ #nifty_wrapper .list-group-item.active:focus .list-group-item-heading > small,
5295
+ #nifty_wrapper .list-group-item.active .list-group-item-heading > .small,
5296
+ #nifty_wrapper .list-group-item.active:hover .list-group-item-heading > .small,
5297
+ #nifty_wrapper .list-group-item.active:focus .list-group-item-heading > .small {
5298
+ color: inherit;
5299
+ }
5300
+ #nifty_wrapper .list-group-item.active .list-group-item-text,
5301
+ #nifty_wrapper .list-group-item.active:hover .list-group-item-text,
5302
+ #nifty_wrapper .list-group-item.active:focus .list-group-item-text {
5303
+ color: #ffffff;
5304
+ }
5305
+ #nifty_wrapper .list-group-item-success {
5306
+ color: #27c24c;
5307
+ background-color: #dff0d8;
5308
+ }
5309
+ a.list-group-item-success,
5310
+ #nifty_wrapper button.list-group-item-success {
5311
+ color: #27c24c;
5312
+ }
5313
+ a.list-group-item-success .list-group-item-heading,
5314
+ #nifty_wrapper button.list-group-item-success .list-group-item-heading {
5315
+ color: inherit;
5316
+ }
5317
+ a.list-group-item-success:hover,
5318
+ #nifty_wrapper button.list-group-item-success:hover,
5319
+ a.list-group-item-success:focus,
5320
+ #nifty_wrapper button.list-group-item-success:focus {
5321
+ color: #27c24c;
5322
+ background-color: #d0e9c6;
5323
+ }
5324
+ a.list-group-item-success.active,
5325
+ #nifty_wrapper button.list-group-item-success.active,
5326
+ a.list-group-item-success.active:hover,
5327
+ #nifty_wrapper button.list-group-item-success.active:hover,
5328
+ a.list-group-item-success.active:focus,
5329
+ #nifty_wrapper button.list-group-item-success.active:focus {
5330
+ color: #fff;
5331
+ background-color: #27c24c;
5332
+ border-color: #27c24c;
5333
+ }
5334
+ #nifty_wrapper .list-group-item-info {
5335
+ color: #23b7e5;
5336
+ background-color: #d9edf7;
5337
+ }
5338
+ a.list-group-item-info,
5339
+ #nifty_wrapper button.list-group-item-info {
5340
+ color: #23b7e5;
5341
+ }
5342
+ a.list-group-item-info .list-group-item-heading,
5343
+ #nifty_wrapper button.list-group-item-info .list-group-item-heading {
5344
+ color: inherit;
5345
+ }
5346
+ a.list-group-item-info:hover,
5347
+ #nifty_wrapper button.list-group-item-info:hover,
5348
+ a.list-group-item-info:focus,
5349
+ #nifty_wrapper button.list-group-item-info:focus {
5350
+ color: #23b7e5;
5351
+ background-color: #c4e3f3;
5352
+ }
5353
+ a.list-group-item-info.active,
5354
+ #nifty_wrapper button.list-group-item-info.active,
5355
+ a.list-group-item-info.active:hover,
5356
+ #nifty_wrapper button.list-group-item-info.active:hover,
5357
+ a.list-group-item-info.active:focus,
5358
+ #nifty_wrapper button.list-group-item-info.active:focus {
5359
+ color: #fff;
5360
+ background-color: #23b7e5;
5361
+ border-color: #23b7e5;
5362
+ }
5363
+ #nifty_wrapper .list-group-item-warning {
5364
+ color: #ff902b;
5365
+ background-color: #fcf8e3;
5366
+ }
5367
+ a.list-group-item-warning,
5368
+ #nifty_wrapper button.list-group-item-warning {
5369
+ color: #ff902b;
5370
+ }
5371
+ a.list-group-item-warning .list-group-item-heading,
5372
+ #nifty_wrapper button.list-group-item-warning .list-group-item-heading {
5373
+ color: inherit;
5374
+ }
5375
+ a.list-group-item-warning:hover,
5376
+ #nifty_wrapper button.list-group-item-warning:hover,
5377
+ a.list-group-item-warning:focus,
5378
+ #nifty_wrapper button.list-group-item-warning:focus {
5379
+ color: #ff902b;
5380
+ background-color: #faf2cc;
5381
+ }
5382
+ a.list-group-item-warning.active,
5383
+ #nifty_wrapper button.list-group-item-warning.active,
5384
+ a.list-group-item-warning.active:hover,
5385
+ #nifty_wrapper button.list-group-item-warning.active:hover,
5386
+ a.list-group-item-warning.active:focus,
5387
+ #nifty_wrapper button.list-group-item-warning.active:focus {
5388
+ color: #fff;
5389
+ background-color: #ff902b;
5390
+ border-color: #ff902b;
5391
+ }
5392
+ #nifty_wrapper .list-group-item-danger {
5393
+ color: #f05050;
5394
+ background-color: #f2dede;
5395
+ }
5396
+ a.list-group-item-danger,
5397
+ #nifty_wrapper button.list-group-item-danger {
5398
+ color: #f05050;
5399
+ }
5400
+ a.list-group-item-danger .list-group-item-heading,
5401
+ #nifty_wrapper button.list-group-item-danger .list-group-item-heading {
5402
+ color: inherit;
5403
+ }
5404
+ a.list-group-item-danger:hover,
5405
+ #nifty_wrapper button.list-group-item-danger:hover,
5406
+ a.list-group-item-danger:focus,
5407
+ #nifty_wrapper button.list-group-item-danger:focus {
5408
+ color: #f05050;
5409
+ background-color: #ebcccc;
5410
+ }
5411
+ a.list-group-item-danger.active,
5412
+ #nifty_wrapper button.list-group-item-danger.active,
5413
+ a.list-group-item-danger.active:hover,
5414
+ #nifty_wrapper button.list-group-item-danger.active:hover,
5415
+ a.list-group-item-danger.active:focus,
5416
+ #nifty_wrapper button.list-group-item-danger.active:focus {
5417
+ color: #fff;
5418
+ background-color: #f05050;
5419
+ border-color: #f05050;
5420
+ }
5421
+ #nifty_wrapper .list-group-item-heading {
5422
+ margin-top: 0;
5423
+ margin-bottom: 5px;
5424
+ }
5425
+ #nifty_wrapper .list-group-item-text {
5426
+ margin-bottom: 0;
5427
+ line-height: 1.3;
5428
+ }
5429
+ #nifty_wrapper .panel {
5430
+ margin-bottom: 21px;
5431
+ background-color: #ffffff;
5432
+ border: 1px solid transparent;
5433
+ border-radius: 4px;
5434
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
5435
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
5436
+ }
5437
+ #nifty_wrapper .panel-body {
5438
+ padding: 15px;
5439
+ }
5440
+ #nifty_wrapper .panel-heading {
5441
+ padding: 10px 15px;
5442
+ border-bottom: 1px solid transparent;
5443
+ border-top-right-radius: 3px;
5444
+ border-top-left-radius: 3px;
5445
+ }
5446
+ #nifty_wrapper .panel-heading > .dropdown .dropdown-toggle {
5447
+ color: inherit;
5448
+ }
5449
+ #nifty_wrapper .panel-title {
5450
+ margin-top: 0;
5451
+ margin-bottom: 0;
5452
+ font-size: 16px;
5453
+ color: inherit;
5454
+ }
5455
+ #nifty_wrapper .panel-title > a,
5456
+ #nifty_wrapper .panel-title > small,
5457
+ #nifty_wrapper .panel-title > .small,
5458
+ #nifty_wrapper .panel-title > small > a,
5459
+ #nifty_wrapper .panel-title > .small > a {
5460
+ color: inherit;
5461
+ }
5462
+ #nifty_wrapper .panel-footer {
5463
+ padding: 10px 15px;
5464
+ background-color: #fafafa;
5465
+ border-top: 1px solid #eeeeee;
5466
+ border-bottom-right-radius: 3px;
5467
+ border-bottom-left-radius: 3px;
5468
+ }
5469
+ #nifty_wrapper .panel > .list-group,
5470
+ #nifty_wrapper .panel > .panel-collapse > .list-group {
5471
+ margin-bottom: 0;
5472
+ }
5473
+ #nifty_wrapper .panel > .list-group .list-group-item,
5474
+ #nifty_wrapper .panel > .panel-collapse > .list-group .list-group-item {
5475
+ border-width: 1px 0;
5476
+ border-radius: 0;
5477
+ }
5478
+ #nifty_wrapper .panel > .list-group:first-child .list-group-item:first-child,
5479
+ #nifty_wrapper .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
5480
+ border-top: 0;
5481
+ border-top-right-radius: 3px;
5482
+ border-top-left-radius: 3px;
5483
+ }
5484
+ #nifty_wrapper .panel > .list-group:last-child .list-group-item:last-child,
5485
+ #nifty_wrapper .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
5486
+ border-bottom: 0;
5487
+ border-bottom-right-radius: 3px;
5488
+ border-bottom-left-radius: 3px;
5489
+ }
5490
+ #nifty_wrapper .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
5491
+ border-top-right-radius: 0;
5492
+ border-top-left-radius: 0;
5493
+ }
5494
+ #nifty_wrapper .panel-heading + .list-group .list-group-item:first-child {
5495
+ border-top-width: 0;
5496
+ }
5497
+ #nifty_wrapper .list-group + .panel-footer {
5498
+ border-top-width: 0;
5499
+ }
5500
+ #nifty_wrapper .panel > .table,
5501
+ #nifty_wrapper .panel > .table-responsive > .table,
5502
+ #nifty_wrapper .panel > .panel-collapse > .table {
5503
+ margin-bottom: 0;
5504
+ }
5505
+ #nifty_wrapper .panel > .table caption,
5506
+ #nifty_wrapper .panel > .table-responsive > .table caption,
5507
+ #nifty_wrapper .panel > .panel-collapse > .table caption {
5508
+ padding-left: 15px;
5509
+ padding-right: 15px;
5510
+ }
5511
+ #nifty_wrapper .panel > .table:first-child,
5512
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child {
5513
+ border-top-right-radius: 3px;
5514
+ border-top-left-radius: 3px;
5515
+ }
5516
+ #nifty_wrapper .panel > .table:first-child > thead:first-child > tr:first-child,
5517
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
5518
+ #nifty_wrapper .panel > .table:first-child > tbody:first-child > tr:first-child,
5519
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
5520
+ border-top-left-radius: 3px;
5521
+ border-top-right-radius: 3px;
5522
+ }
5523
+ #nifty_wrapper .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
5524
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
5525
+ #nifty_wrapper .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5526
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
5527
+ #nifty_wrapper .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
5528
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
5529
+ #nifty_wrapper .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
5530
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
5531
+ border-top-left-radius: 3px;
5532
+ }
5533
+ #nifty_wrapper .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
5534
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
5535
+ #nifty_wrapper .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5536
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
5537
+ #nifty_wrapper .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
5538
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
5539
+ #nifty_wrapper .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
5540
+ #nifty_wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
5541
+ border-top-right-radius: 3px;
5542
+ }
5543
+ #nifty_wrapper .panel > .table:last-child,
5544
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child {
5545
+ border-bottom-right-radius: 3px;
5546
+ border-bottom-left-radius: 3px;
5547
+ }
5548
+ #nifty_wrapper .panel > .table:last-child > tbody:last-child > tr:last-child,
5549
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
5550
+ #nifty_wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child,
5551
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
5552
+ border-bottom-left-radius: 3px;
5553
+ border-bottom-right-radius: 3px;
5554
+ }
5555
+ #nifty_wrapper .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5556
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
5557
+ #nifty_wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5558
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
5559
+ #nifty_wrapper .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5560
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
5561
+ #nifty_wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
5562
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
5563
+ border-bottom-left-radius: 3px;
5564
+ }
5565
+ #nifty_wrapper .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5566
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
5567
+ #nifty_wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5568
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
5569
+ #nifty_wrapper .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5570
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
5571
+ #nifty_wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
5572
+ #nifty_wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
5573
+ border-bottom-right-radius: 3px;
5574
+ }
5575
+ #nifty_wrapper .panel > .panel-body + .table,
5576
+ #nifty_wrapper .panel > .panel-body + .table-responsive,
5577
+ #nifty_wrapper .panel > .table + .panel-body,
5578
+ #nifty_wrapper .panel > .table-responsive + .panel-body {
5579
+ border-top: 1px solid #eeeeee;
5580
+ }
5581
+ #nifty_wrapper .panel > .table > tbody:first-child > tr:first-child th,
5582
+ #nifty_wrapper .panel > .table > tbody:first-child > tr:first-child td {
5583
+ border-top: 0;
5584
+ }
5585
+ #nifty_wrapper .panel > .table-bordered,
5586
+ #nifty_wrapper .panel > .table-responsive > .table-bordered {
5587
+ border: 0;
5588
+ }
5589
+ #nifty_wrapper .panel > .table-bordered > thead > tr > th:first-child,
5590
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
5591
+ #nifty_wrapper .panel > .table-bordered > tbody > tr > th:first-child,
5592
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
5593
+ #nifty_wrapper .panel > .table-bordered > tfoot > tr > th:first-child,
5594
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
5595
+ #nifty_wrapper .panel > .table-bordered > thead > tr > td:first-child,
5596
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
5597
+ #nifty_wrapper .panel > .table-bordered > tbody > tr > td:first-child,
5598
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
5599
+ #nifty_wrapper .panel > .table-bordered > tfoot > tr > td:first-child,
5600
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
5601
+ border-left: 0;
5602
+ }
5603
+ #nifty_wrapper .panel > .table-bordered > thead > tr > th:last-child,
5604
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
5605
+ #nifty_wrapper .panel > .table-bordered > tbody > tr > th:last-child,
5606
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
5607
+ #nifty_wrapper .panel > .table-bordered > tfoot > tr > th:last-child,
5608
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
5609
+ #nifty_wrapper .panel > .table-bordered > thead > tr > td:last-child,
5610
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
5611
+ #nifty_wrapper .panel > .table-bordered > tbody > tr > td:last-child,
5612
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
5613
+ #nifty_wrapper .panel > .table-bordered > tfoot > tr > td:last-child,
5614
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
5615
+ border-right: 0;
5616
+ }
5617
+ #nifty_wrapper .panel > .table-bordered > thead > tr:first-child > td,
5618
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
5619
+ #nifty_wrapper .panel > .table-bordered > tbody > tr:first-child > td,
5620
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
5621
+ #nifty_wrapper .panel > .table-bordered > thead > tr:first-child > th,
5622
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
5623
+ #nifty_wrapper .panel > .table-bordered > tbody > tr:first-child > th,
5624
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
5625
+ border-bottom: 0;
5626
+ }
5627
+ #nifty_wrapper .panel > .table-bordered > tbody > tr:last-child > td,
5628
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
5629
+ #nifty_wrapper .panel > .table-bordered > tfoot > tr:last-child > td,
5630
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
5631
+ #nifty_wrapper .panel > .table-bordered > tbody > tr:last-child > th,
5632
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
5633
+ #nifty_wrapper .panel > .table-bordered > tfoot > tr:last-child > th,
5634
+ #nifty_wrapper .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
5635
+ border-bottom: 0;
5636
+ }
5637
+ #nifty_wrapper .panel > .table-responsive {
5638
+ border: 0;
5639
+ margin-bottom: 0;
5640
+ }
5641
+ #nifty_wrapper .panel-group {
5642
+ margin-bottom: 21px;
5643
+ }
5644
+ #nifty_wrapper .panel-group .panel {
5645
+ margin-bottom: 0;
5646
+ border-radius: 4px;
5647
+ }
5648
+ #nifty_wrapper .panel-group .panel + .panel {
5649
+ margin-top: 5px;
5650
+ }
5651
+ #nifty_wrapper .panel-group .panel-heading {
5652
+ border-bottom: 0;
5653
+ }
5654
+ #nifty_wrapper .panel-group .panel-heading + .panel-collapse > .panel-body,
5655
+ #nifty_wrapper .panel-group .panel-heading + .panel-collapse > .list-group {
5656
+ border-top: 1px solid #eeeeee;
5657
+ }
5658
+ #nifty_wrapper .panel-group .panel-footer {
5659
+ border-top: 0;
5660
+ }
5661
+ #nifty_wrapper .panel-group .panel-footer + .panel-collapse .panel-body {
5662
+ border-bottom: 1px solid #eeeeee;
5663
+ }
5664
+ #nifty_wrapper .panel-default {
5665
+ border-color: #cfdbe2;
5666
+ }
5667
+ #nifty_wrapper .panel-default > .panel-heading {
5668
+ color: #444444;
5669
+ background-color: #ffffff;
5670
+ border-color: #cfdbe2;
5671
+ }
5672
+ #nifty_wrapper .panel-default > .panel-heading + .panel-collapse > .panel-body {
5673
+ border-top-color: #cfdbe2;
5674
+ }
5675
+ #nifty_wrapper .panel-default > .panel-heading .badge {
5676
+ color: #ffffff;
5677
+ background-color: #444444;
5678
+ }
5679
+ #nifty_wrapper .panel-default > .panel-footer + .panel-collapse > .panel-body {
5680
+ border-bottom-color: #cfdbe2;
5681
+ }
5682
+ #nifty_wrapper .panel-primary {
5683
+ border-color: #cfdbe2;
5684
+ }
5685
+ #nifty_wrapper .panel-primary > .panel-heading {
5686
+ color: #ffffff;
5687
+ background-color: #5d9cec;
5688
+ border-color: #cfdbe2;
5689
+ }
5690
+ #nifty_wrapper .panel-primary > .panel-heading + .panel-collapse > .panel-body {
5691
+ border-top-color: #cfdbe2;
5692
+ }
5693
+ #nifty_wrapper .panel-primary > .panel-heading .badge {
5694
+ color: #5d9cec;
5695
+ background-color: #ffffff;
5696
+ }
5697
+ #nifty_wrapper .panel-primary > .panel-footer + .panel-collapse > .panel-body {
5698
+ border-bottom-color: #cfdbe2;
5699
+ }
5700
+ #nifty_wrapper .panel-success {
5701
+ border-color: #cfdbe2;
5702
+ }
5703
+ #nifty_wrapper .panel-success > .panel-heading {
5704
+ color: #ffffff;
5705
+ background-color: #27c24c;
5706
+ border-color: #cfdbe2;
5707
+ }
5708
+ #nifty_wrapper .panel-success > .panel-heading + .panel-collapse > .panel-body {
5709
+ border-top-color: #cfdbe2;
5710
+ }
5711
+ #nifty_wrapper .panel-success > .panel-heading .badge {
5712
+ color: #27c24c;
5713
+ background-color: #ffffff;
5714
+ }
5715
+ #nifty_wrapper .panel-success > .panel-footer + .panel-collapse > .panel-body {
5716
+ border-bottom-color: #cfdbe2;
5717
+ }
5718
+ #nifty_wrapper .panel-info {
5719
+ border-color: #cfdbe2;
5720
+ }
5721
+ #nifty_wrapper .panel-info > .panel-heading {
5722
+ color: #ffffff;
5723
+ background-color: #23b7e5;
5724
+ border-color: #cfdbe2;
5725
+ }
5726
+ #nifty_wrapper .panel-info > .panel-heading + .panel-collapse > .panel-body {
5727
+ border-top-color: #cfdbe2;
5728
+ }
5729
+ #nifty_wrapper .panel-info > .panel-heading .badge {
5730
+ color: #23b7e5;
5731
+ background-color: #ffffff;
5732
+ }
5733
+ #nifty_wrapper .panel-info > .panel-footer + .panel-collapse > .panel-body {
5734
+ border-bottom-color: #cfdbe2;
5735
+ }
5736
+ #nifty_wrapper .panel-warning {
5737
+ border-color: #cfdbe2;
5738
+ }
5739
+ #nifty_wrapper .panel-warning > .panel-heading {
5740
+ color: #ffffff;
5741
+ background-color: #ff902b;
5742
+ border-color: #cfdbe2;
5743
+ }
5744
+ #nifty_wrapper .panel-warning > .panel-heading + .panel-collapse > .panel-body {
5745
+ border-top-color: #cfdbe2;
5746
+ }
5747
+ #nifty_wrapper .panel-warning > .panel-heading .badge {
5748
+ color: #ff902b;
5749
+ background-color: #ffffff;
5750
+ }
5751
+ #nifty_wrapper .panel-warning > .panel-footer + .panel-collapse > .panel-body {
5752
+ border-bottom-color: #cfdbe2;
5753
+ }
5754
+ #nifty_wrapper .panel-danger {
5755
+ border-color: #cfdbe2;
5756
+ }
5757
+ #nifty_wrapper .panel-danger > .panel-heading {
5758
+ color: #ffffff;
5759
+ background-color: #f05050;
5760
+ border-color: #cfdbe2;
5761
+ }
5762
+ #nifty_wrapper .panel-danger > .panel-heading + .panel-collapse > .panel-body {
5763
+ border-top-color: #cfdbe2;
5764
+ }
5765
+ #nifty_wrapper .panel-danger > .panel-heading .badge {
5766
+ color: #f05050;
5767
+ background-color: #ffffff;
5768
+ }
5769
+ #nifty_wrapper .panel-danger > .panel-footer + .panel-collapse > .panel-body {
5770
+ border-bottom-color: #cfdbe2;
5771
+ }
5772
+ #nifty_wrapper .embed-responsive {
5773
+ position: relative;
5774
+ display: block;
5775
+ height: 0;
5776
+ padding: 0;
5777
+ overflow: hidden;
5778
+ }
5779
+ #nifty_wrapper .embed-responsive .embed-responsive-item,
5780
+ #nifty_wrapper .embed-responsive iframe,
5781
+ #nifty_wrapper .embed-responsive embed,
5782
+ #nifty_wrapper .embed-responsive object,
5783
+ #nifty_wrapper .embed-responsive video {
5784
+ position: absolute;
5785
+ top: 0;
5786
+ left: 0;
5787
+ bottom: 0;
5788
+ height: 100%;
5789
+ width: 100%;
5790
+ border: 0;
5791
+ }
5792
+ #nifty_wrapper .embed-responsive-16by9 {
5793
+ padding-bottom: 56.25%;
5794
+ }
5795
+ #nifty_wrapper .embed-responsive-4by3 {
5796
+ padding-bottom: 75%;
5797
+ }
5798
+ #nifty_wrapper .well {
5799
+ min-height: 20px;
5800
+ padding: 19px;
5801
+ margin-bottom: 20px;
5802
+ background-color: #ffffff;
5803
+ border: 1px solid #ededed;
5804
+ border-radius: 4px;
5805
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5806
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5807
+ }
5808
+ #nifty_wrapper .well blockquote {
5809
+ border-color: #ddd;
5810
+ #nifty_wrapper border-color: rgba(0, 0, 0, 0.15);
5811
+ }
5812
+ #nifty_wrapper .well-lg {
5813
+ padding: 24px;
5814
+ border-radius: 6px;
5815
+ }
5816
+ #nifty_wrapper .well-sm {
5817
+ padding: 9px;
5818
+ border-radius: 3px;
5819
+ }
5820
+ #nifty_wrapper .close {
5821
+ float: right;
5822
+ font-size: 21px;
5823
+ font-weight: bold;
5824
+ line-height: 1;
5825
+ color: #000000;
5826
+ text-shadow: 0 1px 0 #ffffff;
5827
+ opacity: 0.2;
5828
+ filter: alpha(opacity=20);
5829
+ }
5830
+ #nifty_wrapper .close:hover,
5831
+ #nifty_wrapper .close:focus {
5832
+ color: #000000;
5833
+ text-decoration: none;
5834
+ cursor: pointer;
5835
+ opacity: 0.5;
5836
+ filter: alpha(opacity=50);
5837
+ }
5838
+ #nifty_wrapper button.close {
5839
+ padding: 0;
5840
+ cursor: pointer;
5841
+ background: transparent;
5842
+ border: 0;
5843
+ -webkit-appearance: none;
5844
+ }
5845
+ #nifty_wrapper .modal-open {
5846
+ overflow: hidden;
5847
+ }
5848
+ #nifty_wrapper .modal {
5849
+ display: none;
5850
+ overflow: hidden;
5851
+ position: fixed;
5852
+ top: 0;
5853
+ right: 0;
5854
+ bottom: 0;
5855
+ left: 0;
5856
+ z-index: 1050;
5857
+ -webkit-overflow-scrolling: touch;
5858
+ outline: 0;
5859
+ }
5860
+ #nifty_wrapper .modal.fade .modal-dialog {
5861
+ #nifty_wrapper -webkit-transform: translate(0, -25%);
5862
+ #nifty_wrapper -ms-transform: translate(0, -25%);
5863
+ #nifty_wrapper -o-transform: translate(0, -25%);
5864
+ #nifty_wrapper transform: translate(0, -25%);
5865
+ -webkit-transition: -webkit-transform 0.3s ease-out;
5866
+ -moz-transition: -moz-transform 0.3s ease-out;
5867
+ -o-transition: -o-transform 0.3s ease-out;
5868
+ transition: transform 0.3s ease-out;
5869
+ }
5870
+ #nifty_wrapper .modal.in .modal-dialog {
5871
+ #nifty_wrapper -webkit-transform: translate(0, 0);
5872
+ #nifty_wrapper -ms-transform: translate(0, 0);
5873
+ #nifty_wrapper -o-transform: translate(0, 0);
5874
+ #nifty_wrapper transform: translate(0, 0);
5875
+ }
5876
+ #nifty_wrapper .modal-open .modal {
5877
+ overflow-x: hidden;
5878
+ overflow-y: auto;
5879
+ }
5880
+ #nifty_wrapper .modal-dialog {
5881
+ position: relative;
5882
+ width: auto;
5883
+ margin: 10px;
5884
+ }
5885
+ #nifty_wrapper .modal-content {
5886
+ position: relative;
5887
+ background-color: #ffffff;
5888
+ border: 1px solid #999999;
5889
+ border: 1px solid rgba(0, 0, 0, 0.2);
5890
+ border-radius: 6px;
5891
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
5892
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
5893
+ background-clip: padding-box;
5894
+ outline: 0;
5895
+ }
5896
+ #nifty_wrapper .modal-backdrop {
5897
+ position: fixed;
5898
+ top: 0;
5899
+ right: 0;
5900
+ bottom: 0;
5901
+ left: 0;
5902
+ z-index: 1040;
5903
+ background-color: #000000;
5904
+ }
5905
+ #nifty_wrapper .modal-backdrop.fade {
5906
+ opacity: 0;
5907
+ filter: alpha(opacity=0);
5908
+ }
5909
+ #nifty_wrapper .modal-backdrop.in {
5910
+ opacity: 0.5;
5911
+ filter: alpha(opacity=50);
5912
+ }
5913
+ #nifty_wrapper .modal-header {
5914
+ padding: 15px;
5915
+ border-bottom: 1px solid #e5e5e5;
5916
+ }
5917
+ #nifty_wrapper .modal-header .close {
5918
+ margin-top: -2px;
5919
+ }
5920
+ #nifty_wrapper .modal-title {
5921
+ margin: 0;
5922
+ line-height: 1.52857143;
5923
+ }
5924
+ #nifty_wrapper .modal-body {
5925
+ position: relative;
5926
+ padding: 15px;
5927
+ }
5928
+ #nifty_wrapper .modal-footer {
5929
+ padding: 15px;
5930
+ text-align: right;
5931
+ border-top: 1px solid #e5e5e5;
5932
+ }
5933
+ #nifty_wrapper .modal-footer .btn + .btn {
5934
+ margin-left: 5px;
5935
+ margin-bottom: 0;
5936
+ }
5937
+ #nifty_wrapper .modal-footer .btn-group .btn + .btn {
5938
+ margin-left: -1px;
5939
+ }
5940
+ #nifty_wrapper .modal-footer .btn-block + .btn-block {
5941
+ margin-left: 0;
5942
+ }
5943
+ #nifty_wrapper .modal-scrollbar-measure {
5944
+ position: absolute;
5945
+ top: -9999px;
5946
+ width: 50px;
5947
+ height: 50px;
5948
+ overflow: scroll;
5949
+ }
5950
+ @media (min-width: 768px) {
5951
+ #nifty_wrapper .modal-dialog {
5952
+ width: 600px;
5953
+ margin: 30px auto;
5954
+ }
5955
+ #nifty_wrapper .modal-content {
5956
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5957
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5958
+ }
5959
+ #nifty_wrapper .modal-sm {
5960
+ width: 300px;
5961
+ }
5962
+ }
5963
+ @media (min-width: 992px) {
5964
+ #nifty_wrapper .modal-lg {
5965
+ width: 900px;
5966
+ }
5967
+ }
5968
+ #nifty_wrapper .tooltip {
5969
+ position: absolute;
5970
+ z-index: 1070;
5971
+ display: block;
5972
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
5973
+ font-style: normal;
5974
+ font-weight: normal;
5975
+ letter-spacing: normal;
5976
+ line-break: auto;
5977
+ line-height: 1.52857143;
5978
+ text-align: left;
5979
+ text-align: start;
5980
+ text-decoration: none;
5981
+ text-shadow: none;
5982
+ text-transform: none;
5983
+ white-space: normal;
5984
+ word-break: normal;
5985
+ word-spacing: normal;
5986
+ word-wrap: normal;
5987
+ font-size: 12px;
5988
+ opacity: 0;
5989
+ filter: alpha(opacity=0);
5990
+ }
5991
+ #nifty_wrapper .tooltip.in {
5992
+ opacity: 0.9;
5993
+ filter: alpha(opacity=90);
5994
+ }
5995
+ #nifty_wrapper .tooltip.top {
5996
+ margin-top: -3px;
5997
+ padding: 5px 0;
5998
+ }
5999
+ #nifty_wrapper .tooltip.right {
6000
+ margin-left: 3px;
6001
+ padding: 0 5px;
6002
+ }
6003
+ #nifty_wrapper .tooltip.bottom {
6004
+ margin-top: 3px;
6005
+ padding: 5px 0;
6006
+ }
6007
+ #nifty_wrapper .tooltip.left {
6008
+ margin-left: -3px;
6009
+ padding: 0 5px;
6010
+ }
6011
+ #nifty_wrapper .tooltip-inner {
6012
+ max-width: 200px;
6013
+ padding: 3px 8px;
6014
+ color: #ffffff;
6015
+ text-align: center;
6016
+ background-color: #222222;
6017
+ border-radius: 4px;
6018
+ }
6019
+ #nifty_wrapper .tooltip-arrow {
6020
+ position: absolute;
6021
+ width: 0;
6022
+ height: 0;
6023
+ border-color: transparent;
6024
+ border-style: solid;
6025
+ }
6026
+ #nifty_wrapper .tooltip.top .tooltip-arrow {
6027
+ bottom: 0;
6028
+ left: 50%;
6029
+ margin-left: -5px;
6030
+ border-width: 5px 5px 0;
6031
+ border-top-color: #222222;
6032
+ }
6033
+ #nifty_wrapper .tooltip.top-left .tooltip-arrow {
6034
+ bottom: 0;
6035
+ right: 5px;
6036
+ margin-bottom: -5px;
6037
+ border-width: 5px 5px 0;
6038
+ border-top-color: #222222;
6039
+ }
6040
+ #nifty_wrapper .tooltip.top-right .tooltip-arrow {
6041
+ bottom: 0;
6042
+ left: 5px;
6043
+ margin-bottom: -5px;
6044
+ border-width: 5px 5px 0;
6045
+ border-top-color: #222222;
6046
+ }
6047
+ #nifty_wrapper .tooltip.right .tooltip-arrow {
6048
+ top: 50%;
6049
+ left: 0;
6050
+ margin-top: -5px;
6051
+ border-width: 5px 5px 5px 0;
6052
+ border-right-color: #222222;
6053
+ }
6054
+ #nifty_wrapper .tooltip.left .tooltip-arrow {
6055
+ top: 50%;
6056
+ right: 0;
6057
+ margin-top: -5px;
6058
+ border-width: 5px 0 5px 5px;
6059
+ border-left-color: #222222;
6060
+ }
6061
+ #nifty_wrapper .tooltip.bottom .tooltip-arrow {
6062
+ top: 0;
6063
+ left: 50%;
6064
+ margin-left: -5px;
6065
+ border-width: 0 5px 5px;
6066
+ border-bottom-color: #222222;
6067
+ }
6068
+ #nifty_wrapper .tooltip.bottom-left .tooltip-arrow {
6069
+ top: 0;
6070
+ right: 5px;
6071
+ margin-top: -5px;
6072
+ border-width: 0 5px 5px;
6073
+ border-bottom-color: #222222;
6074
+ }
6075
+ #nifty_wrapper .tooltip.bottom-right .tooltip-arrow {
6076
+ top: 0;
6077
+ left: 5px;
6078
+ margin-top: -5px;
6079
+ border-width: 0 5px 5px;
6080
+ border-bottom-color: #222222;
6081
+ }
6082
+ #nifty_wrapper .popover {
6083
+ position: absolute;
6084
+ top: 0;
6085
+ left: 0;
6086
+ z-index: 1060;
6087
+ display: none;
6088
+ max-width: 276px;
6089
+ padding: 1px;
6090
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
6091
+ font-style: normal;
6092
+ font-weight: normal;
6093
+ letter-spacing: normal;
6094
+ line-break: auto;
6095
+ line-height: 1.52857143;
6096
+ text-align: left;
6097
+ text-align: start;
6098
+ text-decoration: none;
6099
+ text-shadow: none;
6100
+ text-transform: none;
6101
+ white-space: normal;
6102
+ word-break: normal;
6103
+ word-spacing: normal;
6104
+ word-wrap: normal;
6105
+ font-size: 14px;
6106
+ background-color: #ffffff;
6107
+ background-clip: padding-box;
6108
+ border: 1px solid #cccccc;
6109
+ border: 1px solid #e1e1e1;
6110
+ border-radius: 6px;
6111
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
6112
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
6113
+ }
6114
+ #nifty_wrapper .popover.top {
6115
+ margin-top: -10px;
6116
+ }
6117
+ #nifty_wrapper .popover.right {
6118
+ margin-left: 10px;
6119
+ }
6120
+ #nifty_wrapper .popover.bottom {
6121
+ margin-top: 10px;
6122
+ }
6123
+ #nifty_wrapper .popover.left {
6124
+ margin-left: -10px;
6125
+ }
6126
+ #nifty_wrapper .popover-title {
6127
+ margin: 0;
6128
+ padding: 8px 14px;
6129
+ font-size: 14px;
6130
+ background-color: #fafafa;
6131
+ border-bottom: 1px solid #ededed;
6132
+ border-radius: 5px 5px 0 0;
6133
+ }
6134
+ #nifty_wrapper .popover-content {
6135
+ padding: 9px 14px;
6136
+ }
6137
+ #nifty_wrapper .popover > .arrow,
6138
+ #nifty_wrapper .popover > .arrow:after {
6139
+ position: absolute;
6140
+ display: block;
6141
+ width: 0;
6142
+ height: 0;
6143
+ border-color: transparent;
6144
+ border-style: solid;
6145
+ }
6146
+ #nifty_wrapper .popover > .arrow {
6147
+ border-width: 11px;
6148
+ }
6149
+ #nifty_wrapper .popover > .arrow:after {
6150
+ border-width: 10px;
6151
+ content: "";
6152
+ }
6153
+ #nifty_wrapper .popover.top > .arrow {
6154
+ left: 50%;
6155
+ margin-left: -11px;
6156
+ border-bottom-width: 0;
6157
+ border-top-color: #999999;
6158
+ border-top-color: #e1e1e1;
6159
+ bottom: -11px;
6160
+ }
6161
+ #nifty_wrapper .popover.top > .arrow:after {
6162
+ content: " ";
6163
+ bottom: 1px;
6164
+ margin-left: -10px;
6165
+ border-bottom-width: 0;
6166
+ border-top-color: #fafafa;
6167
+ }
6168
+ #nifty_wrapper .popover.right > .arrow {
6169
+ top: 50%;
6170
+ left: -11px;
6171
+ margin-top: -11px;
6172
+ border-left-width: 0;
6173
+ border-right-color: #999999;
6174
+ border-right-color: #e1e1e1;
6175
+ }
6176
+ #nifty_wrapper .popover.right > .arrow:after {
6177
+ content: " ";
6178
+ left: 1px;
6179
+ bottom: -10px;
6180
+ border-left-width: 0;
6181
+ border-right-color: #fafafa;
6182
+ }
6183
+ #nifty_wrapper .popover.bottom > .arrow {
6184
+ left: 50%;
6185
+ margin-left: -11px;
6186
+ border-top-width: 0;
6187
+ border-bottom-color: #999999;
6188
+ border-bottom-color: #e1e1e1;
6189
+ top: -11px;
6190
+ }
6191
+ #nifty_wrapper .popover.bottom > .arrow:after {
6192
+ content: " ";
6193
+ top: 1px;
6194
+ margin-left: -10px;
6195
+ border-top-width: 0;
6196
+ border-bottom-color: #fafafa;
6197
+ }
6198
+ #nifty_wrapper .popover.left > .arrow {
6199
+ top: 50%;
6200
+ right: -11px;
6201
+ margin-top: -11px;
6202
+ border-right-width: 0;
6203
+ border-left-color: #999999;
6204
+ border-left-color: #e1e1e1;
6205
+ }
6206
+ #nifty_wrapper .popover.left > .arrow:after {
6207
+ content: " ";
6208
+ right: 1px;
6209
+ border-right-width: 0;
6210
+ border-left-color: #fafafa;
6211
+ bottom: -10px;
6212
+ }
6213
+ #nifty_wrapper .carousel {
6214
+ position: relative;
6215
+ }
6216
+ #nifty_wrapper .carousel-inner {
6217
+ position: relative;
6218
+ overflow: hidden;
6219
+ width: 100%;
6220
+ }
6221
+ #nifty_wrapper .carousel-inner > .item {
6222
+ display: none;
6223
+ position: relative;
6224
+ -webkit-transition: 0.6s ease-in-out left;
6225
+ -o-transition: 0.6s ease-in-out left;
6226
+ transition: 0.6s ease-in-out left;
6227
+ }
6228
+ #nifty_wrapper .carousel-inner > .item > img,
6229
+ #nifty_wrapper .carousel-inner > .item > a > img {
6230
+ line-height: 1;
6231
+ }
6232
+ @media all and (transform-3d), (-webkit-transform-3d) {
6233
+ #nifty_wrapper .carousel-inner > .item {
6234
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
6235
+ -moz-transition: -moz-transform 0.6s ease-in-out;
6236
+ -o-transition: -o-transform 0.6s ease-in-out;
6237
+ transition: transform 0.6s ease-in-out;
6238
+ -webkit-backface-visibility: hidden;
6239
+ -moz-backface-visibility: hidden;
6240
+ backface-visibility: hidden;
6241
+ -webkit-perspective: 1000px;
6242
+ -moz-perspective: 1000px;
6243
+ perspective: 1000px;
6244
+ }
6245
+ #nifty_wrapper .carousel-inner > .item.next,
6246
+ #nifty_wrapper .carousel-inner > .item.active.right {
6247
+ -webkit-transform: translate3d(100%, 0, 0);
6248
+ transform: translate3d(100%, 0, 0);
6249
+ left: 0;
6250
+ }
6251
+ #nifty_wrapper .carousel-inner > .item.prev,
6252
+ #nifty_wrapper .carousel-inner > .item.active.left {
6253
+ -webkit-transform: translate3d(-100%, 0, 0);
6254
+ transform: translate3d(-100%, 0, 0);
6255
+ left: 0;
6256
+ }
6257
+ #nifty_wrapper .carousel-inner > .item.next.left,
6258
+ #nifty_wrapper .carousel-inner > .item.prev.right,
6259
+ #nifty_wrapper .carousel-inner > .item.active {
6260
+ -webkit-transform: translate3d(0, 0, 0);
6261
+ transform: translate3d(0, 0, 0);
6262
+ left: 0;
6263
+ }
6264
+ }
6265
+ #nifty_wrapper .carousel-inner > .active,
6266
+ #nifty_wrapper .carousel-inner > .next,
6267
+ #nifty_wrapper .carousel-inner > .prev {
6268
+ display: block;
6269
+ }
6270
+ #nifty_wrapper .carousel-inner > .active {
6271
+ left: 0;
6272
+ }
6273
+ #nifty_wrapper .carousel-inner > .next,
6274
+ #nifty_wrapper .carousel-inner > .prev {
6275
+ position: absolute;
6276
+ top: 0;
6277
+ width: 100%;
6278
+ }
6279
+ #nifty_wrapper .carousel-inner > .next {
6280
+ left: 100%;
6281
+ }
6282
+ #nifty_wrapper .carousel-inner > .prev {
6283
+ left: -100%;
6284
+ }
6285
+ #nifty_wrapper .carousel-inner > .next.left,
6286
+ #nifty_wrapper .carousel-inner > .prev.right {
6287
+ left: 0;
6288
+ }
6289
+ #nifty_wrapper .carousel-inner > .active.left {
6290
+ left: -100%;
6291
+ }
6292
+ #nifty_wrapper .carousel-inner > .active.right {
6293
+ left: 100%;
6294
+ }
6295
+ #nifty_wrapper .carousel-control {
6296
+ position: absolute;
6297
+ top: 0;
6298
+ left: 0;
6299
+ bottom: 0;
6300
+ width: 15%;
6301
+ opacity: 0.5;
6302
+ filter: alpha(opacity=50);
6303
+ font-size: 20px;
6304
+ color: #ffffff;
6305
+ text-align: center;
6306
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
6307
+ background-color: rgba(0, 0, 0, 0);
6308
+ }
6309
+ #nifty_wrapper .carousel-control.left {
6310
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6311
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6312
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
6313
+ background-repeat: repeat-x;
6314
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
6315
+ }
6316
+ #nifty_wrapper .carousel-control.right {
6317
+ left: auto;
6318
+ right: 0;
6319
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6320
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6321
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
6322
+ background-repeat: repeat-x;
6323
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
6324
+ }
6325
+ #nifty_wrapper .carousel-control:hover,
6326
+ #nifty_wrapper .carousel-control:focus {
6327
+ outline: 0;
6328
+ color: #ffffff;
6329
+ text-decoration: none;
6330
+ opacity: 0.9;
6331
+ filter: alpha(opacity=90);
6332
+ }
6333
+ #nifty_wrapper .carousel-control .icon-prev,
6334
+ #nifty_wrapper .carousel-control .icon-next,
6335
+ #nifty_wrapper .carousel-control .glyphicon-chevron-left,
6336
+ #nifty_wrapper .carousel-control .glyphicon-chevron-right {
6337
+ position: absolute;
6338
+ top: 50%;
6339
+ margin-top: -10px;
6340
+ z-index: 5;
6341
+ display: inline-block;
6342
+ }
6343
+ #nifty_wrapper .carousel-control .icon-prev,
6344
+ #nifty_wrapper .carousel-control .glyphicon-chevron-left {
6345
+ left: 50%;
6346
+ margin-left: -10px;
6347
+ }
6348
+ #nifty_wrapper .carousel-control .icon-next,
6349
+ #nifty_wrapper .carousel-control .glyphicon-chevron-right {
6350
+ right: 50%;
6351
+ margin-right: -10px;
6352
+ }
6353
+ #nifty_wrapper .carousel-control .icon-prev,
6354
+ #nifty_wrapper .carousel-control .icon-next {
6355
+ width: 20px;
6356
+ height: 20px;
6357
+ line-height: 1;
6358
+ font-family: serif;
6359
+ }
6360
+ #nifty_wrapper .carousel-control .icon-prev:before {
6361
+ content: '\2039';
6362
+ }
6363
+ #nifty_wrapper .carousel-control .icon-next:before {
6364
+ content: '\203a';
6365
+ }
6366
+ #nifty_wrapper .carousel-indicators {
6367
+ position: absolute;
6368
+ bottom: 10px;
6369
+ left: 50%;
6370
+ z-index: 15;
6371
+ width: 60%;
6372
+ margin-left: -30%;
6373
+ padding-left: 0;
6374
+ list-style: none;
6375
+ text-align: center;
6376
+ }
6377
+ #nifty_wrapper .carousel-indicators li {
6378
+ display: inline-block;
6379
+ width: 10px;
6380
+ height: 10px;
6381
+ margin: 1px;
6382
+ text-indent: -999px;
6383
+ border: 1px solid #ffffff;
6384
+ border-radius: 10px;
6385
+ cursor: pointer;
6386
+ background-color: #000 \9;
6387
+ background-color: rgba(0, 0, 0, 0);
6388
+ }
6389
+ #nifty_wrapper .carousel-indicators .active {
6390
+ margin: 0;
6391
+ width: 12px;
6392
+ height: 12px;
6393
+ background-color: #ffffff;
6394
+ }
6395
+ #nifty_wrapper .carousel-caption {
6396
+ position: absolute;
6397
+ left: 15%;
6398
+ right: 15%;
6399
+ bottom: 20px;
6400
+ z-index: 10;
6401
+ padding-top: 20px;
6402
+ padding-bottom: 20px;
6403
+ color: #ffffff;
6404
+ text-align: center;
6405
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
6406
+ }
6407
+ #nifty_wrapper .carousel-caption .btn {
6408
+ text-shadow: none;
6409
+ }
6410
+ @media screen and (min-width: 768px) {
6411
+ #nifty_wrapper .carousel-control .glyphicon-chevron-left,
6412
+ #nifty_wrapper .carousel-control .glyphicon-chevron-right,
6413
+ #nifty_wrapper .carousel-control .icon-prev,
6414
+ #nifty_wrapper .carousel-control .icon-next {
6415
+ width: 30px;
6416
+ height: 30px;
6417
+ margin-top: -10px;
6418
+ font-size: 30px;
6419
+ }
6420
+ #nifty_wrapper .carousel-control .glyphicon-chevron-left,
6421
+ #nifty_wrapper .carousel-control .icon-prev {
6422
+ margin-left: -10px;
6423
+ }
6424
+ #nifty_wrapper .carousel-control .glyphicon-chevron-right,
6425
+ #nifty_wrapper .carousel-control .icon-next {
6426
+ margin-right: -10px;
6427
+ }
6428
+ #nifty_wrapper .carousel-caption {
6429
+ left: 20%;
6430
+ right: 20%;
6431
+ padding-bottom: 30px;
6432
+ }
6433
+ #nifty_wrapper .carousel-indicators {
6434
+ bottom: 20px;
6435
+ }
6436
+ }
6437
+ #nifty_wrapper .clearfix:before,
6438
+ #nifty_wrapper .clearfix:after,
6439
+ #nifty_wrapper .dl-horizontal dd:before,
6440
+ #nifty_wrapper .dl-horizontal dd:after,
6441
+ #nifty_wrapper .container:before,
6442
+ #nifty_wrapper .container:after,
6443
+ #nifty_wrapper .container-fluid:before,
6444
+ #nifty_wrapper .container-fluid:after,
6445
+ #nifty_wrapper .row:before,
6446
+ #nifty_wrapper .row:after,
6447
+ #nifty_wrapper .form-horizontal .form-group:before,
6448
+ #nifty_wrapper .form-horizontal .form-group:after,
6449
+ .btn-toolbar:before,
6450
+ .btn-toolbar:after,
6451
+ .btn-group-vertical > .btn-group:before,
6452
+ .btn-group-vertical > .btn-group:after,
6453
+ #nifty_wrapper .nav:before,
6454
+ #nifty_wrapper .nav:after,
6455
+ #nifty_wrapper .navbar:before,
6456
+ #nifty_wrapper .navbar:after,
6457
+ #nifty_wrapper .navbar-header:before,
6458
+ #nifty_wrapper .navbar-header:after,
6459
+ #nifty_wrapper .navbar-collapse:before,
6460
+ #nifty_wrapper .navbar-collapse:after,
6461
+ #nifty_wrapper .pager:before,
6462
+ #nifty_wrapper .pager:after,
6463
+ #nifty_wrapper .panel-body:before,
6464
+ #nifty_wrapper .panel-body:after,
6465
+ #nifty_wrapper .modal-header:before,
6466
+ #nifty_wrapper .modal-header:after,
6467
+ #nifty_wrapper .modal-footer:before,
6468
+ #nifty_wrapper .modal-footer:after {
6469
+ content: " ";
6470
+ display: table;
6471
+ }
6472
+ #nifty_wrapper .clearfix:after,
6473
+ #nifty_wrapper .dl-horizontal dd:after,
6474
+ #nifty_wrapper .container:after,
6475
+ #nifty_wrapper .container-fluid:after,
6476
+ #nifty_wrapper .row:after,
6477
+ #nifty_wrapper .form-horizontal .form-group:after,
6478
+ .btn-toolbar:after,
6479
+ .btn-group-vertical > .btn-group:after,
6480
+ #nifty_wrapper .nav:after,
6481
+ #nifty_wrapper .navbar:after,
6482
+ #nifty_wrapper .navbar-header:after,
6483
+ #nifty_wrapper .navbar-collapse:after,
6484
+ #nifty_wrapper .pager:after,
6485
+ #nifty_wrapper .panel-body:after,
6486
+ #nifty_wrapper .modal-header:after,
6487
+ #nifty_wrapper .modal-footer:after {
6488
+ clear: both;
6489
+ }
6490
+ #nifty_wrapper .center-block {
6491
+ display: block;
6492
+ margin-left: auto;
6493
+ margin-right: auto;
6494
+ }
6495
+ #nifty_wrapper .pull-right {
6496
+ float: right !important;
6497
+ }
6498
+ #nifty_wrapper .pull-left {
6499
+ float: left !important;
6500
+ }
6501
+ #nifty_wrapper .hide {
6502
+ display: none !important;
6503
+ }
6504
+ #nifty_wrapper .show {
6505
+ display: block !important;
6506
+ }
6507
+ #nifty_wrapper .invisible {
6508
+ visibility: hidden;
6509
+ }
6510
+ #nifty_wrapper .text-hide {
6511
+ font: 0/0 a;
6512
+ color: transparent;
6513
+ text-shadow: none;
6514
+ background-color: transparent;
6515
+ border: 0;
6516
+ }
6517
+ #nifty_wrapper .hidden {
6518
+ display: none !important;
6519
+ }
6520
+ #nifty_wrapper .affix {
6521
+ position: fixed;
6522
+ }
6523
+ #nifty_wrapper @-ms-viewport {
6524
+ width: device-width;
6525
+ }
6526
+ #nifty_wrapper .visible-xs,
6527
+ #nifty_wrapper .visible-sm,
6528
+ #nifty_wrapper .visible-md,
6529
+ #nifty_wrapper .visible-lg {
6530
+ display: none !important;
6531
+ }
6532
+ #nifty_wrapper .visible-xs-block,
6533
+ #nifty_wrapper .visible-xs-inline,
6534
+ #nifty_wrapper .visible-xs-inline-block,
6535
+ #nifty_wrapper .visible-sm-block,
6536
+ #nifty_wrapper .visible-sm-inline,
6537
+ #nifty_wrapper .visible-sm-inline-block,
6538
+ #nifty_wrapper .visible-md-block,
6539
+ #nifty_wrapper .visible-md-inline,
6540
+ #nifty_wrapper .visible-md-inline-block,
6541
+ #nifty_wrapper .visible-lg-block,
6542
+ #nifty_wrapper .visible-lg-inline,
6543
+ #nifty_wrapper .visible-lg-inline-block {
6544
+ display: none !important;
6545
+ }
6546
+ @media (max-width: 767px) {
6547
+ #nifty_wrapper .visible-xs {
6548
+ display: block !important;
6549
+ }
6550
+ #nifty_wrapper table.visible-xs {
6551
+ display: table !important;
6552
+ }
6553
+ #nifty_wrapper tr.visible-xs {
6554
+ display: table-row !important;
6555
+ }
6556
+ #nifty_wrapper th.visible-xs,
6557
+ #nifty_wrapper td.visible-xs {
6558
+ display: table-cell !important;
6559
+ }
6560
+ }
6561
+ @media (max-width: 767px) {
6562
+ #nifty_wrapper .visible-xs-block {
6563
+ display: block !important;
6564
+ }
6565
+ }
6566
+ @media (max-width: 767px) {
6567
+ #nifty_wrapper .visible-xs-inline {
6568
+ display: inline !important;
6569
+ }
6570
+ }
6571
+ @media (max-width: 767px) {
6572
+ #nifty_wrapper .visible-xs-inline-block {
6573
+ display: inline-block !important;
6574
+ }
6575
+ }
6576
+ @media (min-width: 768px) and (max-width: 991px) {
6577
+ #nifty_wrapper .visible-sm {
6578
+ display: block !important;
6579
+ }
6580
+ #nifty_wrapper table.visible-sm {
6581
+ display: table !important;
6582
+ }
6583
+ #nifty_wrapper tr.visible-sm {
6584
+ display: table-row !important;
6585
+ }
6586
+ #nifty_wrapper th.visible-sm,
6587
+ #nifty_wrapper td.visible-sm {
6588
+ display: table-cell !important;
6589
+ }
6590
+ }
6591
+ @media (min-width: 768px) and (max-width: 991px) {
6592
+ #nifty_wrapper .visible-sm-block {
6593
+ display: block !important;
6594
+ }
6595
+ }
6596
+ @media (min-width: 768px) and (max-width: 991px) {
6597
+ #nifty_wrapper .visible-sm-inline {
6598
+ display: inline !important;
6599
+ }
6600
+ }
6601
+ @media (min-width: 768px) and (max-width: 991px) {
6602
+ #nifty_wrapper .visible-sm-inline-block {
6603
+ display: inline-block !important;
6604
+ }
6605
+ }
6606
+ @media (min-width: 992px) and (max-width: 1199px) {
6607
+ #nifty_wrapper .visible-md {
6608
+ display: block !important;
6609
+ }
6610
+ #nifty_wrapper table.visible-md {
6611
+ display: table !important;
6612
+ }
6613
+ #nifty_wrapper tr.visible-md {
6614
+ display: table-row !important;
6615
+ }
6616
+ #nifty_wrapper th.visible-md,
6617
+ #nifty_wrapper td.visible-md {
6618
+ display: table-cell !important;
6619
+ }
6620
+ }
6621
+ @media (min-width: 992px) and (max-width: 1199px) {
6622
+ #nifty_wrapper .visible-md-block {
6623
+ display: block !important;
6624
+ }
6625
+ }
6626
+ @media (min-width: 992px) and (max-width: 1199px) {
6627
+ #nifty_wrapper .visible-md-inline {
6628
+ display: inline !important;
6629
+ }
6630
+ }
6631
+ @media (min-width: 992px) and (max-width: 1199px) {
6632
+ #nifty_wrapper .visible-md-inline-block {
6633
+ display: inline-block !important;
6634
+ }
6635
+ }
6636
+ @media (min-width: 1200px) {
6637
+ #nifty_wrapper .visible-lg {
6638
+ display: block !important;
6639
+ }
6640
+ #nifty_wrapper table.visible-lg {
6641
+ display: table !important;
6642
+ }
6643
+ #nifty_wrapper tr.visible-lg {
6644
+ display: table-row !important;
6645
+ }
6646
+ #nifty_wrapper th.visible-lg,
6647
+ #nifty_wrapper td.visible-lg {
6648
+ display: table-cell !important;
6649
+ }
6650
+ }
6651
+ @media (min-width: 1200px) {
6652
+ #nifty_wrapper .visible-lg-block {
6653
+ display: block !important;
6654
+ }
6655
+ }
6656
+ @media (min-width: 1200px) {
6657
+ #nifty_wrapper .visible-lg-inline {
6658
+ display: inline !important;
6659
+ }
6660
+ }
6661
+ @media (min-width: 1200px) {
6662
+ #nifty_wrapper .visible-lg-inline-block {
6663
+ display: inline-block !important;
6664
+ }
6665
+ }
6666
+ @media (max-width: 767px) {
6667
+ #nifty_wrapper .hidden-xs {
6668
+ display: none !important;
6669
+ }
6670
+ }
6671
+ @media (min-width: 768px) and (max-width: 991px) {
6672
+ #nifty_wrapper .hidden-sm {
6673
+ display: none !important;
6674
+ }
6675
+ }
6676
+ @media (min-width: 992px) and (max-width: 1199px) {
6677
+ #nifty_wrapper .hidden-md {
6678
+ display: none !important;
6679
+ }
6680
+ }
6681
+ @media (min-width: 1200px) {
6682
+ #nifty_wrapper .hidden-lg {
6683
+ display: none !important;
6684
+ }
6685
+ }
6686
+ #nifty_wrapper .visible-print {
6687
+ display: none !important;
6688
+ }
6689
+ @media print {
6690
+ #nifty_wrapper .visible-print {
6691
+ display: block !important;
6692
+ }
6693
+ #nifty_wrapper table.visible-print {
6694
+ display: table !important;
6695
+ }
6696
+ #nifty_wrapper tr.visible-print {
6697
+ display: table-row !important;
6698
+ }
6699
+ #nifty_wrapper th.visible-print,
6700
+ #nifty_wrapper td.visible-print {
6701
+ display: table-cell !important;
6702
+ }
6703
+ }
6704
+ #nifty_wrapper .visible-print-block {
6705
+ display: none !important;
6706
+ }
6707
+ @media print {
6708
+ #nifty_wrapper .visible-print-block {
6709
+ display: block !important;
6710
+ }
6711
+ }
6712
+ #nifty_wrapper .visible-print-inline {
6713
+ display: none !important;
6714
+ }
6715
+ @media print {
6716
+ #nifty_wrapper .visible-print-inline {
6717
+ display: inline !important;
6718
+ }
6719
+ }
6720
+ #nifty_wrapper .visible-print-inline-block {
6721
+ display: none !important;
6722
+ }
6723
+ @media print {
6724
+ #nifty_wrapper .visible-print-inline-block {
6725
+ display: inline-block !important;
6726
+ }
6727
+ }
6728
+ @media print {
6729
+ #nifty_wrapper .hidden-print {
6730
+ display: none !important;
6731
+ }
6732
+ }
css/chat_dashboard/admin_style.css ADDED
@@ -0,0 +1,1829 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Fix user-agen` */
2
+
3
+ #nifty_wrapper * {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ #nifty_wrapper html {
8
+ font-weight: 300;
9
+ -webkit-font-smoothing: antialiased;
10
+ }
11
+
12
+ #nifty_wrapper html input {
13
+ font-family:
14
+ "HelveticaNeue-Light",
15
+ "Helvetica Neue Light",
16
+ "Helvetica Neue",
17
+ Helvetica,
18
+ Arial,
19
+ "Lucida Grande",
20
+ sans-serif;
21
+ }
22
+
23
+ #nifty_wrapper html body {
24
+ height: 100%;
25
+ margin: 0;
26
+ padding: 0;
27
+ }
28
+
29
+ #nifty_wrapper ul {
30
+ list-style: none;
31
+ word-wrap: break-word;
32
+ }
33
+
34
+ #nifty_wrapper {
35
+ padding: 0 !important;
36
+ border-radius: 4px;
37
+ overflow: hidden;
38
+ box-shadow: 0 0 40px 1px rgba(0,0,0,.07);
39
+ }
40
+
41
+ #nifty_wrapper {
42
+ position: relative !important;
43
+ width:100% !important;
44
+ height:100%;
45
+ display:block;
46
+ overflow:auto;
47
+ background-color:#FFF;
48
+
49
+ }
50
+ #nifty_wrapper {
51
+ height: inherit;
52
+ top: 0;
53
+ bottom: 0;
54
+ position: absolute;
55
+ }
56
+ #nifty_wrapper #nifty_inner_wrapper {
57
+ width:100%;
58
+ height:100%;
59
+ display:block;
60
+
61
+ }
62
+ #nifty_wrapper #user_list {
63
+ width:25%;
64
+ display:block;
65
+ height:100%;
66
+ float:left;
67
+ background-color:#fff;
68
+ border-right: #f5f5f5 1px solid;
69
+ overflow:auto;
70
+ padding:0 !important;
71
+ }
72
+ #nifty_wrapper #user_count {
73
+ padding:29px;
74
+ padding-top: 23px;
75
+ padding-bottom: 55px;
76
+
77
+ font-size: 0.8em;
78
+
79
+ border-bottom:1px solid #ccc;
80
+ background: #333333;
81
+ color: #fff;
82
+
83
+ border-bottom-width: 2px;
84
+ border-bottom-color: #ccc;
85
+
86
+ transition: all 0.3s ease;
87
+ -webkit-transition: all 0.3s ease;
88
+ -moz-transition: all 0.3s ease;
89
+ -o-transition: all 0.3s ease;
90
+
91
+ }
92
+
93
+
94
+
95
+ /**
96
+ * Online / offline styling for each agent in the agent list
97
+ */
98
+
99
+ #nifty_wrapper #agent_list {
100
+ bottom: 0;
101
+ position: absolute;
102
+ display: block;
103
+ width: 100%;
104
+ border-top: 1px solid #eee;
105
+ background: #333333;
106
+ color: #b8b8b8;
107
+ padding-right: 20px;
108
+ padding-left: 20px;
109
+ padding-top: 5px;
110
+ padding-bottom: 5px;
111
+ max-height: 155px;
112
+ overflow-y: scroll;
113
+ }
114
+
115
+ #nifty_wrapper #agent_list ul li {
116
+ padding-left: 10px;
117
+ padding: 5px;
118
+ border-radius: 5px;
119
+ }
120
+
121
+ #nifty_wrapper span.online_offline {
122
+ width: 10px;
123
+ height: 10px;
124
+ display: block;
125
+ float: left;
126
+ margin-top: 4px;
127
+ margin-right: 5px;
128
+ }
129
+ #nifty_wrapper span.online_offline.online {
130
+ background-color: #6da164;
131
+ border-radius: 15px;
132
+ }
133
+ #nifty_wrapper span.online_offline.offline {
134
+ background-color: #939393;
135
+ border-radius: 15px;
136
+ }
137
+ #nifty_wrapper li.online_agent {
138
+ cursor: pointer;
139
+ font-style: italic;
140
+ }
141
+
142
+
143
+ #nifty_wrapper .online_agent.newmessage {
144
+ color:#FFF;
145
+ font-weight:bold;
146
+ }
147
+ #nifty_wrapper .online_agent.active {
148
+ background: #075077;
149
+ color: #fff;
150
+ }
151
+ #nifty_wrapper .online_agent.active .online_offline.online {
152
+ background: #fff;
153
+ }
154
+
155
+ #nifty_wrapper .userListBox {
156
+ background-color: #FFF;
157
+ }
158
+ #nifty_wrapper .userList {
159
+ box-shadow: 0 0 7px 1px rgba(0,0,0,.05);
160
+ padding:10px;
161
+ position:relative;
162
+ height:50px;
163
+ }
164
+ #nifty_wrapper .userListBox:hover {
165
+ background-color: #fefefe;
166
+ }
167
+ #nifty_wrapper .userList h3 {
168
+ margin-top:0;
169
+ padding-top:0;
170
+ font-size:12px;
171
+ position:absolute;
172
+ left:40px;
173
+ top:19px;
174
+ }
175
+ #nifty_wrapper .userInfo {
176
+ display: block;
177
+ /* width: 50px; */
178
+ height: 20px;
179
+ float: right;
180
+ position: absolute;
181
+ top: 10px;
182
+ right: 5px;
183
+ font-size: 0.7em;
184
+ text-align: right;
185
+ /* padding-right: 10px; */
186
+ padding-top: 0;
187
+ margin-top: 0;
188
+ color: #ccc;
189
+ }
190
+ #nifty_wrapper .unread_count {
191
+ display: block;
192
+ width: 15px;
193
+ height: 15px;
194
+ position: absolute;
195
+ padding-top: 2px;
196
+ top: 1px;
197
+ right: 40px;
198
+ border-radius: 10px;
199
+ font-size: 0.7em;
200
+ text-align: center;
201
+ margin-top: 0;
202
+ color: #fff;
203
+ font-weight: normal;
204
+ background-color: #2594d1;
205
+ }
206
+ #nifty_wrapper .userList .unread_count {
207
+ top:18px;
208
+ }
209
+ #nifty_wrapper .userItemLastMessage {
210
+ color:#333;
211
+ font-style: italic;
212
+ font-size:12px;
213
+ overflow:hidden;
214
+ white-space: nowrap;
215
+ text-overflow: ellipsis;
216
+ max-width:100%;
217
+ }
218
+ #nifty_wrapper .truncate {
219
+ display:block;
220
+ white-space: nowrap;
221
+ overflow: hidden;
222
+ text-overflow: ellipsis;
223
+ }
224
+ #nifty_wrapper .referer-link {
225
+ width:90%;
226
+ }
227
+
228
+
229
+ /* UserList Styles */
230
+ #nifty_wrapper .userList.active {
231
+ border-left: 3px solid #2b97d2;
232
+ background-color: #fbfbfb;
233
+ box-shadow: 0 0 7px 1px rgba(0,0,0,0.07);
234
+ }
235
+ #nifty_wrapper .userList.newmessage {
236
+ border-left: 3px solid #2b97d2;
237
+ }
238
+ #nifty_wrapper .userList.inactive {
239
+ border-left: 3px solid red;
240
+ background-color:#efefef;
241
+ }
242
+
243
+
244
+
245
+
246
+ #nifty_wrapper span.chatClose {
247
+ display:block;
248
+ width: 46px;
249
+ height: 20px;
250
+ position: absolute;
251
+ top: 21px;
252
+ right: 45px;
253
+ text-align: center;
254
+ border: 1px solid #777;
255
+ border-radius: 10px;
256
+ font-size: 0.8em;
257
+ vertical-align: middle;
258
+ padding-top: 0px;
259
+ color: #777;
260
+ cursor: pointer;
261
+ }
262
+
263
+ #nifty_wrapper .visitorListBoxHeader .vcol {
264
+ background-color: #fefefe;
265
+ padding-top: 12px;
266
+ padding-bottom: 10px;
267
+ overflow: auto;
268
+ font-size: 0.8em;
269
+ font-weight: bold;
270
+ color: #ccc;
271
+
272
+ }
273
+ #nifty_wrapper .visitorList .vcol {
274
+ font-size:0.8em;
275
+ color: #333;
276
+
277
+ }
278
+ #nifty_wrapper .visitorList {
279
+ display: block;
280
+ overflow: auto;
281
+ background-color: #FFF;
282
+ padding-bottom: 10px;
283
+ padding-top: 10px;
284
+ border-top: 1px solid #eee;
285
+ min-height:65px;
286
+ }
287
+ #nifty_wrapper .vcol {
288
+ display: block;
289
+ float:left;
290
+ padding: 5px;
291
+ }
292
+ #nifty_wrapper .visitorListBoxHeader {
293
+ width: 100%;
294
+ display: block;
295
+ overflow: auto;
296
+
297
+ }
298
+ #nifty_wrapper .vcol.visCol {
299
+ width: 20%;
300
+ font-weight:bold;
301
+ }
302
+ #nifty_wrapper .vcol.visStatusCol {
303
+ width: 10%;
304
+ }
305
+ #nifty_wrapper .vcol.visPageCol {
306
+ width: 30%;
307
+ }
308
+ #nifty_wrapper .vcol.visChatStatusCol, .visChatDepCol {
309
+ width: 10%;
310
+ }
311
+ #nifty_wrapper .vcol.visActionCol {
312
+ width: 20%;
313
+ }
314
+
315
+ #nifty_wrapper .visitorListBox .userName {
316
+ font-size: 18px;
317
+ font-weight: 100;
318
+ text-overflow: ellipsis;
319
+ }
320
+
321
+ #nifty_wrapper #chat_area {
322
+ display: block;
323
+ height: 100%;
324
+ background-color: #fff;
325
+ padding: 0 !important;
326
+ position: relative;
327
+ overflow: hidden;
328
+ }
329
+
330
+ #nifty_wrapper #info_area {
331
+ display:block;
332
+ width:20%;
333
+ float:left;
334
+ height:100%;
335
+ overflow:auto;
336
+ background-color:#fff;
337
+ border-right:1px solid #ccc;
338
+ }
339
+ #nifty_wrapper .infoAreaHeader {
340
+ padding:20px;
341
+ color:#FFF;
342
+ font-size:1.2em;
343
+ display:block;
344
+ height:60px;
345
+ background-color:#333;
346
+ }
347
+ #nifty_wrapper .infoArea {
348
+
349
+ }
350
+ #nifty_wrapper .infoArea h2 {
351
+ font-size: 24px;
352
+ font-weight: 100;
353
+ padding-left:10px;
354
+ }
355
+
356
+ #nifty_wrapper .infoBox {
357
+ padding:20px;
358
+ }
359
+
360
+ #nifty_wrapper span#active_count {
361
+ font-size: 2em;
362
+ }
363
+
364
+
365
+ /* Pages */
366
+
367
+ #nifty_wrapper .pages {
368
+ height: 100%;
369
+ margin: 0;
370
+ padding: 0;
371
+ width: 100%;
372
+ }
373
+
374
+ #nifty_wrapper .page {
375
+ height: 100%;
376
+ position: absolute;
377
+ width: 100%;
378
+ }
379
+
380
+ /* Chat page */
381
+
382
+ #nifty_wrapper .chat.page {
383
+ display: block;
384
+ width: 400px;
385
+ position: absolute;
386
+ right: 0;
387
+ border-left: 1px solid #ccc;
388
+ }
389
+
390
+ /* Font */
391
+
392
+ #nifty_wrapper .messages {
393
+ font-size: 100%;
394
+ }
395
+
396
+ #nifty_wrapper .inputMessage {
397
+ font-size: 100%;
398
+ }
399
+
400
+ #nifty_wrapper .log {
401
+ color: gray;
402
+ font-size: 70%;
403
+ margin: 5px;
404
+ text-align: center;
405
+ }
406
+
407
+ /* Messages */
408
+
409
+ #nifty_wrapper .chatArea {
410
+ height: 100%;
411
+ padding-bottom: 60px;
412
+ }
413
+
414
+ #nifty_wrapper .messages {
415
+ /*height: 100%;*/
416
+ margin: 0;
417
+ overflow-y: scroll;
418
+ padding: 10px 20px 10px 20px;
419
+ }
420
+
421
+ #nifty_wrapper ul.messages {
422
+ display: block;
423
+ position: absolute;
424
+ top: 121px;
425
+ bottom: 60px;
426
+ left: 0;
427
+ right: 0;
428
+ }
429
+
430
+ #nifty_wrapper .message.typing .messageBody {
431
+ display: none;
432
+ }
433
+
434
+ #nifty_wrapper .message.typing {
435
+ position: absolute;
436
+ bottom: 0;
437
+ left: 0;
438
+ right: 0;
439
+ font-size: 13px;
440
+ padding-left:10px;
441
+ padding-right:10px;
442
+ max-width: 90%;
443
+ }
444
+
445
+ .message.typing:before{
446
+ content: '" ';
447
+ }
448
+
449
+ .message.typing:after{
450
+ content: ' "';
451
+ }
452
+
453
+ #nifty_wrapper .message.typing .username {
454
+ font-size: 12px;
455
+ padding-right: 2px;
456
+ }
457
+
458
+ .message.typing .username:after{
459
+ content: " - ";
460
+ }
461
+
462
+ .message.typing .timestamp{ display:none; }
463
+
464
+ #nifty_wrapper .username {
465
+ font-weight: 700;
466
+ overflow: hidden;
467
+ padding-right: 15px;
468
+ text-align: right;
469
+ }
470
+
471
+ /* Input */
472
+
473
+ #nifty_wrapper .inputMessage {
474
+ bottom: 0;
475
+ height: 60px;
476
+ left: 0;
477
+ outline: none;
478
+ padding-left: 10px;
479
+ right: 0;
480
+ width: 100%;
481
+ position: absolute;
482
+ border: none;
483
+ border-top: 1px solid #f9f9f9;
484
+ }
485
+
486
+ #nifty_wrapper #typing_preview {
487
+
488
+ font-style:italic;
489
+ }
490
+
491
+ #nifty_wrapper .userList { cursor: pointer; }
492
+ #nifty_wrapper #user_count:hover {
493
+ background: #075077;
494
+ }
495
+ #nifty_wrapper div#user_count {
496
+ cursor: pointer;
497
+ }
498
+
499
+
500
+ .nifty_bg_holder {
501
+ position: absolute;
502
+ display: block;
503
+ color: #fff;
504
+ left: 0;
505
+ height: 100%;
506
+ z-index: 99;
507
+ background-color: #fff;
508
+ right: 0;
509
+ border-top-right-radius: 8px;
510
+ border-bottom-right-radius: 8px;
511
+ }
512
+ .nifty_bg_holder_text {
513
+ width: 300px;
514
+ position: relative;
515
+ display: block;
516
+ left: 0;
517
+ top: 5%;
518
+ color: #000;
519
+ /* width: 100%; */
520
+ text-align: center;
521
+ margin-left: auto;
522
+ margin-right: auto;
523
+ font-size: 2em;
524
+ color: #777;
525
+ line-height:1.4em;
526
+
527
+ }
528
+ #nifty_wrapper .chatInfoArea {
529
+ padding-left: 10px;
530
+ padding-right: 10px;
531
+ height: 121px;
532
+ border-bottom: 2px solid rgba(0,0,0,0.06);
533
+ padding-bottom: 10px;
534
+ padding-top: 21px;
535
+ }
536
+ #nifty_wrapper .chatInfoArea h3 {
537
+ margin-top: 0;
538
+ }
539
+
540
+ #nifty_wrapper .chatArea code {
541
+ /* padding: 2px 4px; */
542
+ color: #d14;
543
+ background-color: #f7f7f9;
544
+ border: 1px solid #e1e1e8;
545
+ white-space: pre-wrap;
546
+ margin-top: 5px;
547
+ line-height: 19px;
548
+ }
549
+
550
+ #nifty_wrapper .chatArea pre {
551
+ display: block;
552
+ padding: 11.5px;
553
+ margin: 0 0 12px;
554
+ font-size: 15px;
555
+ line-height: 24px;
556
+ word-break: break-all;
557
+ word-wrap: break-word;
558
+ white-space: pre;
559
+ white-space: pre-wrap;
560
+ background-color: #f5f5f5;
561
+ border: 1px solid #ccc;
562
+ border: 1px solid rgba(0,0,0,.15);
563
+ -webkit-border-radius: 4px;
564
+ -moz-border-radius: 4px;
565
+ border-radius: 4px;
566
+ color:#333;
567
+ }
568
+
569
+ #nifty_wrapper .chatArea span.messageBody {
570
+ display: block;
571
+ clear: both;
572
+ font-size: 18px
573
+
574
+ }
575
+ #nifty_wrapper .chatArea span.timestamp {
576
+ float: left;
577
+ margin-right: 9px;
578
+ color: #9e9ea6;
579
+ font-size: 14px;
580
+ line-height: 24px;
581
+ }
582
+ #nifty_wrapper .chatArea span.username {
583
+ font-weight: bold;
584
+ display: block;
585
+ float: left;
586
+ font-size: 17px;
587
+ }
588
+
589
+ #nifty_wrapper .chatArea span.nifty-edit-message {
590
+ float: right;
591
+ display: block;
592
+ display: none;
593
+ clear: right;
594
+ margin-left: 9px;
595
+ color: #bdbdbd;
596
+ white-space: nowrap;
597
+ line-height: 1.125rem;
598
+ font-style: italic;
599
+ cursor: pointer;
600
+ font-size: 0.6em;
601
+ }
602
+
603
+ #nifty_wrapper .session-state-label,
604
+ #nifty_wrapper .visChatDepCol .label-default {
605
+ padding: 3px;
606
+ border-radius: 2px;
607
+ }
608
+ #nifty_wrapper .time-state-label {
609
+ font-size: 0.9em;
610
+ padding: 0.1em;
611
+ padding-left: 0.3em;
612
+ padding-right: 0.3em;
613
+ border-radius: 2px;
614
+ font-weight: normal;
615
+ }
616
+
617
+ #nifty_wrapper .nifty_add_media_button {
618
+ width: 60px;
619
+ height: 60px;
620
+ padding: 10px;
621
+ position: absolute;
622
+ bottom: 0;
623
+ right: 0;
624
+ opacity: 0.7;
625
+ cursor: pointer;
626
+ font-size: 20px;
627
+ line-height: 50px;
628
+ text-align: center;
629
+ }
630
+
631
+ #nifty_wrapper .nifty_media_prompt {
632
+ display: none;
633
+ position: absolute;
634
+ max-width: 320px;
635
+ background: #fff;
636
+ z-index: 999;
637
+ padding: 10px;
638
+ margin: 0;
639
+ border: 1px solid #f1f1f1;
640
+ border-radius: 3px;
641
+ right: 22px;
642
+ bottom: 66px;
643
+ box-shadow: 0 1px 10px rgba(0,0,0,.1);
644
+ -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1);
645
+ -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1);
646
+ -o-box-shadow: 0 1px 10px rgba(0,0,0,.1);
647
+ }
648
+
649
+ #nifty_add_media:checked + .nifty_media_prompt{
650
+ display:block;
651
+ }
652
+
653
+ #nifty_add_media{
654
+ display: none;
655
+ }
656
+
657
+
658
+ #nifty_wrapper .nifty_media_prompt li {
659
+ display: inline-block;
660
+ width: 30px;
661
+ height: 30px;
662
+ line-height: 30px;
663
+ text-align: center;
664
+ font-size: 15px;
665
+ color: #919191;
666
+ }
667
+
668
+ #nifty_wrapper .nifty_media_prompt li * {
669
+ cursor:pointer;
670
+ }
671
+
672
+ .nifty_media_prompt li:hover{
673
+ color:#2b97d2;
674
+ }
675
+
676
+ .nifty_admin_chat_prompt {
677
+ width: 40%;
678
+ position: absolute;
679
+ height: 270px;
680
+ margin: auto;
681
+ left: 0;
682
+ right: 0;
683
+ top: 0;
684
+ bottom: 0;
685
+ background: #fff;
686
+ z-index: 999;
687
+ padding: 20px;
688
+ border: 1px solid #e4e4e4;
689
+ border-radius: 3px;
690
+
691
+ box-shadow: 0 1px 1px rgba(0,0,0,.1);
692
+ -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.1);
693
+ -moz-box-shadow: 0 1px 1px rgba(0,0,0,.1);
694
+ -o-box-shadow: 0 1px 1px rgba(0,0,0,.1);
695
+ }
696
+
697
+ .nifty_admin_chat_prompt_title {
698
+ font-size: 18px;
699
+ color: #393939;
700
+ padding-bottom: 10px;
701
+ border-bottom: 1px solid #e4e4e4;
702
+ }
703
+
704
+ .nifty_admin_chat_prompt_message {
705
+ position: absolute;
706
+ top: 70px;
707
+ bottom: 60px;
708
+ display: block;
709
+ font-size: 17px;
710
+ overflow-y: auto;
711
+ right: 24px;
712
+ left: 24px;
713
+ }
714
+
715
+ .nifty_admin_chat_prompt_actions {
716
+ position: absolute;
717
+ bottom: 5px;
718
+ left: 0px;
719
+ right: 0px;
720
+ text-align: center;
721
+ }
722
+
723
+ .nifty_admin_chat_video_box {
724
+ width: 80%;
725
+ position: absolute;
726
+ max-height: 60%;
727
+ margin: auto;
728
+ left: 0;
729
+ right: 0;
730
+ top: 0;
731
+ bottom: 0;
732
+ background: #3e3e3e;
733
+ z-index: 999;
734
+ border: 1px solid #c2c2c2;
735
+ border-radius: 3px;
736
+ }
737
+
738
+ #nifty_admin_chat_video_remote {
739
+ width: 100%;
740
+ max-height: 100%;
741
+ background-color: #4d4d4d;
742
+ position: absolute;
743
+ margin: auto;
744
+ top: 0;
745
+ bottom: 0;
746
+ }
747
+
748
+ #nifty_admin_chat_video_local {
749
+ position: absolute;
750
+ top: 10px;
751
+ right: 10px;
752
+ max-width: 20%;
753
+ border: 2px solid #fff;
754
+ border-radius: 2px;
755
+ background: #4d4d4d;
756
+ }
757
+
758
+ #nifty_admin_chat_video_close {
759
+ background: #676661;
760
+ border: none;
761
+ color: #ffffff;
762
+ width: 23px;
763
+ height: 23px;
764
+ border-radius: 60px;
765
+ font-size: 13px;
766
+ text-align: center;
767
+ position: absolute;
768
+ top: -30px;
769
+ right: 0px;
770
+ }
771
+
772
+ #nifty_admin_chat_video_loading {
773
+ position: absolute;
774
+ background: #ffffff;
775
+ border-radius: 3px;
776
+ width: 30%;
777
+ max-height: 88px;
778
+ margin: auto;
779
+ left: 0;
780
+ right: 0;
781
+ top: 0;
782
+ bottom: 0;
783
+ }
784
+ #nifty_admin_chat_video_loading img {
785
+ max-width: 28px;
786
+ clear: both;
787
+ display: block;
788
+ margin: auto;
789
+ padding-top: 10px;
790
+ padding-bottom: 10px;
791
+ }
792
+
793
+ #nifty_admin_chat_video_loading span {
794
+ padding: 8px;
795
+ display: block;
796
+ text-align: center;
797
+ text-transform: uppercase;
798
+ color: #4d4d4d;
799
+ }
800
+
801
+ #nifty_wrapper .vcol.visActionCol a {
802
+ margin-right: 10px;
803
+ }
804
+ #nifty_wrapper .agents_involved {
805
+ display: block;
806
+ margin-bottom: 5px;
807
+ height: 5px;
808
+ position: absolute;
809
+ right: 60px;
810
+ top: 14px;
811
+ }
812
+ #nifty_wrapper .agent_involved {
813
+ float:left;
814
+ margin-right:5px;
815
+ }
816
+
817
+ .nifty_admin_overlay{
818
+ position: absolute;
819
+ left: 0;
820
+ right: 0;
821
+ top: 0;
822
+ bottom: 0;
823
+ background: rgba(51, 51, 51, 0.37);
824
+ z-index: 999;
825
+ }
826
+ #nifty_wrapper .active_agent_in_list {
827
+ margin-left: 20px;
828
+ float: left;
829
+ border: 1px solid #ccc;
830
+ padding: 3px;
831
+ border-radius: 5px;
832
+ }
833
+ #nifty_wrapper span.minChat {
834
+ width: 15px;
835
+ display: block;
836
+ text-align: center;
837
+ font-size: 18px;
838
+ margin-top: -6px;
839
+ margin-left: 9px;
840
+ font-weight: bold;
841
+ color: #ccc;
842
+ cursor:pointer;
843
+ }
844
+ #nifty_wrapper .chatArea.wdt-emoji-picker-parent {
845
+ position: initial !important;
846
+ }
847
+
848
+ #nifty_wrapper .wdt-emoji-picker {
849
+ right: 47px !important;
850
+ bottom: 25px !important;
851
+ font-size: 18px;
852
+ color: #939393;
853
+ }
854
+
855
+ #nifty_wrapper .wdt-emoji-popup.open.ready {
856
+ transform: translate(-50px, 25px);
857
+ -webkit-transform: translate(-50px, 25px);
858
+ -moz-transform: translate(-50px, 25px);
859
+ -o-transform: translate(-50px, 25px);
860
+ }
861
+ #nifty_wrapper .wdt-credit {
862
+ z-index: 999999;
863
+ position: absolute;
864
+ right: 5px;
865
+ bottom: 5px;
866
+ font-size: 9px;
867
+ color: #cecece;
868
+ }
869
+
870
+ #nifty_wrapper .infoArea h2 {
871
+ height: 51px;
872
+ line-height: 39px;
873
+ }
874
+
875
+ #nifty_wrapper #wdt-emoji-menu-header, #wdt-emoji-footer {
876
+ background: #f9f9f9;
877
+ }
878
+
879
+ #nifty_wrapper .wdt-emoji-popup.ready.open {
880
+ box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
881
+ -webkit-box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
882
+ -moz-box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
883
+ -o-box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
884
+ }
885
+
886
+ #nifty_wrapper #chat_drag_zone {
887
+ background: rgba(51, 51, 51, 0.35);
888
+ position: absolute;
889
+ top: 0;
890
+ left: 0;
891
+ right: 0;
892
+ bottom: 0;
893
+ z-index: 999;
894
+ }
895
+
896
+ #nifty_wrapper #chat_drag_zone_inner {
897
+ position: absolute;
898
+ top: 10%;
899
+ left: 5%;
900
+ right: 5%;
901
+ bottom: 10%;
902
+ border: 3px dashed #ffffff;
903
+ }
904
+
905
+ #nifty_wrapper #chat_drag_zone_inner span {
906
+ color: #fff;
907
+ position: absolute;
908
+ width: 100%;
909
+ height: 100px;
910
+ text-align: center;
911
+ font-size: 55px;
912
+ margin-top: auto;
913
+ margin-bottom: auto;
914
+ top: 50%;
915
+ transform: translate(0, -50%);
916
+ }
917
+
918
+ #nifty_wrapper .userItemLastMessage img {
919
+ max-height: 20px;
920
+ }
921
+
922
+ #nifty_wrapper .userItemLastMessage pre {
923
+ font-size: 9px;
924
+ padding: 2px;
925
+ display: inline-block;
926
+ margin: 0;
927
+ }
928
+
929
+ #nifty_wrapper .userItemLastMessage .emoji-outer {
930
+ margin-top: 1px;
931
+ }
932
+
933
+ #nifty_wrapper .eventbox {
934
+ position: absolute;
935
+ right: 5px;
936
+ top: 80px;
937
+ }
938
+ #nifty_wrapper .eventbox:hover {
939
+ background:#fafafa;
940
+ }
941
+
942
+ #nifty_wrapper .eventbox-close {
943
+ font-size: 1pc;
944
+ position: absolute;
945
+ top: 8px;
946
+ right: 6px;
947
+ height: 30px;
948
+ font-size: 20px;
949
+ line-height: 30px;
950
+ width: 30px;
951
+ display: inline-block;
952
+ -webkit-font-smoothing: antialiased;
953
+ font-style: normal;
954
+ font-weight: 400;
955
+ text-align: center;
956
+ text-decoration: none;
957
+ color: #999;
958
+ }
959
+
960
+
961
+ #nifty_wrapper .eventbox-wrapper {
962
+ display:none;
963
+ box-shadow: 0 0 6px rgba(0,0,0,.4);
964
+ -webkit-transform: translateX(0);
965
+ transform: translateX(0);
966
+
967
+ background-color: #333;
968
+ color:#FAFAFA;
969
+ -webkit-transition-property: -webkit-transform,width;
970
+ transition-property: transform,width;
971
+ -webkit-transition-duration: .1s;
972
+ transition-duration: .1s;
973
+ -webkit-transition-timing-function: ease-in;
974
+ transition-timing-function: ease-in;
975
+ -webkit-transform: translateX(339px);
976
+ transform: translateX(339px);
977
+ width: 339px;
978
+ z-index: 5;
979
+
980
+ position: absolute;
981
+ top: 0;
982
+ right: 339px;
983
+ bottom: 0;
984
+ padding:10px;
985
+
986
+ overflow-y: scroll;
987
+
988
+
989
+ }
990
+
991
+ #nifty_wrapper .eventbox-wrapper h3 {
992
+ text-align: center;
993
+ }
994
+
995
+ #nifty_wrapper .events-ul li {
996
+ border-bottom: 1px solid #E2E4E6;
997
+ margin-left: 38px;
998
+ min-height: 30px;
999
+ padding: 10px 0;
1000
+ position: relative;
1001
+ }
1002
+ #nifty_wrapper .event-icon {
1003
+ position: absolute;
1004
+ height: 18px;
1005
+ left: -26px;
1006
+ top: 9pt;
1007
+ width: 18px;
1008
+ }
1009
+ #nifty_wrapper .event-desc {
1010
+ display: inline;
1011
+ margin: 0 6px 0 0;
1012
+ word-wrap: break-word;
1013
+ }
1014
+ #nifty_wrapper .event-meta {
1015
+ display: inline-block;
1016
+ font-size: 9pt;
1017
+ margin: 0;
1018
+ min-width: 110px;
1019
+ color:#8c8c8c;
1020
+ }
1021
+
1022
+ #nifty_wrapper #quick_response_drawer_handle {
1023
+ position: absolute;
1024
+ bottom: 70px;
1025
+ width: 35px;
1026
+ right: 30px;
1027
+ background: #ffffff;
1028
+ text-align: center;
1029
+ color: #7d7d7d;
1030
+ height: 35px;
1031
+ font-size: 17px;
1032
+ line-height: 34px;
1033
+ border-radius: 35px;
1034
+ cursor: pointer;
1035
+ box-shadow: 0 0 8px 1px rgba(0,0,0,0.1);
1036
+ }
1037
+
1038
+ #quick_response_drawer_container {
1039
+ position: absolute;
1040
+ bottom: 89px;
1041
+ background: #fff;
1042
+ padding: 10px;
1043
+ max-height: 180px;
1044
+ overflow-y: auto;
1045
+ left: 10%;
1046
+ right: 10%;
1047
+ border-radius: 2px;
1048
+ box-shadow: 0px 0px 10px 1px rgba(0,0,0,0.1);
1049
+ }
1050
+
1051
+ .quick_response_item {
1052
+ margin-top: 5px;
1053
+ margin-bottom: 5px;
1054
+ cursor: pointer;
1055
+ border-bottom: 1px solid #f5f5f5;
1056
+ padding-bottom: 2px;
1057
+ }
1058
+
1059
+ .quick_response_item:hover {
1060
+ color: #2b97d2;
1061
+ }
1062
+
1063
+ #quick_response_drawer_container hr {
1064
+ margin-top: 5px;
1065
+ margin-bottom: 5px;
1066
+ }
1067
+
1068
+ #nifty_wrapper .bleeper_in_chat_card {
1069
+ background: #fff;
1070
+ box-shadow: 0 0 10px 1px rgba(0,0,0,0.05);
1071
+ display: inline-block;
1072
+ padding-left: 20px;
1073
+ padding-right: 20px;
1074
+ padding-top: 5px;
1075
+ padding-bottom: 5px;
1076
+ }
1077
+
1078
+ #nifty_wrapper .bleeper_in_chat_card i {
1079
+ color: #9e9e9e;
1080
+ padding: 13px;
1081
+ font-size: 12px;
1082
+ border: 1px #dadada solid;
1083
+ border-radius: 3px;
1084
+ margin-right: 10px;
1085
+ }
1086
+
1087
+ #nifty_wrapper .bleeper_dynamic_link small strong {
1088
+ text-transform: capitalize;
1089
+ }
1090
+
1091
+ #nifty_wrapper .userList .department_assigned {
1092
+ position:absolute;
1093
+ font-size:10px;
1094
+ right:3px;
1095
+ bottom:7px;
1096
+ background:#e4e4e4;
1097
+ padding-left:5px;
1098
+ padding-right:5px;
1099
+ border-radius:10px;
1100
+ }
1101
+ #nifty_wrapper span.bleeper_close_item {
1102
+ position: absolute;
1103
+ right: 3px;
1104
+ top: 3px;
1105
+ color: #ccc;
1106
+ cursor: pointer;
1107
+ border: 1px solid #ccc;
1108
+ border-radius: 30px;
1109
+ width: 14px;
1110
+ height: 14px;
1111
+ line-height: 11px;
1112
+ font-size: 10px;
1113
+ text-indent: 3px;
1114
+ }
1115
+ #nifty_wrapper span.bleeper_close_item:hover {
1116
+ background-color: #ccc;
1117
+ color: #fff;
1118
+ border: 1px solid #bdbdbc;
1119
+ }
1120
+ #nifty_wrapper .bleeper_close_item {
1121
+ display:none;
1122
+ }
1123
+
1124
+ #nifty_wrapper .user_header_wrapper_img {
1125
+ display: block;
1126
+ height: 100%;
1127
+ min-width: 60px;
1128
+ max-width: 60px;
1129
+ float: left;
1130
+ }
1131
+
1132
+ #nifty_wrapper .user_gravatar img {
1133
+ width: 50px;
1134
+ border-radius: 10px;
1135
+ }
1136
+
1137
+ #nifty_wrapper .bleeper_userlist_gravatar {
1138
+ border-radius: 24px;
1139
+ position: absolute;
1140
+ top:13px;
1141
+ }
1142
+
1143
+ #nifty_wrapper .user_header_wrapper_info {
1144
+ float: left;
1145
+ width: 70%;
1146
+ display: block;
1147
+ }
1148
+
1149
+ @media screen and (max-width: 1300px){
1150
+ #nifty_wrapper #user_list{
1151
+ width:35%;
1152
+ }
1153
+
1154
+ #nifty_wrapper #chat_area{
1155
+ width:75%;
1156
+ }
1157
+
1158
+ .nifty_bg_holder{
1159
+ left: 35% !important;
1160
+ }
1161
+
1162
+ .user_header_wrapper_info {
1163
+ width: 60% !important;
1164
+ }
1165
+ }
1166
+
1167
+ @media screen and (max-width: 782px){
1168
+ #toolbar-item-fullscreen-wp{
1169
+ display: none;
1170
+ }
1171
+ }
1172
+
1173
+ #user_list_mobile_control{
1174
+ display: none;
1175
+ }
1176
+
1177
+ #toolbar-item-user_list{
1178
+ display: none;
1179
+ }
1180
+
1181
+ @media screen and (max-width: 700px){
1182
+ #bleeper_offline_image{
1183
+ display:none !important;
1184
+ }
1185
+
1186
+ #toolbar-item-user_list{
1187
+ display: block;
1188
+ }
1189
+
1190
+ #nifty_wrapper #user_list{
1191
+ width:100%;
1192
+ }
1193
+ .nifty_bg_holder {
1194
+ left: 0% !important;
1195
+ top: 125px;
1196
+ bottom: 154px;
1197
+ height: initial !important;
1198
+ overflow-y: auto;
1199
+ }
1200
+
1201
+ .nifty_bg_holder_text{
1202
+ top:2%;
1203
+ font-size: 24px;
1204
+ }
1205
+
1206
+ .bleeper_tips_hints {
1207
+ top: 2% !important;
1208
+ margin-top: 22px !important;
1209
+ }
1210
+
1211
+ #nifty_wrapper #chat_area{
1212
+ width:100%;
1213
+ display: none;
1214
+ }
1215
+
1216
+ #nifty_wrapper #user_list_mobile_control[type=checkbox]:checked ~ #chat_area{
1217
+ display: block;
1218
+ }
1219
+
1220
+ #nifty_wrapper #user_list_mobile_control[type=checkbox]:checked ~ #user_list{
1221
+ display: none;
1222
+ }
1223
+
1224
+ .visStatusCol{
1225
+ display:none;
1226
+ }
1227
+
1228
+ #nifty_wrapper .vcol.visPageCol {
1229
+ width: 20%;
1230
+ }
1231
+ #nifty_wrapper .visChatStatusCol, .visChatDepCol {
1232
+ width: 15% !important;
1233
+ }
1234
+ }
1235
+
1236
+ @media screen and (max-width: 600px){
1237
+ #toolbar-item-user_list {
1238
+ margin-top:40px;
1239
+ }
1240
+ }
1241
+
1242
+ @media screen and (max-width: 550px){
1243
+ .user_header_wrapper_info {
1244
+ width: 50% !important;
1245
+ }
1246
+ #nifty_wrapper .visChatDepCol {
1247
+ display:none;
1248
+ }
1249
+ #nifty_wrapper .visPageCol {
1250
+ width: 30% !important;
1251
+ }
1252
+
1253
+ #nifty_wrapper .visChatStatusCol {
1254
+ width: 20% !important;
1255
+ }
1256
+
1257
+ .nifty_bg_holder_text{
1258
+ font-size: 18px;
1259
+ }
1260
+
1261
+ #nifty_wrapper .bleeper_tips_hints {
1262
+ padding-left: 10px;
1263
+ padding-right: 10px;
1264
+ }
1265
+
1266
+ #nifty_wrapper #agent_list {
1267
+ max-height: 60px !important;
1268
+ }
1269
+
1270
+ #nifty_wrapper .bleeper_tips_hints {
1271
+ padding-left: 10px;
1272
+ padding-right: 10px;
1273
+ }
1274
+
1275
+ #nifty_wrapper #user_count {
1276
+ padding-top: 10px;
1277
+ padding-bottom: 10px;
1278
+ }
1279
+
1280
+ .nifty_bg_holder {
1281
+ bottom: 60px !important;
1282
+ top: 75px !important;
1283
+ }
1284
+
1285
+ #nifty_wrapper #agent_list {
1286
+ font-size: 12px;
1287
+ }
1288
+
1289
+ #nifty_wrapper #agent_list h4 {
1290
+ margin-top: 1px;
1291
+ margin-bottom: 1px;
1292
+ font-size: 14px;
1293
+ }
1294
+
1295
+ #nifty_wrapper .online_agent {
1296
+ margin-bottom: 0;
1297
+ padding-top: 0 !important;
1298
+ padding-bottom: 0 !important;
1299
+ }
1300
+
1301
+ .userListBox_Wrapper{
1302
+ top:75px !important;
1303
+ bottom:61px !important;
1304
+ }
1305
+
1306
+ }
1307
+
1308
+ @media screen and (max-height: 490px){
1309
+ #nifty_wrapper #agent_list {
1310
+ max-height: 60px !important;
1311
+ }
1312
+
1313
+ #nifty_wrapper .bleeper_tips_hints {
1314
+ padding-left: 10px;
1315
+ padding-right: 10px;
1316
+ }
1317
+
1318
+ #nifty_wrapper #user_count {
1319
+ padding-top: 10px;
1320
+ padding-bottom: 10px;
1321
+ }
1322
+
1323
+ .nifty_bg_holder {
1324
+ bottom: 60px !important;
1325
+ top: 0px !important;
1326
+ }
1327
+
1328
+ .nifty_bg_holder_text {
1329
+ font-size: 17px;
1330
+ }
1331
+
1332
+ #nifty_wrapper .bleeper_tips_hints {
1333
+ display: none !important;
1334
+ }
1335
+
1336
+ #nifty_wrapper #agent_list {
1337
+ font-size: 12px;
1338
+ }
1339
+
1340
+ #nifty_wrapper #agent_list h4 {
1341
+ margin-top: 1px;
1342
+ margin-bottom: 1px;
1343
+ font-size: 14px;
1344
+ }
1345
+
1346
+ #nifty_wrapper .online_agent {
1347
+ margin-bottom: 0;
1348
+ padding-top: 0 !important;
1349
+ padding-bottom: 0 !important;
1350
+ }
1351
+
1352
+ .userListBox_Wrapper{
1353
+ top:75px !important;
1354
+ bottom:61px !important;
1355
+ }
1356
+
1357
+ }
1358
+
1359
+ #nifty_wrapper .visitorListBox {
1360
+ overflow-y: auto;
1361
+ top: 120px;
1362
+ bottom: 0;
1363
+ position: absolute;
1364
+ right: 0;
1365
+ left: 0;
1366
+ }
1367
+
1368
+ #nifty_wrapper .visActionCol a {
1369
+ color:#FFF !important;
1370
+ }
1371
+ #nifty_wrapper .visActionCol a:visited {
1372
+ color:#FFF !important;
1373
+ }
1374
+ #nifty_wrapper .visActionCol a:hover {
1375
+ color:#FFF !important;
1376
+ }
1377
+ #nifty_wrapper .visActionCol a:active {
1378
+ color:#FFF !important;
1379
+ }
1380
+ #nifty_wrapper #inputMessage {
1381
+ padding-right: 75px;
1382
+ }
1383
+ #nifty_wrapper .userList h3 em {
1384
+ display: none;
1385
+ }
1386
+ #nifty_wrapper .userList .userItemLastMessage { display:none !important; }
1387
+
1388
+ #nifty_wrapper .bleeper_join_chat_div {
1389
+ display:none;
1390
+ bottom: 0;
1391
+ height: 60px;
1392
+ left: 0;
1393
+ outline: none;
1394
+ padding-left: 10px;
1395
+ right: 0;
1396
+ width: 100%;
1397
+ position: absolute;
1398
+ border: none;
1399
+ border-top: 1px solid #f9f9f9;
1400
+ z-index: 999999999;
1401
+ background-color: #efefef;
1402
+ background: #efefef !important;
1403
+ }
1404
+ #nifty_wrapper .bleeper_join_chat_div button {
1405
+ position:absolute;
1406
+ left:50%;
1407
+ top:15px;
1408
+
1409
+ }
1410
+
1411
+ #nifty_wrapper .dropdown-toggle{
1412
+ padding-top:2px !important;
1413
+ padding-bottom: 2px !important;
1414
+ }
1415
+
1416
+ #nifty_wrapper .dropdown-menu{
1417
+ box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1418
+ -webkit-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1419
+ -moz-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1420
+ -o-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1421
+ }
1422
+
1423
+ #nifty_wrapper .userList .agent_involved:hover {
1424
+ margin-top: -6px;
1425
+ margin-left: 5px;
1426
+ }
1427
+
1428
+ #nifty_wrapper .filter-active{
1429
+ border-left: 3px #2b97d2 solid !important;
1430
+ }
1431
+
1432
+ @media screen and (max-height: 490px){
1433
+ #choose_online{
1434
+ top: 14px !important;
1435
+ }
1436
+ }
1437
+
1438
+ @media screen and (max-width: 550px){
1439
+ #choose_online{
1440
+ top: 14px !important;
1441
+ }
1442
+ }
1443
+
1444
+ @media screen and (max-height:550px){
1445
+ #bleeper_offline_image {
1446
+ max-height: 130px;
1447
+ display:block;
1448
+ margin-left:auto;
1449
+ margin-right:auto
1450
+ }
1451
+ .nifty_bg_holder_text{
1452
+ font-size:1.4em;
1453
+ }
1454
+ .bleeper_tips_hints{
1455
+ top:8% !important;
1456
+ }
1457
+ }
1458
+
1459
+ .editing_hints {
1460
+ font-size:9px;
1461
+ bottom: 0;
1462
+ outline: none;
1463
+ padding-right: 10px;
1464
+ right: 0;
1465
+ position: absolute;
1466
+ border: none;
1467
+ opacity: 0.5;
1468
+ }
1469
+
1470
+ .editing_hints code{
1471
+ color:#333 !important;
1472
+ padding:0 !important;
1473
+ }
1474
+
1475
+ span.bleeper-edit-message {
1476
+ font-size: 12px;
1477
+ float: right;
1478
+ }
1479
+
1480
+ #nifty_wrapper {
1481
+ width: 100% !important;
1482
+ position: relative !important;
1483
+ }
1484
+
1485
+ #wplc_settings .form-table td {
1486
+ font-size: 13px !important;
1487
+ line-height: 1.5em !important;
1488
+ }
1489
+
1490
+ /**
1491
+ * GIF image style within a message
1492
+ */
1493
+ .messageBody .gif-img {
1494
+ max-width: 100%;
1495
+ margin-bottom: -5px;
1496
+ }
1497
+
1498
+ .wplc-gif-integration-search-box .gif-sb-loader {
1499
+ display:block;
1500
+ position: absolute;
1501
+ left:0px;
1502
+ top:0px;
1503
+ width: 100%;
1504
+ height: 100%;
1505
+ z-index: 1;
1506
+ background-color:#ffffff;
1507
+ }
1508
+ .wplc-gif-integration-search-box .gif-sb-loader.hidden {
1509
+ display: none;
1510
+ z-index: 0;
1511
+ }
1512
+ .wplc-gif-integration-search-box .gif-sb-loader img {
1513
+ display: block;
1514
+ position: relative;
1515
+ top: calc(50% - 25px);
1516
+ width: 50px;
1517
+ height: auto;
1518
+ margin: auto;
1519
+ }
1520
+
1521
+ .wplc-gif-integration-search-box.show,
1522
+ .wplc-gif-integration-search-box {
1523
+ display: block;
1524
+ position: absolute;
1525
+ bottom: 66px;
1526
+ width: 70%;
1527
+ margin-left:15%;
1528
+ height: 300px;
1529
+ background: #fafafa;
1530
+ z-index: 100000000;
1531
+ box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
1532
+ transition: all 0.3s cubic-bezier(.25,.8,.25,1);
1533
+ }
1534
+ .wplc-gif-integration-search-box.show {
1535
+ animation-name: present-gif-search-box;
1536
+ animation-duration: 500ms;
1537
+ animation-timing-function: ease-in-out;
1538
+ animation-fill-mode: forwards;
1539
+
1540
+ -webkit-animation-name: present-gif-search-box;
1541
+ -webkit-animation-duration: 500ms;
1542
+ -webkit-animation-timing-function: ease-in-out;
1543
+ -webkit-animation-fill-mode: forwards;
1544
+
1545
+ -moz-animation-name: present-gif-search-box;
1546
+ -moz-animation-duration: 500ms;
1547
+ -moz-animation-timing-function: ease-in-out;
1548
+ -moz-animation-fill-mode: forwards;
1549
+
1550
+ -ms-animation-name: present-gif-search-box;
1551
+ -ms-animation-duration: 500ms;
1552
+ -ms-animation-timing-function: ease-in-out;
1553
+ -ms-animation-fill-mode: forwards;
1554
+ }
1555
+ .wplc-gif-integration-search-box {
1556
+ animation-name: dismiss-gif-search-box;
1557
+ animation-duration: 500ms;
1558
+ animation-timing-function: ease-in-out;
1559
+ animation-fill-mode: forwards;
1560
+
1561
+ -webkit-animation-name: dismiss-gif-search-box;
1562
+ -webkit-animation-duration: 500ms;
1563
+ -webkit-animation-timing-function: ease-in-out;
1564
+ -webkit-animation-fill-mode: forwards;
1565
+
1566
+ -moz-animation-name: dismiss-gif-search-box;
1567
+ -moz-animation-duration: 500ms;
1568
+ -moz-animation-timing-function: ease-in-out;
1569
+ -moz-animation-fill-mode: forwards;
1570
+
1571
+ -ms-animation-name: dismiss-gif-search-box;
1572
+ -ms-animation-duration: 500ms;
1573
+ -ms-animation-timing-function: ease-in-out;
1574
+ -ms-animation-fill-mode: forwards;
1575
+ }
1576
+ .wplc-gif-integration-search-box.hidden {
1577
+ display: none;
1578
+ }
1579
+
1580
+ @keyframes present-gif-search-box {
1581
+ 0% {
1582
+ left: 5000px;
1583
+ }
1584
+ 100% {
1585
+ left: 0px;
1586
+ }
1587
+ }
1588
+ @-moz-keyframes present-gif-search-box {
1589
+ 0% {
1590
+ left: 5000px;
1591
+ }
1592
+ 100% {
1593
+ left: 0px;
1594
+ }
1595
+ }
1596
+ @-webkit-keyframes present-gif-search-box {
1597
+ 0% {
1598
+ left: 5000px;
1599
+ }
1600
+ 100% {
1601
+ left: 0px;
1602
+ }
1603
+ }
1604
+
1605
+ @keyframes dismiss-gif-search-box {
1606
+ 0% {
1607
+ left: 0px;
1608
+ }
1609
+ 100% {
1610
+ left: 5000px;
1611
+ }
1612
+ }
1613
+ @-moz-keyframes dismiss-gif-search-box {
1614
+ 0% {
1615
+ left: 0px;
1616
+ }
1617
+ 100% {
1618
+ left: 5000px;
1619
+ }
1620
+ }
1621
+ @-webkit-keyframes dismiss-gif-search-box {
1622
+ 0% {
1623
+ left: 0px;
1624
+ }
1625
+ 100% {
1626
+ left: 5000px;
1627
+ }
1628
+ }
1629
+
1630
+ @media(max-width:767px) {
1631
+
1632
+ .wplc-gif-integration-search-box.show,
1633
+ .wplc-gif-integration-search-box {
1634
+ bottom: 75px;
1635
+ }
1636
+
1637
+ }
1638
+
1639
+ .wplc-gif-integration-search-box .gif-sb-header,
1640
+ .wplc-gif-integration-search-box .gif-sb-body,
1641
+ .wplc-gif-integration-search-box .gif-sb-footer {
1642
+ display: block;
1643
+ position: relative;
1644
+ left: 0px;
1645
+ top: 0px;
1646
+ width: 100%;
1647
+ height: auto;
1648
+ padding: 10px;
1649
+ padding-top: 5px;
1650
+ padding-bottom: 5px;
1651
+ }
1652
+
1653
+ .wplc-gif-integration-search-box .gif-sb-header {
1654
+ min-height: 10%;
1655
+ background-color:#ffffff;
1656
+ border: 1px solid #e6e6e6;
1657
+ }
1658
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-search-term,
1659
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1660
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close {
1661
+ display: inline-block;
1662
+ position: relative;
1663
+ left: 0px;
1664
+ margin: 0px;
1665
+ border: 1px solid #f0f0f0 !important;
1666
+ border-right: none;
1667
+ }
1668
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search i,
1669
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close i,
1670
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover i,
1671
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover i {
1672
+ display: block;
1673
+ position: relative;
1674
+ left: 0px;
1675
+ font-style: initial;
1676
+ }
1677
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1678
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close,
1679
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover,
1680
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1681
+ text-decoration: none !important;
1682
+ }
1683
+
1684
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-search-term {
1685
+ top: -1px;
1686
+ width: 80%;
1687
+ height: 38px;
1688
+ margin-bottom: 0px !important;
1689
+ padding-left: 10px !important;
1690
+ padding-right: 10px !important;
1691
+ }
1692
+
1693
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1694
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover {
1695
+ top: 0px;
1696
+ width: 10%;
1697
+ text-align:center;
1698
+ height: 40px;
1699
+
1700
+ padding-top: 6px;
1701
+ border-radius: 3px;
1702
+ color: #f0f0f0 !important;
1703
+ }
1704
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search {
1705
+ background-color: #eb8532;
1706
+ }
1707
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover {
1708
+ background-color: #cf6813;
1709
+ }
1710
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search i,
1711
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover i {
1712
+ top:0px;
1713
+ left:-1px;
1714
+ font-weight: 600;
1715
+ }
1716
+
1717
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close,
1718
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1719
+ top: 4px;
1720
+ left: 1px;
1721
+ width: 10%;
1722
+ height: 40px;
1723
+ text-align:center;
1724
+ padding-top: 10px;
1725
+ border-radius: 3px;
1726
+ }
1727
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close {
1728
+ background-color: #fafafa;
1729
+ color: #999999 !important;
1730
+ }
1731
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1732
+ background-color: #ffffff;
1733
+ color: #333333 !important;
1734
+ }
1735
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close i,
1736
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover i {
1737
+ top: -3px;
1738
+ font-weight: 500;
1739
+ }
1740
+
1741
+ .wplc-gif-integration-search-box .gif-sb-body {
1742
+ min-height: 65%;
1743
+ max-height: 195px;
1744
+ background-color: #f0f0f0;
1745
+ border: 1px solid #eaeaea;
1746
+ overflow: auto;
1747
+ }
1748
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img,
1749
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img:hover,
1750
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img.selected-gif {
1751
+ display:inline-block;
1752
+ position:relative;
1753
+ left:0px;
1754
+ top:0px;
1755
+ min-height:70px;
1756
+ min-height:70px;
1757
+ width: auto;
1758
+ max-width: 100px;
1759
+ margin-left: 2px;
1760
+ margin-right: 2px;
1761
+ margin-bottom: 1px;
1762
+ }
1763
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1764
+ opacity:0.7;
1765
+ }
1766
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img:hover {
1767
+ opacity:1;
1768
+ }
1769
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img.selected-gif {
1770
+ min-height:100px;
1771
+ opacity:1;
1772
+ }
1773
+
1774
+ @media(max-width:767px) {
1775
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1776
+ width:50%;
1777
+ }
1778
+ }
1779
+
1780
+ @media(max-width:900px) {
1781
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1782
+ width:33%;
1783
+ }
1784
+ }
1785
+
1786
+ @media(max-width:1200px) {
1787
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1788
+ width:20%;
1789
+ }
1790
+ }
1791
+
1792
+ .wplc-gif-integration-search-box .gif-sb-footer {
1793
+ min-height: 10%;
1794
+ background-color: #fafafa;
1795
+ border: 1px solid #eaeaea;
1796
+ font-size: 0.9em;
1797
+ color: #777777;
1798
+ }
1799
+
1800
+ #chat_area .messageBody .gif-img {
1801
+ max-width: 100%;
1802
+ margin-bottom: 0px;
1803
+ }
1804
+
1805
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-search-term {
1806
+ top:1px;
1807
+ }
1808
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1809
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover {
1810
+
1811
+ padding-top: 9px;
1812
+ }
1813
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close,
1814
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1815
+ top: 2px;
1816
+ height: 38px;
1817
+ }
1818
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close i,
1819
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover i {
1820
+ top: 0px;
1821
+ }
1822
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search i,
1823
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover i {
1824
+ top: 1px;
1825
+ }
1826
+
1827
+ #chat_area .wplc-gif-integration-search-box .gif-sb-body {
1828
+ min-height: 73%;
1829
+ }
css/chat_dashboard/admin_style_modern.css ADDED
@@ -0,0 +1,2723 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: "Sansation Regular";
3
+ src: url("https://bleeper.io/app/assets/fonts/Sansation_Regular.ttf") format("truetype");
4
+ }
5
+
6
+ @font-face {
7
+ font-family: "Sansation Bold";
8
+ src: url("https://bleeper.io/app/assets/fonts/Sansation_Bold.ttf") format("truetype");
9
+ }
10
+
11
+ #nifty_wrapper {
12
+ padding: 0 !important;
13
+ border-top-right-radius: 0;
14
+ border-bottom-left-radius: 80px;
15
+ border-top-left-radius: 0;
16
+ border-bottom-right-radius: 8px;
17
+ border-bottom: 1px #e3e4e4 solid;
18
+ border-left: 1px solid #e3e4e4;
19
+ border-right: 1px solid #e3e4e4;
20
+ overflow: hidden;
21
+ box-shadow: 0 0 40px 1px rgba(0,0,0,.07);
22
+ }
23
+
24
+ #nifty_wrapper {
25
+ position: relative !important;
26
+ width:100% !important;
27
+ height:100%;
28
+ display:block;
29
+ overflow:auto;
30
+ background-color:#FFF;
31
+
32
+ }
33
+
34
+ #nifty_wrapper {
35
+ height: inherit;
36
+ top: 0;
37
+ bottom: 0;
38
+ position: absolute;
39
+
40
+ font-family: "Sansation Regular"
41
+ }
42
+ #nifty_wrapper #nifty_inner_wrapper {
43
+ width:100%;
44
+ height:100%;
45
+ display:block;
46
+
47
+ }
48
+ #nifty_wrapper #user_list {
49
+ width:25%;
50
+ display:block;
51
+ height:100%;
52
+ float:left;
53
+ background-color:#fff;
54
+ border-right: #e3e4e4 1px solid;
55
+ overflow:auto;
56
+ padding:0 !important;
57
+ }
58
+ #nifty_wrapper #user_count {
59
+ height: 80px;
60
+ border-bottom:1px solid #ccc;
61
+ background: #f2f2f2;
62
+ color: #5a5a5c;
63
+ line-height: 80px;
64
+ border-bottom-width: 1px;
65
+ border-bottom-color: #e3e4e4;
66
+ transition: all 0.3s ease;
67
+ -webkit-transition: all 0.3s ease;
68
+ -moz-transition: all 0.3s ease;
69
+ -o-transition: all 0.3s ease;
70
+ }
71
+
72
+
73
+
74
+ /**
75
+ * Online / offline styling for each agent in the agent list
76
+ */
77
+
78
+ #nifty_wrapper #agent_list {
79
+ bottom: 0;
80
+ position: absolute;
81
+ display: block;
82
+ width: 100%;
83
+ border-top: 1px solid #eee;
84
+ background: #f2f2f2;
85
+ color: #5a5a5c;
86
+ padding-right: 20px;
87
+ padding-left: 20px;
88
+ padding-top: 5px;
89
+ padding-bottom: 5px;
90
+ max-height: 155px;
91
+ overflow-y: scroll;
92
+ }
93
+
94
+ #agent_list ul{
95
+ list-style:none;
96
+ }
97
+
98
+ #nifty_wrapper #agent_list ul li {
99
+ padding-left: 10px;
100
+ padding: 5px;
101
+ border-radius: 5px;
102
+ }
103
+
104
+ #nifty_wrapper span.online_offline {
105
+ width: 10px;
106
+ height: 10px;
107
+ display: block;
108
+ float: left;
109
+ margin-top: 4px;
110
+ margin-right: 5px;
111
+ }
112
+ #nifty_wrapper span.online_offline.online {
113
+ background-color: #6da164;
114
+ border-radius: 15px;
115
+ }
116
+ #nifty_wrapper span.online_offline.offline {
117
+ background-color: #939393;
118
+ border-radius: 15px;
119
+ }
120
+ #nifty_wrapper li.online_agent {
121
+ cursor: pointer;
122
+ font-style: italic;
123
+ }
124
+
125
+
126
+ #nifty_wrapper .online_agent.newmessage {
127
+ color:#FFF;
128
+ font-weight:bold;
129
+ }
130
+ #nifty_wrapper .online_agent.active {
131
+ background: #8e8e8e;
132
+ color: #fff;
133
+ }
134
+ #nifty_wrapper .online_agent.active .online_offline.online {
135
+ background: #fff;
136
+ }
137
+
138
+ #nifty_wrapper .userListBox {
139
+ background-color: #FFF;
140
+ border-bottom: 1px solid #e3e4e4;
141
+ }
142
+ #nifty_wrapper .userList {
143
+ padding: 20px;
144
+ position:relative;
145
+ height: 80px;
146
+ }
147
+ #nifty_wrapper .userListBox:hover {
148
+ background-color: #fefefe;
149
+ }
150
+ #nifty_wrapper .userList h3 {
151
+ margin-top:0;
152
+ padding-top:0;
153
+ font-size:12px;
154
+ position:absolute;
155
+ left: 50px;
156
+ top: 20px;
157
+ }
158
+ #nifty_wrapper .userInfo {
159
+ display: block;
160
+ width: 31px;
161
+ float: right;
162
+ position: absolute;
163
+ bottom: 10px;
164
+ right: 15px;
165
+ font-size: 0.7em;
166
+ text-align: right;
167
+ /* padding-right: 10px; */
168
+ padding-top: 0;
169
+ margin-top: 0;
170
+ color: #ccc;
171
+ margin-bottom: 0;
172
+ }
173
+ #nifty_wrapper .unread_count {
174
+ display: block;
175
+ width: 15px;
176
+ height: 15px;
177
+ position: absolute;
178
+ padding-top: 2px;
179
+ top: 1px;
180
+ right: 15px;
181
+ border-radius: 10px;
182
+ font-size: 0.7em;
183
+ text-align: center;
184
+ margin-top: 0;
185
+ color: #fff;
186
+ font-weight: normal;
187
+ background-color: #4169e1;
188
+ }
189
+ #nifty_wrapper .userList .unread_count {
190
+ top:18px;
191
+ }
192
+ #nifty_wrapper .userItemLastMessage {
193
+ color:#333;
194
+ font-style: italic;
195
+ font-size:12px;
196
+ overflow:hidden;
197
+ white-space: nowrap;
198
+ text-overflow: ellipsis;
199
+ max-width:100%;
200
+ }
201
+ #nifty_wrapper .truncate {
202
+ display:block;
203
+ white-space: nowrap;
204
+ overflow: hidden;
205
+ text-overflow: ellipsis;
206
+ }
207
+ #nifty_wrapper .referer-link {
208
+ width:90%;
209
+ }
210
+
211
+
212
+ /* UserList Styles */
213
+ #nifty_wrapper .userList.active {
214
+ border-left: 3px solid #4169e1;
215
+ background-color: #fdfdfd;
216
+ }
217
+ #nifty_wrapper .userList.newmessage {
218
+ border-left: 3px solid #2b97d2;
219
+ }
220
+ #nifty_wrapper .userList.inactive {
221
+ border-left: 3px solid red;
222
+ background-color:#efefef;
223
+ }
224
+
225
+
226
+
227
+
228
+ #nifty_wrapper span.chatClose {
229
+ display:block;
230
+ width: 46px;
231
+ height: 20px;
232
+ position: absolute;
233
+ top: 21px;
234
+ right: 45px;
235
+ text-align: center;
236
+ border: 1px solid #777;
237
+ border-radius: 10px;
238
+ font-size: 0.8em;
239
+ vertical-align: middle;
240
+ padding-top: 0px;
241
+ color: #777;
242
+ cursor: pointer;
243
+ }
244
+
245
+ #nifty_wrapper .visitorListBoxHeader .vcol {
246
+ padding-top: 12px;
247
+ padding-bottom: 10px;
248
+ overflow: auto;
249
+ font-size: 0.8em;
250
+ font-weight: 100;
251
+ color: #ccc;
252
+ }
253
+ #nifty_wrapper .visitorList .vcol {
254
+ font-size:0.8em;
255
+ color: #333;
256
+
257
+ }
258
+ #nifty_wrapper .visitorList {
259
+ display: block;
260
+ overflow: auto;
261
+ background-color: #FFF;
262
+ border-bottom: 1px solid #eee;
263
+ min-height: 100px;
264
+ padding: 15px 0;
265
+ }
266
+ #nifty_wrapper .vcol {
267
+ display: block;
268
+ float:left;
269
+ padding: 5px;
270
+ }
271
+ #nifty_wrapper .visitorListBoxHeader {
272
+ width: 100%;
273
+ display: block;
274
+ overflow: auto;
275
+ position: absolute;
276
+ border-bottom: 1px solid #eee;
277
+ }
278
+ #nifty_wrapper .vcol.visCol {
279
+ width: 20%;
280
+ font-weight: 100;
281
+ }
282
+ #nifty_wrapper .vcol.visStatusCol {
283
+ width: 10%;
284
+ }
285
+ #nifty_wrapper .vcol.visPageCol {
286
+ width: 30%;
287
+ }
288
+ #nifty_wrapper .vcol.visChatStatusCol, .visChatDepCol {
289
+ width: 10%;
290
+ }
291
+ #nifty_wrapper .vcol.visActionCol {
292
+ width: 20%;
293
+ }
294
+
295
+ #nifty_wrapper .visitorListBox .userName {
296
+ font-size: 13px;
297
+ font-weight: 100;
298
+ text-overflow: ellipsis;
299
+ font-family: "Sansation Bold";
300
+ }
301
+
302
+ #nifty_wrapper #chat_area {
303
+ display: block;
304
+ height: 100%;
305
+ background-color: #fff;
306
+ padding: 0 !important;
307
+ position: relative;
308
+ overflow: hidden;
309
+ }
310
+
311
+ #nifty_wrapper #info_area {
312
+ display:block;
313
+ width:20%;
314
+ float:left;
315
+ height:100%;
316
+ overflow:auto;
317
+ background-color:#fff;
318
+ border-right:1px solid #ccc;
319
+ }
320
+ #nifty_wrapper .infoAreaHeader {
321
+ padding:20px;
322
+ color:#FFF;
323
+ font-size:1.2em;
324
+ display:block;
325
+ height:60px;
326
+ background-color:#333;
327
+ }
328
+ #nifty_wrapper .infoArea {
329
+
330
+ }
331
+ #nifty_wrapper .infoArea h2 {
332
+ font-size: 18px;
333
+ font-weight: 100;
334
+ padding-left:10px;
335
+ margin: 0;
336
+ }
337
+
338
+ #nifty_wrapper .infoBox {
339
+ padding:20px;
340
+ }
341
+
342
+ #nifty_wrapper span#active_count {margin-left: 20px;padding: 0px 6px;border: 2px solid;border-radius: 70px;font-weight: 800;}
343
+
344
+
345
+ /* Pages */
346
+
347
+ #nifty_wrapper .pages {
348
+ height: 100%;
349
+ margin: 0;
350
+ padding: 0;
351
+ width: 100%;
352
+ }
353
+
354
+ #nifty_wrapper .page {
355
+ height: 100%;
356
+ position: absolute;
357
+ width: 100%;
358
+ }
359
+
360
+ /* Chat page */
361
+
362
+ #nifty_wrapper .chat.page {
363
+ display: block;
364
+ width: 400px;
365
+ position: absolute;
366
+ right: 0;
367
+ border-left: 1px solid #ccc;
368
+ }
369
+
370
+ /* Font */
371
+
372
+ #nifty_wrapper .messages {
373
+ font-size: 100%;
374
+ }
375
+
376
+ #nifty_wrapper .inputMessage {
377
+ font-size: 100%;
378
+ }
379
+
380
+ #nifty_wrapper .log {
381
+ color: gray;
382
+ font-size: 0.7em;
383
+ margin: 5px;
384
+ text-align: center;
385
+ text-transform: capitalize;
386
+ background: #f2f2f2;
387
+ padding: 2px;
388
+ border-radius: 5px;
389
+ display: none !important;
390
+ }
391
+
392
+
393
+ #nifty_wrapper .log:first-child{
394
+ display: block;
395
+ }
396
+
397
+ /* Messages */
398
+
399
+ #nifty_wrapper .chatArea {
400
+ height: 100%;
401
+ padding-bottom: 60px;
402
+ }
403
+
404
+ #nifty_wrapper .messages {
405
+ /*height: 100%;*/
406
+ margin: 0;
407
+ overflow-y: scroll;
408
+ padding: 10px 20px 10px 20px;
409
+ }
410
+
411
+ #nifty_wrapper ul.messages {
412
+ display: block;
413
+ position: absolute;
414
+ top: 80px;
415
+ bottom: 80px;
416
+ left: 0;
417
+ right: 0;
418
+ list-style: none;
419
+ }
420
+
421
+ #nifty_wrapper .message.typing .messageBody {
422
+ display: none;
423
+ }
424
+
425
+ #nifty_wrapper .message.typing {
426
+ position: absolute;
427
+ bottom: 0;
428
+ left: 0;
429
+ right: 0;
430
+ font-size: 13px;
431
+ padding-left:10px;
432
+ padding-right:10px;
433
+ max-width: 90%;
434
+ }
435
+
436
+ .message.typing:before{
437
+ content: '" ';
438
+ }
439
+
440
+ .message.typing:after{
441
+ content: ' "';
442
+ }
443
+
444
+ #nifty_wrapper .message.typing .username {
445
+ font-size: 12px;
446
+ padding-right: 2px;
447
+ }
448
+
449
+ .message.typing .username:after{
450
+ content: " - ";
451
+ }
452
+
453
+ .message.typing .timestamp{ display:none; }
454
+
455
+ #nifty_wrapper .username {
456
+ font-weight: 700;
457
+ overflow: hidden;
458
+ }
459
+
460
+ /* Input */
461
+
462
+ #nifty_wrapper .inputMessage {
463
+ bottom: 0;
464
+ height: 80px;
465
+ left: 0;
466
+ outline: none;
467
+ padding-left: 61px;
468
+ right: 0;
469
+ width: 100%;
470
+ position: absolute;
471
+ border: none;
472
+ border-top: 1px solid #e3e4e4;
473
+ font-size: 1.2em;
474
+ }
475
+
476
+ #nifty_wrapper #typing_preview {
477
+
478
+ font-style:italic;
479
+ }
480
+
481
+ #nifty_wrapper .userList { cursor: pointer; }
482
+ #nifty_wrapper #user_count:hover {
483
+ background: #d8d8d8;
484
+ }
485
+ #nifty_wrapper div#user_count {
486
+ cursor: pointer;
487
+ }
488
+
489
+
490
+ .nifty_bg_holder {
491
+ position: absolute;
492
+ display: block;
493
+ color: #fff;
494
+ left: 0;
495
+ height: 100%;
496
+ z-index: 99;
497
+ background-color: #fff;
498
+ right: 0;
499
+ border-bottom-right-radius: 8px;
500
+ border-left: 1px solid #e3e4e4;
501
+ border-bottom: 1px solid #e3e4e4;
502
+ border-right: 1px solid #e3e4e4;
503
+ }
504
+ .nifty_bg_holder_text {
505
+ width: 300px;
506
+ position: relative;
507
+ display: block;
508
+ left: 0;
509
+ top: 5%;
510
+ color: #000;
511
+ /* width: 100%; */
512
+ text-align: center;
513
+ margin-left: auto;
514
+ margin-right: auto;
515
+ font-size: 2em;
516
+ color: #777;
517
+ line-height:1.4em;
518
+
519
+ }
520
+ #nifty_wrapper .chatInfoArea {
521
+ padding-left: 10px;
522
+ padding-right: 10px;
523
+ height: 80px;
524
+ border-bottom: 2px solid rgba(0,0,0,0.06);
525
+ padding-bottom: 10px;
526
+ padding-top: 10px;
527
+ }
528
+ #nifty_wrapper .chatInfoArea h3 {
529
+ font-size: 1.3em;
530
+ margin-top: 5px;
531
+ margin-bottom: 5px;
532
+ }
533
+
534
+ #nifty_wrapper .chatArea code {
535
+ /* padding: 2px 4px; */
536
+ color: #d14;
537
+ background-color: #f7f7f9;
538
+ border: 1px solid #e1e1e8;
539
+ white-space: pre-wrap;
540
+ margin-top: 5px;
541
+ line-height: 19px;
542
+ }
543
+
544
+ #nifty_wrapper .chatArea pre {
545
+ display: block;
546
+ padding: 11.5px;
547
+ margin: 0 0 12px;
548
+ font-size: 15px;
549
+ line-height: 24px;
550
+ word-break: break-all;
551
+ word-wrap: break-word;
552
+ white-space: pre;
553
+ white-space: pre-wrap;
554
+ background-color: #f5f5f5;
555
+ border: 1px solid #ccc;
556
+ border: 1px solid rgba(0,0,0,.15);
557
+ -webkit-border-radius: 4px;
558
+ -moz-border-radius: 4px;
559
+ border-radius: 4px;
560
+ color:#333;
561
+ }
562
+
563
+ #nifty_wrapper .chatArea span.messageBody {
564
+ display: block;
565
+ font-size: 1.1em;
566
+ padding: 15px;
567
+ width: fit-content;
568
+ margin-top:-7px;
569
+ }
570
+ #nifty_wrapper .chatArea span.timestamp {
571
+ color: #9e9ea6;
572
+ font-size: 0.9em;
573
+ display: inline-block;
574
+ vertical-align: top;
575
+ clear: both;
576
+ }
577
+ #nifty_wrapper .chatArea span.username {
578
+ font-weight: bold;
579
+ display: inline-block;
580
+ font-size: 0.9em;
581
+ }
582
+
583
+ #nifty_wrapper .chatArea span.nifty-edit-message {
584
+ float: right;
585
+ display: block;
586
+ display: none;
587
+ clear: right;
588
+ margin-left: 9px;
589
+ color: #bdbdbd;
590
+ white-space: nowrap;
591
+ line-height: 1.125rem;
592
+ font-style: italic;
593
+ cursor: pointer;
594
+ font-size: 0.6em;
595
+ }
596
+
597
+ #nifty_wrapper .session-state-label,
598
+ #nifty_wrapper .visChatDepCol .label-default {
599
+ padding: 3px;
600
+ border-radius: 2px;
601
+ }
602
+ #nifty_wrapper .time-state-label {
603
+ font-size: 0.9em;
604
+ padding: 0.1em;
605
+ padding-left: 0.3em;
606
+ padding-right: 0.3em;
607
+ border-radius: 2px;
608
+ font-weight: normal;
609
+ }
610
+
611
+ #nifty_wrapper .nifty_add_media_button {
612
+ width: 60px;
613
+ height: 60px;
614
+ padding: 10px;
615
+ position: absolute;
616
+ bottom: 0;
617
+ right: 0;
618
+ opacity: 0.7;
619
+ cursor: pointer;
620
+ font-size: 20px;
621
+ line-height: 50px;
622
+ text-align: center;
623
+ }
624
+
625
+ #nifty_wrapper .nifty_media_prompt {
626
+ display: none;
627
+ position: absolute;
628
+ max-width: 320px;
629
+ background: #fff;
630
+ z-index: 999;
631
+ padding: 10px;
632
+ margin: 0;
633
+ border: 1px solid #f1f1f1;
634
+ border-radius: 3px;
635
+ right: 22px;
636
+ bottom: 66px;
637
+ box-shadow: 0 1px 10px rgba(0,0,0,.1);
638
+ -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1);
639
+ -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1);
640
+ -o-box-shadow: 0 1px 10px rgba(0,0,0,.1);
641
+ }
642
+
643
+ #nifty_add_media:checked + .nifty_media_prompt{
644
+ display:block;
645
+ }
646
+
647
+ #nifty_add_media{
648
+ display: none;
649
+ }
650
+
651
+
652
+ #nifty_wrapper .nifty_media_prompt li {
653
+ display: inline-block;
654
+ width: 30px;
655
+ height: 30px;
656
+ line-height: 30px;
657
+ text-align: center;
658
+ font-size: 15px;
659
+ color: #919191;
660
+ }
661
+
662
+ #nifty_wrapper .nifty_media_prompt li * {
663
+ cursor:pointer;
664
+ }
665
+
666
+ .nifty_media_prompt li:hover{
667
+ color:#2b97d2;
668
+ }
669
+
670
+ .nifty_admin_chat_prompt {
671
+ width: 40%;
672
+ position: absolute;
673
+ height: 270px;
674
+ margin: auto;
675
+ left: 0;
676
+ right: 0;
677
+ top: 0;
678
+ bottom: 0;
679
+ background: #f2f2f2;
680
+ z-index: 999;
681
+ padding: 20px;
682
+ border: 1px solid #e4e4e4;
683
+ border-radius: 8px;
684
+ border-top-right-radius: 60px;
685
+ border-bottom-left-radius: 60px;
686
+ box-shadow: 0 1px 20px 0px rgba(0,0,0,.1);
687
+ -webkit-box-shadow: 0 1px 20px 0px rgba(0,0,0,.1);
688
+ -moz-box-shadow: 0 1px 20px 0px rgba(0,0,0,.1);
689
+ -o-box-shadow: 0 1px 20px 0px rgba(0,0,0,.1);
690
+ }
691
+
692
+ .nifty_admin_chat_prompt_title {
693
+ font-size: 18px;
694
+ color: #393939;
695
+ padding-bottom: 10px;
696
+ border-bottom: 1px solid #e4e4e4;
697
+ }
698
+
699
+ .nifty_admin_chat_prompt_message {
700
+ position: absolute;
701
+ top: 70px;
702
+ bottom: 60px;
703
+ display: block;
704
+ font-size: 17px;
705
+ overflow-y: auto;
706
+ right: 24px;
707
+ left: 24px;
708
+ }
709
+
710
+ .nifty_admin_chat_prompt_actions {
711
+ position: absolute;
712
+ bottom: 5px;
713
+ left: 0px;
714
+ right: 0px;
715
+ text-align: center;
716
+ }
717
+
718
+ .nifty_admin_chat_video_box {
719
+ width: 80%;
720
+ position: absolute;
721
+ max-height: 60%;
722
+ margin: auto;
723
+ left: 0;
724
+ right: 0;
725
+ top: 0;
726
+ bottom: 0;
727
+ background: #3e3e3e;
728
+ z-index: 999;
729
+ border: 1px solid #c2c2c2;
730
+ border-radius: 3px;
731
+ }
732
+
733
+ #nifty_admin_chat_video_remote {
734
+ width: 100%;
735
+ max-height: 100%;
736
+ background-color: #4d4d4d;
737
+ position: absolute;
738
+ margin: auto;
739
+ top: 0;
740
+ bottom: 0;
741
+ }
742
+
743
+ #nifty_admin_chat_video_local {
744
+ position: absolute;
745
+ top: 10px;
746
+ right: 10px;
747
+ max-width: 20%;
748
+ border: 2px solid #fff;
749
+ border-radius: 2px;
750
+ background: #4d4d4d;
751
+ }
752
+
753
+ #nifty_admin_chat_video_close {
754
+ background: #676661;
755
+ border: none;
756
+ color: #ffffff;
757
+ width: 23px;
758
+ height: 23px;
759
+ border-radius: 60px;
760
+ font-size: 13px;
761
+ text-align: center;
762
+ position: absolute;
763
+ top: -30px;
764
+ right: 0px;
765
+ }
766
+
767
+ #nifty_admin_chat_video_loading {
768
+ position: absolute;
769
+ background: #ffffff;
770
+ border-radius: 3px;
771
+ width: 30%;
772
+ max-height: 88px;
773
+ margin: auto;
774
+ left: 0;
775
+ right: 0;
776
+ top: 0;
777
+ bottom: 0;
778
+ }
779
+ #nifty_admin_chat_video_loading img {
780
+ max-width: 28px;
781
+ clear: both;
782
+ display: block;
783
+ margin: auto;
784
+ padding-top: 10px;
785
+ padding-bottom: 10px;
786
+ }
787
+
788
+ #nifty_admin_chat_video_loading span {
789
+ padding: 8px;
790
+ display: block;
791
+ text-align: center;
792
+ text-transform: uppercase;
793
+ color: #4d4d4d;
794
+ }
795
+
796
+ #nifty_wrapper .vcol.visActionCol a {
797
+ margin-right: 10px;
798
+ }
799
+ #nifty_wrapper .agents_involved {
800
+ display: block;
801
+ margin-bottom: 5px;
802
+ height: 8px;
803
+ position: absolute;
804
+ right: 35px;
805
+ top: 15px;
806
+ }
807
+ #nifty_wrapper .agent_involved {
808
+ float:left;
809
+ margin-right:5px;
810
+ }
811
+
812
+ .nifty_admin_overlay{
813
+ position: fixed;
814
+ left: 0;
815
+ right: 0;
816
+ top: 0;
817
+ bottom: 0;
818
+ background: rgba(51, 51, 51, 0.37);
819
+ z-index: 999;
820
+ }
821
+ #nifty_wrapper .active_agent_in_list {
822
+ margin-left: 20px;
823
+ float: left;
824
+ border: 1px solid #ccc;
825
+ padding: 3px;
826
+ border-radius: 5px;
827
+ }
828
+ #nifty_wrapper span.minChat {
829
+ width: 15px;
830
+ display: block;
831
+ text-align: center;
832
+ font-size: 18px;
833
+ margin-top: -6px;
834
+ margin-left: 9px;
835
+ font-weight: bold;
836
+ color: #ccc;
837
+ cursor:pointer;
838
+ }
839
+ #nifty_wrapper .chatArea.wdt-emoji-picker-parent {
840
+ position: initial;
841
+ }
842
+
843
+ #nifty_wrapper .wdt-emoji-picker {
844
+ right: 120px!important;
845
+ bottom: 34px!important;
846
+ font-size: 19px;
847
+ color: #939393;
848
+ }
849
+
850
+ #nifty_wrapper .wdt-emoji-popup.open.ready {
851
+ transform: translate(-50px, 25px);
852
+ -webkit-transform: translate(-50px, 25px);
853
+ -moz-transform: translate(-50px, 25px);
854
+ -o-transform: translate(-50px, 25px);
855
+ }
856
+ #nifty_wrapper .wdt-credit {
857
+ z-index: 999999;
858
+ position: absolute;
859
+ right: 5px;
860
+ bottom: 5px;
861
+ font-size: 9px;
862
+ color: #cecece;
863
+ }
864
+
865
+ #nifty_wrapper .infoArea h2 {
866
+ height: 40px;
867
+ line-height: 55px;
868
+ font-family: "Sansation Bold";
869
+ }
870
+
871
+ #nifty_wrapper #wdt-emoji-menu-header, #wdt-emoji-footer {
872
+ background: #f9f9f9;
873
+ }
874
+
875
+ #nifty_wrapper .wdt-emoji-popup.ready.open {
876
+ box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
877
+ -webkit-box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
878
+ -moz-box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
879
+ -o-box-shadow: 0 0 16px 1px rgba(0,0,0, 0.07);
880
+ }
881
+
882
+ #nifty_wrapper #chat_drag_zone {
883
+ background: rgba(51, 51, 51, 0.35);
884
+ position: absolute;
885
+ top: 0;
886
+ left: 0;
887
+ right: 0;
888
+ bottom: 0;
889
+ z-index: 999;
890
+ }
891
+
892
+ #nifty_wrapper #chat_drag_zone_inner {
893
+ position: absolute;
894
+ top: 10%;
895
+ left: 5%;
896
+ right: 5%;
897
+ bottom: 10%;
898
+ border: 3px dashed #ffffff;
899
+ }
900
+
901
+ #nifty_wrapper #chat_drag_zone_inner span {
902
+ color: #fff;
903
+ position: absolute;
904
+ width: 100%;
905
+ height: 100px;
906
+ text-align: center;
907
+ font-size: 55px;
908
+ margin-top: auto;
909
+ margin-bottom: auto;
910
+ top: 50%;
911
+ transform: translate(0, -50%);
912
+ }
913
+
914
+ #nifty_wrapper .userItemLastMessage img {
915
+ max-height: 20px;
916
+ }
917
+
918
+ #nifty_wrapper .userItemLastMessage pre {
919
+ font-size: 9px;
920
+ padding: 2px;
921
+ display: inline-block;
922
+ margin: 0;
923
+ }
924
+
925
+ #nifty_wrapper .userItemLastMessage .emoji-outer {
926
+ margin-top: 1px;
927
+ }
928
+
929
+ #nifty_wrapper .view_in_inbox {
930
+ position: absolute;
931
+ right: 125px;
932
+ top: 45px;
933
+ }
934
+
935
+
936
+ #nifty_wrapper .eventbox,
937
+ #nifty_wrapper .eventbox_upsell {
938
+ position: absolute;
939
+ right: 17px;
940
+ top: 45px;
941
+ }
942
+ #nifty_wrapper .eventbox:hover,
943
+ #nifty_wrapper .view_in_inbox:hover {
944
+ background:#fafafa;
945
+ }
946
+
947
+ #nifty_wrapper .eventbox-close {
948
+ font-size: 1pc;
949
+ position: absolute;
950
+ top: 8px;
951
+ right: 6px;
952
+ height: 30px;
953
+ font-size: 15px;
954
+ line-height: 30px;
955
+ width: 30px;
956
+ display: inline-block;
957
+ -webkit-font-smoothing: antialiased;
958
+ font-style: normal;
959
+ font-weight: 400;
960
+ text-align: center;
961
+ text-decoration: none;
962
+ color: #999;
963
+ }
964
+
965
+
966
+ #nifty_wrapper .eventbox-wrapper {
967
+ display:none;
968
+ -webkit-transform: translateX(0);
969
+ transform: translateX(0);
970
+ background-color: #f2f2f2;
971
+ color: #404040;
972
+ -webkit-transition-property: -webkit-transform,width;
973
+ transition-property: transform,width;
974
+ -webkit-transition-duration: .1s;
975
+ transition-duration: .1s;
976
+ -webkit-transition-timing-function: ease-in;
977
+ transition-timing-function: ease-in;
978
+ -webkit-transform: translateX(339px);
979
+ transform: translateX(339px);
980
+ width: 339px;
981
+ z-index: 5;
982
+ position: absolute;
983
+ top: 80px;
984
+ right: 339px;
985
+ bottom: 80px;
986
+ padding: 20px;
987
+ overflow-y: scroll;
988
+ border-left: 1px solid #e3e4e4;
989
+ }
990
+
991
+ #nifty_wrapper .eventbox-wrapper h3 {
992
+ text-align: center;
993
+ }
994
+
995
+ #nifty_wrapper .events-ul li {
996
+ border-bottom: 1px solid #E2E4E6;
997
+ margin-left: 38px;
998
+ min-height: 30px;
999
+ padding: 10px 0;
1000
+ position: relative;
1001
+ }
1002
+ #nifty_wrapper .event-icon {
1003
+ position: absolute;
1004
+ height: 18px;
1005
+ left: -26px;
1006
+ top: 9pt;
1007
+ width: 18px;
1008
+ }
1009
+ #nifty_wrapper .event-desc {
1010
+ display: inline;
1011
+ margin: 0 6px 0 0;
1012
+ word-wrap: break-word;
1013
+ }
1014
+ #nifty_wrapper .event-meta {
1015
+ display: inline-block;
1016
+ font-size: 9pt;
1017
+ margin: 0;
1018
+ min-width: 110px;
1019
+ color:#8c8c8c;
1020
+ }
1021
+
1022
+ #nifty_wrapper #quick_response_drawer_handle {
1023
+ position: absolute;
1024
+ bottom: 21px;
1025
+ width: 35px;
1026
+ left: 15px;
1027
+ background: #f2f2f2;
1028
+ text-align: center;
1029
+ color: #7d7d7d;
1030
+ height: 35px;
1031
+ font-size: 17px;
1032
+ line-height: 34px;
1033
+ border-radius: 35px;
1034
+ cursor: pointer;
1035
+ }
1036
+
1037
+ #quick_response_drawer_container {
1038
+ position: absolute;
1039
+ bottom: 130px;
1040
+ background: #fff;
1041
+ padding: 22px;
1042
+ max-height: 180px;
1043
+ overflow-y: auto;
1044
+ left: 10%;
1045
+ right: 10%;
1046
+ border-top-left-radius: 8px;
1047
+ border-bottom-right-radius: 8px;
1048
+ border-bottom-left-radius: 30px;
1049
+ border-top-right-radius: 30px;
1050
+ box-shadow: 0 0 10px 1px rgba(0,0,0,.1);
1051
+ }
1052
+
1053
+ .quick_response_item {
1054
+ margin-top: 5px;
1055
+ margin-bottom: 5px;
1056
+ cursor: pointer;
1057
+ border-bottom: 1px solid #f5f5f5;
1058
+ padding-bottom: 2px;
1059
+ }
1060
+
1061
+ .quick_response_item:hover {
1062
+ color: #2b97d2;
1063
+ }
1064
+
1065
+ #quick_response_drawer_container hr {
1066
+ margin-top: 5px;
1067
+ margin-bottom: 5px;
1068
+ }
1069
+
1070
+ #nifty_wrapper .bleeper_in_chat_card {
1071
+ background: #fff;
1072
+ box-shadow: 0 0 10px 1px rgba(0,0,0,0.05);
1073
+ display: inline-block;
1074
+ padding-left: 20px;
1075
+ padding-right: 20px;
1076
+ padding-top: 5px;
1077
+ padding-bottom: 5px;
1078
+ }
1079
+
1080
+ #nifty_wrapper .bleeper_in_chat_card i {
1081
+ color: #9e9e9e;
1082
+ padding: 13px;
1083
+ font-size: 12px;
1084
+ border: 1px #dadada solid;
1085
+ border-radius: 3px;
1086
+ margin-right: 10px;
1087
+ }
1088
+
1089
+ #nifty_wrapper .bleeper_dynamic_link small strong {
1090
+ text-transform: capitalize;
1091
+ }
1092
+
1093
+ #nifty_wrapper .userList .department_assigned {
1094
+ position:absolute;
1095
+ font-size: 10px;
1096
+ right: 42px;
1097
+ bottom: 10px;
1098
+ padding-left:5px;
1099
+ padding-right:5px;
1100
+ border-radius:10px;
1101
+ }
1102
+
1103
+ #nifty_wrapper .userList .department_assigned:after{
1104
+ content: "•";
1105
+ padding-left: 8px;
1106
+ }
1107
+
1108
+
1109
+ #nifty_wrapper span.bleeper_close_item {
1110
+ position: absolute;
1111
+ right: 3px;
1112
+ top: 3px;
1113
+ color: #ccc;
1114
+ cursor: pointer;
1115
+ border: 1px solid #ccc;
1116
+ border-radius: 30px;
1117
+ width: 14px;
1118
+ height: 14px;
1119
+ line-height: 11px;
1120
+ font-size: 10px;
1121
+ text-indent: 3px;
1122
+ }
1123
+ #nifty_wrapper span.bleeper_close_item:hover {
1124
+ background-color: #ccc;
1125
+ color: #fff;
1126
+ border: 1px solid #bdbdbc;
1127
+ }
1128
+ #nifty_wrapper .bleeper_close_item {
1129
+ display:none;
1130
+ }
1131
+
1132
+ #nifty_wrapper .user_header_wrapper_img {
1133
+ min-width: 45px;
1134
+ max-width: 45px;
1135
+ position: absolute;
1136
+ display: inline-block;
1137
+ top: 15px;
1138
+ left: 14px;
1139
+ }
1140
+
1141
+ #nifty_wrapper .user_gravatar img {
1142
+ width: 45px;
1143
+ border-radius: 60px;
1144
+ border: 2px solid #8e8e8e;
1145
+ }
1146
+
1147
+ #nifty_wrapper .bleeper_userlist_gravatar {
1148
+ border-radius: 24px;
1149
+ position: absolute;
1150
+ top: 15px;
1151
+ border: 2px solid #ababab;
1152
+ width: 22px;
1153
+ }
1154
+
1155
+ #nifty_wrapper .user_header_wrapper_info {
1156
+ display: inline-block;
1157
+ margin-left: 60px;
1158
+ }
1159
+
1160
+ @media screen and (max-width: 1300px){
1161
+ #nifty_wrapper #user_list{
1162
+ width:35%;
1163
+ }
1164
+
1165
+ #nifty_wrapper #chat_area{
1166
+ width:65%;
1167
+ }
1168
+
1169
+ .nifty_bg_holder{
1170
+ left: 35% !important;
1171
+ }
1172
+
1173
+ .user_header_wrapper_info {
1174
+ width: 60% !important;
1175
+ }
1176
+ }
1177
+
1178
+ @media screen and (max-width: 782px){
1179
+ #toolbar-item-fullscreen-wp{
1180
+ display: none;
1181
+ }
1182
+ }
1183
+
1184
+ #user_list_mobile_control{
1185
+ display: none;
1186
+ }
1187
+
1188
+ #toolbar-item-user_list{
1189
+ display: none;
1190
+ }
1191
+
1192
+ @media screen and (max-width: 700px){
1193
+ #bleeper_offline_image{
1194
+ display:none !important;
1195
+ }
1196
+
1197
+ #toolbar-item-user_list{
1198
+ display: block;
1199
+ }
1200
+
1201
+ #nifty_wrapper #user_list{
1202
+ width:100%;
1203
+ }
1204
+ .nifty_bg_holder {
1205
+ left: 0% !important;
1206
+ top: 125px;
1207
+ bottom: 154px;
1208
+ height: initial !important;
1209
+ overflow-y: auto;
1210
+ }
1211
+
1212
+ .nifty_bg_holder_text{
1213
+ top:2%;
1214
+ font-size: 24px;
1215
+ }
1216
+
1217
+ .bleeper_tips_hints {
1218
+ top: 2% !important;
1219
+ margin-top: 22px !important;
1220
+ }
1221
+
1222
+ #nifty_wrapper #chat_area{
1223
+ width:100%;
1224
+ /*display: none;*/
1225
+ }
1226
+
1227
+ /*#nifty_wrapper #user_list_mobile_control[type=checkbox]:checked ~ #chat_area{
1228
+ display: block;
1229
+ }
1230
+
1231
+ #nifty_wrapper #user_list_mobile_control[type=checkbox]:checked ~ #user_list{
1232
+ display: none;
1233
+ }*/
1234
+
1235
+ .visStatusCol{
1236
+ display:none;
1237
+ }
1238
+
1239
+ #nifty_wrapper .vcol.visPageCol {
1240
+ width: 20%;
1241
+ }
1242
+ #nifty_wrapper .visChatStatusCol, .visChatDepCol {
1243
+ width: 15% !important;
1244
+ }
1245
+ }
1246
+
1247
+ @media screen and (max-width: 600px){
1248
+ #toolbar-item-user_list {
1249
+ margin-top:40px;
1250
+ }
1251
+ }
1252
+
1253
+ @media screen and (max-width: 550px){
1254
+ .user_header_wrapper_info {
1255
+ width: 50% !important;
1256
+ }
1257
+ #nifty_wrapper .visChatDepCol {
1258
+ display:none;
1259
+ }
1260
+ #nifty_wrapper .visPageCol {
1261
+ width: 30% !important;
1262
+ }
1263
+
1264
+ #nifty_wrapper .visChatStatusCol {
1265
+ width: 20% !important;
1266
+ }
1267
+
1268
+ .nifty_bg_holder_text{
1269
+ font-size: 18px;
1270
+ }
1271
+
1272
+ #nifty_wrapper .bleeper_tips_hints {
1273
+ padding-left: 10px;
1274
+ padding-right: 10px;
1275
+ }
1276
+
1277
+ #nifty_wrapper #agent_list {
1278
+ max-height: 60px !important;
1279
+ }
1280
+
1281
+ #nifty_wrapper .bleeper_tips_hints {
1282
+ padding-left: 10px;
1283
+ padding-right: 10px;
1284
+ }
1285
+
1286
+ #nifty_wrapper #user_count {
1287
+ padding-top: 10px;
1288
+ padding-bottom: 10px;
1289
+ }
1290
+
1291
+ .nifty_bg_holder {
1292
+ bottom: 60px !important;
1293
+ top: 75px !important;
1294
+ }
1295
+
1296
+ #nifty_wrapper #agent_list {
1297
+ font-size: 12px;
1298
+ }
1299
+
1300
+ #nifty_wrapper #agent_list h4 {
1301
+ margin-top: 1px;
1302
+ margin-bottom: 1px;
1303
+ font-size: 14px;
1304
+ }
1305
+
1306
+ #nifty_wrapper .online_agent {
1307
+ margin-bottom: 0;
1308
+ padding-top: 0 !important;
1309
+ padding-bottom: 0 !important;
1310
+ }
1311
+
1312
+ .userListBox_Wrapper{
1313
+ top:75px !important;
1314
+ bottom:61px !important;
1315
+ }
1316
+
1317
+ }
1318
+
1319
+ @media screen and (max-height: 490px){
1320
+ #nifty_wrapper #agent_list {
1321
+ max-height: 60px !important;
1322
+ }
1323
+
1324
+ #nifty_wrapper .bleeper_tips_hints {
1325
+ padding-left: 10px;
1326
+ padding-right: 10px;
1327
+ }
1328
+
1329
+ #nifty_wrapper #user_count {
1330
+ padding-top: 10px;
1331
+ padding-bottom: 10px;
1332
+ }
1333
+
1334
+ .nifty_bg_holder {
1335
+ bottom: 60px !important;
1336
+ top: 0px !important;
1337
+ }
1338
+
1339
+ .nifty_bg_holder_text {
1340
+ font-size: 17px;
1341
+ }
1342
+
1343
+ #nifty_wrapper .bleeper_tips_hints {
1344
+ display: none !important;
1345
+ }
1346
+
1347
+ #nifty_wrapper #agent_list {
1348
+ font-size: 12px;
1349
+ }
1350
+
1351
+ #nifty_wrapper #agent_list h4 {
1352
+ margin-top: 1px;
1353
+ margin-bottom: 1px;
1354
+ font-size: 14px;
1355
+ }
1356
+
1357
+ #nifty_wrapper .online_agent {
1358
+ margin-bottom: 0;
1359
+ padding-top: 0 !important;
1360
+ padding-bottom: 0 !important;
1361
+ }
1362
+
1363
+ .userListBox_Wrapper{
1364
+ top:75px !important;
1365
+ bottom:61px !important;
1366
+ }
1367
+
1368
+ }
1369
+
1370
+ #nifty_wrapper .visitorListBox {
1371
+ overflow-y: auto;
1372
+ top: 80px;
1373
+ bottom: 0;
1374
+ position: absolute;
1375
+ right: 0;
1376
+ left: 0;
1377
+ }
1378
+
1379
+ #nifty_wrapper .visActionCol a {
1380
+ color:#FFF !important;
1381
+ }
1382
+ #nifty_wrapper .visActionCol a:visited {
1383
+ color:#FFF !important;
1384
+ }
1385
+ #nifty_wrapper .visActionCol a:hover {
1386
+ color:#FFF !important;
1387
+ }
1388
+ #nifty_wrapper .visActionCol a:active {
1389
+ color:#FFF !important;
1390
+ }
1391
+ #nifty_wrapper #inputMessage {
1392
+ padding-right: 144px;
1393
+ }
1394
+ #nifty_wrapper .userList h3 em {
1395
+ display: none;
1396
+ }
1397
+ #nifty_wrapper .userList .userItemLastMessage { display:none !important; }
1398
+
1399
+ #nifty_wrapper .bleeper_join_chat_div {
1400
+ display:none;
1401
+ bottom: 0;
1402
+ height: 60px;
1403
+ left: 0;
1404
+ outline: none;
1405
+ padding-left: 10px;
1406
+ right: 0;
1407
+ width: 100%;
1408
+ position: absolute;
1409
+ border: none;
1410
+ border-top: 1px solid #f9f9f9;
1411
+ z-index: 99;
1412
+ background-color: #efefef;
1413
+ background: #efefef !important;
1414
+ }
1415
+ #nifty_wrapper .bleeper_join_chat_div button {
1416
+ position:absolute;
1417
+ left:50%;
1418
+ top:15px;
1419
+
1420
+ }
1421
+
1422
+ #nifty_wrapper .dropdown-toggle{
1423
+ padding-top: 2px !important;
1424
+ padding-bottom: 2px !important;
1425
+ }
1426
+
1427
+ #nifty_wrapper .dropdown-menu{
1428
+ box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1429
+ -webkit-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1430
+ -moz-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1431
+ -o-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1432
+ }
1433
+
1434
+ #nifty_wrapper .userList .agent_involved:hover {
1435
+ margin-top: -6px;
1436
+ margin-left: 5px;
1437
+ }
1438
+
1439
+ #nifty_wrapper .filter-active{
1440
+ border-left: 3px #4169e1 solid !important;
1441
+ }
1442
+
1443
+ @media screen and (max-height: 490px){
1444
+ #choose_online{
1445
+ top: 14px !important;
1446
+ }
1447
+ }
1448
+
1449
+ @media screen and (max-width: 550px){
1450
+ #choose_online{
1451
+ top: 14px !important;
1452
+ }
1453
+ }
1454
+
1455
+ @media screen and (max-height:550px){
1456
+ #bleeper_offline_image {
1457
+ max-height: 130px;
1458
+ display:block;
1459
+ margin-left:auto;
1460
+ margin-right:auto
1461
+ }
1462
+ .nifty_bg_holder_text{
1463
+ font-size:1.4em;
1464
+ }
1465
+ .bleeper_tips_hints{
1466
+ top:8% !important;
1467
+ }
1468
+ }
1469
+
1470
+ .editing_hints {
1471
+ font-size:9px;
1472
+ bottom: 0;
1473
+ outline: none;
1474
+ padding-right: 10px;
1475
+ right: 75px;
1476
+ position: absolute;
1477
+ border: none;
1478
+ opacity: 0.5;
1479
+ }
1480
+
1481
+ .editing_hints code{
1482
+ color:#333 !important;
1483
+ padding:0 !important;
1484
+ }
1485
+
1486
+ span.bleeper-edit-message {
1487
+ font-size: 12px;
1488
+ float: right;
1489
+ margin-left: 10px;
1490
+ font-weight: bold;
1491
+
1492
+ cursor: pointer;
1493
+ }
1494
+
1495
+ #nifty_wrapper {
1496
+ width: 100% !important;
1497
+ position: relative !important;
1498
+ }
1499
+
1500
+ #wplc_settings .form-table td {
1501
+ font-size: 13px !important;
1502
+ line-height: 1.5em !important;
1503
+ }
1504
+
1505
+ /**
1506
+ * GIF image style within a message
1507
+ */
1508
+ .messageBody .gif-img {
1509
+ max-width: 100%;
1510
+ margin-bottom: -5px;
1511
+ }
1512
+
1513
+ .wplc-gif-integration-search-box .gif-sb-loader {
1514
+ display:block;
1515
+ position: absolute;
1516
+ left:0px;
1517
+ top:0px;
1518
+ width: 100%;
1519
+ height: 100%;
1520
+ z-index: 1;
1521
+ background-color:#ffffff;
1522
+ }
1523
+ .wplc-gif-integration-search-box .gif-sb-loader.hidden {
1524
+ display: none;
1525
+ z-index: 0;
1526
+ }
1527
+ .wplc-gif-integration-search-box .gif-sb-loader img {
1528
+ display: block;
1529
+ position: relative;
1530
+ top: calc(50% - 25px);
1531
+ width: 50px;
1532
+ height: auto;
1533
+ margin: auto;
1534
+ }
1535
+
1536
+ .wplc-gif-integration-search-box.show,
1537
+ .wplc-gif-integration-search-box {
1538
+ display: block;
1539
+ position: absolute;
1540
+ bottom: 66px;
1541
+ width: 70%;
1542
+ margin-left:15%;
1543
+ height: 300px;
1544
+ background: #fafafa;
1545
+ z-index: 100000000;
1546
+ box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
1547
+ transition: all 0.3s cubic-bezier(.25,.8,.25,1);
1548
+ }
1549
+ .wplc-gif-integration-search-box.show {
1550
+ animation-name: present-gif-search-box;
1551
+ animation-duration: 500ms;
1552
+ animation-timing-function: ease-in-out;
1553
+ animation-fill-mode: forwards;
1554
+
1555
+ -webkit-animation-name: present-gif-search-box;
1556
+ -webkit-animation-duration: 500ms;
1557
+ -webkit-animation-timing-function: ease-in-out;
1558
+ -webkit-animation-fill-mode: forwards;
1559
+
1560
+ -moz-animation-name: present-gif-search-box;
1561
+ -moz-animation-duration: 500ms;
1562
+ -moz-animation-timing-function: ease-in-out;
1563
+ -moz-animation-fill-mode: forwards;
1564
+
1565
+ -ms-animation-name: present-gif-search-box;
1566
+ -ms-animation-duration: 500ms;
1567
+ -ms-animation-timing-function: ease-in-out;
1568
+ -ms-animation-fill-mode: forwards;
1569
+ }
1570
+ .wplc-gif-integration-search-box {
1571
+ animation-name: dismiss-gif-search-box;
1572
+ animation-duration: 500ms;
1573
+ animation-timing-function: ease-in-out;
1574
+ animation-fill-mode: forwards;
1575
+
1576
+ -webkit-animation-name: dismiss-gif-search-box;
1577
+ -webkit-animation-duration: 500ms;
1578
+ -webkit-animation-timing-function: ease-in-out;
1579
+ -webkit-animation-fill-mode: forwards;
1580
+
1581
+ -moz-animation-name: dismiss-gif-search-box;
1582
+ -moz-animation-duration: 500ms;
1583
+ -moz-animation-timing-function: ease-in-out;
1584
+ -moz-animation-fill-mode: forwards;
1585
+
1586
+ -ms-animation-name: dismiss-gif-search-box;
1587
+ -ms-animation-duration: 500ms;
1588
+ -ms-animation-timing-function: ease-in-out;
1589
+ -ms-animation-fill-mode: forwards;
1590
+ }
1591
+ .wplc-gif-integration-search-box.hidden {
1592
+ display: none;
1593
+ }
1594
+
1595
+ @keyframes present-gif-search-box {
1596
+ 0% {
1597
+ left: 5000px;
1598
+ }
1599
+ 100% {
1600
+ left: 0px;
1601
+ }
1602
+ }
1603
+ @-moz-keyframes present-gif-search-box {
1604
+ 0% {
1605
+ left: 5000px;
1606
+ }
1607
+ 100% {
1608
+ left: 0px;
1609
+ }
1610
+ }
1611
+ @-webkit-keyframes present-gif-search-box {
1612
+ 0% {
1613
+ left: 5000px;
1614
+ }
1615
+ 100% {
1616
+ left: 0px;
1617
+ }
1618
+ }
1619
+
1620
+ @keyframes dismiss-gif-search-box {
1621
+ 0% {
1622
+ left: 0px;
1623
+ }
1624
+ 100% {
1625
+ left: 5000px;
1626
+ }
1627
+ }
1628
+ @-moz-keyframes dismiss-gif-search-box {
1629
+ 0% {
1630
+ left: 0px;
1631
+ }
1632
+ 100% {
1633
+ left: 5000px;
1634
+ }
1635
+ }
1636
+ @-webkit-keyframes dismiss-gif-search-box {
1637
+ 0% {
1638
+ left: 0px;
1639
+ }
1640
+ 100% {
1641
+ left: 5000px;
1642
+ }
1643
+ }
1644
+
1645
+ @media(max-width:767px) {
1646
+
1647
+ .wplc-gif-integration-search-box.show,
1648
+ .wplc-gif-integration-search-box {
1649
+ bottom: 75px;
1650
+ }
1651
+
1652
+ }
1653
+
1654
+ .wplc-gif-integration-search-box .gif-sb-header,
1655
+ .wplc-gif-integration-search-box .gif-sb-body,
1656
+ .wplc-gif-integration-search-box .gif-sb-footer {
1657
+ display: block;
1658
+ position: relative;
1659
+ left: 0px;
1660
+ top: 0px;
1661
+ width: 100%;
1662
+ height: auto;
1663
+ padding: 10px;
1664
+ padding-top: 5px;
1665
+ padding-bottom: 5px;
1666
+ }
1667
+
1668
+ .wplc-gif-integration-search-box .gif-sb-header {
1669
+ min-height: 10%;
1670
+ background-color:#ffffff;
1671
+ border: 1px solid #e6e6e6;
1672
+ }
1673
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-search-term,
1674
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1675
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close {
1676
+ display: inline-block;
1677
+ position: relative;
1678
+ left: 0px;
1679
+ margin: 0px;
1680
+ border: 1px solid #f0f0f0 !important;
1681
+ border-right: none;
1682
+ }
1683
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search i,
1684
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close i,
1685
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover i,
1686
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover i {
1687
+ display: block;
1688
+ position: relative;
1689
+ left: 0px;
1690
+ font-style: initial;
1691
+ }
1692
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1693
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close,
1694
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover,
1695
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1696
+ text-decoration: none !important;
1697
+ }
1698
+
1699
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-search-term {
1700
+ top: -1px;
1701
+ width: 80%;
1702
+ height: 38px;
1703
+ margin-bottom: 0px !important;
1704
+ padding-left: 10px !important;
1705
+ padding-right: 10px !important;
1706
+ }
1707
+
1708
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1709
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover {
1710
+ top: 0px;
1711
+ width: 10%;
1712
+ text-align:center;
1713
+ height: 40px;
1714
+
1715
+ padding-top: 6px;
1716
+ border-radius: 3px;
1717
+ color: #f0f0f0 !important;
1718
+ }
1719
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search {
1720
+ background-color: #eb8532;
1721
+ }
1722
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover {
1723
+ background-color: #cf6813;
1724
+ }
1725
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search i,
1726
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover i {
1727
+ top:0px;
1728
+ left:-1px;
1729
+ font-weight: 600;
1730
+ }
1731
+
1732
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close,
1733
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1734
+ top: 4px;
1735
+ left: 1px;
1736
+ width: 10%;
1737
+ height: 40px;
1738
+ text-align:center;
1739
+ padding-top: 10px;
1740
+ border-radius: 3px;
1741
+ }
1742
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close {
1743
+ background-color: #fafafa;
1744
+ color: #999999 !important;
1745
+ }
1746
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1747
+ background-color: #ffffff;
1748
+ color: #333333 !important;
1749
+ }
1750
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close i,
1751
+ .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover i {
1752
+ top: -3px;
1753
+ font-weight: 500;
1754
+ }
1755
+
1756
+ .wplc-gif-integration-search-box .gif-sb-body {
1757
+ min-height: 65%;
1758
+ max-height: 195px;
1759
+ background-color: #f0f0f0;
1760
+ border: 1px solid #eaeaea;
1761
+ overflow: auto;
1762
+ }
1763
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img,
1764
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img:hover,
1765
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img.selected-gif {
1766
+ display:inline-block;
1767
+ position:relative;
1768
+ left:0px;
1769
+ top:0px;
1770
+ min-height:70px;
1771
+ min-height:70px;
1772
+ width: auto;
1773
+ max-width: 100px;
1774
+ margin-left: 2px;
1775
+ margin-right: 2px;
1776
+ margin-bottom: 1px;
1777
+ }
1778
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1779
+ opacity:0.7;
1780
+ }
1781
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img:hover {
1782
+ opacity:1;
1783
+ }
1784
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img.selected-gif {
1785
+ min-height:100px;
1786
+ opacity:1;
1787
+ }
1788
+
1789
+ @media(max-width:767px) {
1790
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1791
+ width:50%;
1792
+ }
1793
+ }
1794
+
1795
+ @media(max-width:900px) {
1796
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1797
+ width:33%;
1798
+ }
1799
+ }
1800
+
1801
+ @media(max-width:1200px) {
1802
+ .wplc-gif-integration-search-box .gif-sb-body .gif-img {
1803
+ width:20%;
1804
+ }
1805
+ }
1806
+
1807
+ .wplc-gif-integration-search-box .gif-sb-footer {
1808
+ min-height: 10%;
1809
+ background-color: #fafafa;
1810
+ border: 1px solid #eaeaea;
1811
+ font-size: 0.9em;
1812
+ color: #777777;
1813
+ }
1814
+
1815
+ #chat_area .messageBody .gif-img {
1816
+ max-width: 100%;
1817
+ margin-bottom: 0px;
1818
+ }
1819
+
1820
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-search-term {
1821
+ top:1px;
1822
+ }
1823
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search,
1824
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover {
1825
+
1826
+ padding-top: 9px;
1827
+ }
1828
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close,
1829
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover {
1830
+ top: 2px;
1831
+ height: 38px;
1832
+ }
1833
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close i,
1834
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-close:hover i {
1835
+ top: 0px;
1836
+ }
1837
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search i,
1838
+ #chat_area .wplc-gif-integration-search-box .gif-sb-header .gif-sb-confirm-search:hover i {
1839
+ top: 1px;
1840
+ }
1841
+
1842
+ #chat_area .wplc-gif-integration-search-box .gif-sb-body {
1843
+ min-height: 73%;
1844
+ }
1845
+
1846
+ .bleeper_chat_dash_header {
1847
+ height: 80px;
1848
+ background: #4169e1;
1849
+ border-top-left-radius: 8px;
1850
+ border-top-right-radius: 80px;
1851
+ }
1852
+
1853
+ .bleeper_chat_dash_header > div {
1854
+ height: 100%;
1855
+ }
1856
+
1857
+ .bleeper_chat_dash_header > div img.logo{
1858
+ margin-top: 10px;
1859
+ }
1860
+
1861
+ i#toolbar-item-fullscreen {
1862
+ line-height: 80px;
1863
+ font-size: 1.5em;
1864
+ color: #fff;
1865
+ margin-right: 50px;
1866
+ cursor: pointer;
1867
+ }
1868
+
1869
+ .filter-menu {
1870
+ position: absolute;
1871
+ right: 0;
1872
+ z-index: 5;
1873
+ }
1874
+
1875
+ #nifty_agent_heading {
1876
+ font-size: 1.1em;
1877
+ }
1878
+
1879
+ .avatar_top {
1880
+ height: 50px;
1881
+ width: 50px;
1882
+ margin-top: 15px;
1883
+ border: 2px solid #fff;
1884
+ border-radius: 100px;
1885
+ overflow: hidden;
1886
+ }
1887
+
1888
+ .avatar_top img {
1889
+ width: 100%;
1890
+ }
1891
+
1892
+ span.user_top {
1893
+ line-height: 80px;
1894
+ font-size: 1.1em;
1895
+ color: #fff;
1896
+ font-family: "Sansation Bold";
1897
+ }
1898
+
1899
+ #nifty_wrapper .chatInfoArea h4 {
1900
+ font-size: 0.9em;
1901
+ font-weight: 500;
1902
+ margin-top: 0;
1903
+ margin-bottom: 0;
1904
+ }
1905
+
1906
+ li.message.wplc-user-message .messageBody {
1907
+ background: #4169e1;
1908
+ color: #fff;
1909
+ border-radius: 15px;
1910
+ border-bottom-left-radius: 0;
1911
+ }
1912
+
1913
+ li.message.wplc-admin-message{
1914
+ text-align: right;
1915
+ margin-top:10px;
1916
+ }
1917
+
1918
+ li.message.wplc-admin-message .messageBody {
1919
+ background: #f2f2f2;
1920
+ border-radius: 15px;
1921
+ border-bottom-right-radius: 0;
1922
+ margin-left: auto;
1923
+ }
1924
+
1925
+ #nifty_wrapper .username:after{
1926
+ content: "•";
1927
+ padding: 0px 8px;
1928
+ }
1929
+ #nifty_wrapper .timestamp:after{
1930
+ content: "•";
1931
+ padding: 0px 8px;
1932
+ }
1933
+ #nifty_wrapper .messageReadReceipt {
1934
+ color: #9e9ea6;
1935
+ font-size: .9em;
1936
+ display: inline-block;
1937
+ vertical-align: top;
1938
+ clear: both;
1939
+ }
1940
+ #nifty_wrapper .inputMessage::-webkit-input-placeholder { /* Chrome/Opera/Safari */
1941
+ color: #b1b1b1;
1942
+ }
1943
+ #nifty_wrapper .inputMessage::-moz-placeholder { /* Firefox 19+ */
1944
+ color: #b1b1b1;
1945
+ }
1946
+ #nifty_wrapper .inputMessage:-ms-input-placeholder { /* IE 10+ */
1947
+ color: #b1b1b1;
1948
+ }
1949
+ #nifty_wrapper .inputMessage:-moz-placeholder { /* Firefox 18- */
1950
+ color: #b1b1b1;
1951
+ }
1952
+
1953
+ .visitorList .btn-info{
1954
+ background: #4169e1;
1955
+ }
1956
+
1957
+ .visitorList .btn-info.init_chat:after,
1958
+ .visitorList .btn-info.init_chat_upsell:after{
1959
+ font-family: "Font Awesome\ 5 Free";
1960
+ content: "\f1d8";
1961
+ margin-left: 8px;
1962
+ font-weight: 900;
1963
+ }
1964
+
1965
+ .visitorList .btn-danger.accept_chat:after{
1966
+ font-family: "Font Awesome\ 5 Free";
1967
+ content: "\f00c";
1968
+ margin-left: 8px;
1969
+ font-weight: 900;
1970
+ }
1971
+
1972
+ .visitorList .btn-success{
1973
+ background: #3ca23c;
1974
+ }
1975
+
1976
+ .visitorList .btn-success.open_chat:after{
1977
+ font-family: "Font Awesome\ 5 Free";
1978
+ content: "\f138";
1979
+ margin-left: 8px;
1980
+ font-weight: 900;
1981
+ }
1982
+
1983
+ .vcol .label-default{
1984
+ background: none;
1985
+
1986
+ }
1987
+
1988
+ .vcol.visChatStatusCol .label-default{
1989
+ text-transform: capitalize;
1990
+ }
1991
+
1992
+ span.chatInfoArea-Info1 {
1993
+ font-size: 0.8em;
1994
+ }
1995
+
1996
+ .nifty_admin_chat_prompt_actions .btn-info {
1997
+ background: #4169e1;
1998
+ }
1999
+
2000
+ label[for=nifty_file_input] {
2001
+ bottom: 22px;
2002
+ right: 95px;
2003
+ position: absolute;
2004
+ color: #8c8c8c;
2005
+ font-weight: 100 !important;
2006
+ font-size: 18px;
2007
+ }
2008
+
2009
+ .nifty_send_arrow {
2010
+ width: 80px;
2011
+ height: 80px;
2012
+ position: absolute;
2013
+ bottom: 0;
2014
+ right: 0;
2015
+ line-height: 80px;
2016
+ text-align: center;
2017
+ border-left: 1px solid #e3e4e4;
2018
+
2019
+ cursor: pointer;
2020
+ }
2021
+
2022
+ .nifty_send_arrow i {
2023
+ background: #4169e1;
2024
+ color: #fff;
2025
+ padding: 8px;
2026
+ border-radius: 60px;
2027
+ font-size: 17px;
2028
+ }
2029
+
2030
+ .events-ul {
2031
+ padding: 0;
2032
+ color: #717171;
2033
+ }
2034
+
2035
+ .upsell_dialog {
2036
+ font-family: "Sansation Regular";
2037
+ position: fixed;
2038
+ width: 300px;
2039
+ background: #fff;
2040
+ border: 1px solid #eee;
2041
+ border-radius: 8px;
2042
+
2043
+ border-top-left-radius: 30px;
2044
+ border-bottom-right-radius: 30px;
2045
+
2046
+ padding: 15px 30px;
2047
+
2048
+ box-shadow: 0px 0px 15px 0px #3333332e;
2049
+ -webkit-box-shadow: 0px 0px 15px 0px #3333332e;
2050
+ -moz-box-shadow: 0px 0px 15px 0px #3333332e;
2051
+ -o-box-shadow: 0px 0px 15px 0px #3333332e;
2052
+ }
2053
+
2054
+ .upsell_heading,
2055
+ .upsell_body {
2056
+ padding: 2px 0;
2057
+ }
2058
+
2059
+ .upsell_body {
2060
+ margin-bottom: 10px;
2061
+ }
2062
+
2063
+ .upsell_close {
2064
+ position: absolute;
2065
+ right: 20px;
2066
+ cursor: pointer;
2067
+ }
2068
+
2069
+ #nifty_referer_options input{
2070
+ border-radius: 5px;
2071
+ border: 1px solid #eee;
2072
+ font-size: 12px;
2073
+ }
2074
+
2075
+ #nifty_referer_options label{
2076
+ font-size: 12px;
2077
+ }
2078
+
2079
+ .bleeper_loader {
2080
+ display: inline-block;
2081
+ border-bottom-left-radius: 15px;
2082
+ border-bottom-right-radius: 5px;
2083
+ border-top-left-radius: 5px;
2084
+ border-top-right-radius: 15px;
2085
+ width: 30px;
2086
+ height: 30px;
2087
+ background: #4169e1;
2088
+ animation-name: loader;
2089
+ animation-iteration-count: infinite;
2090
+ animation-direction: normal;
2091
+ animation-duration: 2s;
2092
+ }
2093
+
2094
+ @keyframes loader{
2095
+ 0% {
2096
+ border-bottom-left-radius: 10px;
2097
+ border-bottom-right-radius: 5px;
2098
+ border-top-left-radius: 5px;
2099
+ border-top-right-radius: 10px;
2100
+ }
2101
+ 25% {
2102
+ border-bottom-left-radius: 5px;
2103
+ border-bottom-right-radius: 10px;
2104
+ border-top-left-radius: 10px;
2105
+ border-top-right-radius: 5px;
2106
+
2107
+
2108
+ }
2109
+ 50% {
2110
+ transform: rotateZ(90deg);
2111
+ }
2112
+
2113
+ 75% {
2114
+ transform: rotateZ(0deg);
2115
+ }
2116
+ 100% {
2117
+ border-bottom-left-radius: 10px;
2118
+ border-bottom-right-radius: 5px;
2119
+ border-top-left-radius: 5px;
2120
+ border-top-right-radius: 10px;
2121
+ }
2122
+
2123
+ }
2124
+
2125
+ /** New Responsive */
2126
+
2127
+ /** Tablet */
2128
+ @media screen and (max-width: 1100px) and (min-width: 701px) {
2129
+ .bleeper_chat_dash_header .col-md-3 {
2130
+ width: 23% !important;
2131
+ display:inline-block;
2132
+ vertical-align:top;
2133
+ }
2134
+
2135
+ .bleeper_chat_dash_header .col-md-6 {
2136
+ width: 59% !important;
2137
+ display:inline-block;
2138
+ vertical-align:top;
2139
+ }
2140
+
2141
+ .bleeper_chat_dash_header .logo{
2142
+ max-width: 100%;
2143
+ position:relative;
2144
+ top: 50%;
2145
+ transform: translateY(-50%);
2146
+ margin-top: 0 !important;
2147
+ }
2148
+
2149
+ .bleeper_chat_dash_header .col-md-3 .col-md-4{
2150
+ width: 50% !important;
2151
+ padding: 0;
2152
+
2153
+ }
2154
+
2155
+ .bleeper_chat_dash_header .col-md-3 .col-md-8{
2156
+ position: absolute;
2157
+ top: 0;
2158
+ left: 45px;
2159
+ }
2160
+
2161
+ .bleeper_chat_dash_header .col-md-3.text-right{
2162
+ display: none;
2163
+ }
2164
+
2165
+ .bleeper_chat_dash_header .user_top{
2166
+ line-height: 76px;
2167
+ }
2168
+
2169
+
2170
+ .bleeper_chat_dash_header .avatar_top{
2171
+ height: 30px;
2172
+ width: 30px;
2173
+ margin-top: 22px;
2174
+ border: 2px solid #fff;
2175
+ border-radius: 100px;
2176
+ overflow: hidden;
2177
+ }
2178
+
2179
+ .bleeper_chat_dash_header #toolbar-item-fullscreen{
2180
+ font-size: 16px !important;
2181
+ }
2182
+
2183
+ .bleeper_chat_dash_header .bleeper_online_dropdown{
2184
+ position: absolute;
2185
+ top: 25px;
2186
+ }
2187
+
2188
+ .bleeper_chat_dash_header .bleeper_online_dropdown .dropdown-menu.dropdown-menu-right {
2189
+ transform: translateX(60%);
2190
+ }
2191
+
2192
+ #bleeper_search{
2193
+ display:none;
2194
+ }
2195
+
2196
+ #active_count {
2197
+ display: none;
2198
+ }
2199
+
2200
+ #user_count {
2201
+ height: 40px !important;
2202
+ line-height: 2em !important;
2203
+ padding: 0 !important;
2204
+ }
2205
+
2206
+ span#active_count_string,
2207
+ #nifty_wrapper .infoArea h2 {
2208
+ font-size: 15px;
2209
+ font-weight: 800;
2210
+ font-family: "Sansation Regular";
2211
+ line-height: 40px;
2212
+ display: block;
2213
+ height: 39px;
2214
+ padding: 0;
2215
+ text-align: center;
2216
+ }
2217
+
2218
+ .infoArea {
2219
+ background: #f2f2f2;
2220
+ border-bottom: 1px solid #e3e4e4;
2221
+ }
2222
+
2223
+ .filter-menu .dropdown-toggle{
2224
+ margin-top: 8px !important;
2225
+ background: none !important;
2226
+ }
2227
+
2228
+ .visitorListBoxHeader{
2229
+ display: none !important;
2230
+ }
2231
+
2232
+ .visitorListBox {
2233
+ top: 40px !important;
2234
+ }
2235
+
2236
+ .visitorList{
2237
+ padding: 5px 0 !important;
2238
+ min-height: 70px !important;
2239
+ }
2240
+
2241
+ .vcol.visStatusCol {
2242
+ display: none !important;
2243
+ }
2244
+
2245
+ .vcol.visChatStatusCol {
2246
+ display: none !important;
2247
+ }
2248
+
2249
+ .visitorList .vcol {
2250
+ width: 30% !important;
2251
+ }
2252
+
2253
+ .visitorList .vcol:last-child {
2254
+ width: 40% !important;
2255
+ }
2256
+
2257
+ .visitorList .userName{
2258
+ font-size: 14px !important;
2259
+ }
2260
+
2261
+ .visitorList .visChatDepCol{
2262
+ display: none !important;
2263
+ }
2264
+
2265
+ .bleeper_chat_dash_header {
2266
+ border-radius: 0 !important;
2267
+ }
2268
+
2269
+ #nifty_wrapper {
2270
+ border-radius: 0 !important;
2271
+ }
2272
+
2273
+ .content-wrapper {
2274
+ padding: 0 !important;
2275
+ }
2276
+
2277
+ .navbar-header {
2278
+ display: none !important;
2279
+ }
2280
+ .topnavbar{
2281
+ background: none !important;
2282
+ }
2283
+
2284
+ .custom-search-form{
2285
+ display: none !important;
2286
+ }
2287
+
2288
+ ul.nav.navbar-nav {
2289
+ position: fixed;
2290
+ z-index: 999;
2291
+ right: 20px;
2292
+ font-size: 18px;
2293
+ margin: 10px 0;
2294
+ }
2295
+
2296
+ .navbar-nav li a{
2297
+ color: #fff !important;
2298
+ }
2299
+
2300
+ nav.navbar.topnavbar {
2301
+ min-height: 0;
2302
+ }
2303
+
2304
+ #toolbar-item-fullscreen{
2305
+ display:none;
2306
+ }
2307
+
2308
+ #hamburger_menu{
2309
+ display: block !important;
2310
+ margin-right: 35px;
2311
+ }
2312
+
2313
+
2314
+ .wrapper>section {
2315
+ margin: 0 !important;
2316
+ position: absolute;
2317
+ width: 100%;
2318
+ }
2319
+
2320
+ #page-wrapper {
2321
+ min-height: 100% !important;
2322
+ }
2323
+
2324
+ .content-wrapper {
2325
+ height: 100% !important;
2326
+ }
2327
+
2328
+ #nifty_wrapper {
2329
+ height: 90%;
2330
+ border-radius: 0 !important;
2331
+ }
2332
+
2333
+ .aside-collapsed .wrapper>.aside,
2334
+ .aside-collapsed .wrapper>.aside>.aside-inner{
2335
+ /*width:0;
2336
+ padding: 0 !important;
2337
+ border-right: none !important;*/
2338
+ }
2339
+
2340
+ .wrapper>.aside>.aside-inner{
2341
+ padding-top: 5px !important;
2342
+ }
2343
+
2344
+ .wrapper>.aside{
2345
+ /*width: 230px;
2346
+ right: 0 !important;
2347
+ position: fixed;
2348
+ transform: none !important;
2349
+ padding: 5px !important;*/
2350
+ border-right: 2px solid #e3e4e4;
2351
+ }
2352
+
2353
+ .user_header_wrapper_img {
2354
+ display: none !important;
2355
+ }
2356
+
2357
+ .user_header_wrapper_info > p {
2358
+ display:none;
2359
+ }
2360
+
2361
+ .user_header_wrapper_info{
2362
+ width: 65% !important;
2363
+ margin-left: 11% !important;
2364
+ margin-top: 5px !important;
2365
+ }
2366
+
2367
+ .user_header_wrapper_info h3,
2368
+ .user_header_wrapper_info h4{
2369
+ text-align: center;
2370
+
2371
+ }
2372
+
2373
+ .chatInfoArea {
2374
+ background: #4169e1;
2375
+ color: #fff;
2376
+ height: 79px !important;
2377
+ }
2378
+
2379
+ .eventbox,
2380
+ .eventbox_upsell {
2381
+ display: none !important;
2382
+ }
2383
+
2384
+ .chatInfoArea .dropdown-toggle {
2385
+ top: 80px;
2386
+ position: relative;
2387
+ background: #333;
2388
+ z-index: 999;
2389
+ }
2390
+
2391
+ .chatArea{
2392
+ position: fixed !important;
2393
+ top: 0;
2394
+ bottom: 0 !important;
2395
+ height: auto !important;
2396
+ width: 65%;
2397
+ background: #fff;
2398
+ }
2399
+
2400
+ #user_list {
2401
+ width: 35% !important;
2402
+ }
2403
+
2404
+ span.minChat.btn {
2405
+ position: fixed !important;
2406
+ top: 31px;
2407
+ right: 10px;
2408
+ padding: 0;
2409
+ color: #fff !important;
2410
+ }
2411
+ }
2412
+
2413
+ /** MOBI */
2414
+
2415
+ @media screen and (max-width:1100px){
2416
+
2417
+ #nifty_wrapper #user_list {
2418
+ max-height: 30%;
2419
+ }
2420
+
2421
+ #agent_list {
2422
+ max-height: 30% !important;
2423
+ }
2424
+
2425
+ .userListBox {
2426
+ max-height: 100%;
2427
+ overflow-y: scroll;
2428
+ }
2429
+
2430
+ #user_count {
2431
+ height: 40px !important;
2432
+ line-height: 2em !important;
2433
+ padding: 0 !important;
2434
+ }
2435
+
2436
+ #chat_area {
2437
+ max-height: 70%;
2438
+ }
2439
+
2440
+ .bleeper_chat_dash_header .col-md-3 {
2441
+ width: 23% !important;
2442
+ display:inline-block;
2443
+ vertical-align:top;
2444
+ }
2445
+
2446
+ .bleeper_chat_dash_header .col-md-6 {
2447
+ width: 59% !important;
2448
+ display:inline-block;
2449
+ vertical-align:top;
2450
+ }
2451
+
2452
+ .bleeper_chat_dash_header .logo{
2453
+ max-width: 100%;
2454
+ position:relative;
2455
+ top: 50%;
2456
+ transform: translateY(-50%);
2457
+ margin-top: 0 !important;
2458
+ }
2459
+
2460
+ .bleeper_chat_dash_header .col-md-3 .col-md-4{
2461
+ width: 50% !important;
2462
+ padding: 0;
2463
+
2464
+ }
2465
+
2466
+ .bleeper_chat_dash_header .col-md-3 .col-md-8{
2467
+ position: absolute;
2468
+ top: 0;
2469
+ left: 45px;
2470
+ }
2471
+
2472
+ .bleeper_chat_dash_header .col-md-3.text-right{
2473
+ display: none;
2474
+ }
2475
+
2476
+ .bleeper_chat_dash_header .user_top{
2477
+ display:none;
2478
+ }
2479
+
2480
+
2481
+ .bleeper_chat_dash_header .avatar_top{
2482
+ height: 30px;
2483
+ width: 30px;
2484
+ margin-top: 22px;
2485
+ border: 2px solid #fff;
2486
+ border-radius: 100px;
2487
+ overflow: hidden;
2488
+ }
2489
+
2490
+ .bleeper_chat_dash_header #toolbar-item-fullscreen{
2491
+ font-size: 16px !important;
2492
+ }
2493
+
2494
+ .bleeper_chat_dash_header .bleeper_online_dropdown{
2495
+ position: absolute;
2496
+ top: 3px;
2497
+ }
2498
+
2499
+ .bleeper_chat_dash_header .bleeper_online_dropdown .dropdown-menu.dropdown-menu-right {
2500
+ transform: translateX(60%);
2501
+ }
2502
+
2503
+ #agent_list {
2504
+ display: none !important;
2505
+ }
2506
+
2507
+ .infoArea {
2508
+ background: #f2f2f2;
2509
+ border-bottom: 1px solid #e3e4e4;
2510
+ border-top: 1px solid #e3e4e4;
2511
+ }
2512
+
2513
+ .visitorListBoxHeader{
2514
+ display: none !important;
2515
+ }
2516
+
2517
+ .filter-menu{
2518
+ display: none;
2519
+ }
2520
+
2521
+ #bleeper_search{
2522
+ display:none;
2523
+ }
2524
+
2525
+ .nifty_bg_holder {
2526
+ height: 60% !important;
2527
+ bottom: 0 !important;
2528
+ top: inherit !important;
2529
+ border: none;
2530
+ border-radius: 0 !important;
2531
+ transform: translateY(8px);
2532
+ }
2533
+
2534
+ .bleeper_chat_dash_header {
2535
+ border-radius: 0 !important;
2536
+ }
2537
+
2538
+ .content-wrapper {
2539
+ padding: 0;
2540
+ }
2541
+
2542
+ #page-wrapper {
2543
+ min-height: 100% !important;
2544
+ }
2545
+
2546
+ .content-wrapper {
2547
+ height: 100% !important;
2548
+ }
2549
+
2550
+ .wrapper>section {
2551
+ margin: 0 !important;
2552
+ position: absolute;
2553
+ width: 100%;
2554
+ }
2555
+
2556
+ #nifty_wrapper {
2557
+ height: 90%;
2558
+ border-radius: 0 !important;
2559
+ }
2560
+
2561
+ .navbar-header{
2562
+ display: none;
2563
+ }
2564
+
2565
+ ul.nav.navbar-nav {
2566
+ position: fixed;
2567
+ z-index: 999;
2568
+ right: 20px;
2569
+ font-size: 18px;
2570
+ margin: 20px 0;
2571
+ }
2572
+
2573
+ .navbar-nav li a{
2574
+ color: #fff !important;
2575
+ }
2576
+
2577
+ form.navbar-form.custom-search-form {
2578
+ display: none !important;
2579
+ }
2580
+
2581
+ nav.navbar.topnavbar {
2582
+ min-height: 0;
2583
+ }
2584
+
2585
+ #toolbar-item-fullscreen{
2586
+ display:none;
2587
+ }
2588
+
2589
+ #hamburger_menu{
2590
+ display: block !important;
2591
+ }
2592
+
2593
+ .wrapper>.aside,
2594
+ .wrapper>.aside .aside-inner{
2595
+ width: 0px;
2596
+ }
2597
+
2598
+ .aside-collapsed .wrapper>.aside{
2599
+ width: 220px;
2600
+ right: 0 !important;
2601
+ position: fixed;
2602
+ transform: none !important;
2603
+ padding: 5px;
2604
+ border-right: 2px solid #e3e4e4;
2605
+ }
2606
+
2607
+ .aside-collapsed .wrapper>.aside>.aside-inner {
2608
+ width: 100%;
2609
+ padding-top: 5px
2610
+ }
2611
+
2612
+ .aside-collapsed .sidebar>.nav>li>a{
2613
+ text-align: left !important;
2614
+ padding-left: 15px
2615
+ }
2616
+
2617
+
2618
+ .aside-collapsed .sidebar>.nav>li>a>span{
2619
+ display:inline-block !important;
2620
+ }
2621
+
2622
+ #active_count {
2623
+ display: none;
2624
+ }
2625
+
2626
+ span#active_count_string,
2627
+ #nifty_wrapper .infoArea h2 {
2628
+ font-size: 15px;
2629
+ font-weight: 800;
2630
+ font-family: "Sansation Regular";
2631
+ line-height: 40px;
2632
+ display: block;
2633
+ height: 40px;
2634
+ padding: 0;
2635
+ text-align: center;
2636
+ }
2637
+
2638
+ .visitorListBox {
2639
+ top: 42px !important;
2640
+ }
2641
+
2642
+ .visitorList{
2643
+ padding: 5px 0 !important;
2644
+ }
2645
+
2646
+ .vcol.visStatusCol {
2647
+ display: none !important;
2648
+ }
2649
+
2650
+ .vcol.visChatStatusCol {
2651
+ display: none !important;
2652
+ }
2653
+
2654
+ .visitorList .vcol {
2655
+ width: 30% !important;
2656
+ }
2657
+
2658
+ .visitorList .vcol:last-child {
2659
+ width: 40% !important;
2660
+ }
2661
+
2662
+ .visitorList .userName{
2663
+ font-size: 14px !important;
2664
+ }
2665
+
2666
+ .chatArea{
2667
+ position: fixed !important;
2668
+ top: 0;
2669
+ bottom: 0 !important;
2670
+ height: auto !important;
2671
+ width: 100%;
2672
+ background: #fff;
2673
+ }
2674
+
2675
+ .chatInfoArea {
2676
+ background: #4169e1;
2677
+ color: #fff;
2678
+ }
2679
+
2680
+ .eventbox,
2681
+ .eventbox_upsell {
2682
+ display: none !important;
2683
+ }
2684
+
2685
+ .chatInfoArea .dropdown-toggle {
2686
+ top: 80px;
2687
+ position: relative;
2688
+ background: #333;
2689
+ z-index: 999;
2690
+ }
2691
+
2692
+ .user_header_wrapper_img {
2693
+ display: none !important;
2694
+ }
2695
+
2696
+ .user_header_wrapper_info > p {
2697
+ display:none;
2698
+ }
2699
+
2700
+ .user_header_wrapper_info{
2701
+ width: 70% !important;
2702
+ margin-left: 15% !important;
2703
+ margin-top: 5px !important;
2704
+ }
2705
+
2706
+ .user_header_wrapper_info h3,
2707
+ .user_header_wrapper_info h4{
2708
+ text-align: center;
2709
+
2710
+ }
2711
+
2712
+ .user_header_wrapper_info .chatInfoArea-Email a{
2713
+ color: #fff !important;
2714
+ }
2715
+
2716
+ span.minChat.btn {
2717
+ position: fixed !important;
2718
+ top: 32px;
2719
+ left: 10px;
2720
+ padding: 0;
2721
+ color: #fff !important;
2722
+ }
2723
+ }
css/font-awesome.min.css CHANGED
File without changes
css/node_history_styles.css CHANGED
File without changes
css/remote_dash_styles.css CHANGED
@@ -86,7 +86,8 @@
86
  }
87
 
88
  #agent_list h4 {
89
- padding-left:5px;
 
90
  }
91
  .userListBox_Wrapper {
92
  top: 110px;
@@ -98,13 +99,15 @@
98
  .agent_involved {
99
  width: 22px;
100
  }
101
- div#choose_online {
 
102
  position: absolute;
103
- /* width: 100%; */
104
- top: 38px;
105
  right: 0px;
106
  color: #fff;
107
- padding-right:10px;
 
108
  }
109
 
110
  .timedate {
@@ -423,7 +426,7 @@ span.bleeper-edit-message {
423
  }
424
  #nifty_wrapper .visitorListBoxHeader .vcol.visActionCol,
425
  #nifty_wrapper .visitorListBox .visitorList .vcol.visActionCol {
426
- width: 10%;
427
  }
428
 
429
  /* List header */
@@ -1261,4 +1264,13 @@ span.wplc_system_notification {
1261
  background: none !important;
1262
  border:none !important;
1263
  padding: 0 !important;
 
 
 
 
 
 
 
 
 
1264
  }
86
  }
87
 
88
  #agent_list h4 {
89
+ padding-top: 5px;
90
+ font-size: 1.1em;
91
  }
92
  .userListBox_Wrapper {
93
  top: 110px;
99
  .agent_involved {
100
  width: 22px;
101
  }
102
+
103
+ #choose_online {
104
  position: absolute;
105
+ width: 100%;
106
+ top: 70px;
107
  right: 0px;
108
  color: #fff;
109
+ padding-right: 10px;
110
+ font-size: 0.8em;
111
  }
112
 
113
  .timedate {
426
  }
427
  #nifty_wrapper .visitorListBoxHeader .vcol.visActionCol,
428
  #nifty_wrapper .visitorListBox .visitorList .vcol.visActionCol {
429
+ width: 15%;
430
  }
431
 
432
  /* List header */
1264
  background: none !important;
1265
  border:none !important;
1266
  padding: 0 !important;
1267
+ }
1268
+
1269
+ ul.online_agent_list {
1270
+ text-align: left;
1271
+ }
1272
+
1273
+ #nifty_event_heading,
1274
+ ul.events-ul {
1275
+ color: #fff;
1276
  }
css/welcome_dashboard.css ADDED
@@ -0,0 +1,158 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .metrics-panel {
2
+ padding-top: 20px;
3
+ padding-bottom: 20px;
4
+ }
5
+
6
+ .metrics-panel .metrics-inner {
7
+ line-height: 1.7em;
8
+ }
9
+
10
+ .metrics-panel .metrics-inner .information-data-set {
11
+ padding-left: 15px;
12
+ }
13
+
14
+ .news-panel,
15
+ .status-page-panel{
16
+ padding: 20px;
17
+ }
18
+
19
+ .news-panel .podcast-container {
20
+ margin-bottom: 20px;
21
+ }
22
+
23
+ .panel-inner-title {
24
+ margin-bottom: 10px;
25
+
26
+ }
27
+
28
+ .news-panel .blog-container .post {
29
+ padding-top: 10px;
30
+ padding-bottom: 10px;
31
+ border-top: 1px solid #eee;
32
+ }
33
+
34
+ .news-panel .blog-container .post .title{
35
+ font-weight: 800;
36
+ }
37
+
38
+ .news-panel .blog-container .post .excerpt{
39
+ font-size: 0.9em;
40
+ padding-top: 5px;
41
+ }
42
+
43
+ .status-page-panel .modules,
44
+ .status-page-panel .incidents {
45
+ margin-bottom: 21px;
46
+ line-height: 1.7em;
47
+ }
48
+
49
+ .status-page-panel .modules .module .value,
50
+ .status-page-panel .incidents .incident .value{
51
+ text-transform: capitalize;
52
+ }
53
+
54
+ .status-page-panel .incidents .incident .info{
55
+ font-size: 0.9em;
56
+ padding-top: 5px;
57
+ }
58
+
59
+ .status-page-panel .incidents .incident {
60
+ padding-top: 10px;
61
+ padding-bottom: 10px;
62
+ border-top: 1px solid #eee;
63
+ }
64
+
65
+ .chart_holder{
66
+ max-width: 400px;
67
+ max-height: 300px;
68
+ margin-left: auto;
69
+ margin-right: auto;
70
+ margin-bottom: 10px;
71
+ }
72
+
73
+ .chart_holder_seats {
74
+ max-height: 400px;
75
+ margin-left: auto;
76
+ margin-right: auto;
77
+ margin-bottom: 20px;
78
+ margin-top: 30px;
79
+ }
80
+
81
+ .input-group {
82
+ -ms-flex-align: stretch;
83
+ align-items: stretch;
84
+ border: 1px solid #e8eaed;
85
+ border-radius: 2px;
86
+ display: -ms-flexbox;
87
+ display: flex;
88
+ max-width: 500px;
89
+ padding: 5px;
90
+ position: relative;
91
+ width: 100%;
92
+ margin-left: auto;
93
+ margin-right: auto;
94
+ }
95
+
96
+ .input-group__input {
97
+ border: 0;
98
+ -ms-flex: 1 1 auto;
99
+ flex: 1 1 auto;
100
+ font-size: 16px;
101
+ line-height: inherit;
102
+ padding: 5px 45px 5px 15px;
103
+ text-transform: lowercase;
104
+ }
105
+
106
+
107
+ .input-group__suffix {
108
+ border-left: 1px solid #e8eaed;
109
+ color: #757575;
110
+ margin-left: 5px;
111
+ padding: 5px 25px;
112
+ }
113
+ .input-group__loader svg path,
114
+ .input-group__loader_email svg path{
115
+ fill: #1a73e8;
116
+ }
117
+
118
+ .input-group__loader,
119
+ .input-group__success,
120
+ .input-group__fail{
121
+ height: 28px;
122
+ opacity: 0;
123
+ position: absolute;
124
+ right: 10px;
125
+ top: 2px;
126
+ transition: opacity .3s linear;
127
+ width: 28px;
128
+ transform: scale(0.8);
129
+ margin-right: 130px;
130
+ }
131
+ .input-group__success{
132
+ top: -6px;
133
+ margin-right: 135px;
134
+ }
135
+
136
+ .input-group__fail{
137
+ top:7px;
138
+ transform: scale(0.5);
139
+ margin-right: 127px;
140
+ }
141
+
142
+ .fail svg line,
143
+ .fail_email svg line {
144
+ stroke: #a00000;
145
+ }
146
+
147
+ .checkmark,
148
+ .checkmark_email {
149
+ width: 40px;
150
+ height: 40px;
151
+ border-radius: 50%;
152
+ display: block;
153
+ stroke-width: 2;
154
+ stroke: green;
155
+ stroke-miterlimit: 10;
156
+ stroke-dashoffset: 0;
157
+ margin: 10% auto;
158
+ }
fonts/FontAwesome.otf CHANGED
File without changes
fonts/fontawesome-webfont.eot CHANGED
File without changes
fonts/fontawesome-webfont.svg CHANGED
File without changes
fonts/fontawesome-webfont.ttf CHANGED
File without changes
fonts/fontawesome-webfont.woff CHANGED
File without changes
functions.php CHANGED
@@ -1,5 +1,4 @@
1
  <?php
2
- $wplc_plugin_url = WPLC_PLUGIN_URL;
3
 
4
  function wplc_log_user_on_page($name,$email,$session, $is_mobile = false) {
5
  global $wpdb;
@@ -46,9 +45,24 @@ function wplc_log_user_on_page($name,$email,$session, $is_mobile = false) {
46
 
47
  $wplc_chat_session_data = apply_filters("wplc_log_user_on_page_insert_filter", $wplc_chat_session_data);
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
 
51
- $wpdb->insert($wplc_tblname_chats, $wplc_chat_session_data);
52
  $lastid = $wpdb->insert_id;
53
 
54
  do_action("wplc_log_user_on_page_after_hook", $lastid, $wplc_chat_session_data);
@@ -291,6 +305,7 @@ function wplc_return_chat_name($cid) {
291
  function wplc_return_chat_id_by_rel($rel) {
292
  global $wpdb;
293
  global $wplc_tblname_chats;
 
294
 
295
  $results = $wpdb->get_results("SELECT * FROM $wplc_tblname_chats WHERE `rel` = '$rel' LIMIT 1");
296
  if ($results) {
@@ -309,6 +324,7 @@ function wplc_return_chat_id_by_rel($rel) {
309
  function wplc_return_chat_email($cid) {
310
  global $wpdb;
311
  global $wplc_tblname_chats;
 
312
  $results = $wpdb->get_results(
313
  "
314
  SELECT *
@@ -470,10 +486,6 @@ function wplc_list_chats($post_data) {
470
  unset($trstyle);
471
  unset($actions);
472
 
473
-
474
-
475
-
476
- global $wplc_plugin_url;
477
  $user_data = maybe_unserialize($result->ip);
478
  $user_ip = $user_data['ip'];
479
  $browser = @wplc_return_browser_string($user_data['user_agent']);
@@ -520,7 +532,7 @@ function wplc_list_chats($post_data) {
520
  $data_array[$result->id]['data']['browsing_nice_url'] = $path;
521
  }
522
 
523
- $data_array[$result->id]['data']['browser'] = "<img src='" . $wplc_plugin_url . "/images/$browser_image' alt='$browser' title='$browser' /> ";
524
  $data_array[$result->id]['data']['ip'] = $user_ip;
525
  $data_array[$result->id]['other'] = $other_data;
526
  }
@@ -543,7 +555,8 @@ function wplc_return_user_chat_messages($cid,$wplc_settings = false,$cdata = fal
543
 
544
  if(isset($wplc_settings['wplc_display_name']) && $wplc_settings['wplc_display_name'] == 1){ $display_name = 1; } else { $display_name = 0; }
545
 
546
- $sql = "SELECT * FROM $wplc_tblname_msgs WHERE `chat_sess_id` = '$cid' AND `status` = '0' AND (`originates` = '1' OR `originates` = '0') ORDER BY `timestamp` ASC";
 
547
  $results = $wpdb->get_results($sql);
548
  if (!$cdata) {
549
  $cdata = wplc_get_chat_data($cid,__LINE__);
@@ -1643,107 +1656,94 @@ elseif(strpos($user_agent, 'Edge') !== FALSE)
1643
  return 'Other browser';
1644
  }
1645
 
1646
-
1647
  function wplc_admin_display_missed_chats() {
1648
 
1649
- global $wpdb;
1650
- global $wplc_tblname_chats;
1651
-
1652
 
1653
- if(isset($_GET['wplc_action']) && $_GET['wplc_action'] == 'remove_missed_cid'){
1654
- if(isset($_GET['cid'])){
1655
- if(isset($_GET['wplc_confirm'])){
1656
- //Confirmed - delete
1657
- $delete_sql = "";
1658
- if ( empty( $_GET['cid'] ) ) {
1659
- exit('No CID?');
1660
- }
1661
- $delete_sql = "DELETE FROM $wplc_tblname_chats WHERE `id` = '".intval( sanitize_text_field( $_GET['cid'] ) )."' LIMIT 1";
1662
-
1663
- $wpdb->query($delete_sql);
1664
- if ($wpdb->last_error) {
1665
- echo "<div class='update-nag' style='margin-top: 0px;margin-bottom: 5px;'>
1666
- ".__("Error: Could not delete chat", "wplivechat")."<br>
1667
- </div>";
1668
- } else {
1669
- echo "<div class='update-nag' style='margin-top: 0px;margin-bottom: 5px;border-color:#67d552;'>
1670
- ".__("Chat Deleted", "wplivechat")."<br>
1671
- </div>";
1672
- }
1673
-
1674
- } else {
1675
- //Prompt
1676
- echo "<div class='update-nag' style='margin-top: 0px;margin-bottom: 5px;'>
1677
- ".__("Are you sure you would like to delete this chat?", "wplivechat")."<br>
1678
- <a class='button' href='?page=wplivechat-menu-missed-chats&wplc_action=remove_missed_cid&cid=".$_GET['cid']."&wplc_confirm=1''>".__("Yes", "wplivechat")."</a> <a class='button' href='?page=wplivechat-menu-missed-chats'>".__("No", "wplivechat")."</a>
1679
- </div>";
1680
- }
1681
  }
1682
- }
1683
-
1684
- echo "
1685
- <table class=\"wp-list-table widefat fixed \" cellspacing=\"0\">
1686
- <thead>
1687
- <tr>
1688
- <th class='manage-column column-id'><span>" . __("Date", "wplivechat") . "</span></th>
1689
- <th scope='col' id='wplc_name_colum' class='manage-column column-id'><span>" . __("Name", "wplivechat") . "</span></th>
1690
- <th scope='col' id='wplc_email_colum' class='manage-column column-id'>" . __("Email", "wplivechat") . "</th>
1691
- <th scope='col' id='wplc_url_colum' class='manage-column column-id'>" . __("URL", "wplivechat") . "</th>
1692
- <th scope='col' id='wplc_url_colum' class='manage-column column-id'>" . __("Action", "wplivechat") . "</th>
1693
- </tr>
1694
- </thead>
1695
- <tbody id=\"the-list\" class='list:wp_list_text_link'>";
1696
-
1697
- $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
1698
- $limit = 20; // number of rows in page
1699
- $offset = ( $pagenum - 1 ) * $limit;
1700
- $total = $wpdb->get_var( "SELECT COUNT(`id`) FROM $wplc_tblname_chats WHERE `status` = 0" );
1701
- $num_of_pages = ceil( $total / $limit );
1702
-
1703
- $sql = "SELECT * FROM $wplc_tblname_chats WHERE `status` = 0 ORDER BY `timestamp` DESC LIMIT $limit OFFSET $offset";
1704
-
1705
- $results = $wpdb->get_results($sql);
1706
-
1707
- if (!$results) {
1708
- echo "<tr><td></td><td>" . __("You have not missed any chat requests.", "wplivechat") . "</td></tr>";
1709
- } else {
1710
- foreach ($results as $result) {
1711
-
1712
- $url = admin_url('admin.php?page=wplivechat-menu&action=history&cid=' . $result->id);
1713
- $url2 = admin_url('admin.php?page=wplivechat-menu&action=download_history&type=csv&cid=' . $result->id);
1714
- $url3 = "?page=wplivechat-menu-missed-chats&wplc_action=remove_missed_cid&cid=" . $result->id;
1715
- $actions = "
1716
- <a href='$url' class='button' title='".__('View Chat History', 'wplivechat')."' target='_BLANK' id=''><i class='fa fa-eye'></i></a> <a href='$url2' class='button' title='".__('Download Chat History', 'wplivechat')."' target='_BLANK' id=''><i class='fa fa-download'></i></a> <a href='$url3' class='button'><i class='fa fa-trash-o'></i></a>
1717
- ";
1718
-
1719
- echo "<tr id=\"record_" . $result->id . "\">";
1720
- echo "<td class='chat_id column-chat_d'>" . sanitize_text_field($result->timestamp) . "</td>";
1721
- echo "<td class='chat_name column_chat_name' id='chat_name_" . $result->id . "'><img src=\"//www.gravatar.com/avatar/" . md5($result->email) . "?s=30&d=mm\" class='wplc-user-message-avatar' /> " . sanitize_text_field($result->name) . "</td>";
1722
- echo "<td class='chat_email column_chat_email' id='chat_email_" . $result->id . "'><a href='mailto:" . sanitize_text_field($result->email) . "' title='Email " . ".$result->email." . "'>" . sanitize_text_field($result->email) . "</a></td>";
1723
- echo "<td class='chat_name column_chat_url' id='chat_url_" . $result->id . "'>" . esc_url($result->url) . "</td>";
1724
- echo "<td class='chat_name column_chat_url'>".$actions."</td>";
1725
- echo "</tr>";
1726
  }
 
 
 
 
 
 
1727
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1728
 
1729
- echo "
1730
- </tbody>
1731
- </table>";
1732
-
1733
- $page_links = paginate_links( array(
1734
- 'base' => add_query_arg( 'pagenum', '%#%' ),
1735
- 'format' => '',
1736
- 'prev_text' => __( '&laquo;', 'wplivechat' ),
1737
- 'next_text' => __( '&raquo;', 'wplivechat' ),
1738
- 'total' => $num_of_pages,
1739
- 'current' => $pagenum
1740
- ) );
1741
-
1742
- if ( $page_links ) {
1743
- echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0;float:none;text-align:center;">' . $page_links . '</div></div>';
1744
- }
1745
- }
1746
 
 
 
 
 
1747
 
1748
  /**
1749
  * Compares the users IP address to the list in the banned IPs in the settings page
@@ -2153,14 +2153,10 @@ add_action('init', 'wplc_mrg_version_control');
2153
 
2154
 
2155
  function wplc_mrg_version_control() {
2156
- global $wplc_version;
2157
-
2158
- $current_version = get_option("wplc_current_version");
2159
- if (!isset($current_version) || $current_version != $wplc_version) {
2160
- wplc_mrg_update_db();
2161
-
2162
- }
2163
-
2164
  }
2165
 
2166
 
@@ -2182,6 +2178,14 @@ function wplc_mrg_update_db( $networkwide = false ) {
2182
  $sql = " SHOW COLUMNS FROM {$wpdb->prefix}wplc_chat_sessions WHERE `Field` = 'agent_id'";
2183
  $results = $wpdb->get_results($sql);
2184
  if (!$results) {
 
 
 
 
 
 
 
 
2185
  $sql = "ALTER TABLE {$wpdb->prefix}wplc_chat_sessions ADD `agent_id` INT(11) NOT NULL ;";
2186
  $wpdb->query($sql);
2187
  }
@@ -2250,9 +2254,6 @@ function wplc_mrg_update_db( $networkwide = false ) {
2250
  }
2251
 
2252
 
2253
-
2254
-
2255
-
2256
  function wplc_mrg_create_macro_post_type() {
2257
  $labels = array(
2258
  'name' => __('Quick Responses', 'wplivechat'),
@@ -2523,9 +2524,6 @@ if (!function_exists("wplc_acbc_hook_control_push_js_to_front")) {
2523
 
2524
  if (isset($wplc_settings['wplc_typing_enabled']) && $wplc_settings['wplc_typing_enabled'] == 1) { $typing_enabled = "1"; } else { $typing_enabled = "0"; }
2525
 
2526
- global $wplc_version;
2527
-
2528
-
2529
  if ($typing_enabled) {
2530
  $wpc_misc_js_strings = array(
2531
  'typing_enabled' => $typing_enabled,
@@ -2542,12 +2540,12 @@ if (!function_exists("wplc_acbc_hook_control_push_js_to_front")) {
2542
  if(isset($wplc_settings['wplc_use_node_server']) && $wplc_settings['wplc_use_node_server'] == 1){
2543
 
2544
  wp_localize_script( 'wplc-user-script', 'wplc_integration_pro_active', "true");
2545
- wp_register_script('wplc-user-pro-events-script', plugins_url('/js/wplc_u_node_pro_events.js', __FILE__),array('jquery', 'wplc-server-script'),$wplc_version);
2546
- wp_register_script('bleeper-action-script', plugins_url('/js/bleeper_action_events.js', __FILE__),false,$wplc_version);
2547
  wp_enqueue_script('bleeper-action-script');
2548
  } else {
2549
  /* not using the node server, load traditional event handler JS */
2550
- wp_register_script('wplc-user-pro-events-script', plugins_url('/js/wplc_u_pro_events.js', __FILE__),array('jquery', 'wplc-server-script'),$wplc_version);
2551
  }
2552
 
2553
 
@@ -2765,150 +2763,123 @@ if (!function_exists("wplc_choose_final_loggedin_control")) {
2765
  }
2766
  }
2767
 
2768
-
2769
-
2770
-
2771
  /**
2772
  * Latch onto the original callback for this plugin's ajax requests
2773
  * @return void
2774
  */
2775
- if (!function_exists("wplc_choose_hook_control_action_callback")) {
2776
- function wplc_choose_hook_control_action_callback() {
2777
-
2778
-
2779
- if ($_POST['action'] == 'wplc_choose_accepting') {
2780
-
2781
- $choose_array = get_option("WPLC_CHOOSE_ACCEPTING");
2782
- $user_id = get_current_user_id();
2783
- $choose_array[$user_id] = true;
2784
- update_option("WPLC_CHOOSE_ACCEPTING",$choose_array);
2785
-
2786
- /* mark agent as online */
2787
- $user_id = get_current_user_id();
2788
- do_action("wplc_hook_set_transient");
2789
-
2790
- echo "done";
2791
- }
2792
-
2793
- if ($_POST['action'] == 'wplc_choose_not_accepting') {
2794
- $choose_array = get_option("WPLC_CHOOSE_ACCEPTING");
2795
-
2796
- $user_id = get_current_user_id();
2797
- $choose_array[$user_id] = false;
2798
- update_option("WPLC_CHOOSE_ACCEPTING",$choose_array);
2799
-
2800
- $deleted = delete_user_meta($user_id, "wplc_chat_agent_online");
2801
-
2802
- delete_transient('wplc_is_admin_logged_in');
2803
- echo "done";
2804
- }
2805
-
2806
- if ($_POST['action'] == "wplc_typing") {
2807
-
2808
- if (isset($_POST['cid']) && isset($_POST['user']) && isset($_POST['type'])) {
2809
- echo wplc_typing_mrg($_POST['user'],sanitize_text_field($_POST['cid']),sanitize_text_field($_POST['type']));
2810
- }
2811
- }
2812
 
2813
- if( $_POST['action'] == 'wplc_upload_file' ){
2814
- $upload_dir = wp_upload_dir();
2815
- $user_dirname = $upload_dir['basedir'];
2816
- $cid=0;
2817
- if (isset($_POST['cid'])){
2818
- $cid=intval($_POST['cid']);
2819
- }
 
 
2820
 
2821
- if( !file_exists( $user_dirname."/wp_live_chat/" ) ){
2822
- @mkdir($user_dirname.'/wp_live_chat/');
2823
- }
 
 
2824
 
2825
- if( !file_exists( $user_dirname."/wp_live_chat/" . $cid ) ){
2826
- @mkdir($user_dirname.'/wp_live_chat/'.$cid);
2827
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2828
 
2829
- if (isset($_FILES['file']) && isset($_POST['timestamp'])) {
2830
-
2831
- $file_name = strtolower($_FILES['file']['name']);
2832
- $file_name = basename($file_name); //This prevents traversal
2833
-
2834
- if(!wplc_check_file_name_for_unsafe_extension($file_name)){
2835
- if(wplc_check_file_name_for_safe_extension($file_name)){
2836
- if( file_exists($user_dirname . "/wp_live_chat/" . $cid . "/" . $_FILES['file']['name'] ) ){
2837
- $file_name = rand(0, 10) . "-" . $file_name;
2838
- }
2839
-
2840
- if(move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname."/wp_live_chat/" . $cid . "/" . $file_name)){
2841
-
2842
- //File has been uploaded, let's now go ahead and check the mime type
2843
- if(wplc_check_file_mime_type($user_dirname. "/wp_live_chat/" .$cid . "/" . $file_name)){
2844
-
2845
- $response = $upload_dir['baseurl']."/wp_live_chat/" . $cid . "/" . $file_name;
2846
- echo $response;
2847
- } else {
2848
- //Failed, lets delete this file to be safe
2849
- @unlink($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name);
2850
- echo 'MIME Type not allowed';
2851
- }
2852
- } else {
2853
- echo '1';
2854
- }
2855
-
2856
- } else {
2857
- echo "Filetype not allowed";
2858
- }
2859
- } else {
2860
- echo "Security Violation";
2861
- }
2862
- }
2863
- wp_die();
2864
- }
2865
  }
2866
  }
2867
 
2868
-
2869
-
2870
-
2871
  function wplc_typing_mrg($user,$cid,$type) {
2872
 
2873
- $cdata = wplc_get_chat_data($cid,__LINE__);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2874
 
 
2875
  $other = maybe_unserialize($cdata->other);
2876
-
2877
-
2878
- if (isset($other['typing'][$user]) && $other['typing'][$user] == $type) {
2879
- /* same state, ignore */
2880
- return "already";
2881
- } else {
2882
- global $wpdb;
2883
- global $wplc_tblname_chats;
2884
- $other['typing'][$user] = $type;
2885
-
2886
- $wpdb->update(
2887
- $wplc_tblname_chats,
2888
- array(
2889
- 'other' => maybe_serialize($other)
2890
- ),
2891
- array('id' => $cid),
2892
- array(
2893
- '%s'
2894
- ),
2895
- array('%d')
2896
- );
2897
-
2898
- $cdata = wplc_get_chat_data($cid,__LINE__);
2899
-
2900
- $other = maybe_unserialize($cdata->other);
2901
- return $cid;
2902
- }
2903
-
2904
-
2905
-
2906
-
2907
-
2908
  }
2909
 
2910
 
2911
-
2912
  /**
2913
  * Add switchery JS & CSS button to the chat dashboard
2914
  * @since 1.0.00
@@ -2918,12 +2889,11 @@ function wplc_typing_mrg($user,$cid,$type) {
2918
  if (!function_exists("wplc_choose_admin_scripts")) {
2919
  add_action('admin_print_scripts', 'wplc_choose_admin_scripts');
2920
  function wplc_choose_admin_scripts() {
2921
- global $wplc_version;
2922
- wp_register_script('wplc_switchery', plugins_url('js/switchery.min.js', __FILE__), array('jquery'),$wplc_version);
2923
  wp_enqueue_script('wplc_switchery');
2924
- wp_register_style('wplc_switchery_css', plugins_url('css/switchery.min.css', __FILE__),false,$wplc_version);
2925
  wp_enqueue_style('wplc_switchery_css');
2926
- wp_register_script('wplc-choose-script', plugins_url('/js/wplc_choose.js', __FILE__),array('jquery'),$wplc_version);
2927
  wp_enqueue_script('wplc-choose-script');
2928
 
2929
  $wpc_admin_js_strings = array(
@@ -2952,16 +2922,15 @@ if (!function_exists("wplc_choose_admin_scripts")) {
2952
  }
2953
 
2954
 
2955
- global $wplc_version;
2956
- wp_register_script('wplc-qr-script', plugins_url('/js/quick_responses.js', __FILE__),array('jquery'),$wplc_version);
2957
  wp_enqueue_script('wplc-qr-script');
2958
- wp_register_script('wplc-triggers', plugins_url('/js/triggers.js', __FILE__),array('jquery'),$wplc_version);
2959
  wp_enqueue_script('wplc-triggers');
2960
 
2961
  $wplc_settings = get_option("WPLC_SETTINGS");
2962
  if(isset($wplc_settings["wplc_ux_editor"]) && $wplc_settings["wplc_ux_editor"] !== "0"){
2963
 
2964
- wp_register_script('wplc-admin-editor', plugins_url('/js/wplc_admin_editor.js', __FILE__),array('jquery'),$wplc_version);
2965
  wp_enqueue_script('wplc-admin-editor');
2966
  }
2967
 
@@ -3549,11 +3518,13 @@ if (!function_exists("wplc_maa_update_agent_id")) {
3549
  function wplc_maa_update_agent_id($cid, $aid){
3550
  global $wpdb;
3551
  global $wplc_tblname_chats;
3552
- $sql = "SELECT * FROM `$wplc_tblname_chats` WHERE `id` = '$cid'";
 
3553
  $result = $wpdb->get_row($sql);
3554
  if ($result) {
3555
  if(intval($result->status) != 3){
3556
- $update = "UPDATE `$wplc_tblname_chats` SET `agent_id` = '$aid' WHERE `id` = '$cid'";
 
3557
  $wpdb->query($update);
3558
  }
3559
  } else {
@@ -4473,7 +4444,8 @@ function nifty_record_rating_mrg($cid, $rating, $comment){
4473
  $comment = esc_attr($comment);
4474
 
4475
  if(nifty_chat_has_rating_mrg($cid)){ //Update
4476
- $sql = "UPDATE $wplc_tblname_chat_ratings SET `aid` = '".wplc_get_chat_data($cid)->agent_id."', `rating` = '".$rating."', `comment` = '".$comment."', `timestamp` = '".date("Y-m-d H:i:s")."', `notified` = 0 WHERE `cid` = '$cid' LIMIT 1";
 
4477
  $wpdb->query($sql);
4478
  if ($wpdb->last_error) {
4479
  return false;
@@ -4481,7 +4453,8 @@ function nifty_record_rating_mrg($cid, $rating, $comment){
4481
  return true;
4482
  }
4483
  }else{ //Insert
4484
- $sql = "INSERT INTO $wplc_tblname_chat_ratings SET `cid` = '".$cid."', `aid` = '".wplc_get_chat_data($cid)->agent_id."', `rating` = '".$rating."', `comment` = '".$comment."', `timestamp` = '".date("Y-m-d H:i:s")."', `notified` = 0";
 
4485
  $wpdb->query($sql);
4486
  if ($wpdb->last_error) {
4487
  return false;
@@ -4494,7 +4467,8 @@ function nifty_record_rating_mrg($cid, $rating, $comment){
4494
  function nifty_chat_has_rating_mrg($cid){
4495
  global $wpdb;
4496
  global $wplc_tblname_chat_ratings;
4497
- $sql ="SELECT `id` FROM $wplc_tblname_chat_ratings WHERE `cid` = '$cid'";
 
4498
  $wpdb->query($sql);
4499
  if($wpdb->num_rows){
4500
  return true;
@@ -4507,15 +4481,21 @@ function nifty_get_rating_data_mrg($cid,$force = false){
4507
  global $wpdb;
4508
  global $wplc_tblname_chat_ratings;
4509
  if ($force) {
4510
- $results = $wpdb->get_results("SELECT * FROM $wplc_tblname_chat_ratings WHERE `cid` = '$cid' LIMIT 1");
 
 
4511
  } else {
4512
- $results = $wpdb->get_results("SELECT * FROM $wplc_tblname_chat_ratings WHERE `cid` = '$cid' AND `notified` = 0 LIMIT 1");
 
 
4513
  }
4514
  if ($wpdb->num_rows) {
4515
 
4516
  foreach ($results as $result) {
4517
  $id = $result->id;
4518
- $wpdb->Query("UPDATE $wplc_tblname_chat_ratings SET `notified` = 1 WHERE `id` = ".$id." LIMIT 1");
 
 
4519
  return array("rating" => $result->rating, "comment" => $result->comment);
4520
  }
4521
  }else{
@@ -4656,7 +4636,7 @@ function wplc_reporting_tab_content_filter_experience_ratings_control_mrg($tabs_
4656
  }";
4657
  $ratings .= "</style>";
4658
 
4659
-
4660
 
4661
  if ($user_array) {
4662
  foreach ($user_array as $user) {
@@ -4688,7 +4668,7 @@ function wplc_reporting_tab_content_filter_experience_ratings_control_mrg($tabs_
4688
  $ratings .= $cid . " - <strong style='".(intval($rate['rating']) == 1 ? "color:#439134;": "color:#ac1d1d;")."'>".(intval($rate['rating']) == 1 ? __("Good", "wplivechat") : __("Bad", "wplivechat") )."</strong>";
4689
  $ratings .= " - <i style='width:auto;'>\"" . $rate['comment'] . "\"</i>";
4690
  $ratings .= "</div>";
4691
- $ratings .= " <a style='float:right' class='button' href='?page=wplivechat-menu&action=history&cid=".$cid."' target='_blank'>" . __("View", "wplivechat") . "</a>";
4692
 
4693
  }
4694
  }
@@ -4710,7 +4690,7 @@ function wplc_reporting_scripts_mrg(){
4710
  wp_register_script('wplc-google-charts', '//www.gstatic.com/charts/loader.js', array('jquery'));
4711
  wp_enqueue_script('wplc-google-charts');
4712
 
4713
- wp_register_style('wplc-ui-style-stats', '//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css');
4714
  wp_enqueue_style('wplc-ui-style-stats');
4715
  wp_register_script('wplc-statistics', plugins_url('/js/reporting.js', __FILE__), array('jquery', 'jquery-ui-core', 'jquery-ui-tabs'));
4716
  if (empty($statistics)) { $statistics = ''; }
@@ -5422,36 +5402,34 @@ if ( ! function_exists( 'wplc_voice_notes_front_scripts' ) ) {
5422
  * Save voice notes audio files via Ajax
5423
  */
5424
  if ( ! function_exists( 'wplc_save_voice_notes_ajax' ) ) {
5425
- add_action( 'wp_ajax_nopriv_wplc_save_voice_notes', 'wplc_save_voice_notes_ajax' );
5426
- add_action( 'wp_ajax_wplc_save_voice_notes', 'wplc_save_voice_notes_ajax' );
5427
- function wplc_save_voice_notes_ajax() {
5428
- if ( isset( $_FILES['file'] ) and ! $_FILES['file']['error'] ) {
5429
- $upload_dir = wp_upload_dir();
5430
- $base_dirname = $upload_dir['basedir'] . '/wp_live_chat/';
5431
- $base_url = $upload_dir['baseurl'] . '/wp_live_chat/';
5432
-
5433
- if ( ! file_exists( $base_dirname ) ) {
5434
- @mkdir( $base_dirname );
5435
- }
5436
-
5437
- if ( file_exists( $base_dirname . $_FILES['file']['name'] ) ) {
5438
- $fname = rand( 0, 200 ) . "-" . $_FILES['file']['name'];
5439
- } else {
5440
- $fname = $_FILES['file']['name'];
5441
- }
5442
-
5443
- $fname = str_replace(" ", "_", $fname);
5444
- $fname = time() . $fname;
5445
-
5446
- if ( move_uploaded_file( $_FILES['file']['tmp_name'], $base_dirname . $fname . '.wav' ) ) {
5447
- echo $base_url . $fname . '.wav';
5448
- } else {
5449
- echo 0;
5450
- }
5451
-
5452
- }
5453
- exit;
5454
- }
5455
  }
5456
 
5457
  /**
@@ -5571,4 +5549,18 @@ function wplc_mrg_chat_notification_extender($data){
5571
  }
5572
 
5573
  }
5574
- add_action('wplc_hook_initiate_chat', 'wplc_mrg_chat_notification_extender', 99, 1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
 
2
 
3
  function wplc_log_user_on_page($name,$email,$session, $is_mobile = false) {
4
  global $wpdb;
45
 
46
  $wplc_chat_session_data = apply_filters("wplc_log_user_on_page_insert_filter", $wplc_chat_session_data);
47
 
48
+ $wplc_chat_session_prep_array = array(
49
+ '%s',
50
+ '%s',
51
+ '%s',
52
+ '%s',
53
+ '%s',
54
+ '%s',
55
+ '%s',
56
+ '%s',
57
+ '%s'
58
+ );
59
+
60
+ if(!empty($wplc_chat_session_data['department_id'])){
61
+ $wplc_chat_session_prep_array[] = '%d';
62
+ }
63
 
64
 
65
+ $wpdb->insert($wplc_tblname_chats, $wplc_chat_session_data, $wplc_chat_session_prep_array);
66
  $lastid = $wpdb->insert_id;
67
 
68
  do_action("wplc_log_user_on_page_after_hook", $lastid, $wplc_chat_session_data);
305
  function wplc_return_chat_id_by_rel($rel) {
306
  global $wpdb;
307
  global $wplc_tblname_chats;
308
+ $rel = intval($rel);
309
 
310
  $results = $wpdb->get_results("SELECT * FROM $wplc_tblname_chats WHERE `rel` = '$rel' LIMIT 1");
311
  if ($results) {
324
  function wplc_return_chat_email($cid) {
325
  global $wpdb;
326
  global $wplc_tblname_chats;
327
+ $cid = intval($cid);
328
  $results = $wpdb->get_results(
329
  "
330
  SELECT *
486
  unset($trstyle);
487
  unset($actions);
488
 
 
 
 
 
489
  $user_data = maybe_unserialize($result->ip);
490
  $user_ip = $user_data['ip'];
491
  $browser = @wplc_return_browser_string($user_data['user_agent']);
532
  $data_array[$result->id]['data']['browsing_nice_url'] = $path;
533
  }
534
 
535
+ $data_array[$result->id]['data']['browser'] = "<img src='" . WPLC_PLUGIN_URL . "/images/$browser_image' alt='$browser' title='$browser' /> ";
536
  $data_array[$result->id]['data']['ip'] = $user_ip;
537
  $data_array[$result->id]['other'] = $other_data;
538
  }
555
 
556
  if(isset($wplc_settings['wplc_display_name']) && $wplc_settings['wplc_display_name'] == 1){ $display_name = 1; } else { $display_name = 0; }
557
 
558
+ $sql = "SELECT * FROM $wplc_tblname_msgs WHERE `chat_sess_id` = '%d' AND `status` = '0' AND (`originates` = '1' OR `originates` = '0') ORDER BY `timestamp` ASC";
559
+ $sql = $wpdb->prepare($sql, $cid);
560
  $results = $wpdb->get_results($sql);
561
  if (!$cdata) {
562
  $cdata = wplc_get_chat_data($cid,__LINE__);
1656
  return 'Other browser';
1657
  }
1658
 
 
1659
  function wplc_admin_display_missed_chats() {
1660
 
1661
+ global $wpdb;
1662
+ global $wplc_tblname_chats;
 
1663
 
1664
+ if (isset($_GET['wplc_action']) && $_GET['wplc_action'] == 'remove_missed_cid') {
1665
+ if (isset($_GET['cid'])) {
1666
+ if (isset($_GET['wplc_confirm'])) {
1667
+ //Confirmed - delete
1668
+ $delete_sql = "";
1669
+ if (empty($_GET['cid'])) {
1670
+ exit('No CID?');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1671
  }
1672
+ $cid = intval($_GET['cid']);
1673
+ $delete_sql = "DELETE FROM $wplc_tblname_chats WHERE `id` = '%d' LIMIT 1";
1674
+ $delete_sql = $wpdb->prepare($delete_sql, $cid);
1675
+ $wpdb->query($delete_sql);
1676
+ if ($wpdb->last_error) {
1677
+ echo "<div class='update-nag' style='margin-top: 0px;margin-bottom: 5px;'>".__("Error: Could not delete chat", "wplivechat")."<br></div>";
1678
+ } else {
1679
+ echo "<div class='update-nag' style='margin-top: 0px;margin-bottom: 5px;border-color:#67d552;'>".__("Chat Deleted", "wplivechat")."<br></div>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1680
  }
1681
+ } else {
1682
+ //Prompt
1683
+ echo "<div class='update-nag' style='margin-top: 0px;margin-bottom: 5px;'>".__("Are you sure you would like to delete this chat?", "wplivechat")."<br>
1684
+ <a class='button' href='?page=wplivechat-menu-missed-chats&wplc_action=remove_missed_cid&cid=".$cid."&wplc_confirm=1''>".__("Yes", "wplivechat")."</a> <a class='button' href='?page=wplivechat-menu-missed-chats'>".__("No", "wplivechat")."</a>
1685
+ </div>";
1686
+ }
1687
  }
1688
+ }
1689
+
1690
+ echo "<table class=\"wp-list-table widefat fixed \" cellspacing=\"0\">
1691
+ <thead>
1692
+ <tr>
1693
+ <th class='manage-column column-id'><span>" . __("Date", "wplivechat") . "</span></th>
1694
+ <th scope='col' id='wplc_name_colum' class='manage-column column-id'><span>" . __("Name", "wplivechat") . "</span></th>
1695
+ <th scope='col' id='wplc_email_colum' class='manage-column column-id'>" . __("Email", "wplivechat") . "</th>
1696
+ <th scope='col' id='wplc_url_colum' class='manage-column column-id'>" . __("URL", "wplivechat") . "</th>
1697
+ <th scope='col' id='wplc_url_colum' class='manage-column column-id'>" . __("Action", "wplivechat") . "</th>
1698
+ </tr>
1699
+ </thead>
1700
+ <tbody id=\"the-list\" class='list:wp_list_text_link'>";
1701
+
1702
+ $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
1703
+ $limit = 20; // number of rows in page
1704
+ $offset = ( $pagenum - 1 ) * $limit;
1705
+ $total = $wpdb->get_var( "SELECT COUNT(`id`) FROM $wplc_tblname_chats WHERE `status` = 0" );
1706
+ $num_of_pages = ceil( $total / $limit );
1707
+
1708
+ $sql = "SELECT * FROM $wplc_tblname_chats WHERE `status` = 0 ORDER BY `timestamp` DESC LIMIT %d OFFSET %d";
1709
+ $sql = $wpdb->prepare($sql, $limit, $offset);
1710
+ $results = $wpdb->get_results($sql);
1711
+
1712
+ if (!$results) {
1713
+ echo "<tr><td></td><td>" . __("You have not missed any chat requests.", "wplivechat") . "</td></tr>";
1714
+ } else {
1715
+ foreach ($results as $result) {
1716
+ $hist_nonce = wp_create_nonce('wplc_history_nonce');
1717
+ $url = admin_url('admin.php?page=wplivechat-menu&action=history&cid=' . $result->id . "&wplc_history_nonce=" . $hist_nonce);
1718
+ $url2 = admin_url('admin.php?page=wplivechat-menu&action=download_history&type=csv&cid=' . $result->id . "&wplc_history_nonce=" . $hist_nonce);
1719
+ $url3 = "?page=wplivechat-menu-missed-chats&wplc_action=remove_missed_cid&cid=" . $result->id;
1720
+ $actions = "<a href='$url' class='button' title='".__('View Chat History', 'wplivechat')."' target='_BLANK' id=''><i class='fa fa-eye'></i></a> <a href='$url2' class='button' title='".__('Download Chat History', 'wplivechat')."' target='_BLANK' id=''><i class='fa fa-download'></i></a> <a href='$url3' class='button'><i class='fa fa-trash-o'></i></a>";
1721
+
1722
+ echo "<tr id=\"record_" . $result->id . "\">";
1723
+ echo "<td class='chat_id column-chat_d'>" . sanitize_text_field($result->timestamp) . "</td>";
1724
+ echo "<td class='chat_name column_chat_name' id='chat_name_" . $result->id . "'><img src=\"//www.gravatar.com/avatar/" . md5($result->email) . "?s=30&d=mm\" class='wplc-user-message-avatar' /> " . sanitize_text_field($result->name) . "</td>";
1725
+ echo "<td class='chat_email column_chat_email' id='chat_email_" . $result->id . "'><a href='mailto:" . sanitize_text_field($result->email) . "' title='Email " . ".$result->email." . "'>" . sanitize_text_field($result->email) . "</a></td>";
1726
+ echo "<td class='chat_name column_chat_url' id='chat_url_" . $result->id . "'>" . esc_url($result->url) . "</td>";
1727
+ echo "<td class='chat_name column_chat_url'>".$actions."</td>";
1728
+ echo "</tr>";
1729
+ }
1730
+ }
1731
+
1732
+ echo "</tbody></table>";
1733
 
1734
+ $page_links = paginate_links(array(
1735
+ 'base' => add_query_arg( 'pagenum', '%#%' ),
1736
+ 'format' => '',
1737
+ 'prev_text' => __( '&laquo;', 'wplivechat' ),
1738
+ 'next_text' => __( '&raquo;', 'wplivechat' ),
1739
+ 'total' => $num_of_pages,
1740
+ 'current' => $pagenum
1741
+ ));
 
 
 
 
 
 
 
 
 
1742
 
1743
+ if ( $page_links ) {
1744
+ echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0;float:none;text-align:center;">' . $page_links . '</div></div>';
1745
+ }
1746
+ }
1747
 
1748
  /**
1749
  * Compares the users IP address to the list in the banned IPs in the settings page
2153
 
2154
 
2155
  function wplc_mrg_version_control() {
2156
+ $current_version = get_option("wplc_current_version");
2157
+ if (!isset($current_version) || $current_version != WPLC_PLUGIN_VERSION) {
2158
+ wplc_mrg_update_db();
2159
+ }
 
 
 
 
2160
  }
2161
 
2162
 
2178
  $sql = " SHOW COLUMNS FROM {$wpdb->prefix}wplc_chat_sessions WHERE `Field` = 'agent_id'";
2179
  $results = $wpdb->get_results($sql);
2180
  if (!$results) {
2181
+ /**
2182
+ * It was recommended that we prepare this statement, however:
2183
+ * - The prepare function does not support preparing table names as it automatically wraps this in "'"
2184
+ * - This causes the query to fail entirely as it must either be "`" or without quotes entirely
2185
+ * - Running prepare without a replacement value will also fail as it expects at least one replacement
2186
+ *
2187
+ * For now, we are leaving this as is, as the '$wpdb->prefix' cannot be overriden without a custom PHP file
2188
+ */
2189
  $sql = "ALTER TABLE {$wpdb->prefix}wplc_chat_sessions ADD `agent_id` INT(11) NOT NULL ;";
2190
  $wpdb->query($sql);
2191
  }
2254
  }
2255
 
2256
 
 
 
 
2257
  function wplc_mrg_create_macro_post_type() {
2258
  $labels = array(
2259
  'name' => __('Quick Responses', 'wplivechat'),
2524
 
2525
  if (isset($wplc_settings['wplc_typing_enabled']) && $wplc_settings['wplc_typing_enabled'] == 1) { $typing_enabled = "1"; } else { $typing_enabled = "0"; }
2526
 
 
 
 
2527
  if ($typing_enabled) {
2528
  $wpc_misc_js_strings = array(
2529
  'typing_enabled' => $typing_enabled,
2540
  if(isset($wplc_settings['wplc_use_node_server']) && $wplc_settings['wplc_use_node_server'] == 1){
2541
 
2542
  wp_localize_script( 'wplc-user-script', 'wplc_integration_pro_active', "true");
2543
+ wp_register_script('wplc-user-pro-events-script', plugins_url('/js/wplc_u_node_pro_events.js', __FILE__),array('jquery', 'wplc-server-script'),WPLC_PLUGIN_VERSION);
2544
+ wp_register_script('bleeper-action-script', plugins_url('/js/bleeper_action_events.js', __FILE__),false,WPLC_PLUGIN_VERSION);
2545
  wp_enqueue_script('bleeper-action-script');
2546
  } else {
2547
  /* not using the node server, load traditional event handler JS */
2548
+ wp_register_script('wplc-user-pro-events-script', plugins_url('/js/wplc_u_pro_events.js', __FILE__),array('jquery', 'wplc-server-script'),WPLC_PLUGIN_VERSION);
2549
  }
2550
 
2551
 
2763
  }
2764
  }
2765
 
 
 
 
2766
  /**
2767
  * Latch onto the original callback for this plugin's ajax requests
2768
  * @return void
2769
  */
2770
+ if (!function_exists("wplc_choose_hook_control_action_callback")) {
2771
+ function wplc_choose_hook_control_action_callback() {
2772
+
2773
+ if ($_POST['action'] == 'wplc_choose_accepting') {
2774
+ $choose_array = get_option("WPLC_CHOOSE_ACCEPTING");
2775
+ $user_id = get_current_user_id();
2776
+ $choose_array[$user_id] = true;
2777
+ update_option("WPLC_CHOOSE_ACCEPTING",$choose_array);
2778
+ /* mark agent as online */
2779
+ $user_id = get_current_user_id();
2780
+ do_action("wplc_hook_set_transient");
2781
+ echo "done";
2782
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2783
 
2784
+ if ($_POST['action'] == 'wplc_choose_not_accepting') {
2785
+ $choose_array = get_option("WPLC_CHOOSE_ACCEPTING");
2786
+ $user_id = get_current_user_id();
2787
+ $choose_array[$user_id] = false;
2788
+ update_option("WPLC_CHOOSE_ACCEPTING",$choose_array);
2789
+ $deleted = delete_user_meta($user_id, "wplc_chat_agent_online");
2790
+ delete_transient('wplc_is_admin_logged_in');
2791
+ echo "done";
2792
+ }
2793
 
2794
+ if ($_POST['action'] == "wplc_typing") {
2795
+ if (isset($_POST['cid']) && isset($_POST['user']) && isset($_POST['type'])) {
2796
+ echo wplc_typing_mrg($_POST['user'], intval($_POST['cid']), sanitize_text_field($_POST['type']));
2797
+ }
2798
+ }
2799
 
2800
+ if( $_POST['action'] == 'wplc_upload_file' ) {
2801
+ $upload_dir = wp_upload_dir();
2802
+ $user_dirname = $upload_dir['basedir'];
2803
+ $cid=0;
2804
+ if (isset($_POST['cid'])) {
2805
+ $cid=intval($_POST['cid']);
2806
+ }
2807
+
2808
+ if( !file_exists( $user_dirname."/wp_live_chat/" ) ){
2809
+ @mkdir($user_dirname.'/wp_live_chat/');
2810
+ }
2811
+
2812
+ if( !file_exists( realpath( $user_dirname."/wp_live_chat/" . $cid ) ) ){
2813
+ @mkdir( realpath( $user_dirname.'/wp_live_chat/'. $cid ) );
2814
+ }
2815
+
2816
+ if (isset($_FILES['file']) && isset($_POST['timestamp'])) {
2817
+ $file_name = strtolower( esc_attr($_FILES['file']['name']) );
2818
+ $file_name = basename($file_name); //This prevents traversal
2819
+
2820
+ if(!wplc_check_file_name_for_unsafe_extension($file_name)) {
2821
+ if(wplc_check_file_name_for_safe_extension($file_name)) {
2822
+ if( file_exists( realpath($user_dirname . "/wp_live_chat/" . $cid . "/" . esc_attr($_FILES['file']['name']) ) ) ) {
2823
+ $file_name = rand(0, 10) . "-" . $file_name;
2824
+ }
2825
 
2826
+ if(move_uploaded_file($_FILES['file']['tmp_name'], realpath($user_dirname."/wp_live_chat/" . $cid . "/" . $file_name))) {
2827
+ //File has been uploaded, let's now go ahead and check the mime type
2828
+ if(wplc_check_file_mime_type( realpath($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name)) ) {
2829
+ $response = realpath($upload_dir['baseurl']."/wp_live_chat/" . $cid . "/" . $file_name);
2830
+ echo $response;
2831
+ } else {
2832
+ //Failed, lets delete this file to be safe
2833
+ @unlink(realpath($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name));
2834
+ echo 'MIME Type not allowed';
2835
+ }
2836
+ } else {
2837
+ echo '1';
2838
+ }
2839
+ } else {
2840
+ echo "Filetype not allowed";
2841
+ }
2842
+ } else {
2843
+ echo "Security Violation";
2844
+ }
2845
+ }
2846
+ wp_die();
2847
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2848
  }
2849
  }
2850
 
 
 
 
2851
  function wplc_typing_mrg($user,$cid,$type) {
2852
 
2853
+ $cid=intval($cid);
2854
+ $cdata = wplc_get_chat_data($cid,__LINE__);
2855
+ $other = maybe_unserialize($cdata->other);
2856
+
2857
+ if (isset($other['typing'][$user]) && $other['typing'][$user] == $type) {
2858
+ /* same state, ignore */
2859
+ return "already";
2860
+ } else {
2861
+ global $wpdb;
2862
+ global $wplc_tblname_chats;
2863
+ $other['typing'][$user] = $type;
2864
+ $wpdb->update(
2865
+ $wplc_tblname_chats,
2866
+ array(
2867
+ 'other' => maybe_serialize($other)
2868
+ ),
2869
+ array('id' => $cid),
2870
+ array(
2871
+ '%s'
2872
+ ),
2873
+ array('%d')
2874
+ );
2875
 
2876
+ $cdata = wplc_get_chat_data($cid,__LINE__);
2877
  $other = maybe_unserialize($cdata->other);
2878
+ return $cid;
2879
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2880
  }
2881
 
2882
 
 
2883
  /**
2884
  * Add switchery JS & CSS button to the chat dashboard
2885
  * @since 1.0.00
2889
  if (!function_exists("wplc_choose_admin_scripts")) {
2890
  add_action('admin_print_scripts', 'wplc_choose_admin_scripts');
2891
  function wplc_choose_admin_scripts() {
2892
+ wp_register_script('wplc_switchery', plugins_url('js/switchery.min.js', __FILE__), array('jquery'),WPLC_PLUGIN_VERSION);
 
2893
  wp_enqueue_script('wplc_switchery');
2894
+ wp_register_style('wplc_switchery_css', plugins_url('css/switchery.min.css', __FILE__),false,WPLC_PLUGIN_VERSION);
2895
  wp_enqueue_style('wplc_switchery_css');
2896
+ wp_register_script('wplc-choose-script', plugins_url('/js/wplc_choose.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
2897
  wp_enqueue_script('wplc-choose-script');
2898
 
2899
  $wpc_admin_js_strings = array(
2922
  }
2923
 
2924
 
2925
+ wp_register_script('wplc-qr-script', plugins_url('/js/quick_responses.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
 
2926
  wp_enqueue_script('wplc-qr-script');
2927
+ wp_register_script('wplc-triggers', plugins_url('/js/triggers.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
2928
  wp_enqueue_script('wplc-triggers');
2929
 
2930
  $wplc_settings = get_option("WPLC_SETTINGS");
2931
  if(isset($wplc_settings["wplc_ux_editor"]) && $wplc_settings["wplc_ux_editor"] !== "0"){
2932
 
2933
+ wp_register_script('wplc-admin-editor', plugins_url('/js/wplc_admin_editor.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
2934
  wp_enqueue_script('wplc-admin-editor');
2935
  }
2936
 
3518
  function wplc_maa_update_agent_id($cid, $aid){
3519
  global $wpdb;
3520
  global $wplc_tblname_chats;
3521
+ $sql = "SELECT * FROM `$wplc_tblname_chats` WHERE `id` = '%d'";
3522
+ $sql = $wpdb->prepare($sql, intval($cid));
3523
  $result = $wpdb->get_row($sql);
3524
  if ($result) {
3525
  if(intval($result->status) != 3){
3526
+ $update = "UPDATE `$wplc_tblname_chats` SET `agent_id` = '%d' WHERE `id` = '%d'";
3527
+ $update = $wpdb->prepare($update, intval($aid), intval($cid));
3528
  $wpdb->query($update);
3529
  }
3530
  } else {
4444
  $comment = esc_attr($comment);
4445
 
4446
  if(nifty_chat_has_rating_mrg($cid)){ //Update
4447
+ $sql = "UPDATE $wplc_tblname_chat_ratings SET `aid` = '%d', `rating` = '%d', `comment` = '%s', `timestamp` = '%s', `notified` = 0 WHERE `cid` = '%d' LIMIT 1";
4448
+ $sql = $wpdb->prepare($sql, wplc_get_chat_data($cid)->agent_id, $rating, $comment, date("Y-m-d H:i:s"), $cid);
4449
  $wpdb->query($sql);
4450
  if ($wpdb->last_error) {
4451
  return false;
4453
  return true;
4454
  }
4455
  }else{ //Insert
4456
+ $sql = "INSERT INTO $wplc_tblname_chat_ratings SET `cid` = '%d', `aid` = '%d', `rating` = '%d', `comment` = '%s', `timestamp` = '%s', `notified` = 0";
4457
+ $sql = $wpdb->prepare($sql, $cid, wplc_get_chat_data($cid)->agent_id, $rating, $comment, date("Y-m-d H:i:s"));
4458
  $wpdb->query($sql);
4459
  if ($wpdb->last_error) {
4460
  return false;
4467
  function nifty_chat_has_rating_mrg($cid){
4468
  global $wpdb;
4469
  global $wplc_tblname_chat_ratings;
4470
+ $sql ="SELECT `id` FROM $wplc_tblname_chat_ratings WHERE `cid` = '%d'";
4471
+ $sql = $wpdb->prepare($sql, $cid);
4472
  $wpdb->query($sql);
4473
  if($wpdb->num_rows){
4474
  return true;
4481
  global $wpdb;
4482
  global $wplc_tblname_chat_ratings;
4483
  if ($force) {
4484
+ $sql = "SELECT * FROM $wplc_tblname_chat_ratings WHERE `cid` = '%d' LIMIT 1";
4485
+ $sql = $wpdb->prepare($sql, $cid);
4486
+ $results = $wpdb->get_results($sql);
4487
  } else {
4488
+ $sql = "SELECT * FROM $wplc_tblname_chat_ratings WHERE `cid` = '%d' AND `notified` = 0 LIMIT 1";
4489
+ $sql = $wpdb->prepare($sql, $cid);
4490
+ $results = $wpdb->get_results($sql);
4491
  }
4492
  if ($wpdb->num_rows) {
4493
 
4494
  foreach ($results as $result) {
4495
  $id = $result->id;
4496
+ $sql = "UPDATE $wplc_tblname_chat_ratings SET `notified` = 1 WHERE `id` = %d LIMIT 1";
4497
+ $sql = $wpdb->prepare($sql, $id);
4498
+ $wpdb->Query($sql);
4499
  return array("rating" => $result->rating, "comment" => $result->comment);
4500
  }
4501
  }else{
4636
  }";
4637
  $ratings .= "</style>";
4638
 
4639
+ $hist_nonce = wp_create_nonce('wplc_history_nonce');
4640
 
4641
  if ($user_array) {
4642
  foreach ($user_array as $user) {
4668
  $ratings .= $cid . " - <strong style='".(intval($rate['rating']) == 1 ? "color:#439134;": "color:#ac1d1d;")."'>".(intval($rate['rating']) == 1 ? __("Good", "wplivechat") : __("Bad", "wplivechat") )."</strong>";
4669
  $ratings .= " - <i style='width:auto;'>\"" . $rate['comment'] . "\"</i>";
4670
  $ratings .= "</div>";
4671
+ $ratings .= " <a style='float:right' class='button' href='?page=wplivechat-menu&action=history&cid=".$cid."&wplc_history_nonce=" . $hist_nonce . "' target='_blank'>" . __("View", "wplivechat") . "</a>";
4672
 
4673
  }
4674
  }
4690
  wp_register_script('wplc-google-charts', '//www.gstatic.com/charts/loader.js', array('jquery'));
4691
  wp_enqueue_script('wplc-google-charts');
4692
 
4693
+ wp_register_style('wplc-ui-style-stats', plugins_url('/js/vendor/jquery-ui/jquery-ui.css', __FILE__));
4694
  wp_enqueue_style('wplc-ui-style-stats');
4695
  wp_register_script('wplc-statistics', plugins_url('/js/reporting.js', __FILE__), array('jquery', 'jquery-ui-core', 'jquery-ui-tabs'));
4696
  if (empty($statistics)) { $statistics = ''; }
5402
  * Save voice notes audio files via Ajax
5403
  */
5404
  if ( ! function_exists( 'wplc_save_voice_notes_ajax' ) ) {
5405
+ add_action( 'wp_ajax_nopriv_wplc_save_voice_notes', 'wplc_save_voice_notes_ajax' );
5406
+ add_action( 'wp_ajax_wplc_save_voice_notes', 'wplc_save_voice_notes_ajax' );
5407
+
5408
+ function wplc_save_voice_notes_ajax() {
5409
+ if ( isset( $_FILES['file'] ) and ! $_FILES['file']['error'] ) {
5410
+ $upload_dir = wp_upload_dir();
5411
+ $base_dirname = $upload_dir['basedir'] . '/wp_live_chat/';
5412
+ $base_url = $upload_dir['baseurl'] . '/wp_live_chat/';
5413
+
5414
+ if ( ! file_exists( $base_dirname ) ) {
5415
+ @mkdir( $base_dirname );
5416
+ }
5417
+
5418
+ $fname = preg_replace('/[^A-Za-z0-9 _ .-]/', '', $_FILES['file']['name']);
5419
+ $fname = time().str_replace(" ", "_", $fname);
5420
+
5421
+ if ( file_exists($base_dirname .$fname)) {
5422
+ $fname = rand( 0, 200 ) . "-" . $fname;
5423
+ }
5424
+
5425
+ if ( move_uploaded_file( $_FILES['file']['tmp_name'], $base_dirname . $fname . '.wav')) {
5426
+ echo $base_url . $fname . '.wav';
5427
+ } else {
5428
+ echo 0;
5429
+ }
5430
+ }
5431
+ die();
5432
+ }
 
 
5433
  }
5434
 
5435
  /**
5549
  }
5550
 
5551
  }
5552
+ add_action('wplc_hook_initiate_chat', 'wplc_mrg_chat_notification_extender', 99, 1);
5553
+
5554
+
5555
+ /*
5556
+ * registers wplc_common_node.js passing WPLC_PLUGIN_URL
5557
+ */
5558
+
5559
+ function wplc_register_common_node() {
5560
+ wp_register_script('wplc-admin-js-agent-common', WPLC_PLUGIN_URL.'/js/wplc_common_node.js', null, WPLC_PLUGIN_VERSION, false);
5561
+ $node_config=array(
5562
+ 'baseurl'=>WPLC_PLUGIN_URL
5563
+ );
5564
+ wp_localize_script( 'wplc-admin-js-agent-common', 'config', $node_config );
5565
+ wp_enqueue_script('wplc-admin-js-agent-common');
5566
+ }
images/48px.png CHANGED
File without changes
images/48px_n.png CHANGED
File without changes
images/arrow.png ADDED
Binary file
images/browsers/android browser_16x16.png ADDED
Binary file
images/browsers/chrome webview_16x16.png ADDED
Binary file
images/browsers/chrome_16x16.png ADDED
Binary file
images/browsers/chrome_32x32.png ADDED
Binary file
images/browsers/edge_16x16.png ADDED
Binary file
images/browsers/edge_32x32.png ADDED
Binary file
images/browsers/facebook_16x16.png ADDED
Binary file
images/browsers/firefox_16x16.png ADDED
Binary file
images/browsers/firefox_32x32.png ADDED
Binary file
images/browsers/ie_16x16.png ADDED
Binary file
images/browsers/ie_32x32.png ADDED
Binary file
images/browsers/internet-explorer_16x16.png ADDED
Binary file
images/browsers/internet-explorer_32x32.png ADDED
Binary file
images/browsers/mobile safari_16x16.png ADDED
Binary file
images/browsers/mobile safari_32x32.png ADDED
Binary file
images/browsers/opera_16x16.png ADDED
Binary file
images/browsers/opera_32x32.png ADDED
Binary file
images/browsers/safari_16x16.png ADDED
Binary file
images/browsers/safari_32x32.png ADDED
Binary file
images/browsers/unknown_16x16.png ADDED
Binary file
images/browsers/web_16x16.png ADDED
Binary file
images/browsers/web_32x32.png ADDED
Binary file
images/browsers/webkit_16x16.png ADDED
Binary file
images/devices/desktop.png ADDED
Binary file
images/devices/mobile.png ADDED
Binary file
images/flags/ad.png ADDED
Binary file
images/flags/ae.png ADDED
Binary file
images/flags/af.png ADDED
Binary file
images/flags/ag.png ADDED
Binary file
images/flags/ai.png ADDED
Binary file
images/flags/al.png ADDED
Binary file
images/flags/am.png ADDED
Binary file
images/flags/an.png ADDED
Binary file
images/flags/ao.png ADDED
Binary file
images/flags/ar.png ADDED
Binary file
images/flags/as.png ADDED
Binary file
images/flags/at.png ADDED
Binary file
images/flags/au.png ADDED
Binary file
images/flags/aw.png ADDED
Binary file
images/flags/ax.png ADDED
Binary file
images/flags/az.png ADDED
Binary file
images/flags/ba.png ADDED
Binary file
images/flags/bb.png ADDED
Binary file
images/flags/bd.png ADDED
Binary file
images/flags/be.png ADDED
Binary file
images/flags/bf.png ADDED
Binary file
images/flags/bg.png ADDED
Binary file
images/flags/bh.png ADDED
Binary file
images/flags/bi.png ADDED
Binary file
images/flags/bj.png ADDED
Binary file
images/flags/bm.png ADDED
Binary file
images/flags/bn.png ADDED
Binary file
images/flags/bo.png ADDED
Binary file
images/flags/br.png ADDED
Binary file
images/flags/bs.png ADDED
Binary file
images/flags/bt.png ADDED
Binary file
images/flags/bv.png ADDED
Binary file
images/flags/bw.png ADDED
Binary file
images/flags/by.png ADDED
Binary file
images/flags/bz.png ADDED
Binary file
images/flags/ca.png ADDED
Binary file
images/flags/catalonia.png ADDED
Binary file
images/flags/cc.png ADDED
Binary file
images/flags/cd.png ADDED
Binary file
images/flags/cf.png ADDED
Binary file
images/flags/cg.png ADDED
Binary file
images/flags/ch.png ADDED
Binary file
images/flags/ci.png ADDED
Binary file
images/flags/ck.png ADDED
Binary file
images/flags/cl.png ADDED
Binary file
images/flags/cm.png ADDED
Binary file
images/flags/cn.png ADDED
Binary file
images/flags/co.png ADDED
Binary file
images/flags/cr.png ADDED
Binary file
images/flags/cs.png ADDED
Binary file
images/flags/cu.png ADDED
Binary file
images/flags/cv.png ADDED
Binary file
images/flags/cx.png ADDED
Binary file
images/flags/cy.png ADDED
Binary file
images/flags/cz.png ADDED
Binary file
images/flags/de.png ADDED
Binary file
images/flags/dj.png ADDED
Binary file
images/flags/dk.png ADDED
Binary file
images/flags/dm.png ADDED
Binary file
images/flags/do.png ADDED
Binary file
images/flags/dz.png ADDED
Binary file
images/flags/ec.png ADDED
Binary file
images/flags/ee.png ADDED
Binary file
images/flags/eg.png ADDED
Binary file
images/flags/eh.png ADDED
Binary file
images/flags/england.png ADDED
Binary file
images/flags/er.png ADDED
Binary file
images/flags/es.png ADDED
Binary file
images/flags/et.png ADDED
Binary file
images/flags/europeanunion.png ADDED
Binary file
images/flags/fam.png ADDED
Binary file
images/flags/fi.png ADDED
Binary file
images/flags/fj.png ADDED
Binary file
images/flags/fk.png ADDED
Binary file
images/flags/fm.png ADDED
Binary file
images/flags/fo.png ADDED
Binary file
images/flags/fr.png ADDED
Binary file
images/flags/ga.png ADDED
Binary file
images/flags/gb.png ADDED
Binary file
images/flags/gd.png ADDED
Binary file
images/flags/ge.png ADDED
Binary file
images/flags/gf.png ADDED
Binary file
images/flags/gh.png ADDED
Binary file
images/flags/gi.png ADDED
Binary file
images/flags/gl.png ADDED
Binary file
images/flags/gm.png ADDED
Binary file
images/flags/gn.png ADDED
Binary file
images/flags/gp.png ADDED
Binary file
images/flags/gq.png ADDED
Binary file
images/flags/gr.png ADDED
Binary file
images/flags/gs.png ADDED
Binary file
images/flags/gt.png ADDED
Binary file
images/flags/gu.png ADDED
Binary file
images/flags/gw.png ADDED
Binary file
images/flags/gy.png ADDED
Binary file
images/flags/hk.png ADDED
Binary file
images/flags/hm.png ADDED
Binary file
images/flags/hn.png ADDED
Binary file
images/flags/hr.png ADDED
Binary file
images/flags/ht.png ADDED
Binary file
images/flags/hu.png ADDED
Binary file
images/flags/id.png ADDED
Binary file
images/flags/ie.png ADDED
Binary file
images/flags/il.png ADDED
Binary file
images/flags/in.png ADDED
Binary file
images/flags/io.png ADDED
Binary file
images/flags/iq.png ADDED
Binary file
images/flags/ir.png ADDED
Binary file
images/flags/is.png ADDED
Binary file
images/flags/it.png ADDED
Binary file
images/flags/jm.png ADDED
Binary file
images/flags/jo.png ADDED
Binary file
images/flags/jp.png ADDED
Binary file
images/flags/ke.png ADDED
Binary file
images/flags/kg.png ADDED
Binary file
images/flags/kh.png ADDED
Binary file
images/flags/ki.png ADDED
Binary file
images/flags/km.png ADDED
Binary file
images/flags/kn.png ADDED
Binary file
images/flags/kp.png ADDED
Binary file
images/flags/kr.png ADDED
Binary file
images/flags/kw.png ADDED
Binary file
images/flags/ky.png ADDED
Binary file
images/flags/kz.png ADDED
Binary file
images/flags/la.png ADDED
Binary file
images/flags/lb.png ADDED
Binary file
images/flags/lc.png ADDED
Binary file
images/flags/li.png ADDED
Binary file
images/flags/lk.png ADDED
Binary file
images/flags/lr.png ADDED
Binary file
images/flags/ls.png ADDED
Binary file
images/flags/lt.png ADDED
Binary file
images/flags/lu.png ADDED
Binary file
images/flags/lv.png ADDED
Binary file
images/flags/ly.png ADDED
Binary file
images/flags/ma.png ADDED
Binary file
images/flags/mc.png ADDED
Binary file
images/flags/md.png ADDED
Binary file
images/flags/me.png ADDED
Binary file
images/flags/mg.png ADDED
Binary file
images/flags/mh.png ADDED
Binary file
images/flags/mk.png ADDED
Binary file
images/flags/ml.png ADDED
Binary file
images/flags/mm.png ADDED
Binary file
images/flags/mn.png ADDED
Binary file
images/flags/mo.png ADDED
Binary file
images/flags/mp.png ADDED
Binary file
images/flags/mq.png ADDED
Binary file
images/flags/mr.png ADDED
Binary file
images/flags/ms.png ADDED
Binary file
images/flags/mt.png ADDED
Binary file
images/flags/mu.png ADDED
Binary file
images/flags/mv.png ADDED
Binary file
images/flags/mw.png ADDED
Binary file
images/flags/mx.png ADDED
Binary file
images/flags/my.png ADDED
Binary file
images/flags/mz.png ADDED
Binary file
images/flags/na.png ADDED
Binary file
images/flags/nc.png ADDED
Binary file
images/flags/ne.png ADDED
Binary file
images/flags/nf.png ADDED
Binary file
images/flags/ng.png ADDED
Binary file
images/flags/ni.png ADDED
Binary file
images/flags/nl.png ADDED
Binary file
images/flags/no.png ADDED
Binary file
images/flags/np.png ADDED
Binary file
images/flags/nr.png ADDED
Binary file
images/flags/nu.png ADDED
Binary file
images/flags/nz.png ADDED
Binary file
images/flags/om.png ADDED
Binary file
images/flags/pa.png ADDED
Binary file
images/flags/pe.png ADDED
Binary file
images/flags/pf.png ADDED
Binary file
images/flags/pg.png ADDED
Binary file
images/flags/ph.png ADDED
Binary file
images/flags/pk.png ADDED
Binary file
images/flags/pl.png ADDED
Binary file
images/flags/pm.png ADDED
Binary file
images/flags/pn.png ADDED
Binary file
images/flags/pr.png ADDED
Binary file
images/flags/ps.png ADDED
Binary file
images/flags/pt.png ADDED
Binary file
images/flags/pw.png ADDED
Binary file
images/flags/py.png ADDED
Binary file
images/flags/qa.png ADDED
Binary file
images/flags/re.png ADDED
Binary file
images/flags/ro.png ADDED
Binary file
images/flags/rs.png ADDED
Binary file
images/flags/ru.png ADDED
Binary file
images/flags/rw.png ADDED
Binary file
images/flags/sa.png ADDED
Binary file
images/flags/sb.png ADDED
Binary file
images/flags/sc.png ADDED
Binary file
images/flags/scotland.png ADDED
Binary file
images/flags/sd.png ADDED
Binary file
images/flags/se.png ADDED
Binary file
images/flags/sg.png ADDED
Binary file
images/flags/sh.png ADDED
Binary file
images/flags/si.png ADDED
Binary file
images/flags/sj.png ADDED
Binary file
images/flags/sk.png ADDED
Binary file
images/flags/sl.png ADDED
Binary file
images/flags/sm.png ADDED
Binary file
images/flags/sn.png ADDED
Binary file
images/flags/so.png ADDED
Binary file
images/flags/sr.png ADDED
Binary file
images/flags/st.png ADDED
Binary file
images/flags/sv.png ADDED
Binary file
images/flags/sy.png ADDED
Binary file
images/flags/sz.png ADDED
Binary file
images/flags/tc.png ADDED
Binary file
images/flags/td.png ADDED
Binary file
images/flags/tf.png ADDED
Binary file
images/flags/tg.png ADDED
Binary file
images/flags/th.png ADDED
Binary file
images/flags/tj.png ADDED
Binary file
images/flags/tk.png ADDED
Binary file
images/flags/tl.png ADDED
Binary file
images/flags/tm.png ADDED
Binary file
images/flags/tn.png ADDED
Binary file
images/flags/to.png ADDED
Binary file
images/flags/tr.png ADDED
Binary file
images/flags/tt.png ADDED
Binary file
images/flags/tv.png ADDED
Binary file
images/flags/tw.png ADDED
Binary file
images/flags/tz.png ADDED
Binary file
images/flags/ua.png ADDED
Binary file
images/flags/ug.png ADDED
Binary file
images/flags/um.png ADDED
Binary file
images/flags/us.png ADDED
Binary file
images/flags/uy.png ADDED
Binary file
images/flags/uz.png ADDED
Binary file
images/flags/va.png ADDED
Binary file
images/flags/vc.png ADDED
Binary file
images/flags/ve.png ADDED
Binary file
images/flags/vg.png ADDED
Binary file
images/flags/vi.png ADDED
Binary file
images/flags/vn.png ADDED
Binary file
images/flags/vu.png ADDED
Binary file
images/flags/wales.png ADDED
Binary file
images/flags/wf.png ADDED
Binary file
images/flags/ws.png ADDED
Binary file
images/flags/ye.png ADDED
Binary file
images/flags/yt.png ADDED
Binary file
images/flags/za.png ADDED
Binary file
images/flags/zm.png ADDED
Binary file
images/flags/zw.png ADDED
Binary file
images/platforms/Android.png ADDED
Binary file
images/platforms/iOS.png ADDED
Binary file
images/random_images/1.jpeg ADDED
Binary file
images/random_images/10.jpeg ADDED
Binary file
images/random_images/11.jpeg ADDED
Binary file
images/random_images/12.jpeg ADDED
Binary file
images/random_images/13.jpeg ADDED
Binary file
images/random_images/2.jpeg ADDED
Binary file
images/random_images/3.jpeg ADDED
Binary file
images/random_images/4.jpeg ADDED
Binary file
images/random_images/5.jpeg ADDED
Binary file
images/random_images/6.jpeg ADDED
Binary file
images/random_images/7.jpeg ADDED
Binary file
images/random_images/8.jpeg ADDED
Binary file
images/random_images/9.jpeg ADDED
Binary file
images/random_images/offline_images/1.jpg ADDED
Binary file
images/random_images/offline_images/2.jpg ADDED
Binary file
images/random_images/offline_images/3.jpg ADDED
Binary file
images/random_images/offline_images/4.jpg ADDED
Binary file
images/random_images/offline_images/5.jpg ADDED
Binary file
images/random_images/offline_images/6.jpg ADDED
Binary file
images/random_images/offline_images/7.jpg ADDED
Binary file
images/random_images/offline_images/8.jpg ADDED
Binary file
images/random_images/offline_images/9.jpg ADDED
Binary file
images/wplc_loading.png ADDED
Binary file
includes/blocks/wplc-chat-box/block.js CHANGED
@@ -11,7 +11,7 @@
11
  return this.replace(/\\(.)/mg, "$1");
12
  }
13
 
14
- var wplc_logo = ( wplc_settings.wplc_logo ) ? wplc_settings.wplc_logo : wplc_api_server + '/remote_files/assets/images/wplc_loading.png';
15
  var wplc_text = ( wplc_settings.wplc_text ) ? wplc_settings.wplc_text : 'Live Chat';
16
  var wplc_icon = ( wplc_settings.wplc_icon ) ? wplc_settings.wplc_icon : 'fa-commenting-o';
17
  var classes = ( wplc_settings.wplc_enabled == 0 ) ? ' disabled' : '';
11
  return this.replace(/\\(.)/mg, "$1");
12
  }
13
 
14
+ var wplc_logo = ( wplc_settings.wplc_logo ) ? wplc_settings.wplc_logo : wplc_baseurl + '/images/wplc_loading.png';
15
  var wplc_text = ( wplc_settings.wplc_text ) ? wplc_settings.wplc_text : 'Live Chat';
16
  var wplc_icon = ( wplc_settings.wplc_icon ) ? wplc_settings.wplc_icon : 'fa-commenting-o';
17
  var classes = ( wplc_settings.wplc_enabled == 0 ) ? ' disabled' : '';
includes/blocks/wplc-chat-box/index.php CHANGED
@@ -29,7 +29,7 @@ function wplc_gutenberg_settings_content() {
29
  $gutenberg_enable = ( $gutenberg_settings['wplc_gutenberg_enable'] !== null ) ? $gutenberg_settings['wplc_gutenberg_enable'] : 1;
30
  $checked = ( @$gutenberg_enable == 1 ? 'checked' : '' );
31
  $gutenberg_size = ( $gutenberg_settings['wplc_gutenberg_size'] ) ? $gutenberg_settings['wplc_gutenberg_size'] : 2;
32
- $gutenberg_defail_logo = WLPC_UPDATE_SERVER.'/remote_files/assets/images/wplc_loading.png';
33
  $gutenberg_logo = ( $gutenberg_settings['wplc_gutenberg_logo'] == '' ) ? $gutenberg_defail_logo : $gutenberg_settings['wplc_gutenberg_logo'];
34
  $gutenberg_text = ( $gutenberg_settings['wplc_gutenberg_text'] ) ? $gutenberg_settings['wplc_gutenberg_text'] : 'Live Chat';
35
  $gutenberg_icon = ( $gutenberg_settings['wplc_gutenberg_icon'] ) ? $gutenberg_settings['wplc_gutenberg_icon'] : 'fa-commenting-o';
@@ -152,7 +152,7 @@ function wplc_gutenberg_save_settings() {
152
  if (isset($_POST['wplc_gutenberg_logo']) && $_POST['wplc_gutenberg_logo'] !== '0') {
153
  $wplc_gutenberg_data['wplc_gutenberg_logo'] = esc_attr($_POST['wplc_gutenberg_logo']);
154
  } else {
155
- $wplc_gutenberg_data['wplc_gutenberg_logo'] = WLPC_UPDATE_SERVER.'/remote_files/assets/images/wplc_loading.png';
156
  }
157
 
158
  if (isset($_POST['wplc_gutenberg_size']) && $_POST['wplc_gutenberg_size'] !== '0') {
29
  $gutenberg_enable = ( $gutenberg_settings['wplc_gutenberg_enable'] !== null ) ? $gutenberg_settings['wplc_gutenberg_enable'] : 1;
30
  $checked = ( @$gutenberg_enable == 1 ? 'checked' : '' );
31
  $gutenberg_size = ( $gutenberg_settings['wplc_gutenberg_size'] ) ? $gutenberg_settings['wplc_gutenberg_size'] : 2;
32
+ $gutenberg_defail_logo = WPLC_PLUGIN_URL.'/images/wplc_loading.png';
33
  $gutenberg_logo = ( $gutenberg_settings['wplc_gutenberg_logo'] == '' ) ? $gutenberg_defail_logo : $gutenberg_settings['wplc_gutenberg_logo'];
34
  $gutenberg_text = ( $gutenberg_settings['wplc_gutenberg_text'] ) ? $gutenberg_settings['wplc_gutenberg_text'] : 'Live Chat';
35
  $gutenberg_icon = ( $gutenberg_settings['wplc_gutenberg_icon'] ) ? $gutenberg_settings['wplc_gutenberg_icon'] : 'fa-commenting-o';
152
  if (isset($_POST['wplc_gutenberg_logo']) && $_POST['wplc_gutenberg_logo'] !== '0') {
153
  $wplc_gutenberg_data['wplc_gutenberg_logo'] = esc_attr($_POST['wplc_gutenberg_logo']);
154
  } else {
155
+ $wplc_gutenberg_data['wplc_gutenberg_logo'] = WPLC_PLUGIN_URL.'/images/wplc_loading.png';
156
  }
157
 
158
  if (isset($_POST['wplc_gutenberg_size']) && $_POST['wplc_gutenberg_size'] !== '0') {
includes/dashboard_page.php CHANGED
@@ -19,8 +19,6 @@
19
  <div class="wrap wplc_wrap">
20
  <h2 id="wplc_dashboard_page_title"><?php _e( 'WP Live Chat Support Dashboard', 'wplivechat' ) ?></h2>
21
  <div class="wplc_dashboard_container">
22
-
23
-
24
  <div class="wplc_dashboard_row">
25
  <div class="wplc_panel_col wplc_col_6">
26
  <div class="wplc_panel">
@@ -29,61 +27,38 @@
29
  </div>
30
  <div class="wplc_panel_col wplc_col_6">
31
  <div class="wplc_panel pull-right">
32
-
33
  </div>
34
  </div>
35
  </div>
36
 
37
-
38
-
39
  <div class="wplc_dashboard_row">
40
  <div class="wplc_panel_col wplc_col_12">
41
  <div class="wplc_panel">
42
  <div class="wplc_material_panel">
43
-
44
-
45
- <div class="wplc_panel_col wplc_col_4 wplc-center">
46
- <h4><?php _e("Actions","wplivechat"); ?></h4>
47
- <p><a href='admin.php?page=wplivechat-menu&subaction=override' class='button-primary'><?php echo __("Chat with Visitors","wplivechat"); ?></a></p>
48
- <p><a href='admin.php?page=wplivechat-menu-settings' class='button-secondary'><?php echo __("Settings","wplivechat"); ?></a></p>
49
- </div>
50
-
51
- <div class="wplc_panel_col wplc_col_4 wplc-center">
52
- <h4><?php _e("Active Visitors","wplivechat"); ?><br />&nbsp;</h4>
53
- <span class='wplc-stat' id='totalVisitors'>...</span>
54
- <p><a href='admin.php?page=wplivechat-menu&subaction=override' class='button-secondary'><?php echo __("Chat now","wplivechat"); ?></a></p>
55
- </div>
56
-
57
- <div class="wplc_panel_col wplc_col_4 wplc-center">
58
- <h4><?php _e("Conversations","wplivechat"); ?><br /><span class='smaller'><?php _e("Last 90 days","wplivechat"); ?></span></h4>
59
- <span class='wplc-stat'><?php echo $total_count; ?></span>
60
- </div>
61
-
62
-
63
  </div>
64
  </div>
65
  </div>
66
  </div>
67
 
68
- <script type="text/javascript">
69
- function resizeIframe(iframe) {
70
- setTimeout(function() {
71
- iframe.height = iframe.contentWindow.document.body.scrollHeight + "px";
72
- },3000);
73
-
74
- }
75
- </script>
76
-
77
  <div class="wplc_dashboard_row">
78
  <div class="wplc_panel_col wplc_col_12">
79
- <div class="wplc_panel">
80
-
81
-
82
- <div class="resp-container">
83
- <iframe style="overflow:hidden" scrolling="no" onload="resizeIframe(this)" id="idIframe" class="resp-iframe" width="100%" height="600" src="<?php echo WLPC_UPDATE_SERVER;?>/remote_files/external-dashboard.php"></iframe>
84
- </div>
85
-
86
- </div>
87
  </div>
88
  </div>
89
 
19
  <div class="wrap wplc_wrap">
20
  <h2 id="wplc_dashboard_page_title"><?php _e( 'WP Live Chat Support Dashboard', 'wplivechat' ) ?></h2>
21
  <div class="wplc_dashboard_container">
 
 
22
  <div class="wplc_dashboard_row">
23
  <div class="wplc_panel_col wplc_col_6">
24
  <div class="wplc_panel">
27
  </div>
28
  <div class="wplc_panel_col wplc_col_6">
29
  <div class="wplc_panel pull-right">
 
30
  </div>
31
  </div>
32
  </div>
33
 
 
 
34
  <div class="wplc_dashboard_row">
35
  <div class="wplc_panel_col wplc_col_12">
36
  <div class="wplc_panel">
37
  <div class="wplc_material_panel">
38
+ <div class="wplc_panel_col wplc_col_4 wplc-center">
39
+ <h4><?php _e("Actions","wplivechat"); ?></h4>
40
+ <p><a href='admin.php?page=wplivechat-menu&subaction=override' class='button-primary'><?php echo __("Chat with Visitors","wplivechat"); ?></a></p>
41
+ <p><a href='admin.php?page=wplivechat-menu-settings' class='button-secondary'><?php echo __("Settings","wplivechat"); ?></a></p>
42
+ </div>
43
+ <div class="wplc_panel_col wplc_col_4 wplc-center">
44
+ <h4><?php _e("Active Visitors","wplivechat"); ?><br />&nbsp;</h4>
45
+ <span class='wplc-stat' id='totalVisitors'>...</span>
46
+ <p><a href='admin.php?page=wplivechat-menu&subaction=override' class='button-secondary'><?php echo __("Chat now","wplivechat"); ?></a></p>
47
+ </div>
48
+ <div class="wplc_panel_col wplc_col_4 wplc-center">
49
+ <h4><?php _e("Conversations","wplivechat"); ?><br /><span class='smaller'><?php _e("Last 90 days","wplivechat"); ?></span></h4>
50
+ <span class='wplc-stat'><?php echo $total_count; ?></span>
51
+ </div>
 
 
 
 
 
 
52
  </div>
53
  </div>
54
  </div>
55
  </div>
56
 
 
 
 
 
 
 
 
 
 
57
  <div class="wplc_dashboard_row">
58
  <div class="wplc_panel_col wplc_col_12">
59
+ <div class="wplc_panel">
60
+ <div id="wplc_blog_posts"></div>
61
+ </div>
 
 
 
 
 
62
  </div>
63
  </div>
64
 
includes/modal_control.php CHANGED
@@ -49,9 +49,8 @@ add_action('admin_print_scripts', 'wplc_admin_modal_javascript');
49
  * @return void
50
  */
51
  function wplc_admin_modal_javascript(){
52
- global $wplc_version;
53
  if(isset($_GET['page']) && $_GET['page'] == 'wplivechat-menu'){
54
- wp_register_script('wplc-admin-modal-js', plugins_url('../js/wplc-admin-modal.js', __FILE__), array(), $wplc_version);
55
  wp_enqueue_script('wplc-admin-modal-js');
56
  }
57
  }
49
  * @return void
50
  */
51
  function wplc_admin_modal_javascript(){
 
52
  if(isset($_GET['page']) && $_GET['page'] == 'wplivechat-menu'){
53
+ wp_register_script('wplc-admin-modal-js', plugins_url('../js/wplc-admin-modal.js', __FILE__), array(), WPLC_PLUGIN_VERSION);
54
  wp_enqueue_script('wplc-admin-modal-js');
55
  }
56
  }
includes/shortcodes.php CHANGED
@@ -7,23 +7,23 @@ function wplc_add_shortcode() {
7
  }
8
 
9
  function wplc_live_chat_box_shortcode( $atts, $content = null ) {
10
- $wplc_settings = get_option("WPLC_SETTINGS");
11
- $logged_in = apply_filters("wplc_loggedin_filter",false);
12
- $wplc_using_locale = (isset($wplc_settings['wplc_using_localization_plugin']) && $wplc_settings['wplc_using_localization_plugin'] == 1) ? true : false;
13
-
14
- $wplc_chat_box_content = wplc_theme_control_function($wplc_settings, $logged_in, $wplc_using_locale, $_COOKIE['wplc_cid']);
15
-
16
- // get attributes
17
- $atts = shortcode_atts(
18
- array(
19
- 'style' => 'normal'
20
- ),
21
- $atts,
22
- 'wplc_live_chat'
23
- );
24
 
25
- $output = '<div class="wplc_live_chat_support_shortcode wplc_' . $atts['style'] . '">';
26
- $output .= $wplc_chat_box_content;
27
- $output .= '</div">';
28
- return $output;
 
 
 
 
 
 
 
 
 
29
  }
7
  }
8
 
9
  function wplc_live_chat_box_shortcode( $atts, $content = null ) {
10
+ $wplc_settings = get_option("WPLC_SETTINGS");
11
+ $logged_in = apply_filters("wplc_loggedin_filter",false);
12
+ $wplc_using_locale = (isset($wplc_settings['wplc_using_localization_plugin']) && $wplc_settings['wplc_using_localization_plugin'] == 1) ? true : false;
13
+ $cid = intval($_COOKIE['wplc_cid']);
14
+ $wplc_chat_box_content = wplc_theme_control_function($wplc_settings, $logged_in, $wplc_using_locale, $cid);
 
 
 
 
 
 
 
 
 
15
 
16
+ // get attributes
17
+ $atts = shortcode_atts(
18
+ array(
19
+ 'style' => 'normal'
20
+ ),
21
+ $atts,
22
+ 'wplc_live_chat'
23
+ );
24
+
25
+ $output = '<div class="wplc_live_chat_support_shortcode wplc_' . $atts['style'] . '">';
26
+ $output .= $wplc_chat_box_content;
27
+ $output .= '</div">';
28
+ return $output;
29
  }
includes/surveys.php CHANGED
@@ -119,8 +119,7 @@ function wplc_survey_hook_control_settings_page_more_tabs() {
119
 
120
  <?php
121
 
122
- global $wplc_version;
123
- wp_register_script('wplc-lead-form-script', plugins_url('../js/wplc_lead_forms.js', __FILE__),array('jquery'),$wplc_version);
124
  wp_enqueue_script('wplc-lead-form-script');
125
  }
126
 
@@ -214,9 +213,8 @@ function wplc_nimble_load_scripts() {
214
  if( isset( $settings['lead_form'] ) ){ $ns_lfid = $settings['lead_form']; } else { $ns_lfid = 'false'; }
215
 
216
  //wp_enqueue_script( 'nimble-squirrel-user-script', '//nimblesquirrel.com/api/nimblesquirrel.js', array(), '1.0.0', true );
217
-
218
-
219
- wp_enqueue_script( 'nimble-squirrel-user-script', 'https://nimblesquirrel.com/api/v2.0/nimblesquirrel.js', array(), '1.0.0', true );
220
  wp_localize_script( 'nimble-squirrel-user-script', 'ns_id', $ns_id );
221
 
222
 
@@ -311,9 +309,8 @@ function wplc_hook_survey_push_js_to_front() {
311
 
312
  if( isset( $settings['wplc_enable_surveys'] ) && intval($settings['wplc_enable_surveys']) == 1 ){
313
 
314
- global $wplc_version;
315
  $wplc_settings = get_option('WPLC_SETTINGS');
316
- wp_register_script('wplc-survey-script', plugins_url('../js/wplc_surveys.js', __FILE__),array('jquery'),$wplc_version);
317
  wp_enqueue_script('wplc-survey-script');
318
  wp_localize_script( 'wplc-survey-script', 'wplc_end_chat_string', $wplc_settings['wplc_pro_sst1e_survey'] );
319
  wp_localize_script( 'wplc-survey-script', 'wplc_button_string', $wplc_settings['wplc_pro_sst1_survey'] );
119
 
120
  <?php
121
 
122
+ wp_register_script('wplc-lead-form-script', plugins_url('../js/wplc_lead_forms.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
 
123
  wp_enqueue_script('wplc-lead-form-script');
124
  }
125
 
213
  if( isset( $settings['lead_form'] ) ){ $ns_lfid = $settings['lead_form']; } else { $ns_lfid = 'false'; }
214
 
215
  //wp_enqueue_script( 'nimble-squirrel-user-script', '//nimblesquirrel.com/api/nimblesquirrel.js', array(), '1.0.0', true );
216
+ //wp_enqueue_script( 'nimble-squirrel-user-script', 'https://nimblesquirrel.com/api/v2.0/nimblesquirrel.js', array(), '1.0.0', true );
217
+ wp_enqueue_script( 'nimble-squirrel-user-script', plugins_url('../js/nimblesquirrel.js', __FILE__), array(), '1.0.0', true );
 
218
  wp_localize_script( 'nimble-squirrel-user-script', 'ns_id', $ns_id );
219
 
220
 
309
 
310
  if( isset( $settings['wplc_enable_surveys'] ) && intval($settings['wplc_enable_surveys']) == 1 ){
311
 
 
312
  $wplc_settings = get_option('WPLC_SETTINGS');
313
+ wp_register_script('wplc-survey-script', plugins_url('../js/wplc_surveys.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
314
  wp_enqueue_script('wplc-survey-script');
315
  wp_localize_script( 'wplc-survey-script', 'wplc_end_chat_string', $wplc_settings['wplc_pro_sst1e_survey'] );
316
  wp_localize_script( 'wplc-survey-script', 'wplc_button_string', $wplc_settings['wplc_pro_sst1_survey'] );
includes/wplc_custom_fields.php CHANGED
@@ -28,6 +28,10 @@ function wplc_custom_fields_page(){
28
 
29
  $custom_field_id = sanitize_text_field( $_GET['fid'] );
30
 
 
 
 
 
31
  wplc_delete_custom_field_mrg( $custom_field_id );
32
  }
33
 
@@ -95,8 +99,10 @@ function wplc_custom_fields_display_page_mrg(){
95
  $current_content = str_replace("\\r", "", $current_content);
96
  $current_content = json_decode( stripslashes( $current_content ) );
97
  $content .= "<td>";
98
- foreach( $current_content as $val ){
99
- $content .= "<span>".$val."</span><br/>";
 
 
100
  }
101
  $content .= "</td>";
102
 
@@ -137,6 +143,8 @@ function wplc_custom_fields_add_page_mrg(){
137
 
138
  global $wpdb;
139
 
 
 
140
  $content = "";
141
  $content .= "<div class='wrap wplc_wrap'>";
142
  $content .= " <h2>".__("Create a Custom Field", "wplivechat")."</h2>";
@@ -170,6 +178,7 @@ function wplc_custom_fields_add_page_mrg(){
170
  $content .= " </tr>";
171
  $content .= " </tbody>";
172
  $content .= " </table>";
 
173
  $content .= " </form>";
174
  $content .= "</div>";
175
  echo $content;
@@ -178,12 +187,16 @@ function wplc_custom_fields_add_page_mrg(){
178
  function wplc_custom_fields_edit_page_mrg( $id ){
179
 
180
  global $wpdb;
 
 
 
 
181
  $wplc_custom_fields_table = $wpdb->prefix."wplc_custom_fields";
182
 
183
  $id = sanitize_text_field( $id );
184
 
185
- $sql = "SELECT * FROM $wplc_custom_fields_table WHERE `id` = $id";
186
-
187
  $result = $wpdb->get_row( $sql );
188
 
189
  if($result){
@@ -233,6 +246,7 @@ function wplc_custom_fields_edit_page_mrg( $id ){
233
  $content .= " </tr>";
234
  $content .= " </tbody>";
235
  $content .= " </table>";
 
236
  $content .= " </form>";
237
  $content .= "</div>";
238
  } else {
@@ -248,11 +262,13 @@ function wplc_custom_fields_edit_page_mrg( $id ){
248
 
249
  function wplc_custom_fields_delete_page_mrg( $id ){
250
 
 
 
251
  $content = "";
252
 
253
  $content .= "<div class='error'>";
254
  $content .= "<p>".__("Are you sure you want to delete this custom field?", "wplivechat")."</p>";
255
- $content .= "<p><a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields&wplc_action=delete_custom_field&fid=$id&confirmed=true")."'>".__("Yes", "wplivechat")."</a> | <a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields")."'>".__("No", "wplivechat")."</a></p>";
256
  $content .= "</div>";
257
 
258
  echo $content;
@@ -348,8 +364,9 @@ function wplc_advanced_info_custom_fields_mrg( $string, $cid, $name, $chat_data
348
  $extra_data = "";
349
  $content = "";
350
  $atleast_one_field = false;
 
351
  if (!$chat_data) { $chat_data = wplc_get_chat_data( $cid, __LINE__ ); }
352
- if( $chat_data->other ){
353
  $extra_data = maybe_unserialize( $chat_data->other );
354
 
355
  if( $extra_data && isset( $extra_data['wplc_extra_data'] ) && isset( $extra_data['wplc_extra_data']['custom_fields'] ) ) {
@@ -401,6 +418,12 @@ function wplc_custom_fields_admin_head_mrg(){
401
 
402
  $field_value = explode( "\n", $dropdown_contents );
403
 
 
 
 
 
 
 
404
  $field_value = json_encode( $field_value );
405
 
406
  } else {
@@ -410,6 +433,10 @@ function wplc_custom_fields_admin_head_mrg(){
410
  }
411
 
412
  if ( isset( $_POST['wplc_create_custom_field'] ) ) {
 
 
 
 
413
  $wpdb->insert(
414
  $custom_field_table,
415
  array(
@@ -426,6 +453,10 @@ function wplc_custom_fields_admin_head_mrg(){
426
  )
427
  );
428
  } else if ( isset( $_POST['wplc_update_custom_field'] ) ) {
 
 
 
 
429
  $wpdb->update(
430
  $custom_field_table,
431
  array(
@@ -456,7 +487,7 @@ add_filter("wplc_start_chat_hook_other_data_hook", "wplc_custom_fields_start_cha
456
 
457
  function wplc_custom_fields_start_chat_other_data_hook_mrg($other_data){
458
  if(isset($_POST['wplc_extra_data']) && isset($_POST['wplc_extra_data']['custom_fields'])){
459
- $other_data['wplc_extra_data']['custom_fields'] = $_POST['wplc_extra_data']['custom_fields'];
460
  }
461
  return $other_data;
462
  }
28
 
29
  $custom_field_id = sanitize_text_field( $_GET['fid'] );
30
 
31
+ if (!isset($_GET['wplc_custom_field_nonce']) || !wp_verify_nonce($_GET['wplc_custom_field_nonce'], 'wplc_custom_field_nonce')){
32
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
33
+ }
34
+
35
  wplc_delete_custom_field_mrg( $custom_field_id );
36
  }
37
 
99
  $current_content = str_replace("\\r", "", $current_content);
100
  $current_content = json_decode( stripslashes( $current_content ) );
101
  $content .= "<td>";
102
+ if($current_content !== NULL){
103
+ foreach( $current_content as $val ){
104
+ $content .= "<span>".$val."</span><br/>";
105
+ }
106
  }
107
  $content .= "</td>";
108
 
143
 
144
  global $wpdb;
145
 
146
+ $wplc_custom_field_nonce = wp_create_nonce('wplc_custom_field_nonce');
147
+
148
  $content = "";
149
  $content .= "<div class='wrap wplc_wrap'>";
150
  $content .= " <h2>".__("Create a Custom Field", "wplivechat")."</h2>";
178
  $content .= " </tr>";
179
  $content .= " </tbody>";
180
  $content .= " </table>";
181
+ $content .= "<input name='wplc_custom_field_nonce' type='hidden' value='" . $wplc_custom_field_nonce . "' >";
182
  $content .= " </form>";
183
  $content .= "</div>";
184
  echo $content;
187
  function wplc_custom_fields_edit_page_mrg( $id ){
188
 
189
  global $wpdb;
190
+
191
+ $wplc_custom_field_nonce = wp_create_nonce('wplc_custom_field_nonce');
192
+
193
+
194
  $wplc_custom_fields_table = $wpdb->prefix."wplc_custom_fields";
195
 
196
  $id = sanitize_text_field( $id );
197
 
198
+ $sql = "SELECT * FROM $wplc_custom_fields_table WHERE `id` = %d";
199
+ $sql = $wpdb->prepare($sql, $id);
200
  $result = $wpdb->get_row( $sql );
201
 
202
  if($result){
246
  $content .= " </tr>";
247
  $content .= " </tbody>";
248
  $content .= " </table>";
249
+ $content .= "<input name='wplc_custom_field_nonce' type='hidden' value='" . $wplc_custom_field_nonce . "' >";
250
  $content .= " </form>";
251
  $content .= "</div>";
252
  } else {
262
 
263
  function wplc_custom_fields_delete_page_mrg( $id ){
264
 
265
+ $wplc_custom_field_nonce = wp_create_nonce('wplc_custom_field_nonce');
266
+
267
  $content = "";
268
 
269
  $content .= "<div class='error'>";
270
  $content .= "<p>".__("Are you sure you want to delete this custom field?", "wplivechat")."</p>";
271
+ $content .= "<p><a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields&wplc_action=delete_custom_field&fid=$id&confirmed=true&wplc_custom_field_nonce=" . $wplc_custom_field_nonce )."'>".__("Yes", "wplivechat")."</a> | <a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields")."'>".__("No", "wplivechat")."</a></p>";
272
  $content .= "</div>";
273
 
274
  echo $content;
364
  $extra_data = "";
365
  $content = "";
366
  $atleast_one_field = false;
367
+ $cid = intval($cid);
368
  if (!$chat_data) { $chat_data = wplc_get_chat_data( $cid, __LINE__ ); }
369
+ if( $chat_data && $chat_data->other ){
370
  $extra_data = maybe_unserialize( $chat_data->other );
371
 
372
  if( $extra_data && isset( $extra_data['wplc_extra_data'] ) && isset( $extra_data['wplc_extra_data']['custom_fields'] ) ) {
418
 
419
  $field_value = explode( "\n", $dropdown_contents );
420
 
421
+ if($field_value){
422
+ foreach ($field_value as $key => $value) {
423
+ $field_value[$key] = sanitize_text_field($value);
424
+ }
425
+ }
426
+
427
  $field_value = json_encode( $field_value );
428
 
429
  } else {
433
  }
434
 
435
  if ( isset( $_POST['wplc_create_custom_field'] ) ) {
436
+ if (!isset($_POST['wplc_custom_field_nonce']) || !wp_verify_nonce($_POST['wplc_custom_field_nonce'], 'wplc_custom_field_nonce')){
437
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
438
+ }
439
+
440
  $wpdb->insert(
441
  $custom_field_table,
442
  array(
453
  )
454
  );
455
  } else if ( isset( $_POST['wplc_update_custom_field'] ) ) {
456
+ if (!isset($_POST['wplc_custom_field_nonce']) || !wp_verify_nonce($_POST['wplc_custom_field_nonce'], 'wplc_custom_field_nonce')){
457
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
458
+ }
459
+
460
  $wpdb->update(
461
  $custom_field_table,
462
  array(
487
 
488
  function wplc_custom_fields_start_chat_other_data_hook_mrg($other_data){
489
  if(isset($_POST['wplc_extra_data']) && isset($_POST['wplc_extra_data']['custom_fields'])){
490
+ $other_data['wplc_extra_data']['custom_fields'] = sanitize_text_field($_POST['wplc_extra_data']['custom_fields']);
491
  }
492
  return $other_data;
493
  }
includes/wplc_data_triggers.php CHANGED
@@ -9,8 +9,7 @@ function wplc_triggers_page(){
9
 
10
  echo $content;
11
 
12
- global $wplc_version;
13
- if (intval(str_replace(".","",$wplc_version)) < 6205) {
14
  echo "<div class='update-nag' style='padding-top:0px;margin-top:5px;margin-bottom:10px;'>";
15
  echo "<p>In order to use data triggers, please ensure you are using the latest basic version (version 6.2.05 or newer).</p>";
16
  echo "<a title='Update Now' href='./update-core.php' class='button button-primary'>".__("Update now" ,"wplivechat")."</a>";
@@ -36,10 +35,12 @@ function wplc_mrg_get_add_trigger_content(){
36
 
37
  $content = "";
38
 
 
 
39
  //Content Vars
40
  $trigger_name = "";
41
  $trigger_type = 0;
42
- $trigger_content;
43
  $trigger_replace = "checked";
44
  $trigger_enabled = "checked";
45
 
@@ -125,6 +126,7 @@ function wplc_mrg_get_add_trigger_content(){
125
  $content .= "</tr>";
126
 
127
  $content .= "</table>";
 
128
  $content .= "</form>";
129
 
130
  if($header_array){
@@ -200,21 +202,21 @@ function wplc_mrg_trigger_admin_head(){
200
  $return_array["errors"] = array();
201
 
202
  if(isset($_POST['wplc_trigger_name']) && $_POST['wplc_trigger_name'] !== ""){
203
- $return_array["trigger_name"] = $_POST['wplc_trigger_name'];
204
  } else {
205
  $return_array["errors"][count($return_array["errors"]) >= 1 ? count($return_array["errors"]) : 0] = "Name cannot be empty";
206
  $form_valid = false; //No Longer Valid
207
  }
208
 
209
  if(isset($_POST['wplc_trigger_type']) && $_POST['wplc_trigger_type'] !== ""){
210
- $return_array["trigger_type"] = $_POST['wplc_trigger_type'];
211
  }
212
 
213
  $serialized_content = array();
214
 
215
  //Validation added here for serialized array
216
  if(isset($_POST['wplc_trigger_pages']) && $_POST['wplc_trigger_pages'] !== ""){
217
- $serialized_content['pages'] = esc_attr($_POST['wplc_trigger_pages']);
218
  } else {
219
  $serialized_content['pages'] = "";
220
  }
@@ -252,6 +254,10 @@ function wplc_mrg_trigger_admin_head(){
252
  if($_GET['wplc_action'] == "add_trigger"){
253
  if($form_valid && isset($_POST['wplc_trigger_submit'])){
254
  //All good continue
 
 
 
 
255
  if(wplc_add_trigger_mrg($return_array)){
256
  //Redirect here
257
  echo "<script> window.location = '".admin_url()."admin.php?page=wplivechat-menu-triggers"."';</script>";
@@ -266,6 +272,10 @@ function wplc_mrg_trigger_admin_head(){
266
  if (isset($return_array["errors"])) { $edit_array["errors"] = $return_array["errors"]; }
267
  //Submit data first
268
  if($form_valid && isset($_POST['wplc_trigger_submit'])){
 
 
 
 
269
  //All good continue
270
  if(isset($_GET['trigger_id'])){
271
  if(wplc_edit_trigger_mrg($return_array, intval($_GET['trigger_id']))){
@@ -306,6 +316,10 @@ function wplc_mrg_trigger_admin_head(){
306
  }
307
 
308
  if(isset($_POST['delete_confirm'])){
 
 
 
 
309
  //Delete now
310
  if(wplc_delete_trigger_mrg(intval($_GET['trigger_id']))){
311
  //Success
@@ -326,11 +340,11 @@ function wplc_add_trigger_mrg($trigger_data){
326
  global $wpdb;
327
  global $wplc_tblname_chat_triggers;
328
  if($trigger_data){
329
- $trigger_name;
330
- $trigger_type;
331
- $trigger_content;
332
- $trigger_replace;
333
- $trigger_enabled;
334
  //Validation - 1
335
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
336
  if($trigger_data['trigger_type'] != ""){ $trigger_type = intval($trigger_data['trigger_type']); } else { return false; }
@@ -341,7 +355,8 @@ function wplc_add_trigger_mrg($trigger_data){
341
  //Validation - 2
342
  $trigger_name = esc_attr($trigger_name);
343
 
344
- $sql = "INSERT INTO $wplc_tblname_chat_triggers SET `name` = '".$trigger_name."', `type` = '".$trigger_type."', `content` = '".$trigger_content."', `show_content` = '".$trigger_replace."', `status` = '".$trigger_enabled."' ";
 
345
  $wpdb->query($sql);
346
  if ($wpdb->last_error) {
347
  return false;
@@ -356,11 +371,11 @@ function wplc_edit_trigger_mrg($trigger_data, $trigger_id){
356
  global $wpdb;
357
  global $wplc_tblname_chat_triggers;
358
  if($trigger_data){
359
- $trigger_name;
360
- $trigger_type;
361
- $trigger_content;
362
- $trigger_replace;
363
- $trigger_enabled;
364
  //Validation - 1
365
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
366
  if($trigger_data['trigger_type'] != ""){ $trigger_type = intval($trigger_data['trigger_type']); } else { return false; }
@@ -372,7 +387,8 @@ function wplc_edit_trigger_mrg($trigger_data, $trigger_id){
372
  $trigger_name = esc_attr($trigger_name);
373
 
374
  $trigger_id = intval($trigger_id);
375
- $sql = "UPDATE $wplc_tblname_chat_triggers SET `name` = '".$trigger_name."', `type` = '".$trigger_type."', `content` = '".$trigger_content."', `show_content` = '".$trigger_replace."', `status` = '".$trigger_enabled."' WHERE `id` = '".$trigger_id."' ";
 
376
  $wpdb->query($sql);
377
  if ($wpdb->last_error) {
378
  return false;
@@ -386,7 +402,8 @@ function wplc_delete_trigger_mrg($trigger_id){
386
  global $wpdb;
387
  global $wplc_tblname_chat_triggers;
388
  $trigger_id = intval($trigger_id);
389
- $sql = "DELETE FROM $wplc_tblname_chat_triggers WHERE `id` = '".$trigger_id."' ";
 
390
  $wpdb->query($sql);
391
  if ($wpdb->last_error) {
392
  return false;
@@ -401,7 +418,8 @@ function wplc_change_trigger_status_mrg($trigger_id, $trigger_status){
401
  if(isset($trigger_id) && isset($trigger_status)){
402
  $trigger_id = intval($trigger_id);
403
  $trigger_status = intval($trigger_status);
404
- $sql = "UPDATE $wplc_tblname_chat_triggers SET `status` = '".$trigger_status."' WHERE `id` = '".$trigger_id."' ";
 
405
  $wpdb->query($sql);
406
  if ($wpdb->last_error) {
407
  return false;
@@ -564,6 +582,8 @@ function wplc_get_type_from_code_mrg($code){
564
 
565
  function wplc_mrg_get_delete_trigger_content(){
566
  $header_array = wplc_mrg_trigger_admin_head();
 
 
567
  $trigger_name = "";
568
  if($header_array){
569
  if(isset($header_array["name"])){ $trigger_name = $header_array["name"];}
@@ -586,6 +606,7 @@ function wplc_mrg_get_delete_trigger_content(){
586
  $content .= "</td>";
587
  $content .= "</tr>";
588
  $content .= "</table>";
 
589
  $content .= "</form>";
590
  }
591
 
@@ -647,8 +668,7 @@ function wplc_check_trigger_filters_mrg($page){
647
  }
648
 
649
  function wplc_tirggers_enqueue_user_styles_scripts($trigger_id){
650
- global $wplc_version;
651
- wp_register_script("wplc_trigger_js", plugins_url('/js/wplc_user_triggers.js', __FILE__), array('jquery'), $wplc_version);
652
  /*Localize vars here*/
653
  $trigger_id = intval($trigger_id);
654
 
@@ -657,7 +677,7 @@ function wplc_tirggers_enqueue_user_styles_scripts($trigger_id){
657
  $trigger_data = $trigger_data[0];
658
  //Only Load styles if content is being overriden
659
  if(intval($trigger_data->show_content) == 1){
660
- wp_enqueue_style("wplc_trigger_styles", plugins_url('/css/wplc_trigger_styles.css', __FILE__), array(), $wplc_version);
661
  }
662
 
663
  if($trigger_data){
@@ -782,4 +802,4 @@ function wplc_triggers_check_for_conflicts_mrg($triggers){
782
  }
783
  return $tmp_page_array;
784
 
785
- }
9
 
10
  echo $content;
11
 
12
+ if (intval(str_replace(".","",WPLC_PLUGIN_VERSION)) < 6205) {
 
13
  echo "<div class='update-nag' style='padding-top:0px;margin-top:5px;margin-bottom:10px;'>";
14
  echo "<p>In order to use data triggers, please ensure you are using the latest basic version (version 6.2.05 or newer).</p>";
15
  echo "<a title='Update Now' href='./update-core.php' class='button button-primary'>".__("Update now" ,"wplivechat")."</a>";
35
 
36
  $content = "";
37
 
38
+ $wplc_trigger_nonce = wp_create_nonce('wplc_trigger_nonce');
39
+
40
  //Content Vars
41
  $trigger_name = "";
42
  $trigger_type = 0;
43
+ $trigger_content = null;
44
  $trigger_replace = "checked";
45
  $trigger_enabled = "checked";
46
 
126
  $content .= "</tr>";
127
 
128
  $content .= "</table>";
129
+ $content .= "<input name='wplc_trigger_nonce' type='hidden' value='" . $wplc_trigger_nonce . "' >";
130
  $content .= "</form>";
131
 
132
  if($header_array){
202
  $return_array["errors"] = array();
203
 
204
  if(isset($_POST['wplc_trigger_name']) && $_POST['wplc_trigger_name'] !== ""){
205
+ $return_array["trigger_name"] = sanitize_text_field($_POST['wplc_trigger_name']);
206
  } else {
207
  $return_array["errors"][count($return_array["errors"]) >= 1 ? count($return_array["errors"]) : 0] = "Name cannot be empty";
208
  $form_valid = false; //No Longer Valid
209
  }
210
 
211
  if(isset($_POST['wplc_trigger_type']) && $_POST['wplc_trigger_type'] !== ""){
212
+ $return_array["trigger_type"] = intval($_POST['wplc_trigger_type']);
213
  }
214
 
215
  $serialized_content = array();
216
 
217
  //Validation added here for serialized array
218
  if(isset($_POST['wplc_trigger_pages']) && $_POST['wplc_trigger_pages'] !== ""){
219
+ $serialized_content['pages'] = sanitize_text_field($_POST['wplc_trigger_pages']);
220
  } else {
221
  $serialized_content['pages'] = "";
222
  }
254
  if($_GET['wplc_action'] == "add_trigger"){
255
  if($form_valid && isset($_POST['wplc_trigger_submit'])){
256
  //All good continue
257
+ if (!isset($_POST['wplc_trigger_nonce']) || !wp_verify_nonce($_POST['wplc_trigger_nonce'], 'wplc_trigger_nonce')){
258
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
259
+ }
260
+
261
  if(wplc_add_trigger_mrg($return_array)){
262
  //Redirect here
263
  echo "<script> window.location = '".admin_url()."admin.php?page=wplivechat-menu-triggers"."';</script>";
272
  if (isset($return_array["errors"])) { $edit_array["errors"] = $return_array["errors"]; }
273
  //Submit data first
274
  if($form_valid && isset($_POST['wplc_trigger_submit'])){
275
+ if (!isset($_POST['wplc_trigger_nonce']) || !wp_verify_nonce($_POST['wplc_trigger_nonce'], 'wplc_trigger_nonce')){
276
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
277
+ }
278
+
279
  //All good continue
280
  if(isset($_GET['trigger_id'])){
281
  if(wplc_edit_trigger_mrg($return_array, intval($_GET['trigger_id']))){
316
  }
317
 
318
  if(isset($_POST['delete_confirm'])){
319
+ if (!isset($_POST['wplc_trigger_nonce']) || !wp_verify_nonce($_POST['wplc_trigger_nonce'], 'wplc_trigger_nonce')){
320
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
321
+ }
322
+
323
  //Delete now
324
  if(wplc_delete_trigger_mrg(intval($_GET['trigger_id']))){
325
  //Success
340
  global $wpdb;
341
  global $wplc_tblname_chat_triggers;
342
  if($trigger_data){
343
+ $trigger_name = null;
344
+ $trigger_type = null;
345
+ $trigger_content = null;
346
+ $trigger_replace = null;
347
+ $trigger_enabled = null;
348
  //Validation - 1
349
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
350
  if($trigger_data['trigger_type'] != ""){ $trigger_type = intval($trigger_data['trigger_type']); } else { return false; }
355
  //Validation - 2
356
  $trigger_name = esc_attr($trigger_name);
357
 
358
+ $sql = "INSERT INTO $wplc_tblname_chat_triggers SET `name` = '%s', `type` = '%s', `content` = '%s', `show_content` = '%d', `status` = '%d' ";
359
+ $sql = $wpdb->prepare($sql, $trigger_name, $trigger_type, $trigger_content, $trigger_replace, $trigger_enabled);
360
  $wpdb->query($sql);
361
  if ($wpdb->last_error) {
362
  return false;
371
  global $wpdb;
372
  global $wplc_tblname_chat_triggers;
373
  if($trigger_data){
374
+ $trigger_name = null;
375
+ $trigger_type = null;
376
+ $trigger_content = null;
377
+ $trigger_replace = null;
378
+ $trigger_enabled = null;
379
  //Validation - 1
380
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
381
  if($trigger_data['trigger_type'] != ""){ $trigger_type = intval($trigger_data['trigger_type']); } else { return false; }
387
  $trigger_name = esc_attr($trigger_name);
388
 
389
  $trigger_id = intval($trigger_id);
390
+ $sql = "UPDATE $wplc_tblname_chat_triggers SET `name` = '%s', `type` = '%s', `content` = '%s', `show_content` = '%d', `status` = '%d' WHERE `id` = '%d' ";
391
+ $sql = $wpdb->prepare($sql, $trigger_name, $trigger_type, $trigger_content, $trigger_replace, $trigger_enabled, $trigger_id);
392
  $wpdb->query($sql);
393
  if ($wpdb->last_error) {
394
  return false;
402
  global $wpdb;
403
  global $wplc_tblname_chat_triggers;
404
  $trigger_id = intval($trigger_id);
405
+ $sql = "DELETE FROM $wplc_tblname_chat_triggers WHERE `id` = '%d' ";
406
+ $sql = $wpdb->prepare($sql, $trigger_id);
407
  $wpdb->query($sql);
408
  if ($wpdb->last_error) {
409
  return false;
418
  if(isset($trigger_id) && isset($trigger_status)){
419
  $trigger_id = intval($trigger_id);
420
  $trigger_status = intval($trigger_status);
421
+ $sql = "UPDATE $wplc_tblname_chat_triggers SET `status` = '%d' WHERE `id` = '%d' ";
422
+ $sql = $wpdb->prepare($sql, $trigger_status, $trigger_id);
423
  $wpdb->query($sql);
424
  if ($wpdb->last_error) {
425
  return false;
582
 
583
  function wplc_mrg_get_delete_trigger_content(){
584
  $header_array = wplc_mrg_trigger_admin_head();
585
+ $wplc_trigger_nonce = wp_create_nonce('wplc_trigger_nonce');
586
+
587
  $trigger_name = "";
588
  if($header_array){
589
  if(isset($header_array["name"])){ $trigger_name = $header_array["name"];}
606
  $content .= "</td>";
607
  $content .= "</tr>";
608
  $content .= "</table>";
609
+ $content .= "<input name='wplc_trigger_nonce' type='hidden' value='" . $wplc_trigger_nonce ."' >";
610
  $content .= "</form>";
611
  }
612
 
668
  }
669
 
670
  function wplc_tirggers_enqueue_user_styles_scripts($trigger_id){
671
+ wp_register_script("wplc_trigger_js", plugins_url('/js/wplc_user_triggers.js', __FILE__), array('jquery'), WPLC_PLUGIN_VERSION);
 
672
  /*Localize vars here*/
673
  $trigger_id = intval($trigger_id);
674
 
677
  $trigger_data = $trigger_data[0];
678
  //Only Load styles if content is being overriden
679
  if(intval($trigger_data->show_content) == 1){
680
+ wp_enqueue_style("wplc_trigger_styles", plugins_url('/css/wplc_trigger_styles.css', __FILE__), array(), WPLC_PLUGIN_VERSION);
681
  }
682
 
683
  if($trigger_data){
802
  }
803
  return $tmp_page_array;
804
 
805
+ }
includes/wplc_departments.php CHANGED
@@ -220,6 +220,7 @@ function wplc_get_all_deparments_mrg(){
220
  * @return string (html)
221
  */
222
  function wplc_mrg_get_add_department_content(){
 
223
  $content = "";
224
 
225
  //Content Vars
@@ -247,6 +248,7 @@ function wplc_mrg_get_add_department_content(){
247
  $content .= "</tr>";
248
 
249
  $content .= "</table>";
 
250
  $content .= "</form>";
251
 
252
  if($header_array){
@@ -284,7 +286,7 @@ function wplc_mrg_department_admin_head(){
284
  if(isset($_POST['wplc_department_submit'])){
285
  $return_array["errors"] = array();
286
  if(isset($_POST['wplc_department_name']) && $_POST['wplc_department_name'] !== ""){
287
- $return_array["wplc_department_name"] = $_POST['wplc_department_name'];
288
  } else {
289
  $return_array["errors"][count($return_array["errors"]) >= 1 ? count($return_array["errors"]) : 0] = "Name cannot be empty";
290
  $form_valid = false; //No Longer Valid
@@ -293,6 +295,10 @@ function wplc_mrg_department_admin_head(){
293
 
294
  if($_GET['wplc_action'] == "add_department"){
295
  if($form_valid && isset($_POST['wplc_department_submit'])){
 
 
 
 
296
  //All good continue
297
  if(wplc_add_department_mrg($return_array)){
298
  //Redirect here
@@ -309,6 +315,10 @@ function wplc_mrg_department_admin_head(){
309
 
310
  //Submit data first
311
  if($form_valid && isset($_POST['wplc_department_submit'])){
 
 
 
 
312
  //All good continue
313
  if(isset($_GET['department_id'])){
314
  if(wplc_edit_department_mrg($return_array, intval($_GET['department_id']))){
@@ -340,6 +350,9 @@ function wplc_mrg_department_admin_head(){
340
  }
341
 
342
  if(isset($_POST['delete_confirm'])){
 
 
 
343
  //Delete now
344
  if(wplc_delete_department_mrg(intval($_GET['department_id']))){
345
  //Success
@@ -373,7 +386,8 @@ function wplc_add_department_mrg($data){
373
  //Validation - 2
374
  $data_name = esc_attr($data_name);
375
 
376
- $sql = "INSERT INTO $wplc_tblname_chat_departments SET `name` = '".$data_name."' ";
 
377
  $wpdb->query($sql);
378
  if ($wpdb->last_error) {
379
  return false;
@@ -401,7 +415,8 @@ function wplc_edit_department_mrg($data, $id){
401
  $department_name = esc_attr($department_name);
402
 
403
  $id = intval($id);
404
- $sql = "UPDATE $wplc_tblname_chat_departments SET `name` = '".$department_name."' WHERE `id` = '".$id."' ";
 
405
  $wpdb->query($sql);
406
  if ($wpdb->last_error) {
407
  return false;
@@ -420,8 +435,8 @@ function wplc_get_department_mrg($id){
420
 
421
  $id = intval($id);
422
 
423
- $sql = "SELECT * FROM $wplc_tblname_chat_departments WHERE `id` = '$id'";
424
-
425
  $results = $wpdb->get_results($sql);
426
  if($wpdb->num_rows){
427
  return $results;
@@ -436,6 +451,7 @@ function wplc_get_department_mrg($id){
436
  * @return string (html)
437
  */
438
  function wplc_mrg_delete_department_content(){
 
439
  $header_array = wplc_mrg_department_admin_head();
440
  $department_name = "";
441
  if($header_array){
@@ -459,6 +475,7 @@ function wplc_mrg_delete_department_content(){
459
  $content .= "</td>";
460
  $content .= "</tr>";
461
  $content .= "</table>";
 
462
  $content .= "</form>";
463
  }
464
 
@@ -475,7 +492,8 @@ function wplc_delete_department_mrg($id){
475
  global $wpdb;
476
  global $wplc_tblname_chat_departments;
477
  $id = intval($id);
478
- $sql = "DELETE FROM $wplc_tblname_chat_departments WHERE `id` = '".$id."' ";
 
479
  $wpdb->query($sql);
480
  if ($wpdb->last_error) {
481
  return false;
220
  * @return string (html)
221
  */
222
  function wplc_mrg_get_add_department_content(){
223
+ $wplc_dept_nonce = wp_create_nonce('wplc_dept_nonce');
224
  $content = "";
225
 
226
  //Content Vars
248
  $content .= "</tr>";
249
 
250
  $content .= "</table>";
251
+ $content .= "<input name='wplc_dept_nonce' type='hidden' value='" . $wplc_dept_nonce . "' >";
252
  $content .= "</form>";
253
 
254
  if($header_array){
286
  if(isset($_POST['wplc_department_submit'])){
287
  $return_array["errors"] = array();
288
  if(isset($_POST['wplc_department_name']) && $_POST['wplc_department_name'] !== ""){
289
+ $return_array["wplc_department_name"] = sanitize_text_field($_POST['wplc_department_name']);
290
  } else {
291
  $return_array["errors"][count($return_array["errors"]) >= 1 ? count($return_array["errors"]) : 0] = "Name cannot be empty";
292
  $form_valid = false; //No Longer Valid
295
 
296
  if($_GET['wplc_action'] == "add_department"){
297
  if($form_valid && isset($_POST['wplc_department_submit'])){
298
+ if (!isset($_POST['wplc_dept_nonce']) || !wp_verify_nonce($_POST['wplc_dept_nonce'], 'wplc_dept_nonce')){
299
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
300
+ }
301
+
302
  //All good continue
303
  if(wplc_add_department_mrg($return_array)){
304
  //Redirect here
315
 
316
  //Submit data first
317
  if($form_valid && isset($_POST['wplc_department_submit'])){
318
+ if (!isset($_POST['wplc_dept_nonce']) || !wp_verify_nonce($_POST['wplc_dept_nonce'], 'wplc_dept_nonce')){
319
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
320
+ }
321
+
322
  //All good continue
323
  if(isset($_GET['department_id'])){
324
  if(wplc_edit_department_mrg($return_array, intval($_GET['department_id']))){
350
  }
351
 
352
  if(isset($_POST['delete_confirm'])){
353
+ if (!isset($_POST['wplc_dept_nonce']) || !wp_verify_nonce($_POST['wplc_dept_nonce'], 'wplc_dept_nonce')){
354
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
355
+ }
356
  //Delete now
357
  if(wplc_delete_department_mrg(intval($_GET['department_id']))){
358
  //Success
386
  //Validation - 2
387
  $data_name = esc_attr($data_name);
388
 
389
+ $sql = "INSERT INTO $wplc_tblname_chat_departments SET `name` = '%s' ";
390
+ $sql = $wpdb->prepare($sql, $data_name);
391
  $wpdb->query($sql);
392
  if ($wpdb->last_error) {
393
  return false;
415
  $department_name = esc_attr($department_name);
416
 
417
  $id = intval($id);
418
+ $sql = "UPDATE $wplc_tblname_chat_departments SET `name` = '%s' WHERE `id` = '%d' ";
419
+ $sql = $wpdb->prepare($sql, $department_name, $id);
420
  $wpdb->query($sql);
421
  if ($wpdb->last_error) {
422
  return false;
435
 
436
  $id = intval($id);
437
 
438
+ $sql = "SELECT * FROM $wplc_tblname_chat_departments WHERE `id` = '%d'";
439
+ $sql = $wpdb->prepare($sql, $id);
440
  $results = $wpdb->get_results($sql);
441
  if($wpdb->num_rows){
442
  return $results;
451
  * @return string (html)
452
  */
453
  function wplc_mrg_delete_department_content(){
454
+ $wplc_dept_nonce = wp_create_nonce('wplc_dept_nonce');
455
  $header_array = wplc_mrg_department_admin_head();
456
  $department_name = "";
457
  if($header_array){
475
  $content .= "</td>";
476
  $content .= "</tr>";
477
  $content .= "</table>";
478
+ $content .= "<input name='wplc_dept_nonce' type='hidden' value='" . $wplc_dept_nonce . "' >";
479
  $content .= "</form>";
480
  }
481
 
492
  global $wpdb;
493
  global $wplc_tblname_chat_departments;
494
  $id = intval($id);
495
+ $sql = "DELETE FROM $wplc_tblname_chat_departments WHERE `id` = '%d' ";
496
+ $sql = $wpdb->prepare($sql, $id);
497
  $wpdb->query($sql);
498
  if ($wpdb->last_error) {
499
  return false;
includes/wplc_roi.php CHANGED
@@ -104,8 +104,7 @@ function wplc_mrg_roi_goals_page(){
104
  * Version monitor
105
  */
106
  function wplc_mrg_roi_version_notice(){
107
- global $wplc_version;
108
- if (intval(str_replace(".","",$wplc_version)) < 6207) {
109
  echo "<div class='update-nag' style='padding-top:0px;margin-top:5px;margin-bottom:10px;'>";
110
  echo "<p>In order to use ROI Goals, please ensure you are using the latest basic version (version 6.2.06 or newer).</p>";
111
  echo "<a title='Update Now' href='./update-core.php' class='button button-primary'>".__("Update now" ,"wp-livechat")."</a>";
@@ -181,7 +180,7 @@ function wplc_get_all_goals_mrg(){
181
  */
182
 
183
  function wplc_mrg_get_add_goal_content(){
184
-
185
 
186
  $content = "";
187
 
@@ -238,6 +237,7 @@ function wplc_mrg_get_add_goal_content(){
238
  $content .= "</tr>";
239
 
240
  $content .= "</table>";
 
241
  $content .= "</form>";
242
 
243
  if($header_array){
@@ -327,26 +327,26 @@ function wplc_mrg_goal_admin_head(){
327
  $return_array["errors"] = array();
328
 
329
  if(isset($_POST['wplc_goal_name']) && $_POST['wplc_goal_name'] !== ""){
330
- $return_array["wplc_goal_name"] = $_POST['wplc_goal_name'];
331
  } else {
332
  $return_array["errors"][count($return_array["errors"]) >= 1 ? count($return_array["errors"]) : 0] = "Name cannot be empty";
333
  $form_valid = false; //No Longer Valid
334
  }
335
 
336
  if(isset($_POST['wplc_goal_overview'])){
337
- $return_array["wplc_goal_overview"] = $_POST['wplc_goal_overview'];
338
  } else {
339
  $return_array["wplc_goal_overview"] = "";
340
  }
341
 
342
  if(isset($_POST['wplc_goal_page'])){
343
- $return_array["wplc_goal_page"] = $_POST['wplc_goal_page'];
344
  } else {
345
  $return_array["wplc_goal_page"] = "";
346
  }
347
 
348
  if(isset($_POST['wplc_goal_value'])){
349
- $return_array["wplc_goal_value"] = $_POST['wplc_goal_value'];
350
  } else {
351
  $return_array["wplc_goal_value"] = "";
352
  }
@@ -354,6 +354,9 @@ function wplc_mrg_goal_admin_head(){
354
 
355
  if($_GET['wplc_action'] == "add_goal"){
356
  if($form_valid && isset($_POST['wplc_goal_submit'])){
 
 
 
357
  //All good continue
358
  if(wplc_add_goal_mrg($return_array)){
359
  //Redirect here
@@ -370,6 +373,10 @@ function wplc_mrg_goal_admin_head(){
370
 
371
  //Submit data first
372
  if($form_valid && isset($_POST['wplc_goal_submit'])){
 
 
 
 
373
  //All good continue
374
  if(isset($_GET['goal_id'])){
375
  if(wplc_edit_goal_mrg($return_array, intval($_GET['goal_id']))){
@@ -404,6 +411,10 @@ function wplc_mrg_goal_admin_head(){
404
  }
405
 
406
  if(isset($_POST['delete_confirm'])){
 
 
 
 
407
  //Delete now
408
  if(wplc_delete_goal_mrg(intval($_GET['goal_id']))){
409
  //Success
@@ -442,7 +453,8 @@ function wplc_add_goal_mrg($goal_data){
442
  $goal_name = esc_attr($goal_name);
443
  $goal_overview = esc_attr($goal_overview);
444
 
445
- $sql = "INSERT INTO $wplc_tblname_chat_roi_goals SET `name` = '".$goal_name."', `pages` = '".$goal_page."', `overview` = '".$goal_overview."', `amount` = '".$goal_value."' ";
 
446
  $wpdb->query($sql);
447
  if ($wpdb->last_error) {
448
  return false;
@@ -475,7 +487,8 @@ function wplc_edit_goal_mrg($goal_data, $goal_id){
475
  $goal_overview = esc_attr($goal_overview);
476
 
477
  $goal_id = intval($goal_id);
478
- $sql = "UPDATE $wplc_tblname_chat_roi_goals SET `name` = '".$goal_name."', `pages` = '".$goal_page."', `overview` = '".$goal_overview."', `amount` = '".$goal_value."' WHERE `id` = '".$goal_id."' ";
 
479
  $wpdb->query($sql);
480
  if ($wpdb->last_error) {
481
  return false;
@@ -492,7 +505,8 @@ function wplc_delete_goal_mrg($goal_id){
492
  global $wpdb;
493
  global $wplc_tblname_chat_roi_goals;
494
  $goal_id = intval($goal_id);
495
- $sql = "DELETE FROM $wplc_tblname_chat_roi_goals WHERE `id` = '".$goal_id."' ";
 
496
  $wpdb->query($sql);
497
  if ($wpdb->last_error) {
498
  return false;
@@ -510,8 +524,8 @@ function wplc_get_goal_mrg($goal_id){
510
 
511
  $goal_id = intval($goal_id);
512
 
513
- $sql = "SELECT * FROM $wplc_tblname_chat_roi_goals WHERE `id` = '$goal_id'";
514
-
515
  $results = $wpdb->get_results($sql);
516
  if($wpdb->num_rows){
517
  return $results;
@@ -524,6 +538,7 @@ function wplc_get_goal_mrg($goal_id){
524
  * Handles confirmation prior to deleteing a goal
525
  */
526
  function wplc_mrg_delete_goal_content(){
 
527
  $header_array = wplc_mrg_goal_admin_head();
528
  $goal_name = "";
529
  if($header_array){
@@ -547,6 +562,7 @@ function wplc_mrg_delete_goal_content(){
547
  $content .= "</td>";
548
  $content .= "</tr>";
549
  $content .= "</table>";
 
550
  $content .= "</form>";
551
  }
552
 
@@ -584,7 +600,8 @@ function wplc_mrg_roi_conversion($cid, $goal_id){
584
  $cid = intval($cid);
585
  $goal_id = intval($goal_id);
586
 
587
- $sql = "INSERT INTO $wplc_tblname_chat_roi_conversions SET `goal_id` = '".$goal_id."', `chat_id` = '".$cid."', `timestamp` = '".date("Y-m-d H:i:s")."' ";
 
588
  $wpdb->query($sql);
589
  if ($wpdb->last_error) {
590
  return false;
@@ -604,8 +621,8 @@ function wplc_mrg_roi_safe_to_add($cid){
604
 
605
  $cid = intval($cid);
606
 
607
- $sql = "SELECT * FROM $wplc_tblname_chat_roi_conversions WHERE `chat_id` = '$cid'";
608
-
609
  $results = $wpdb->get_results($sql);
610
  if($wpdb->num_rows){
611
  return false; //Already converted - dont add or update
@@ -802,8 +819,8 @@ function wplc_get_conversions_for_goal_mrg($goal_id, $term){
802
  break;
803
  }
804
 
805
- $sql = "SELECT * FROM $wplc_tblname_chat_roi_conversions WHERE `goal_id` = '$goal_id' " . $sql_date;
806
-
807
  $results = $wpdb->get_results($sql);
808
  if($wpdb->num_rows){
809
  return $results;
104
  * Version monitor
105
  */
106
  function wplc_mrg_roi_version_notice(){
107
+ if (intval(str_replace(".","",WPLC_PLUGIN_VERSION)) < 6207) {
 
108
  echo "<div class='update-nag' style='padding-top:0px;margin-top:5px;margin-bottom:10px;'>";
109
  echo "<p>In order to use ROI Goals, please ensure you are using the latest basic version (version 6.2.06 or newer).</p>";
110
  echo "<a title='Update Now' href='./update-core.php' class='button button-primary'>".__("Update now" ,"wp-livechat")."</a>";
180
  */
181
 
182
  function wplc_mrg_get_add_goal_content(){
183
+ $wplc_roi_nonce = wp_create_nonce('wplc_roi_nonce');
184
 
185
  $content = "";
186
 
237
  $content .= "</tr>";
238
 
239
  $content .= "</table>";
240
+ $content .= "<input name='wplc_roi_nonce' type='hidden' value='" . $wplc_roi_nonce . "' >";
241
  $content .= "</form>";
242
 
243
  if($header_array){
327
  $return_array["errors"] = array();
328
 
329
  if(isset($_POST['wplc_goal_name']) && $_POST['wplc_goal_name'] !== ""){
330
+ $return_array["wplc_goal_name"] = sanitize_text_field($_POST['wplc_goal_name']);
331
  } else {
332
  $return_array["errors"][count($return_array["errors"]) >= 1 ? count($return_array["errors"]) : 0] = "Name cannot be empty";
333
  $form_valid = false; //No Longer Valid
334
  }
335
 
336
  if(isset($_POST['wplc_goal_overview'])){
337
+ $return_array["wplc_goal_overview"] = sanitize_text_field($_POST['wplc_goal_overview']);
338
  } else {
339
  $return_array["wplc_goal_overview"] = "";
340
  }
341
 
342
  if(isset($_POST['wplc_goal_page'])){
343
+ $return_array["wplc_goal_page"] = sanitize_text_field($_POST['wplc_goal_page']);
344
  } else {
345
  $return_array["wplc_goal_page"] = "";
346
  }
347
 
348
  if(isset($_POST['wplc_goal_value'])){
349
+ $return_array["wplc_goal_value"] = floatval($_POST['wplc_goal_value']);
350
  } else {
351
  $return_array["wplc_goal_value"] = "";
352
  }
354
 
355
  if($_GET['wplc_action'] == "add_goal"){
356
  if($form_valid && isset($_POST['wplc_goal_submit'])){
357
+ if (!isset($_POST['wplc_roi_nonce']) || !wp_verify_nonce($_POST['wplc_roi_nonce'], 'wplc_roi_nonce')){
358
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
359
+ }
360
  //All good continue
361
  if(wplc_add_goal_mrg($return_array)){
362
  //Redirect here
373
 
374
  //Submit data first
375
  if($form_valid && isset($_POST['wplc_goal_submit'])){
376
+ if (!isset($_POST['wplc_roi_nonce']) || !wp_verify_nonce($_POST['wplc_roi_nonce'], 'wplc_roi_nonce')){
377
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
378
+ }
379
+
380
  //All good continue
381
  if(isset($_GET['goal_id'])){
382
  if(wplc_edit_goal_mrg($return_array, intval($_GET['goal_id']))){
411
  }
412
 
413
  if(isset($_POST['delete_confirm'])){
414
+ if (!isset($_POST['wplc_roi_nonce']) || !wp_verify_nonce($_POST['wplc_roi_nonce'], 'wplc_roi_nonce')){
415
+ wp_die(__("You do not have permission do perform this action", "wplivechat"));
416
+ }
417
+
418
  //Delete now
419
  if(wplc_delete_goal_mrg(intval($_GET['goal_id']))){
420
  //Success
453
  $goal_name = esc_attr($goal_name);
454
  $goal_overview = esc_attr($goal_overview);
455
 
456
+ $sql = "INSERT INTO $wplc_tblname_chat_roi_goals SET `name` = '%s', `pages` = '%s', `overview` = '%s', `amount` = '%s' ";
457
+ $sql = $wpdb->prepare($sql, $goal_name, $goal_page, $goal_overview, $goal_value);
458
  $wpdb->query($sql);
459
  if ($wpdb->last_error) {
460
  return false;
487
  $goal_overview = esc_attr($goal_overview);
488
 
489
  $goal_id = intval($goal_id);
490
+ $sql = "UPDATE $wplc_tblname_chat_roi_goals SET `name` = '%s', `pages` = '%s', `overview` = '%s', `amount` = '%s' WHERE `id` = '%d' ";
491
+ $sql = $wpdb->prepare($sql, $goal_name, $goal_page, $goal_overview, $goal_value, $goal_id);
492
  $wpdb->query($sql);
493
  if ($wpdb->last_error) {
494
  return false;
505
  global $wpdb;
506
  global $wplc_tblname_chat_roi_goals;
507
  $goal_id = intval($goal_id);
508
+ $sql = "DELETE FROM $wplc_tblname_chat_roi_goals WHERE `id` = '%d' LIMIT 1";
509
+ $sql = $wpdb->prepare($sql, $goal_id);
510
  $wpdb->query($sql);
511
  if ($wpdb->last_error) {
512
  return false;
524
 
525
  $goal_id = intval($goal_id);
526
 
527
+ $sql = "SELECT * FROM $wplc_tblname_chat_roi_goals WHERE `id` = '%d' LIMIT 1";
528
+ $sql = $wpdb->prepare($sql, $goal_id);
529
  $results = $wpdb->get_results($sql);
530
  if($wpdb->num_rows){
531
  return $results;
538
  * Handles confirmation prior to deleteing a goal
539
  */
540
  function wplc_mrg_delete_goal_content(){
541
+ $wplc_roi_nonce = wp_create_nonce('wplc_roi_nonce');
542
  $header_array = wplc_mrg_goal_admin_head();
543
  $goal_name = "";
544
  if($header_array){
562
  $content .= "</td>";
563
  $content .= "</tr>";
564
  $content .= "</table>";
565
+ $content .= "<input name='wplc_roi_nonce' type='hidden' value='" . $wplc_roi_nonce . "' >";
566
  $content .= "</form>";
567
  }
568
 
600
  $cid = intval($cid);
601
  $goal_id = intval($goal_id);
602
 
603
+ $sql = "INSERT INTO $wplc_tblname_chat_roi_conversions SET `goal_id` = '%d', `chat_id` = '%d', `timestamp` = '%s' LIMIT 1";
604
+ $sql = $wpdb->prepare($sql, $goal_id, $cid, date("Y-m-d H:i:s"));
605
  $wpdb->query($sql);
606
  if ($wpdb->last_error) {
607
  return false;
621
 
622
  $cid = intval($cid);
623
 
624
+ $sql = "SELECT * FROM $wplc_tblname_chat_roi_conversions WHERE `chat_id` = '%d'";
625
+ $sql = $wpdb->prepare($sql, $cid);
626
  $results = $wpdb->get_results($sql);
627
  if($wpdb->num_rows){
628
  return false; //Already converted - dont add or update
819
  break;
820
  }
821
 
822
+ $sql = "SELECT * FROM $wplc_tblname_chat_roi_conversions WHERE `goal_id` = '%d' " . $sql_date;
823
+ $sql = $wpdb->prepare($sql, $goal_id);
824
  $results = $wpdb->get_results($sql);
825
  if($wpdb->num_rows){
826
  return $results;
includes/wplc_transfer_chats.php CHANGED
@@ -247,78 +247,78 @@ function wplc_mrg_admin_transfer_tools_js(){
247
  });
248
  }
249
 
250
- function wplc_modal_transfer_ajax(req_data, on_succcess, on_error){
251
- jQuery.ajax({
252
- url : "<?php echo admin_url('admin-ajax.php'); ?>",
253
- type : 'POST',
254
- data : req_data,
255
- success : function(return_data) {
256
- if(typeof on_succcess === "function"){
257
- on_succcess(return_data);
258
- }
259
- },
260
- error : function (){
261
- if(typeof on_error === "function"){
262
- on_error();
263
- }
264
- }
265
- });
266
- }
267
-
268
- function wplc_modal_transfer_confirm(){
269
- if(wplc_online_check_complete){
270
- if(wplc_to_agent !== null){
271
- if(wplc_to_agent == true){
272
- //Send to agent
273
- var aid = jQuery("#wplc_transfer_modal_agent_selection").val();
274
- var data ={
275
- action : "wplc_admin_transfer_to_agent",
276
- cid : parseInt("<?php echo $_GET['cid']; ?>"),
277
- agent_id : parseInt(aid)
278
- };
279
-
280
- wplc_modal_transfer_ajax(data, function(return_data){
281
- if(return_data == "true"){
282
- jQuery("#wplc_transfer_to_agent_check").text(wplc_transfer_complete_string);
283
-
284
- setTimeout(function(){
285
- window.close();
286
- }, 300);
287
- } else {
288
- jQuery("#wplc_transfer_to_agent_check").text(wplc_transfer_fail_string);
289
- }
290
- }, function(){
291
- jQuery("#wplc_transfer_to_agent_check").text(wplc_transfer_fail_string);
292
- });
293
- } else {
294
- //Send to department
295
- var depid = jQuery("#wplc_transfer_modal_department_selection").val();
296
- var data ={
297
- action : "wplc_admin_transfer_to_department",
298
- cid : parseInt("<?php echo $_GET['cid']; ?>"),
299
- dep_id : parseInt(depid)
300
- };
301
-
302
- wplc_modal_transfer_ajax(data, function(return_data){
303
- if(return_data == "true"){
304
- jQuery("#wplc_transfer_to_department_check").text(wplc_transfer_complete_string);
305
-
306
- setTimeout(function(){
307
- window.close();
308
- }, 300);
309
- } else {
310
- jQuery("#wplc_transfer_to_department_check").text(wplc_transfer_fail_string);
311
- }
312
- }, function(){
313
- jQuery("#wplc_transfer_to_department_check").text(wplc_transfer_fail_string);
314
- });
315
- }
316
 
317
- } else {
318
- /* console.log("No Mode Selected"); */
319
- }
320
- }
321
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
 
323
  function wplc_modal_transfer_cancel(){
324
  wplc_to_agent = null;
247
  });
248
  }
249
 
250
+ function wplc_modal_transfer_ajax(req_data, on_succcess, on_error) {
251
+ jQuery.ajax({
252
+ url : "<?php echo admin_url('admin-ajax.php'); ?>",
253
+ type : 'POST',
254
+ data : req_data,
255
+ success : function(return_data) {
256
+ if(typeof on_succcess === "function"){
257
+ on_succcess(return_data);
258
+ }
259
+ },
260
+ error : function (){
261
+ if(typeof on_error === "function"){
262
+ on_error();
263
+ }
264
+ }
265
+ });
266
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
 
268
+ function wplc_modal_transfer_confirm() {
269
+ if(wplc_online_check_complete) {
270
+ if(wplc_to_agent !== null) {
271
+ <?php
272
+ $cid = intval($_GET['cid']);
273
+ ?>
274
+ if(wplc_to_agent == true) {
275
+ //Send to agent
276
+ var aid = jQuery("#wplc_transfer_modal_agent_selection").val();
277
+ var data = {
278
+ action : "wplc_admin_transfer_to_agent",
279
+ cid : parseInt("<?php echo $cid; ?>"),
280
+ agent_id : parseInt(aid)
281
+ };
282
+
283
+ wplc_modal_transfer_ajax(data, function(return_data){
284
+ if(return_data == "true") {
285
+ jQuery("#wplc_transfer_to_agent_check").text(wplc_transfer_complete_string);
286
+ setTimeout(function() {
287
+ window.close();
288
+ }, 300);
289
+ } else {
290
+ jQuery("#wplc_transfer_to_agent_check").text(wplc_transfer_fail_string);
291
+ }
292
+ }, function(){
293
+ jQuery("#wplc_transfer_to_agent_check").text(wplc_transfer_fail_string);
294
+ });
295
+ } else {
296
+ //Send to department
297
+ var depid = jQuery("#wplc_transfer_modal_department_selection").val();
298
+ var data = {
299
+ action : "wplc_admin_transfer_to_department",
300
+ cid : parseInt("<?php echo $cid; ?>"),
301
+ dep_id : parseInt(depid)
302
+ };
303
+
304
+ wplc_modal_transfer_ajax(data, function(return_data){
305
+ if(return_data == "true") {
306
+ jQuery("#wplc_transfer_to_department_check").text(wplc_transfer_complete_string);
307
+ setTimeout(function() {
308
+ window.close();
309
+ }, 300);
310
+ } else {
311
+ jQuery("#wplc_transfer_to_department_check").text(wplc_transfer_fail_string);
312
+ }
313
+ }, function(){
314
+ jQuery("#wplc_transfer_to_department_check").text(wplc_transfer_fail_string);
315
+ });
316
+ }
317
+ } else {
318
+ /* console.log("No Mode Selected"); */
319
+ }
320
+ }
321
+ }
322
 
323
  function wplc_modal_transfer_cancel(){
324
  wplc_to_agent = null;
js/jscolor.js CHANGED
@@ -1,11 +1,11 @@
1
  /**
2
  * jscolor, JavaScript Color Picker
3
  *
4
- * @version 1.4.1
5
  * @license GNU Lesser General Public License, http://www.gnu.org/copyleft/lesser.html
6
  * @author Jan Odvarko, http://odvarko.cz
7
  * @created 2008-06-15
8
- * @updated 2013-04-08
9
  * @link http://jscolor.com
10
  */
11
 
@@ -67,15 +67,19 @@ var jscolor = {
67
 
68
 
69
  bind : function() {
70
- var matchClass = new RegExp('(^|\\s)('+jscolor.bindClass+')\\s*(\\{[^}]*\\})?', 'i');
71
  var e = document.getElementsByTagName('input');
72
  for(var i=0; i<e.length; i+=1) {
 
 
 
 
73
  var m;
74
  if(!e[i].color && e[i].className && (m = e[i].className.match(matchClass))) {
75
  var prop = {};
76
- if(m[3]) {
77
  try {
78
- prop = (new Function ('return (' + m[3] + ')'))();
79
  } catch(eInvalidProp) {}
80
  }
81
  e[i].color = new jscolor.color(e[i], prop);
@@ -347,6 +351,7 @@ var jscolor = {
347
  this.pickerMode = 'HSV'; // HSV | HVS
348
  this.pickerPosition = 'bottom'; // left | right | top | bottom
349
  this.pickerSmartPosition = true; // automatically adjust picker position when necessary
 
350
  this.pickerButtonHeight = 20; // px
351
  this.pickerClosable = false;
352
  this.pickerCloseText = 'Close';
@@ -628,7 +633,7 @@ var jscolor = {
628
  }
629
  };
630
  if('ontouchstart' in window) { // if touch device
631
- p.box.addEventListener('touchmove', function(e) {
632
  var event={
633
  'offsetX': e.touches[0].pageX-touchOffset.X,
634
  'offsetY': e.touches[0].pageY-touchOffset.Y
@@ -640,7 +645,9 @@ var jscolor = {
640
  }
641
  e.stopPropagation(); // prevent move "view" on broswer
642
  e.preventDefault(); // prevent Default - Android Fix (else android generated only 1-2 touchmove events)
643
- }, false);
 
 
644
  }
645
  p.padM.onmouseup =
646
  p.padM.onmouseout = function() { if(holdPad) { holdPad=false; jscolor.fireEvent(valueElement,'change'); } };
@@ -694,7 +701,7 @@ var jscolor = {
694
  p.box.style.height = dims[1] + 'px';
695
 
696
  // picker border
697
- p.boxB.style.position = 'absolute';
698
  p.boxB.style.clear = 'both';
699
  p.boxB.style.left = x+'px';
700
  p.boxB.style.top = y+'px';
@@ -918,9 +925,9 @@ var jscolor = {
918
 
919
  function dispatchImmediateChange() {
920
  if (THIS.onImmediateChange) {
921
- var callback;
922
  if (typeof THIS.onImmediateChange === 'string') {
923
- callback = new Function (THIS.onImmediateChange);
924
  } else {
925
  callback = THIS.onImmediateChange;
926
  }
@@ -945,6 +952,15 @@ var jscolor = {
945
  leavePad = 1<<2,
946
  leaveSld = 1<<3;
947
 
 
 
 
 
 
 
 
 
 
948
  // target
949
  jscolor.addEvent(target, 'focus', function() {
950
  if(THIS.pickerOnfocus) { THIS.showPicker(); }
1
  /**
2
  * jscolor, JavaScript Color Picker
3
  *
4
+ * @version 1.4.5
5
  * @license GNU Lesser General Public License, http://www.gnu.org/copyleft/lesser.html
6
  * @author Jan Odvarko, http://odvarko.cz
7
  * @created 2008-06-15
8
+ * @updated 2015-09-19
9
  * @link http://jscolor.com
10
  */
11
 
67
 
68
 
69
  bind : function() {
70
+ var matchClass = new RegExp('(^|\\s)('+jscolor.bindClass+')(\\s*(\\{[^}]*\\})|\\s|$)', 'i');
71
  var e = document.getElementsByTagName('input');
72
  for(var i=0; i<e.length; i+=1) {
73
+ if(jscolor.isColorAttrSupported && e[i].type.toLowerCase() == 'color') {
74
+ // skip inputs of type 'color' if the browser supports this feature
75
+ continue;
76
+ }
77
  var m;
78
  if(!e[i].color && e[i].className && (m = e[i].className.match(matchClass))) {
79
  var prop = {};
80
+ if(m[4]) {
81
  try {
82
+ prop = JSON.parse(m[4]);
83
  } catch(eInvalidProp) {}
84
  }
85
  e[i].color = new jscolor.color(e[i], prop);
351
  this.pickerMode = 'HSV'; // HSV | HVS
352
  this.pickerPosition = 'bottom'; // left | right | top | bottom
353
  this.pickerSmartPosition = true; // automatically adjust picker position when necessary
354
+ this.pickerFixedPosition = false; // set to true to stop picker from moving on scroll
355
  this.pickerButtonHeight = 20; // px
356
  this.pickerClosable = false;
357
  this.pickerCloseText = 'Close';
633
  }
634
  };
635
  if('ontouchstart' in window) { // if touch device
636
+ var handle_touchmove = function(e) {
637
  var event={
638
  'offsetX': e.touches[0].pageX-touchOffset.X,
639
  'offsetY': e.touches[0].pageY-touchOffset.Y
645
  }
646
  e.stopPropagation(); // prevent move "view" on broswer
647
  e.preventDefault(); // prevent Default - Android Fix (else android generated only 1-2 touchmove events)
648
+ };
649
+ p.box.removeEventListener('touchmove', handle_touchmove, false)
650
+ p.box.addEventListener('touchmove', handle_touchmove, false)
651
  }
652
  p.padM.onmouseup =
653
  p.padM.onmouseout = function() { if(holdPad) { holdPad=false; jscolor.fireEvent(valueElement,'change'); } };
701
  p.box.style.height = dims[1] + 'px';
702
 
703
  // picker border
704
+ p.boxB.style.position = THIS.pickerFixedPosition ? 'fixed' : 'absolute';
705
  p.boxB.style.clear = 'both';
706
  p.boxB.style.left = x+'px';
707
  p.boxB.style.top = y+'px';
925
 
926
  function dispatchImmediateChange() {
927
  if (THIS.onImmediateChange) {
928
+ var callback;
929
  if (typeof THIS.onImmediateChange === 'string') {
930
+ //ignore
931
  } else {
932
  callback = THIS.onImmediateChange;
933
  }
952
  leavePad = 1<<2,
953
  leaveSld = 1<<3;
954
 
955
+ jscolor.isColorAttrSupported = false;
956
+ var el = document.createElement('input');
957
+ if(el.setAttribute) {
958
+ el.setAttribute('type', 'color');
959
+ if(el.type.toLowerCase() == 'color') {
960
+ jscolor.isColorAttrSupported = true;
961
+ }
962
+ }
963
+
964
  // target
965
  jscolor.addEvent(target, 'focus', function() {
966
  if(THIS.pickerOnfocus) { THIS.showPicker(); }
js/nimblesquirrel.js ADDED
@@ -0,0 +1 @@
 
1
+ var ns_load_delay,ns_bg_color,ns_font_color,ns_width,ns_gap,ns_height,ns_footer,ns_header,ns_type,ns_question,ns_thank_you_text,ns_question_array_js,ns_trigger,ns_cookie_name,ns_cookie_value,ns_gdpr_company_name,ns_gdpr_purpose,ns_gdpr_retention_period,ns_emoji,ns_question_array=new Array,ns_triggered=!1,ns_trigger_normal=!1,ns_trigger_exit=!1,ns_trigger_cookie=!1,ns_google_form="",ns_theme=1,ns_dark=0;if(void 0===ns_id)var ns_id=0;if(void 0===ns_sid)var ns_sid=0;if(void 0===ns_lfid)var ns_lfid=0;var ns_start=nimblesquirrel_start();function nimblesquirrel_start(){if(null==ns_id);else{var e=getCookie("ns_participated");if(null!=e&&""!=e);else"no"===getCookie("ns_display")||(ns_load_emoticons(),ns_loadsettings())}}function ns_loadsettings(){var e;(e=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")).onreadystatechange=function(){if(4==e.readyState&&200==e.status)if(ns_obj=json_parse(e.responseText),null!=ns_obj.error)nslog("nimbleSquirrel error:"+e.responseText);else{ns_override_html=ns_obj.override_html,ns_type=parseInt(ns_obj.type),ns_bg_color=ns_obj.bgcolor,ns_font_color=ns_obj.textcolor,ns_load_delay=parseInt(ns_obj.delay),ns_gap=ns_obj.div_gap,ns_width=ns_obj.div_width,ns_height=ns_obj.div_height,ns_footer=ns_obj.footer,ns_header=ns_obj.header,ns_question=ns_obj.question,ns_thank_you_text=ns_obj.thank_you_text,ns_question_array_js=ns_obj.question_array,ns_trigger=ns_obj.trigger,ns_cookie_name=ns_obj.cookie_name,ns_cookie_value=ns_obj.cookie_value,ns_gdpr_company_name=ns_obj.gdpr_company,ns_gdpr_purpose=ns_obj.gdpr_purpose,ns_gdpr_retention_period=ns_obj.gdpr_retention,ns_google_form=ns_obj.google_form,ns_id=parseInt(ns_obj.ns_id),ns_sid=parseInt(ns_obj.ns_sid),ns_lfid=parseInt(ns_obj.ns_lfid),null!==ns_obj.other_data&&"undefined"!==ns_obj.other_data&&(null!==ns_obj.other_data.survey_theme&&"undefined"!==ns_obj.other_data.survey_theme&&(ns_theme=parseInt(ns_obj.other_data.survey_theme)),null!==ns_obj.other_data.survey_dark&&"undefined"!==ns_obj.other_data.survey_dark&&(ns_dark=parseInt(ns_obj.other_data.survey_dark)));for(var i in ns_question_array_js)ns_question_array_js.hasOwnProperty(i)&&!isNaN(+i)&&(ns_question_array[+i]=ns_question_array_js[i]);if(ns_load_delay<1&&(ns_load_delay=1),ns_load_delay*=1e3,"undefined"!=typeof ns_div)check_for_parent_element(ns_div);else{if(-1===ns_trigger.indexOf("exit")&&-1===ns_trigger.indexOf("cookie")&&(ns_trigger_normal=!0),-1!==ns_trigger.indexOf("exit")&&(ns_trigger_exit=!0),-1!==ns_trigger.indexOf("cookie")&&(ns_trigger_cookie=!0),(ns_trigger_normal||/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)&&ns_trigger_exit&&!ns_trigger_cookie)&&(nsto=setTimeout(function(){ns_create_panel()},ns_load_delay),ns_triggered=!0),!ns_triggered&&ns_trigger_cookie){var n=ns_get_cookie(ns_cookie_name),r=!1;!1!==n?-1!==ns_trigger.indexOf("exists")&&-1===ns_trigger.indexOf("notexists")?r=!0:-1!==ns_trigger.indexOf("empty")?-1!==ns_trigger.indexOf("notempty")?n.length>0&&(r=!0):n.length<1&&(r=!0):-1!==ns_trigger.indexOf("valueis")&&n==ns_cookie_value&&(r=!0):-1!==ns_trigger.indexOf("notexists")&&(r=!0),r?ns_trigger_exit||(nsto=setTimeout(function(){ns_create_panel()},ns_load_delay),ns_triggered=!0):ns_trigger_exit=!1}!ns_triggered&&ns_trigger_exit&&document.documentElement.addEventListener("mousemove",function(e){!ns_triggered&&e.pageY<60&&(nsto=setTimeout(function(){ns_create_panel()},ns_load_delay),ns_triggered=!0)})}}},void 0!==ns_sid&&parseInt(ns_sid)>0?(e.open("GET","https://nimblesquirrel.com/api/v2.0/api.php?a=get_settings&id="+ns_id+"&sid="+ns_sid,!0),e.send()):void 0!==ns_lfid&&parseInt(ns_lfid)>0?(e.open("GET","https://nimblesquirrel.com/api/v2.0/api.php?a=get_settings_lf&id="+ns_id+"&lfid="+ns_lfid,!0),e.send()):"undefined"!=typeof Shopify&&void 0!==Shopify.shop&&Shopify.shop.length>0&&(e.open("GET","https://nimblesquirrel.com/api/v2.0/api.php?a=get_settings_shopify&shop_url="+Shopify.shop,!0),e.send())}function ns_get_cookie(e){for(var i=e+"=",n=decodeURIComponent(document.cookie).split(";"),r=0;r<n.length;r++){for(var t=n[r];" "==t.charAt(0);)t=t.substring(1);if(0==t.indexOf(i))return t.substring(i.length,t.length)}return!1}function check_for_parent_element(e){setTimeout(function(){if(null!==document.getElementById(e))return ns_create_panel();check_for_parent_element(e)},500)}function ns_load_emoticons(){var e=document.createElement("link");e.rel="stylesheet",e.href="https://nimblesquirrel.com/api/js-emoji/emoji.css",document.getElementsByTagName("head")[0].appendChild(e);var i=document.createElement("script");i.type="text/javascript",i.src="https://nimblesquirrel.com/api/js-emoji/emoji.js",document.getElementsByTagName("head")[0].appendChild(i)}function ns_initialize_emoji(){null!==(ns_emoji=new EmojiConvertor)&&void 0!==ns_emoji?(ns_emoji.img_sets.apple.path="https://nimblesquirrel.com/api/js-emoji/sheet_64/",ns_emoji.img_sets={apple:{path:"https://nimblesquirrel.com/api/js-emoji/sheet_64/",sheet:"https://nimblesquirrel.com/api/js-emoji/sheet_64.png",mask:1}},ns_emoji.use_sheet=!0,ns_emoji.init_env(),ns_emoji.img_set="apple",ns_emoji.replace_mode=ns_emoji.replace_mode,ns_emoji.text_mode=!1):nslog("Nimble Squirrel: Emoji could not be included")}function ns_process_emoji(e){setTimeout(function(){if("undefined"!=typeof EmojiConvertor)return real_ns_process_emoji(e);ns_process_emoji(e)},500)}function real_ns_process_emoji(e){null!==ns_emoji&&"undefined"!==ns_emoji&&(e=ns_emoji.replace_colons(e));var i=document.getElementById("nimblesquirrel_question_81400_answers");null!==i&&(i.innerHTML=e)}function ns_create_panel(){var e="html #nimblesquirrel_main { overflow: hidden; padding: 4px 0; -webkit-box-sizing: content-box; background: #f3f3f3; border: solid 1px #e2e2e2; border-bottom: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; -webkit-border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; border-top-left-radius: 4px; }#nimblesquirrel_div { background: none; border: 0; border-radius: 0; -webkit-border-radius: 0; -moz-border-radius: 0; bottom: 0px; height: auto; margin: 0; padding: 0; position: fixed !important; right: 30px; width: 287px; z-index: 99999; }#nimblesquirrel_div hr { }#nimblesquirrel_tab { display: block; height: 23px; position: absolute; top: -23px; right: 0; z-index: 900; text-decoration: none; text-align: center; color: #53575a; font-size: 19px; font-weight: bold; background: #f3f3f3; border: solid 1px #e2e2e2; border-bottom: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none;}#nimblesquirrel_tab_text { width: 30px; display: block; float: left; }#nimblesquirrel_div #nimblesquirrel_buttons { position: relative; }#nimblesquirrel_div #nimblesquirrel_gdpr_messages { font: normal 10px/13px helvetica,arial,sans-serif; color: #53575a; padding: 0 16px; }#nimblesquirrel_div #nimblesquirrel_gdpr_messages a, #nimblesquirrel_div #nimblesquirrel_gdpr_messages a:visited, #nimblesquirrel_div #nimblesquirrel_gdpr_messages a:hover { color: #53575a; }#nimblesquirrel_div .nimblesquirrel_button, #nimblesquirrel_div .nimblesquirrel_button:hover { border-top: 1px solid #a8a8a8; background: #bababa; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; color: #555454; vertical-align: middle; padding: 6px 16px 6px 16px; text-decoration: none; text-transform: uppercase; display:inline-block; font: normal 12px/normal helvetica,arial,sans-serif; float: right; margin-right: 16px; margin-top: 3px; }#nimblesquirrel_div .nimblesquirrel_powered_by, #nimblesquirrel_div .nimblesquirrel_powered_by:hover { color: #53575a; margin-left: 5px; font: normal 10px/13px helvetica,arial,sans-serif; height: 13px;text-decoration: none; padding-left: 11px; float: left; margin-top: 11px; }html div#nimblesquirrel_div hr { border-collapse: collapse; border:none; border-top: 1px solid #e2e2e2; border-bottom: 1px solid #fff; display: block; margin: 13px 0 5px; }#nimblesquirrel_div ul.nimblesquirrel_answers { margin-left: 0; margin-right: 0; display: block; list-style: none; margin-bottom: 2px; overflow: hidden; padding: 0 15px; border: 1px solid #e2e2e2; background-color: #d8d8d8; padding: 10px; margin-left: 15px; margin-right: 15px; border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; }#nimblesquirrel_div ul.nimblesquirrel_answers li { display: block; list-style: none; margin: 0; border-bottom: 1px solid #ccc; }#nimblesquirrel_div li.nimblesquirrel_answer_li label { background: #d8d8d8; color: #5e6367; display: block; font: normal 11px/15px helvetica,arial,sans-serif; margin-bottom: 4px; padding: 10px 10px 10px 28px; position: relative; text-align: left; text-transform: none; cursor: pointer; }#nimblesquirrel_div li.nimblesquirrel_answer_li:last-child { border-bottom: none; }#nimblesquirrel_div input.nimblesquirrel_extra_small, #nimblesquirrel_div input.nimblesquirrel_explain_extra:focus { background: #fff; border: 2px solid #cbcbcb; border-radius: 0; -webkit-border-radius: 0; -moz-border-radius: 0; color: #333; font-size: 12px; margin: 4px 10px 4px 0; padding: 5px; width: 165px; }#nimblesquirrel_div li.nimblesquirrel_answer_li input.nimblesquirrel_radio, #nimblesquirrel_div li.ki_answer_li input.nimblesquirrel_checkbox { background: none; border: 0; left: 7px; margin: 0 0 0 2px; padding: 0; position: absolute; top: 11px; min-width: 0; }.nps_1_p { font-size:12px; text-align:center; }.nps_score { width: 20px; height: 20px; display: block; background-color: #e5e5e5; text-align: center; box-shadow: 1px 1px #afadad; border-radius: 3px; float: left; margin-right: 3px; font-size: 12px; cursor: pointer; font-family: sans-serif; }.nps_score_box {width: 100%; display: block; }html div#nimblesquirrel_div .nimblesquirrel_h1 { color: #404040; display: block; font: bold 14px/18px helvetica,arial,sans-serif; padding: 8px 15px 8px; text-align: center; text-transform: none; white-space: normal;}.ns_lead_form { text-align: left; font-size: 12px; }.ns_lead_form label { clear:left; display:block; margin-top:10px; }.ns_lead_form .select { font-size: 12px; }.ns_lead_form .radio-group label {clear:none; display:inline-block; }.ns_lead_form .checkbox-group label {clear:none; display:inline-block; }.ns_lead_form .text-input { padding: 2px; margin: 0; width: 95%; font-size:12px; }.ns_lead_form .text-area { padding:2px; margin: 0; width: 95%; font-size:12px; height:100px; } .ns_lead_form .calendar { padding: 2px; margin: 0; width: 95%; font-size: 12px; }";void 0!==ns_theme&&2===ns_theme&&(e="html #nimblesquirrel_main { overflow: hidden; padding: 4px 0; -webkit-box-sizing: content-box; background: #f3f3f3; border: solid 1px #f3efef; border-bottom: none; -webkit-box-shadow: #ccc 1px 2px 3px -2px; -moz-box-shadow: #ccc 1px 2px 3px -2px; box-shadow: #ccc 1px 2px 3px -2px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-topright: 4px; border-top-right-radius: 4px; }#nimblesquirrel_div { background: none; border: 0; border-radius: 0; -webkit-border-radius: 0; -moz-border-radius: 0; bottom: 0px; height: auto; margin: 0; padding: 0; position: fixed !important; right: 30px; width: 287px; z-index: 99999; }#nimblesquirrel_div hr { }#nimblesquirrel_tab { display: block; border-radius:50px; height: 25px; border: solid 1px #f3f3f3; position: absolute; top: -30px; right: 0; z-index: 900; text-decoration: none; text-align: center; color: #53575a; font-size: 17px; line-height:25px; font-weight: bold; background: #f3f3f3;-webkit-box-shadow: #ccc 1px 2px 3px -2px; -moz-box-shadow: #ccc 1px 2px 3px -2px; box-shadow: #ccc 1px 2px 3px -2px;}#nimblesquirrel_tab_text { width: 25px; display: block; float: left; }#nimblesquirrel_div #nimblesquirrel_buttons { height: 34px; position: relative; }#nimblesquirrel_div #nimblesquirrel_gdpr_messages { font: normal 10px/13px helvetica,arial,sans-serif; color: #53575a; padding: 0 16px; }#nimblesquirrel_div #nimblesquirrel_gdpr_messages a, #nimblesquirrel_div #nimblesquirrel_gdpr_messages a:visited, #nimblesquirrel_div #nimblesquirrel_gdpr_messages a:hover { color: #53575a; }#nimblesquirrel_div .nimblesquirrel_button, #nimblesquirrel_div .nimblesquirrel_button:hover { border-top: 1px solid #cacaca; background: #d8d8d8; color: #3e3e3e; vertical-align: middle; padding: 6px 16px 6px 16px;text-align:center; text-decoration: none; text-transform: uppercase; display:inline-block; font: normal 12px/normal helvetica,arial,sans-serif; float: right; margin-right: 16px; margin-top: 3px; }#nimblesquirrel_div .nimblesquirrel_powered_by, #nimblesquirrel_div .nimblesquirrel_powered_by:hover {display: inline-block; color: #53575a; margin-left: 5px; font: normal 10px/13px helvetica,arial,sans-serif; height: 13px; text-decoration: none; padding-left: 11px; float: left; margin-top: 11px; }html div#nimblesquirrel_div hr { border-collapse: collapse; border:none; border-top: 1px solid #e2e2e2; display: block; margin: 13px 0 5px; }#nimblesquirrel_div ul.nimblesquirrel_answers { margin-left: 10px; margin-right: 10px; display: block; list-style: none; margin-bottom: 2px; overflow: hidden; padding: 0 15px; border: 1px solid #e2e2e2; background-color: #dfdfdf; padding: 10px;}#nimblesquirrel_div ul.nimblesquirrel_answers li { display: block; list-style: none; margin: 0; border-bottom: 1px solid #ccc; }#nimblesquirrel_div li.nimblesquirrel_answer_li label { background: #dfdfdf; color: #5e6367; display: block; font: normal 11px/15px helvetica,arial,sans-serif; margin-bottom: 4px; padding: 10px 10px 10px 28px; position: relative; text-align: left; text-transform: none; cursor: pointer; }#nimblesquirrel_div li.nimblesquirrel_answer_li:last-child { border-bottom: none; }#nimblesquirrel_div input.nimblesquirrel_extra_small, #nimblesquirrel_div input.nimblesquirrel_explain_extra:focus { background: #fff; border: 2px solid #cbcbcb; border-radius: 0; -webkit-border-radius: 0; -moz-border-radius: 0; color: #333; font-size: 12px; margin: 10px 10px -5px 0; padding: 5px; width: 90%; }#nimblesquirrel_div li.nimblesquirrel_answer_li input.nimblesquirrel_radio, #nimblesquirrel_div li.ki_answer_li input.nimblesquirrel_checkbox { background: none; border: 0; left: 7px; margin: 0 0 0 2px; padding: 0; position: absolute; top: 11px; min-width: 0; }.nps_1_p { font-size:12px; text-align:center; }.nps_score { width: 20px; height: 20px; display: block; background-color: #e5e5e5; text-align: center; box-shadow: 1px 1px #afadad; border-radius: 3px; float: left; margin-right: 3px; font-size: 12px; cursor: pointer; font-family: sans-serif; }.nps_score_box {width: 100%; display: block; }html div#nimblesquirrel_div .nimblesquirrel_h1 { color: ##3e3e3e; display: block; font: bold 14px/18px helvetica,arial,sans-serif; padding: 8px 15px 8px; text-align: center; text-transform: none; white-space: normal;}"),void 0!==ns_dark&&1===ns_dark&&(e+="html #nimblesquirrel_main {background-color: #555555; color: white; border: 1px solid #464646;} #nimblesquirrel_tab {background-color: #555555; color:white; border: 1px solid #464646; "+(void 0!==ns_theme&&1===ns_theme?" border-bottom:none;":"")+"}html div#nimblesquirrel_div h1.nimblesquirrel_h1 { color:white; }#nimblesquirrel_div ul.nimblesquirrel_answers{ margin-left: 0; margin-right: 0; background-color: #424242; border: 1px solid #464646; margin-left: 0; margin-right: 0;}#nimblesquirrel_div li.nimblesquirrel_answer_li label{ background-color: #424242; color:white;}html div#nimblesquirrel_div hr { border-top: 1px solid #4f4f4f; }#nimblesquirrel_div .nimblesquirrel_button, #nimblesquirrel_div .nimblesquirrel_button:hover {background-color: #424242; border: 1px solid #464646; color:white;}#nimblesquirrel_div input.nimblesquirrel_extra_small, #nimblesquirrel_div input.nimblesquirrel_explain_extra:focus {background-color: #555555; border-color: #424242;}#nimblesquirrel_div #nimblesquirrel_gdpr_messages, #nimblesquirrel_div #nimblesquirrel_gdpr_messages a, #nimblesquirrel_div #nimblesquirrel_gdpr_messages a:visited, #nimblesquirrel_div #nimblesquirrel_gdpr_messages a:hover, #nimblesquirrel_div .nimblesquirrel_powered_by, #nimblesquirrel_div .nimblesquirrel_powered_by:hover {color:white;}.nps_1_p { font-size:12px; text-align:center; }.nps_score { width: 23px; height: 20px; display: block; background-color: #555555; color:#FFF; text-align: center; box-shadow: 1px 1px #666666; border-radius: 3px; float: left; margin-right: 3px; font-size: 12px; cursor: pointer; font-family: sans-serif; }.nps_score_box {width: 100%; display: block; }"),"undefined"!=typeof ns_override_html&&(e+="span.emoji-outer { height:2.5em; width:2.5em; margin-left:10px; margin-right:10px; cursor:pointer; }",e+="ul.nimblesquirrel_answers { text-align:center; }"),"undefined"!=typeof ns_hide_min&&"1"===ns_hide_min&&(e+="#nimblesquirrel_tab { display: none !important; }"),"undefined"!=typeof ns_div&&(e+="div#nimblesquirrel_div { position: static !important; right: initial !important; }"),head=document.getElementsByTagName("head")[0],style=document.createElement("style"),style.type="text/css",style.styleSheet?style.styleSheet.cssText=e:style.appendChild(document.createTextNode(e)),head.appendChild(style),speechingfunction(),question_string_output="";for(var i=ns_question_array.length,n=0;n<i;n++)if(void 0===window.ns_question_array[n].ns_string);else{question_string_output+="<li id='nimblesquirrel_answer_230184' class='nimblesquirrel_answer_li'>";var r=ns_question_array[n].ns_string;r=r.replace(/\\/g,""),"1"==window.ns_question_array[n].ns_extra?(question_string_output+="<label><input type='radio' name='ns_radio_choice' value='"+ns_question_array[n].ns_choice_id+"' ncid='"+ns_question_array[n].ns_choice_id+"' class='nimblesquirrel_radio'>"+r,question_string_output+="<input type='text' name='ns_input_extra' class='nimblesquirrel_extra_small' value='' id='ns_extra_input_"+ns_question_array[n].ns_choice_id+"' style='display:block;'>",question_string_output+="</label></li>"):question_string_output+="<label><input type='radio' name='ns_radio_choice' value='"+ns_question_array[n].ns_choice_id+"' class='nimblesquirrel_radio'>"+r+"</label></li>"}"undefined"!=typeof ns_override_html&&""!==ns_override_html&&(question_string_output=ns_override_html),question_string_output=ns_process_emoji(question_string_output);var t=document.createElement("div");if(t.id="nimblesquirrel_div","undefined"!=typeof ns_div){var o=document.getElementById(ns_div);if("undefined"!=typeof ns_clear_div&&"1"===ns_clear_div&&(o.innerHTML=""),o.appendChild(t),"undefined"!=typeof ns_hide_div)document.getElementById(ns_hide_div).style.display="none"}else document.body.appendChild(t);var s=document.createElement("div");s.id="nimblesquirrel_main",s.style.display="block",(d=document.getElementById("nimblesquirrel_div")).appendChild(s);var l=document.createElement("a");l.title="",l.href="#",l.id="nimblesquirrel_tab",l.innerHTML="<span id='nimblesquirrel_tab_text'>-</span>";var d=document.getElementById("nimblesquirrel_div");if(l.onclick=function(){var e=document.getElementById("nimblesquirrel_main"),i=document.getElementById("nimblesquirrel_tab_text");"block"==e.style.display?(e.style.display="none",setCookie("ns_display","no",7),i.innerHTML="+"):(e.style.display="block",setCookie("ns_display","yes",7),i.innerHTML="-")},d.appendChild(l),ns_google_form.length>0){d=document.getElementById("nimblesquirrel_main");var a=document.createElement("div");a.id="nimblesquirrel_googleform",a.innerHTML=ns_google_form,d.appendChild(a),(f=document.createElement("div")).id="nimblesquirrel_buttons",d.appendChild(f)}else{var _=document.createElement("h1");_.id="nimblesquirrel_h1id",_.setAttribute("class","nimblesquirrel_h1"),_.setAttribute("className","nimblesquirrel_h1"),_.innerHTML=ns_question,_.style.display="block",(d=document.getElementById("nimblesquirrel_main")).appendChild(_);var p=document.createElement("form");p.method="POST",p.action="#",p.id="nimblesquirrel_form",p.style.display="block",p.innerHTML="",(d=document.getElementById("nimblesquirrel_main")).appendChild(p);var m=document.createElement("div");m.id="nimblesquirrel_questions",(d=document.getElementById("nimblesquirrel_form")).appendChild(m);var u=document.createElement("div");u.id="nimblesquirrel_question_81400",u.setAttribute("class","nimblesquirrel_question"),u.setAttribute("className","nimblesquirrel_question"),u.setAttribute("class","nimblesquirrel_top"),u.setAttribute("className","nimblesquirrel_top"),(d=document.getElementById("nimblesquirrel_questions")).appendChild(u);var c=document.createElement("div");c.id="nimblesquirrel_thank_you",c.setAttribute("class","nimblesquirrel_h1"),c.setAttribute("className","nimblesquirrel_h1"),c.innerHTML=ns_thank_you_text,c.style.display="none",(d=document.getElementById("nimblesquirrel_main")).appendChild(c);var b=document.createElement("h1");b.id="nimblesquirrel_processing",b.setAttribute("class","nimblesquirrel_h1"),b.setAttribute("className","nimblesquirrel_h1"),b.innerHTML="Sending data...",b.style.display="none",(d=document.getElementById("nimblesquirrel_main")).appendChild(b);var g=document.createElement("ul");g.id="nimblesquirrel_question_81400_answers",g.setAttribute("class","nimblesquirrel_answers"),g.setAttribute("className","nimblesquirrel_answers"),(d=document.getElementById("nimblesquirrel_question_81400")).appendChild(g);var f,x=document.createElement("hr");if((d=document.getElementById("nimblesquirrel_form")).appendChild(x),(f=document.createElement("div")).id="nimblesquirrel_buttons",(d=document.getElementById("nimblesquirrel_form")).appendChild(f),void 0!==ns_type&&ns_type<1){var h=document.createElement("div");h.id="nimblesquirrel_gdpr_messages",h.innerHTML='<label><input type="checkbox" id="nimblesquirrel_gdpr"> I agree for my personal data, provided to this survey/lead form, to be processed by '+ns_gdpr_company_name+" and NimbleSquirrel, for the purpose of "+ns_gdpr_purpose+", for the time of "+ns_gdpr_retention_period+' days as per the GDPR.</label><br><br><span>We use NimbleSquirrel as our survey/lead form collector. By clicking below to submit this form, you acknowledge that the information you provide will be transferred to NimbleSquirrel for processing in accordance with their <a href="" target="_blank">Privacy Policy</a>.</span>';var v=document.createElement("a");v.id="nimblesquirrel_submit_button",v.href="#",v.title="Send",v.innerHTML="Send",v.setAttribute("class","nimblesquirrel_button"),v.setAttribute("className","nimblesquirrel_button"),v.onclick=function(){for(var e,i=document.getElementsByName("ns_radio_choice"),n=0,r=i.length;n<r;n++){if(void 0!==i[n]&&i[n].checked)if(e=i[n].value,null==document.getElementById("ns_extra_input_"+e))var t="";else t=document.getElementById("ns_extra_input_"+e).value}if(void 0!==ns_lfid&&parseInt(ns_lfid)>0){var o=document.getElementById("nimblesquirrel_form").elements,s=new Object;for(n=0;n<o.length;n++){var l=o[n].name;if("date"===o[n].type||"text"===o[n].type||"email"===o[n].type||"number"===o[n].type||"textarea"===o[n].type)val=null===o[n].value?"":o[n].value,s[l]=new Object,s[l]=val;else if("checkbox"===o[n].type||"radio"===o[n].type){document.getElementById(o[n].id).checked&&(val=null===o[n].value?"":o[n].value,s[l]=new Object,s[l]=val)}else"select-one"===o[n].type?(val=null===o[n].value?"":o[n].value,s[l]=new Object,s[l]=val):"hidden"===o[n].type&&(s[l]=new Object,s[l]="")}var d=JSON.stringify(s)}document.getElementById("nimblesquirrel_form").style.display="none",document.getElementById("nimblesquirrel_h1id").style.display="none";var a,_,p=document.getElementById("nimblesquirrel_processing");p.style.display="block",(a=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")).onload=function(){"received"==this.responseText&&(p.style.display="none",setCookie("ns_participated","yes",14),"undefined"!=typeof ns_hide_div?document.getElementById(ns_hide_div).style.display="block":document.getElementById("nimblesquirrel_thank_you").style.display="block")},_="id="+encodeURIComponent(ns_id);var m=new Object;void 0!==ns_sid&&parseInt(ns_sid)>0?(_+="&sid="+encodeURIComponent(ns_sid),_+="&choice="+encodeURIComponent(e),_+="&extra="+encodeURIComponent(t),_+="&page="+encodeURIComponent(document.URL),a.open("POST","https://nimblesquirrel.com/api/v2.0/api.php?a=receive_response",!0),m.sid=ns_sid,m.choice=e,m.extra=t,m.page=document.URL):void 0!==ns_lfid&&parseInt(ns_lfid)>0&&(_+="&lfid="+encodeURIComponent(ns_lfid),_+="&data="+encodeURIComponent(d),_+="&page="+encodeURIComponent(document.URL),a.open("POST","https://nimblesquirrel.com/api/v2.0/api.php?a=receive_response_lf",!0),m.lfid=ns_lfid,m.data=s,m.page=document.URL),a.setRequestHeader("Content-type","application/x-www-form-urlencoded"),a.send(_)},(d=document.getElementById("nimblesquirrel_buttons")).appendChild(v)}}var y=document.createElement("a");y.innerHTML="Powered by nimbleSquirrel",y.target="_BLANK",y.href="https://nimblesquirrel.com/?utm_source=survey&utm_medium=survey&utm_campaign="+window.location.hostname,y.setAttribute("class","nimblesquirrel_powered_by"),y.setAttribute("className","nimblesquirrel_powered_by"),(d=document.getElementById("nimblesquirrel_buttons")).appendChild(y)}function speechingfunction(){setTimeout(function(){"undefined"!=typeof EmojiConvertor?ns_initialize_emoji():speechingfunction()},500)}function submitNpsScore(e){document.getElementById("nimblesquirrel_form").style.display="none",document.getElementById("nimblesquirrel_h1id").style.display="none";var i,n,r=document.getElementById("nimblesquirrel_processing");r.style.display="block",(i=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")).onload=function(){"received"==this.responseText&&(r.style.display="none",setCookie("ns_participated","yes",14),"undefined"!=typeof ns_hide_div?document.getElementById(ns_hide_div).style.display="block":document.getElementById("nimblesquirrel_thank_you").style.display="block")},n="id="+encodeURIComponent(ns_id),n+="&sid="+encodeURIComponent(ns_sid),n+="&nps="+encodeURIComponent(e),n+="&page="+encodeURIComponent(document.URL),i.open("POST","https://nimblesquirrel.com/api/v2.0/api.php?a=receive_response",!0),i.setRequestHeader("Content-type","application/x-www-form-urlencoded"),i.send(n)}function setCookie(e,i,n){var r=new Date;r.setDate(r.getDate()+n);var t=escape(i)+(null==n?"":"; expires="+r.toUTCString());document.cookie=e+"="+t}function getCookie(e){var i=document.cookie,n=i.indexOf(" "+e+"=");if(-1==n&&(n=i.indexOf(e+"=")),-1==n)i=null;else{n=i.indexOf("=",n)+1;var r=i.indexOf(";",n);-1==r&&(r=i.length),i=unescape(i.substring(n,r))}return i}window.onload=ns_start,document.body.onclick=function(e){(e=window.event?event.srcElement:e.target).className&&-1!=e.className.indexOf("nps_score")&&submitNpsScore(e.getAttribute("nps")),e.className&&-1!=e.className.indexOf("emoji-inner")&&(parent1=e.parentNode.parentNode,parent1.className&&-1!=parent1.className.indexOf("happy_score")&&submitNpsScore(parent1.getAttribute("nps")))};var json_parse=function(){"use strict";var e,i,n,r,t={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},o=function(i){throw{name:"SyntaxError",message:i,at:e,text:n}},s=function(r){return r&&r!==i&&o("Expected '"+r+"' instead of '"+i+"'"),i=n.charAt(e),e+=1,i},l=function(){var e,n="";for("-"===i&&(n="-",s("-"));i>="0"&&i<="9";)n+=i,s();if("."===i)for(n+=".";s()&&i>="0"&&i<="9";)n+=i;if("e"===i||"E"===i)for(n+=i,s(),"-"!==i&&"+"!==i||(n+=i,s());i>="0"&&i<="9";)n+=i,s();if(e=+n,isFinite(e))return e;o("Bad number")},d=function(){var e,n,r,l="";if('"'===i)for(;s();){if('"'===i)return s(),l;if("\\"===i)if(s(),"u"===i){for(r=0,n=0;n<4&&(e=parseInt(s(),16),isFinite(e));n+=1)r=16*r+e;l+=String.fromCharCode(r)}else{if("string"!=typeof t[i])break;l+=t[i]}else l+=i}o("Bad string")},a=function(){for(;i&&i<=" ";)s()};return r=function(){switch(a(),i){case"{":return function(){var e,n={};if("{"===i){if(s("{"),a(),"}"===i)return s("}"),n;for(;i;){if(e=d(),a(),s(":"),Object.hasOwnProperty.call(n,e)&&o('Duplicate key "'+e+'"'),n[e]=r(),a(),"}"===i)return s("}"),n;s(","),a()}}o("Bad object")}();case"[":return function(){var e=[];if("["===i){if(s("["),a(),"]"===i)return s("]"),e;for(;i;){if(e.push(r()),a(),"]"===i)return s("]"),e;s(","),a()}}o("Bad array")}();case'"':return d();case"-":return l();default:return i>="0"&&i<="9"?l():function(){switch(i){case"t":return s("t"),s("r"),s("u"),s("e"),!0;case"f":return s("f"),s("a"),s("l"),s("s"),s("e"),!1;case"n":return s("n"),s("u"),s("l"),s("l"),null}o("Unexpected '"+i+"'")}()}},function(t,s){var l;return n=t,e=0,i=" ",l=r(),a(),i&&o("Syntax error"),"function"==typeof s?function e(i,n){var r,t,o=i[n];if(o&&"object"==typeof o)for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(void 0!==(t=e(o,r))?o[r]=t:delete o[r]);return s.call(i,n,o)}({"":l},""):l}}();function nslog(e){window.console&&window.console.log(e)}
js/vendor/ace/ace.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE="",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _=" \n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim")}),define("ace/lib/dom",["require","exports","module"],function(e,t,n){"use strict";var r="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className+"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else if(r=t.getElementsByTagName("style"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,r,i){i=i||document;if(r&&t.hasCssString(r,i))return null;var s;r&&(n+="\n/*# sourceURL=ace/css/"+r+" */"),i.createStyleSheet?(s=i.createStyleSheet(),s.cssText=n,r&&(s.owningElement.id=r)):(s=t.createElement("style"),s.appendChild(i.createTextNode(n)),r&&(s.id=r),t.getDocumentHead(i).appendChild(s))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var r=t.createElement("link");r.rel="stylesheet",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u};if(typeof document=="undefined"){t.importCssString=function(){};return}window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var n=e.cloneNode(!1);return n.innerHTML=t,e.parentNode.replaceChild(n,e),n},"textContent"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}}),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(e,t,n){"use strict";e("./fixoldbrowsers");var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!="object")return;var r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((i.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isChromeOS=i.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(i)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}),define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addTouchMoveListener=function(e,n){var r,i;t.addListener(e,"touchstart",function(e){var t=e.touches,n=t[0];r=n.clientX,i=n.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(t.length>1)return;var s=t[0];e.wheelX=r-s.clientX,e.wheelY=i-s.clientY,r=s.clientX,i=s.clientY,n(e)})},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return a(n,e,o)})}else{var u=null;r(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(f(),r(window,"focus",f))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+l;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=e("../lib/keys"),a=u.KEY_MODS,f=i.isChrome<18,l=i.isIE,c=function(e,t){function x(e){if(m)return;m=!0;if(k)t=0,n=e?0:c.value.length-1;else var t=4,n=5;try{c.setSelectionRange(t,n)}catch(r){}m=!1}function T(){if(m)return;c.value=h,i.isWebKit&&S.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){g&&(c.style.cssText=g,g=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}var n=this,c=s.createElement("textarea");c.className=i.isIOS?"ace_text-input ace_text-input-ios":"ace_text-input",i.isTouchPad&&c.setAttribute("x-palm-disable-auto-cap",!0),c.setAttribute("wrap","off"),c.setAttribute("autocorrect","off"),c.setAttribute("autocapitalize","off"),c.setAttribute("spellcheck",!1),c.style.opacity="0",e.insertBefore(c,e.firstChild);var h="\n aaaa a\n",p=!1,d=!1,v=!1,m=!1,g="",y=!0;try{var b=document.activeElement===c}catch(w){}r.addListener(c,"blur",function(e){t.onBlur(e),b=!1}),r.addListener(c,"focus",function(e){b=!0,t.onFocus(e),x()}),this.focus=function(){if(g)return c.focus();c.style.position="fixed",c.focus()},this.blur=function(){c.blur()},this.isFocused=function(){return b};var E=o.delayedCall(function(){b&&x(y)}),S=o.delayedCall(function(){m||(c.value=h,b&&x())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=y&&(y=!y,E.schedule())}),T(),b&&t.onFocus();var N=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length},C=function(e){N(c)?(t.selectAll(),x()):k&&x(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){if(c.selectionStart===4&&c.selectionEnd===5)return;k&&(e=k(e),k=null),v?(x(),e&&t.onPaste(e),v=!1):e==h.substr(0)&&c.selectionStart===4?L?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):p||(e.substring(0,9)==h&&e.length>h.length?e=e.substr(9):e.substr(0,4)==h.substr(0,4)?e=e.substr(4,e.length-h.length+1):e.charAt(e.length-1)==h.charAt(0)&&(e=e.slice(0,-1)),e!=h.charAt(0)&&e.charAt(e.length-1)==h.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),p&&(p=!1),L&&(L=!1)},O=function(e){if(m)return;var t=c.value;A(t),T()},M=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||f)return;var i=l||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return M(e,t,!0)}},_=function(e,n){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i.isIOS&&(d=n,c.value="\n aa"+s+"a a\n",c.setSelectionRange(4,4+s.length),p={value:s}),n?t.onCut():t.onCopy(),i.isIOS||r.preventDefault(e)):(p=!0,c.value=s,c.select(),setTimeout(function(){p=!1,T(),x(),n?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var n=M(e);typeof n=="string"?(n&&t.onPaste(n,e),i.isIE&&setTimeout(x),r.preventDefault(e)):(c.value="",v=!0)};r.addCommandKeyListener(c,t.onCommandKey.bind(t)),r.addListener(c,"select",C),r.addListener(c,"input",O),r.addListener(c,"cut",D),r.addListener(c,"copy",P),r.addListener(c,"paste",H);var B=function(e){if(m||!t.onCompositionStart||t.$readOnly)return;m={},m.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(j,0),t.on("mousedown",F),m.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!m||!t.onCompositionUpdate||t.$readOnly)return;var e=c.value.replace(/\x01/g,"");if(m.lastValue===e)return;t.onCompositionUpdate(e),m.lastValue&&t.undo(),m.canUndo&&(m.lastValue=e);if(m.lastValue){var n=t.selection.getRange();t.insert(m.lastValue),t.session.markUndoGroup(),m.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var n=m;m=!1;var r=setTimeout(function(){r=null;var e=c.value.replace(/\x01/g,"");if(m)return;e==n.lastValue?T():!n.lastValue&&e&&(T(),A(e))});k=function(i){return r&&clearTimeout(r),i=i.replace(/\x01/g,""),i==n.lastValue?"":(n.lastValue&&r&&t.undo(),i)},t.onCompositionEnd(),t.removeListener("mousedown",F),e.type=="compositionend"&&n.range&&t.selection.setRange(n.range);var s=!!i.isChrome&&i.isChrome>=53||!!i.isWebKit&&i.isWebKit>=603;s&&O()},I=o.delayedCall(j,50);r.addListener(c,"compositionstart",B),i.isGecko?r.addListener(c,"text",function(){I.schedule()}):(r.addListener(c,"keyup",function(){I.schedule()}),r.addListener(c,"keydown",function(){I.schedule()})),r.addListener(c,"compositionend",F),this.getElement=function(){return c},this.setReadOnly=function(e){c.readOnly=e},this.onContextMenu=function(e){L=!0,x(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,n){g||(g=c.style.cssText),c.style.cssText=(n?"z-index:100000;":"")+"height:"+c.style.height+";"+(i.isIE?"opacity:0.1;":"");var o=t.container.getBoundingClientRect(),u=s.computedStyle(t.container),a=o.top+(parseInt(u.borderTopWidth)||0),f=o.left+(parseInt(o.borderLeftWidth)||0),l=o.bottom-a-c.clientHeight-2,h=function(e){c.style.left=e.clientX-f-2+"px",c.style.top=Math.min(e.clientY-a-2,l)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(q),i.isWin&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(c,"mouseup",U),r.addListener(c,"mousedown",function(e){e.preventDefault(),R()}),r.addListener(t.renderer.scroller,"contextmenu",U),r.addListener(c,"contextmenu",U);if(i.isIOS){var z=null,W=!1;e.addEventListener("keydown",function(e){z&&clearTimeout(z),W=!0}),e.addEventListener("keyup",function(e){z=setTimeout(function(){W=!1},100)});var X=function(e){if(document.activeElement!==c)return;if(W)return;if(d)return setTimeout(function(){d=!1},100);var n=c.selectionStart,r=c.selectionEnd;c.setSelectionRange(4,5);if(n==r)switch(n){case 0:t.onCommandKey(null,0,u.up);break;case 1:t.onCommandKey(null,0,u.home);break;case 2:t.onCommandKey(null,a.option,u.left);break;case 4:t.onCommandKey(null,0,u.left);break;case 5:t.onCommandKey(null,0,u.right);break;case 7:t.onCommandKey(null,a.option,u.right);break;case 8:t.onCommandKey(null,0,u.end);break;case 9:t.onCommandKey(null,0,u.down)}else{switch(r){case 6:t.onCommandKey(null,a.shift,u.right);break;case 7:t.onCommandKey(null,a.shift|a.option,u.right);break;case 8:t.onCommandKey(null,a.shift,u.end);break;case 9:t.onCommandKey(null,a.shift,u.down)}switch(n){case 0:t.onCommandKey(null,a.shift,u.up);break;case 1:t.onCommandKey(null,a.shift,u.home);break;case 2:t.onCommandKey(null,a.shift|a.option,u.left);break;case 3:t.onCommandKey(null,a.shift,u.left)}}};document.addEventListener("selectionchange",X),t.on("destroy",function(){document.removeEventListener("selectionchange",X)})}};t.TextInput=c}),define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=i.isChrome<18,a=i.isIE,f=e("./textinput_ios").TextInput,l=function(e,t){function w(e){if(p)return;p=!0;if(T)var t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}p=!1}function E(){if(p)return;n.value=l,i.isWebKit&&b.schedule()}function F(){clearTimeout(j),j=setTimeout(function(){d&&(n.style.cssText=d,d=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(i.isIOS)return f.call(this,e,t);var n=s.createElement("textarea");n.className="ace_text-input",n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",e.insertBefore(n,e.firstChild);var l="\u2028\u2028",c=!1,h=!1,p=!1,d="",v=!0;try{var m=document.activeElement===n}catch(g){}r.addListener(n,"blur",function(e){t.onBlur(e),m=!1}),r.addListener(n,"focus",function(e){m=!0,t.onFocus(e),w()}),this.focus=function(){if(d)return n.focus();var e=n.style.top;n.style.position="fixed",n.style.top="0px",n.focus(),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return m};var y=o.delayedCall(function(){m&&w(v)}),b=o.delayedCall(function(){p||(n.value=l,m&&w())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=v&&(v=!v,y.schedule())}),E(),m&&t.onFocus();var S=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length},x=function(e){c?c=!1:S(n)?(t.selectAll(),w()):T&&w(t.selection.isEmpty())},T=null;this.setInputHandler=function(e){T=e},this.getInputHandler=function(){return T};var N=!1,C=function(e){T&&(e=T(e),T=null),h?(w(),e&&t.onPaste(e),h=!1):e==l.charAt(0)?N?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==l?e=e.substr(2):e.charAt(0)==l.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==l.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==l.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),N&&(N=!1)},k=function(e){if(p)return;var t=n.value;C(t),E()},L=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||u)return;var i=a||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return L(e,t,!0)}},A=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);L(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(c=!0,n.value=s,n.select(),setTimeout(function(){c=!1,E(),w(),i?t.onCut():t.onCopy()}))},O=function(e){A(e,!0)},M=function(e){A(e,!1)},_=function(e){var s=L(e);typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(w),r.preventDefault(e)):(n.value="",h=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",x),r.addListener(n,"input",k),r.addListener(n,"cut",O),r.addListener(n,"copy",M),r.addListener(n,"paste",_),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:M(e);break;case 86:_(e);break;case 88:O(e)}});var D=function(e){if(p||!t.onCompositionStart||t.$readOnly)return;p={},p.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(P,0),t.on("mousedown",H),p.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},P=function(){if(!p||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(/\u2028/g,"");if(p.lastValue===e)return;t.onCompositionUpdate(e),p.lastValue&&t.undo(),p.canUndo&&(p.lastValue=e);if(p.lastValue){var r=t.selection.getRange();t.insert(p.lastValue),t.session.markUndoGroup(),p.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},H=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=p;p=!1;var s=setTimeout(function(){s=null;var e=n.value.replace(/\u2028/g,"");if(p)return;e==r.lastValue?E():!r.lastValue&&e&&(E(),C(e))});T=function(n){return s&&clearTimeout(s),n=n.replace(/\u2028/g,""),n==r.lastValue?"":(r.lastValue&&s&&t.undo(),n)},t.onCompositionEnd(),t.removeListener("mousedown",H),e.type=="compositionend"&&r.range&&t.selection.setRange(r.range);var o=!!i.isChrome&&i.isChrome>=53||!!i.isWebKit&&i.isWebKit>=603;o&&k()},B=o.delayedCall(P,50);r.addListener(n,"compositionstart",D),i.isGecko?r.addListener(n,"text",function(){B.schedule()}):(r.addListener(n,"keyup",function(){B.schedule()}),r.addListener(n,"keydown",function(){B.schedule()})),r.addListener(n,"compositionend",H),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){N=!0,w(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){d||(d=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+"height:"+n.style.height+";"+(i.isIE?"opacity:0.1;":"");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+"px",n.style.top=Math.min(e.clientY-f-2,c)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(j),i.isWin&&r.capture(t.container,h,F)},this.onContextMenuClose=F;var j,I=function(e){t.textInput.onContextMenu(e),F()};r.addListener(n,"mouseup",I),r.addListener(n,"mousedown",function(e){e.preventDefault(),F()}),r.addListener(t.renderer.scroller,"contextmenu",I),r.addListener(n,"contextmenu",I)};t.TextInput=l}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function a(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function f(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function l(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=0,u=250;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var o=r.getSelectionRange(),u=o.isEmpty();r.$blockScrolling++,(u||i==1)&&r.selection.moveToPosition(n),r.$blockScrolling--,i==2&&(r.textInput.onContextMenu(e.domEvent),s.isMozilla||e.preventDefault());return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=l(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=l(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=f(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,i=r-n.t,s=e.wheelX/i,o=e.wheelY/i;i<u&&(s=(s+n.vx)/2,o=(o+n.vy)/2);var a=Math.abs(s/o),f=!1;a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(f=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(f=!0);if(f)n.allowed=r;else if(r-n.allowed<u){var l=Math.abs(s)<=1.1*Math.abs(n.vx)&&Math.abs(o)<=1.1*Math.abs(n.vy);l?(f=!0,n.allowed=r):n.allowed=0}n.t=r,n.vx=s,n.vy=o;if(f)return t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(a.prototype),t.DefaultHandlers=a}),define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(s.prototype),t.Tooltip=s}),define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function f(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName("script");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[l(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!="undefined"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("../config"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var f=e.renderer.$gutter;r.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(f,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(l.prototype),f.defineOptions(l.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){"use strict";function r(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),define("ace/lib/bidiutil",["require","exports","module"],function(e,t,n){"use strict";function F(e,t,n,r){var i=s?d:p,c=null,h=null,v=null,m=0,g=null,y=null,b=-1,w=null,E=null,T=[];if(!r)for(w=0,r=[];w<n;w++)r[w]=R(e[w]);o=s,u=!1,a=!1,f=!1,l=!1;for(E=0;E<n;E++){c=m,T[E]=h=q(e,r,T,E),m=i[c][h],g=m&240,m&=15,t[E]=v=i[m][5];if(g>0)if(g==16){for(w=b;w<E;w++)t[w]=1;b=-1}else b=-1;y=i[m][6];if(y)b==-1&&(b=E);else if(b>-1){for(w=b;w<E;w++)t[w]=v;b=-1}r[E]==S&&(t[E]=0),o|=v}if(l)for(w=0;w<n;w++)if(r[w]==x){t[w]=s;for(var C=w-1;C>=0;C--){if(r[C]!=N)break;t[C]=s}}}function I(e,t,n){if(o<e)return;if(e==1&&s==m&&!f){n.reverse();return}var r=n.length,i=0,u,a,l,c;while(i<r){if(t[i]>=e){u=i+1;while(u<r&&t[u]>=e)u++;for(a=i,l=u-1;a<l;a++,l--)c=n[a],n[a]=n[l],n[l]=c;i=u}i++}}function q(e,t,n,r){var i=t[r],o,c,h,p;switch(i){case g:case y:u=!1;case E:case w:return i;case b:return u?w:b;case T:return u=!0,a=!0,y;case N:return E;case C:if(r<1||r+1>=t.length||(o=n[r-1])!=b&&o!=w||(c=t[r+1])!=b&&c!=w)return E;return u&&(c=w),c==o?c:E;case k:o=r>0?n[r-1]:S;if(o==b&&r+1<t.length&&t[r+1]==b)return b;return E;case L:if(r>0&&n[r-1]==b)return b;if(u)return E;p=r+1,h=t.length;while(p<h&&t[p]==L)p++;if(p<h&&t[p]==b)return b;return E;case A:h=t.length,p=r+1;while(p<h&&t[p]==A)p++;if(p<h){var d=e[r],v=d>=1425&&d<=2303||d==64286;o=t[p];if(v&&(o==y||o==T))return y}if(r<1||(o=t[r-1])==S)return E;return n[r-1];case S:return u=!1,f=!0,s;case x:return l=!0,E;case O:case M:case D:case P:case _:u=!1;case H:return E}}function R(e){var t=e.charCodeAt(0),n=t>>8;return n==0?t>191?g:B[t]:n==5?/[\u0591-\u05f4]/.test(e)?y:g:n==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?A:/[\u0660-\u0669\u066b-\u066c]/.test(e)?w:t==1642?L:/[\u06f0-\u06f9]/.test(e)?b:T:n==32&&t<=8287?j[t&255]:n==254?t>=65136?T:E:E}function U(e){return e>="\u064b"&&e<="\u0655"}var r=["\u0621","\u0641"],i=["\u063a","\u064a"],s=0,o=0,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],d=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],v=0,m=1,g=0,y=1,b=2,w=3,E=4,S=5,x=6,T=7,N=8,C=9,k=10,L=11,A=12,O=13,M=14,_=15,D=16,P=17,H=18,B=[H,H,H,H,H,H,H,H,H,x,S,x,N,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,S,S,S,x,N,E,E,L,L,L,E,E,E,E,E,k,C,k,C,C,b,b,b,b,b,b,b,b,b,b,C,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,E,E,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,E,E,E,E,H,H,H,H,H,H,S,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,C,E,L,L,L,L,E,E,E,E,g,E,E,H,E,E,L,L,b,b,E,g,E,E,E,b,g,E,E,E,E,E],j=[N,N,N,N,N,N,N,N,N,N,N,H,H,H,g,y,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N,S,O,M,_,D,P,C,L,L,L,L,L,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,C,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,E,N];t.L=g,t.R=y,t.EN=b,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="\u00b7",t.doBidiReorder=function(e,n,r){if(e.length<2)return{};var i=e.split(""),o=new Array(i.length),u=new Array(i.length),a=[];s=r?m:v,F(i,a,i.length,n);for(var f=0;f<o.length;o[f]=f,f++);I(2,a,o),I(1,a,o);for(var f=0;f<o.length-1;f++)n[f]===w?a[f]=t.AN:a[f]===y&&(n[f]>T&&n[f]<O||n[f]===E||n[f]===H)?a[f]=t.ON_R:f>0&&i[f-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(i[f])&&(a[f-1]=a[f]=t.R_H,f++);i[i.length-1]===t.DOT&&(a[i.length-1]=t.B);for(var f=0;f<o.length;f++)u[f]=a[o[f]];return{logicalFromVisual:o,bidiLevels:u}},t.hasBidiCharacters=function(e,t){var n=!1;for(var r=0;r<e.length;r++)t[r]=R(e.charAt(r)),!n&&(t[r]==y||t[r]==T)&&(n=!0);return n},t.getVisualFromLogicalIdx=function(e,t){for(var n=0;n<t.logicalFromVisual.length;n++)if(t.logicalFromVisual[n]==e)return n;return 0}}),define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("./lib/bidiutil"),i=e("./lib/lang"),s=e("./lib/useragent"),o=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,u=function(e){this.session=e,this.bidiMap={},this.currentRow=null,this.bidiUtil=r,this.charWidths=[],this.EOL="\u00ac",this.showInvisibles=!0,this.isRtlDir=!1,this.line="",this.wrapIndent=0,this.isLastRow=!1,this.EOF="\u00b6",this.seenBidi=!1};(function(){this.isBidiRow=function(e,t,n){return this.seenBidi?(e!==this.currentRow&&(this.currentRow=e,this.updateRowLine(t,n),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(e){this.seenBidi?this.currentRow=null:e.action=="insert"&&o.test(e.lines.join("\n"))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n=this.session.$getRowCacheIndex(t,this.currentRow);n>=0&&(e=this.session.$docRowCache[n])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length){var n,r=this.session.$getRowCacheIndex(t,this.currentRow);while(this.currentRow-e>0){n=this.session.$getRowCacheIndex(t,this.currentRow-e-1);if(n!==r)break;r=n,e++}}return e},this.updateRowLine=function(e,t){e===undefined&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e);if(this.session.$useWrapMode){var n=this.session.$wrapData[e];n&&(t===undefined&&(t=this.getSplitIndex()),t>0&&n.length?(this.wrapIndent=n.indent,this.line=t<n.length?this.line.substring(n[t-1],n[n.length-1]):this.line.substring(n[n.length-1])):this.line=this.line.substring(0,n[t]))}var s=this.session,o=0,u;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(e,t){return e===" "||s.isFullWidth(e.charCodeAt(0))?(u=e===" "?s.getScreenTabSize(t+o):2,o+=u-1,i.stringRepeat(r.DOT,u)):e})},this.updateBidiMap=function(){var e=[],t=this.isLastRow?this.EOF:this.EOL,n=this.line+(this.showInvisibles?t:r.DOT);r.hasBidiCharacters(n,e)?this.bidiMap=r.doBidiReorder(n,e,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(e){if(!this.seenBidi)return;if(this.characterWidth===e.$characterSize.width)return;var t=this.characterWidth=e.$characterSize.width,n=e.$measureCharWidth("\u05d4");this.charWidths[r.L]=this.charWidths[r.EN]=this.charWidths[r.ON_R]=t,this.charWidths[r.R]=this.charWidths[r.AN]=n,this.charWidths[r.R_H]=s.isChrome?n:n*.45,this.charWidths[r.B]=0,this.currentRow=null},this.getShowInvisibles=function(){return this.showInvisibles},this.setShowInvisibles=function(e){this.showInvisibles=e,this.currentRow=null},this.setEolChar=function(e){this.EOL=e},this.setTextDir=function(e){this.isRtlDir=e},this.getPosLeft=function(e){e-=this.wrapIndent;var t=r.getVisualFromLogicalIdx(e>0?e-1:0,this.bidiMap),n=this.bidiMap.bidiLevels,i=0;e===0&&n[t]%2!==0&&t++;for(var s=0;s<t;s++)i+=this.charWidths[n[s]];return e!==0&&n[t]%2===0&&(i+=this.charWidths[n[t]]),this.wrapIndent&&(i+=this.wrapIndent*this.charWidths[r.L]),i},this.getSelections=function(e,t){var n=this.bidiMap,i=n.bidiLevels,s,o=this.wrapIndent*this.charWidths[r.L],u=[],a=Math.min(e,t)-this.wrapIndent,f=Math.max(e,t)-this.wrapIndent,l=!1,c=!1,h=0;for(var p,d=0;d<i.length;d++)p=n.logicalFromVisual[d],s=i[d],l=p>=a&&p<f,l&&!c?h=o:!l&&c&&u.push({left:h,width:o-h}),o+=this.charWidths[s],c=l;return l&&d===i.length&&u.push({left:h,width:o-h}),u},this.offsetToCol=function(e){var t=0,e=Math.max(e,0),n=0,i=0,s=this.bidiMap.bidiLevels,o=this.charWidths[s[i]];this.wrapIndent&&(e-=this.wrapIndent*this.charWidths[r.L]);while(e>n+o/2){n+=o;if(i===s.length-1){o=0;break}o=this.charWidths[s[++i]]}return i>0&&s[i-1]%2!==0&&s[i]%2===0?(e<n&&i--,t=this.bidiMap.logicalFromVisual[i]):i>0&&s[i-1]%2===0&&s[i]%2!==0?t=1+(e>n?this.bidiMap.logicalFromVisual[i]:this.bidiMap.logicalFromVisual[i-1]):this.isRtlDir&&i===s.length-1&&o===0&&s[i-1]%2===0||!this.isRtlDir&&i===0&&s[i]%2!==0?t=1+this.bidiMap.logicalFromVisual[i]:(i>0&&s[i-1]%2!==0&&o!==0&&i--,t=this.bidiMap.logicalFromVisual[i]),t+this.wrapIndent}}).call(u.prototype),t.BidiHandler=u}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){t.$isEmpty||t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,n){var r=e.column,i=e.column+t;return n<0&&(r=e.column-t,i=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(r,i).split(" ").length-1==t},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.wouldMoveIntoSoftTab(e,n,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.wouldMoveIntoSoftTab(e,n,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column),r;t===0&&(e!==0&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(r=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(r/this.session.$bidiHandler.charWidths[0])):r=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var i=this.session.screenToDocumentPosition(n.row+e,n.column,r);e!==0&&t===0&&i.row===this.lead.row&&i.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[i.row]&&(i.row>0||e>0)&&i.row++,this.moveCursorTo(i.row,i.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0;var i=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(i.charAt(t))&&i.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!="^"&&(e="^"+e),e.charAt(e.length-1)!="$"&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n,e):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m),d.consumeLineEnd&&(l=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!="string"&&(c=c[0]||""),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a=="string"?a:a.include;p&&(Array.isArray(p)?f=p.map(function(e){return r[e]}):f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),define("ace/token_iterator",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new r(this.$row,t,this.$row,t+e.value.length)}}).call(i.prototype),t.TokenIterator=i}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c={'"':'"',"'":"'"},h=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},d=function(e){this.add("braces","insertion",function(t,n,r,i,s){var u=r.getCursorPosition(),a=i.doc.getLine(u.row);if(s=="{"){h(r);var l=r.getSelectionRange(),c=i.doc.getTextRange(l);if(c!==""&&c!=="{"&&r.getWrapBehavioursEnabled())return p(l,c,"{","}");if(d.isSaneInsertion(r,i))return/[\]\}\)]/.test(a[u.column])||r.inMultiSelectMode||e&&e.braces?(d.recordAutoInsert(r,i,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(r,i,"{"),{text:"{",selection:[1,1]})}else if(s=="}"){h(r);var v=a.substring(u.column,u.column+1);if(v=="}"){var m=i.$findOpeningBracket("}",{column:u.column+1,row:u.row});if(m!==null&&d.isAutoInsertedClosing(u,a,s))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(s=="\n"||s=="\r\n"){h(r);var g="";d.isMaybeInsertedClosing(u,a)&&(g=o.stringRepeat("}",f.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var v=a.substring(u.column,u.column+1);if(v==="}"){var y=i.findMatchingBracket({row:u.row,column:u.column+1},"}");if(!y)return null;var b=this.$getIndent(i.getLine(y.row))}else{if(!g){d.clearMaybeInsertedClosing();return}var b=this.$getIndent(a)}var w=b+i.getTabString();return{text:"\n"+w+"\n"+b+g,selection:[1,w.length,1,w.length]}}d.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"(",")");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){h(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return p(s,o,"[","]");if(d.isSaneInsertion(n,r))return d.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){h(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&d.isAutoInsertedClosing(u,a,i))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){var s=r.$mode.$quotes||c;if(i.length==1&&s[i]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;h(n);var o=i,u=n.getSelectionRange(),a=r.doc.getTextRange(u);if(a!==""&&(a.length!=1||!s[a])&&n.getWrapBehavioursEnabled())return p(u,a,o,o);if(!a){var f=n.getCursorPosition(),l=r.doc.getLine(f.row),d=l.substring(f.column-1,f.column),v=l.substring(f.column,f.column+1),m=r.getTokenAt(f.row,f.column),g=r.getTokenAt(f.row,f.column+1);if(d=="\\"&&m&&/escape/.test(m.type))return null;var y=m&&/string|escape/.test(m.type),b=!g||/string|escape/.test(g.type),w;if(v==o)w=y!==b,w&&/string\.end/.test(g.type)&&(w=!1);else{if(y&&!b)return null;if(y&&b)return null;var E=r.$mode.tokenRe;E.lastIndex=0;var S=E.test(d);E.lastIndex=0;var x=E.test(d);if(S||x)return null;if(v&&!/[\s;,.})\]\\]/.test(v))return null;w=!0}return{text:w?o+o:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){h(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};d.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},d.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},d.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},d.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(d,i),t.CstyleBehaviour=d}),define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";function r(e){var n=/\w{4}/g;for(var r in e)t.packages[r]=e[r].replace(n,"\\u$&")}t.packages={},r({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../tokenizer").Tokenizer,i=e("./text_highlight_rules").TextHighlightRules,s=e("./behaviour/cstyle").CstyleBehaviour,o=e("../unicode"),u=e("../lib/lang"),a=e("../token_iterator").TokenIterator,f=e("../range").Range,l=function(){this.HighlightRules=i};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+u.escapeRegExp(c)+")"),d=new RegExp("(?:"+u.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!="string"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(l.prototype),t.Mode=l}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,r==-1&&(r=t),s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push(" "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){if(e.action=="insert")var t=e.start,n=e.end;else var n=e.start,t=e.end;var r=t.row,i=n.row,s=i-r,o=-t.column+n.column,u=this.ranges;for(var a=0,f=u.length;a<f;a++){var l=u[a];if(l.end.row<r)continue;if(l.start.row>r)break;l.start.row==r&&l.start.column>=t.column&&(l.start.column!=t.column||!this.$insertRight)&&(l.start.column+=o,l.start.row+=s);if(l.end.row==r&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&a<f-1&&l.end.column>l.start.column&&l.end.column==u[a+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=s}}if(s!=0&&a<f)for(;a<f;a++){var l=u[a];l.start.row+=s,l.end.row+=s}}}).call(s.prototype),t.RangeList=s}),define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e("../range").Range,i=e("../range_list").RangeList,s=e("../lib/oop"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error("A fold can't intersect already existing fold"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal("changeFold",{data:o,action:"add"}),o}throw new Error("The range has to be at least 2 characters width")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken(),u=s.type;if(s&&/^comment|string/.test(u)){u=u.match(/comment|string/)[0],u=="comment"&&(u+="|doc-start");var a=new RegExp(u),f=new r;if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}f.start.row=i.getCurrentTokenRow(),f.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){var l=-1;do{s=i.stepForward();if(l==-1){var c=this.getState(i.$row);a.test(c)||(l=i.$row)}else if(i.$row>l)break}while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return f.end.row=i.getCurrentTokenRow(),f.end.column=i.getCurrentTokenColumn()+s.value.length-2,f}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./bidihandler").BidiHandler,o=e("./config"),u=e("./lib/event_emitter").EventEmitter,a=e("./selection").Selection,f=e("./mode/text").Mode,l=e("./range").Range,c=e("./document").Document,h=e("./background_tokenizer").BackgroundTokenizer,p=e("./search_highlight").SearchHighlight,d=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++d.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new c(e);this.$bidiHandler=new s(this),this.setDocument(e),this.selection=new a(this),o.resetOptions(this),this.setMode(t),o._signal("session",this)};d.$uid=0,function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,u),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$bidiHandler.onChange(e),this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&!e.ignore&&(this.$deltasDoc.push(e),t&&t.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null){var s=n.length-1;i=this.getLine(e).length}else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new p(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new l(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new l(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new f);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,o.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new h(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){o.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r<e.length;r++){var i=e[r];i.group=="doc"&&(this.doc.applyDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!1,n))}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,n){function r(e){return t?e.action!=="insert":e.action==="insert"}var i=e[0],s,o,u=!1;r(i)?(s=l.fromPoints(i.start,i.end),u=!0):(s=l.fromPoints(i.start,i.start),u=!1);for(var a=1;a<e.length;a++)i=e[a],r(i)?(o=i.start,s.compare(o.row,o.column)==-1&&s.setStart(o),o=i.end,s.compare(o.row,o.column)==1&&s.setEnd(o),u=!0):(o=i.start,s.compare(o.row,o.column)==-1&&(s=l.fromPoints(i.start,i.start)),u=!1);if(n!=null){l.comparePoints(n.start,s.start)===0&&(n.start.column+=s.end.column-s.start.column,n.end.column+=s.end.column-s.start.column);var f=n.compareRange(s);f==1?s.setStart(n.start):f==-1&&s.setEnd(n.end)}return s},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=l.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,f=s.start,o=f.row-a.row,u=f.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new l(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)==" "?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new l(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),o=this.$wrapData,u=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,o){var u;if(e!=null){u=this.$getDisplayTokens(e,a.length),u[0]=n;for(var f=1;f<u.length;f++)u[f]=s}else u=this.$getDisplayTokens(r[t].substring(o,i),a.length);a=a.concat(u)}.bind(this),f.end.row,r[f.end.row].length+1),o[f.start.row]=this.$computeWrapSplits(a,u,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),o[l]=this.$computeWrapSplits(a,u,i),l++)};var e=1,t=2,n=3,s=4,a=9,c=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(p)for(var n=0;n<e.length;n++){var r=e[n];if(r==c)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return h&&p!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=e.slice(f,t),r=n.length;n.join("").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),o.length||(b=g(),o.indent=b),l+=r,o.push(l),f=t}if(e.length==0)return[];var o=[],u=e.length,f=0,l=0,h=this.$wrapAsCode,p=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||p===!1?0:Math.floor(r/2),b=0;while(u-f>r-b){var w=f+r-b;if(e[w-1]>=c&&e[w]>=c){y(w);continue}if(e[w]==n||e[w]==s){for(w;w!=f-1;w--)if(e[w]==n)break;if(w>f){y(w);continue}w=f+r;for(w;w<e.length;w++)if(e[w]!=s)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),f-1);while(w>E&&e[w]<n)w--;if(h){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==a)w--}else while(w>E&&e[w]<c)w--;if(w>E){y(++w);continue}w=f+r,e[w]==t&&w--,y(w-b)}return o},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var f=1;f<s;f++)i.push(v)}else u==32?i.push(c):u>39&&u<48||u>57&&u<64?i.push(a):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t,n){if(e<0)return{row:0,column:0};var r,i=0,s=0,o,u=0,a=0,f=this.$screenRowCache,l=this.$getRowCacheIndex(f,e),c=f.length;if(c&&l>=0)var u=f[l],i=this.$docRowCache[l],h=e>f[c-1];else var h=!c;var p=this.getLength()-1,d=this.getNextFoldLine(i),v=d?d.start.row:Infinity;while(u<=e){a=this.getRowLength(i);if(u+a>e||i>=p)break;u+=a,i++,i>v&&(i=d.end.row+1,d=this.getNextFoldLine(i,d),v=d?d.start.row:Infinity),h&&(this.$docRowCache.push(i),this.$screenRowCache.push(u))}if(d&&d.start.row<=i)r=this.getFoldDisplayLine(d),i=d.start.row;else{if(u+a<=e||i>p)return{row:p,column:this.getLine(p).length};r=this.getLine(i),d=null}var m=0,g=Math.floor(e-u);if(this.$useWrapMode){var y=this.$wrapData[i];y&&(o=y[g],g>0&&y.length&&(m=y.indent,s=y[g-1]||y[y.length-1],r=r.substring(s)))}return n!==undefined&&this.$bidiHandler.isBidiRow(u+g,i,g)&&(t=this.$bidiHandler.offsetToCol(n)),s+=this.$getStringScreenWidth(r,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),d?d.idxToPosition(s):{row:i,column:s}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i===" "?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=m}.call(d.prototype),e("./edit_session/folding").Folding.call(d.prototype),e("./edit_session/bracket_match").BracketMatch.call(d.prototype),o.defineOptions(d.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize")},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=d}),define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i,o){return r=new s(e,n,i,o),n==o&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start)?(r=null,!1):!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return r},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var r=t.backwards==1,i=t.skipCurrent!=0,s=t.range,o=t.start;o||(o=s?s[r?"end":"start"]:e.selection.getRange()),o.start&&(o=o[i!=r?"end":"start"]);var u=s?s.start.row:0,a=s?s.end.row:e.getLength()-1;if(r)var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n--;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return;if(t.wrap==0)return;for(n=a,u=o.row;n>=u;n--)if(c(n,Number.MAX_VALUE,e))return};else var f=function(e){var n=o.row;if(c(n,o.column,e))return;for(n+=1;n<=a;n++)if(c(n,0,e))return;if(t.wrap==0)return;for(n=u,a=o.row;n<=a;n++)if(c(n,0,e))return};if(t.$isMultiLine)var l=n.length,c=function(t,i,s){var o=r?t-l+1:t;if(o<0)return;var u=e.getLine(o),a=u.search(n[0]);if(!r&&a<i||a===-1)return;for(var f=1;f<l;f++){u=e.getLine(o+f);if(u.search(n[f])==-1)return}var c=u.match(n[l-1])[0].length;if(r&&c>i)return;if(s(o,a,o+l-1,c))return!0};else if(r)var c=function(t,r,i){var s=e.getLine(t),o=[],u,a=0;n.lastIndex=0;while(u=n.exec(s)){var f=u[0].length;a=u.index;if(!f){if(a>=s.length)break;n.lastIndex=a+=1}if(u.index+f>r)break;o.push(u.index,f)}for(var l=o.length-1;l>=0;l-=2){var c=o[l-1],f=o[l];if(i(t,c,t,c+f))return!0}};else var c=function(t,r,i){var s=e.getLine(t),o,u=r;n.lastIndex=r;while(o=n.exec(s)){var a=o[0].length;u=o.index;if(i(t,u,t,u+a))return!0;if(!a){n.lastIndex=u+=1;if(u>=s.length)return!1}}};return{forEach:f}}}).call(o.prototype),t.Search=o}),define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:o("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:o("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:o("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:o("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:o("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:o("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:o("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"}]}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.id="editor"+ ++b.$uid,this.commands=new v(o.isMac?"mac":"win",m),typeof document=="object"&&(this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new a(this),new f(this)),this.keyBinding=new l(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c("")),g.resetOptions(this),g._signal("editor",this)};b.$uid=0,function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==undefined&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&this.$blockScrolling--;var n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),l&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(g.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var n=t.split(/\r\n|\r|\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec("insertstring",this,t);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e==" "&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()&&e.indexOf("\n")==-1){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r),this.session.selection.moveToPosition(i.end)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last," ");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column-1]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l=" "}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last," ")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(var r=e.first;r<=e.last;r++)n.push(t.getLine(r));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var i=new p(0,0,0,0);for(var r=e.first;r<=e.last;r++){var s=t.getLine(r);i.start.row=r,i.end.row=r,i.end.column=s.length,t.replace(i,n[r-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s&&s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))}}.call(b.prototype),g.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=b}),define("ace/undomanager",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines.length==1?null:e.lines,text:e.lines.length==1?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function n(e,t){var n=new Array(e.length);for(var r=0;r<e.length;r++){var i=e[r],s={group:i.group,deltas:new Array(i.length)};for(var o=0;o<i.deltas.length;o++){var u=i.deltas[o];s.deltas[o]=t(u)}n[r]=s}return n}this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(this.$deserializeDeltas(t),e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(t){return n(t,e)},this.$deserializeDeltas=function(e){return n(e,t)}}).call(r.prototype),t.UndoManager=r}),define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action=="remove")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m="ace_gutter-cell ";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+"px";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement("span"),p.element.appendChild(p.foldWidget));var m="ace_fold-widget ace_"+y;y=="start"&&v==o&&v<s.end.row?m+=" ace_closed":m+=" ace_open",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+"px";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!==p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+"px";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+(this.session.$bidiHandler.isBidiRow(i.start.row)?this.session.$bidiHandler.getPosLeft(i.start.column):i.start.column*e.characterWidth);r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.session.$bidiHandler.isBidiRow(i.start.row)?this.drawBidiSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}this.element.innerHTML=t.join("")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=null,v=new r(l,n.start.column,l,h);for(;l<=f;l++)v.start.row=v.end.row=l,v.start.column=l==a?n.start.column:u.getRowWrapIndent(l),v.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,d=i+(l==a?" ace_start":"")+" ace_br"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),this.session.$bidiHandler.isBidiRow(l)?this.drawBidiSingleLineMarker(t,v,d,s,l==f?0:1,o):this.drawSingleLineMarker(t,v,d,s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o,u,a;i=i||"";if(this.session.$bidiHandler.isBidiRow(t.start.row)){var f=t.clone();f.end.row=f.start.row,f.end.column=this.session.getLine(f.start.row).length,this.drawBidiSingleLineMarker(e,f,n+" ace_br1 ace_start",r,null,i)}else o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth,e.push("<div class='",n," ace_br1 ace_start' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",a,"px;",i,"'></div>");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var f=t.clone();f.start.row=f.end.row,f.start.column=0,this.drawBidiSingleLineMarker(e,f,n+" ace_br12",r,null,i)}else{var l=t.end.column*r.characterWidth;o=r.lineHeight,u=this.$getTop(t.end.row,r),e.push("<div class='",n," ace_br12' style='","height:",o,"px;","width:",l,"px;","top:",u,"px;","left:",s,"px;",i,"'></div>")}o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var c=(t.start.column?1:0)|(t.end.column?0:8);e.push("<div class='",n,c?" ace_br"+c:"","' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",s,"px;",i,"'></div>")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push("<div class='",n,"' style='","height:",o,"px;","width:",u,"px;","top:",a,"px;","left:",f,"px;",s||"","'></div>")},this.drawBidiSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=this.$getTop(t.start.row,r),a=this.$padding,f=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);f.forEach(function(t){e.push("<div class='",n,"' style='","height:",o,"px;","width:",t.width+(i||0),"px;","top:",u,"px;","left:",a+t.left,"px;",s||"","'></div>")})},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")}}).call(s.prototype),t.Marker=s}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()=="\n"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push("<span class='ace_invisible ace_invisible_tab'>"+s.stringRepeat(this.TAB_CHAR,n)+"</span>"):t.push(s.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide",i="",o="";if(this.showInvisibles){r+=" ace_invisible",i=" ace_invisible_space",o=" ace_invisible_tab";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=s.stringRepeat(" ",this.tabSize),a=u;this.$tabStrings[" "]="<span class='"+r+i+"'>"+u+"</span>",this.$tabStrings[" "]="<span class='"+r+o+"'>"+a+"</span>"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+"px",l.innerHTML=c.join("")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(i),"px'>"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push("</div>"),i++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+s.stringRepeat(i.SPACE_CHAR,e.length)+"</span>":e;if(e=="&")return"&#38;";if(e=="<")return"&#60;";if(e==">")return"&#62;";if(e==" "){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e=="\u3000"){var f=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,"<span class='"+f+"' style='width:"+i.config.characterWidth*2+"px'>"+l+"</span>"}return r?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+i.SPACE_CHAR+"</span>":(t+=1,"<span class='ace_cjk' style='width:"+i.config.characterWidth*2+"px'>"+e+"</span>")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",f,"'",l,">",a,"</span>")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]==" "?(e.push(s.stringRepeat(this.$tabStrings[" "],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,o=0,u=n[0],a=0;for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){i=c.length,c=this.renderIndentGuide(e,c,u);if(!c)continue;i-=c.length}if(i+c.length<u)a=this.$renderToken(e,a,l,c),i+=c.length;else{while(i+c.length>=u)a=this.$renderToken(e,a,l,c.substring(0,u-i)),c=c.substring(u-i),i=u,r||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),e.push(s.stringRepeat("\u00a0",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||e.push("</div>")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e.row)?this.session.$bidiHandler.getPosLeft(n.column):n.column*this.config.characterWidth),i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=0,f=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./lib/useragent"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./layer/font_metrics").FontMetrics,v=e("./lib/event_emitter").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}';i.importCssString(m,"ace_editor.css");var g=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left="0";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+"px",r.width=s+"px",r.left=Math.min(n,this.$size.scrollerWidth-s)+"px",r.top=Math.min(t,this.$size.height-i)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;this.layerConfig.width!=s&&(S=this.CHANGE_H_SCROLL);if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:w?Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},S},this.$updateLines=function(){if(!this.$changedLines)return;var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=e+this.scrollLeft-n.left-this.$padding,i=r/this.characterWidth,s=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),o=Math.round(i);return{row:s,column:o,side:i-o>0?1:-1,offsetX:r}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=e+this.scrollLeft-n.left-this.$padding,i=Math.round(r/this.characterWidth),s=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(s,Math.max(i,0),r)},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+(this.session.$bidiHandler.isBidiRow(r.row,e)?this.session.$bidiHandler.getPosLeft(r.column):Math.round(r.column*this.characterWidth)),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";function u(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}function a(e){var t=u(e),n=window.URL||window.webkitURL,r=n.createObjectURL(t);return new Worker(r)}var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),f=function(t,n,r,i,s){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var u=this.$normalizePath;i=i||u(e.toUrl("ace/worker/worker.js",null,"_"));var f={};t.forEach(function(t){f[t]=u(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=a(i),s&&this.send("importScripts",s),this.$worker.postMessage({init:!0,tlns:f,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})}}).call(f.prototype);var l=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};l.prototype=f.prototype,t.UIWorkerClient=l,t.WorkerClient=f,t.createWorker=a}),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?"block":"add":n&&l.$blockSelectEnabled&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.$blockScrolling++,l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.$blockScrolling--,l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column,e.offsetX);if(s(E,e)&&s(t,c.lead))return;E=e,l.$blockScrolling++,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers(),l.$blockScrolling--};l.$blockScrolling++,h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),l.$blockScrolling--,E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),l.$blockScrolling++,N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null,l.$blockScrolling--},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column,a=e.offsetX,f=t.offsetX;else var o=t.column,u=e.column,a=t.offsetX,f=e.offsetX;var l=e.row<t.row;if(l)var c=e.row,h=t.row;else var c=t.row,h=e.row;o<0&&(o=0),c<0&&(c=0),c==h&&(n=!0);for(var p=c;p<=h;p++){var d=i.fromPoints(this.session.screenToDocumentPosition(p,o,a),this.session.screenToDocumentPosition(p,u,f));if(d.isEmpty()){if(m&&v(d.end,m))break;var m=d.end}d.cursor=s?d.start:d.end,r.push(d)}l&&r.reverse();if(!n){var g=r.length-1;while(r[g].isEmpty()&&g>0)g--;if(g>0){var y=0;while(r[y].isEmpty())y++}for(var b=g;b>=y;b--)r[b].isEmpty()&&r.splice(b,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;(r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;this.$blockScrolling+=1;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),this.$blockScrolling-=1,i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.$blockScrolling+=1,this.session.unfold(u),this.multiSelect.addRange(u),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action=="remove"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,typeof define=="function"&&(t.define=define),t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else e&&(o=r.getInnerText(e),e.innerHTML="");var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u,t.version="1.2.9"});
2
+ (function() {
3
+ window.require(["ace/ace"], function(a) {
4
+ if (a) {
5
+ a.config.init(true);
6
+ a.define = window.define;
7
+ }
8
+ if (!window.ace)
9
+ window.ace = a;
10
+ for (var key in a) if (a.hasOwnProperty(key))
11
+ window.ace[key] = a[key];
12
+ });
13
+ })();
14
+
js/vendor/ace/mode-css.js ADDED
@@ -0,0 +1 @@
 
1
+ define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e==="ruleset"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\w\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+": $0;",meta:"property",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(c.prototype),t.Mode=c})
js/vendor/ace/mode-html.js ADDED
@@ -0,0 +1 @@
 
1
+ define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e+"",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(l.prototype),t.Mode=l}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=t.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",u=t.supportFunction="rgb|rgba|url|attr|counter|counters",a=t.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero",f=t.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",l=t.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",c=t.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",h=t.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",p=t.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",d=function(){var e=this.createKeywordMapper({"support.function":u,"support.constant":a,"support.type":o,"support.constant.color":f,"support.constant.fonts":l},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:c},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+c+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:"constant.numeric",regex:c},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:p},{include:"url"},{token:e,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};r.inherits(d,s),t.CssHighlightRules=d}),define("ace/mode/css_completions",["require","exports","module"],function(e,t,n){"use strict";var r={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,"double":2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{"default":1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},"float":{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,"static":1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},i=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var e=document.createElement("c").style;for(var t in e){if(typeof e[t]!="string")continue;var n=t.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()});r.hasOwnProperty(n)||(r[n]=1)}}this.completionsDefined=!0},this.getCompletions=function(e,t,n,r){this.completionsDefined||this.defineCompletions();var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(e==="ruleset"){var s=t.getLine(n.row).substr(0,n.column);return/:[^;]+$/.test(s)?(/([\w\-]+):[^:]*$/.test(s),this.getPropertyValueCompletions(e,t,n,r)):this.getPropertyCompletions(e,t,n,r)}return[]},this.getPropertyCompletions=function(e,t,n,i){var s=Object.keys(r);return s.map(function(e){return{caption:e,snippet:e+": $0;",meta:"property",score:Number.MAX_VALUE}})},this.getPropertyValueCompletions=function(e,t,n,i){var s=t.getLine(n.row).substr(0,n.column),o=(/([\w\-]+):[^:]*$/.exec(s)||{})[1];if(!o)return[];var u=[];return o in r&&typeof r[o]=="object"&&(u=Object.keys(r[o])),u.map(function(e){return{caption:e,snippet:e,meta:"property value",score:Number.MAX_VALUE}})}}).call(i.prototype),t.CssCompletions=i}),define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("./cstyle").CstyleBehaviour,o=e("../../token_iterator").TokenIterator,u=function(){this.inherit(s),this.add("colon","insertion",function(e,t,n,r,i){if(i===":"){var s=n.getCursorPosition(),u=new o(r,s.row,s.column),a=u.getCurrentToken();a&&a.value.match(/\s+/)&&(a=u.stepBackward());if(a&&a.type==="support.type"){var f=r.doc.getLine(s.row),l=f.substring(s.column,s.column+1);if(l===":")return{text:"",selection:[1,1]};if(!f.substring(s.column).match(/^\s*;/))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s===":"){var u=n.getCursorPosition(),a=new o(r,u.row,u.column),f=a.getCurrentToken();f&&f.value.match(/\s+/)&&(f=a.stepBackward());if(f&&f.type==="support.type"){var l=r.doc.getLine(i.start.row),c=l.substring(i.end.column,i.end.column+1);if(c===";")return i.end.column++,i}}}),this.add("semicolon","insertion",function(e,t,n,r,i){if(i===";"){var s=n.getCursorPosition(),o=r.doc.getLine(s.row),u=o.substring(s.column,s.column+1);if(u===";")return{text:"",selection:[1,1]}}})};r.inherits(u,s),t.CssBehaviour=u}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./css_highlight_rules").CssHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./css_completions").CssCompletions,f=e("./behaviour/css").CssBehaviour,l=e("./folding/cstyle").FoldMode,c=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new f,this.$completer=new a,this.foldingRules=new l};r.inherits(c,i),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e).tokens;if(i.length&&i[i.length-1].type=="comment")return r;var s=t.match(/^.*\{\s*$/);return s&&(r+=n),r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/css_worker","Worker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/css"}.call(c.prototype),t.Mode=c}),define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(e){var t="[_:a-zA-Z\u00c0-\uffff][-_:.a-zA-Z0-9\u00c0-\uffff]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+t+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:t},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+t+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+t+":)?"+t+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:t},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===s&&this.normalizeRules()};(function(){this.embedTagRules=function(e,t,n){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(<)("+n+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:t+"start"}]}),this.$rules[n+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,t,n){return n.splice(0),this.token}}],this.embedRules(e,t,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+n+".tag-name.xml"],regex:"(</)("+n+"(?=\\s|>|$))",next:n+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(i.prototype),r.inherits(s,i),t.XmlHighlightRules=s}),define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./css_highlight_rules").CssHighlightRules,o=e("./javascript_highlight_rules").JavaScriptHighlightRules,u=e("./xml_highlight_rules").XmlHighlightRules,a=i.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),f=function(){u.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(e,t){var n=a[t];return["meta.tag.punctuation."+(e=="<"?"":"end-")+"tag-open.xml","meta.tag"+(n?"."+n:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:.]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(s,"css-","style"),this.embedTagRules((new o({jsx:!1})).getRules(),"js-","script"),this.constructor===f&&this.normalizeRules()};r.inherits(f,u),t.HtmlHighlightRules=f}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";function u(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),a=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var o=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:o+a+o,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==o&&(u(p,"attribute-value")||u(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(u(p,"tag-whitespace")||u(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(u(p,"attribute-equals")&&(d||c==">")||u(p,"decl-attribute-equals")&&(d||c=="?"))return{text:o+o,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var o=n.getSelectionRange().start,a=new s(r,o.row,o.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(u(f,"tag-name")||u(f,"tag-whitespace")||u(f,"attribute-name")||u(f,"attribute-equals")||u(f,"attribute-value")))return;if(u(f,"reference.attribute-value"))return;if(u(f,"attribute-value")){var l=f.value.charAt(0);if(l=='"'||l=="'"){var c=f.value.charAt(f.value.length-1),h=a.getCurrentTokenColumn()+f.value.length;if(h>o.column||h==o.column&&l!=c)return}}while(!u(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var p=a.getCurrentTokenRow(),d=a.getCurrentTokenColumn();if(u(a.stepBackward(),"end-tag-open"))return;var v=f.value;p==o.row&&(v=v.substring(0,o.column-d));if(this.voidElements.hasOwnProperty(v.toLowerCase()))return;return{text:"></"+v+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var o=n.getCursorPosition(),u=r.getLine(o.row),a=new s(r,o.row,o.column),f=a.getCurrentToken();if(f&&f.type.indexOf("tag-close")!==-1){if(f.value=="/>")return;while(f&&f.type.indexOf("tag-name")===-1)f=a.stepBackward();if(!f)return;var l=f.value,c=a.getCurrentTokenRow();f=a.stepBackward();if(!f||f.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[l]){var h=r.getTokenAt(o.row,o.column+1),u=r.getLine(c),p=this.$getIndent(u),d=p+r.getTabString();return h&&h.value==="</"?{text:"\n"+d+"\n"+p,selection:[1,d.length,1,d.length]}:{text:"\n"+d}}}}})};r.inherits(a,i),t.XmlBehaviour=a}),define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=t.FoldMode=function(e,t){this.defaultMode=e,this.subModes=t};r.inherits(s,i),function(){this.$getMode=function(e){typeof e!="string"&&(e=e[0]);for(var t in this.subModes)if(e.indexOf(t)===0)return this.subModes[t];return null},this.$tryMode=function(e,t,n,r){var i=this.$getMode(e);return i?i.getFoldWidget(t,n,r):""},this.getFoldWidget=function(e,t,n){return this.$tryMode(e.getState(n-1),e,t,n)||this.$tryMode(e.getState(n),e,t,n)||this.defaultMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n){var r=this.$getMode(e.getState(n-1));if(!r||!r.getFoldWidget(e,t,n))r=this.$getMode(e.getState(n));if(!r||!r.getFoldWidget(e,t,n))r=this.defaultMode;return r.getFoldWidgetRange(e,t,n)}}.call(s.prototype)}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(e,t,n){"use strict";function l(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../lib/lang"),s=e("../../range").Range,o=e("./fold_mode").FoldMode,u=e("../../token_iterator").TokenIterator,a=t.FoldMode=function(e,t){o.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(a,o);var f=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t=="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new f;for(var i=0;i<n.length;i++){var s=n[i];if(l(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=l(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value,r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(l(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(l(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r)continue;if(l(u,"end-tag-open")){u=i[o+1];if(u&&u.value==n)return!0}}return!1},this._readTagForward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do if(l(t,"tag-open"))n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn();else if(l(t,"tag-name"))n.tagName=t.value;else if(l(t,"tag-close"))return n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length,e.stepForward(),n;while(t=e.stepForward());return null},this._readTagBackward=function(e){var t=e.getCurrentToken();if(!t)return null;var n=new f;do{if(l(t,"tag-open"))return n.closing=l(t,"end-tag-open"),n.start.row=e.getCurrentTokenRow(),n.start.column=e.getCurrentTokenColumn(),e.stepBackward(),n;l(t,"tag-name")?n.tagName=t.value:l(t,"tag-close")&&(n.selfClosing=t.value=="/>",n.end.row=e.getCurrentTokenRow(),n.end.column=e.getCurrentTokenColumn()+t.value.length)}while(t=e.stepBackward());return null},this._pop=function(e,t){while(e.length){var n=e[e.length-1];if(!t||n.tagName==t.tagName)return e.pop();if(this.optionalEndTags.hasOwnProperty(n.tagName)){e.pop();continue}return null}},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var i=r.closing||r.selfClosing,o=[],a;if(!i){var f=new u(e,n,r.start.column),l={row:n,column:r.start.column+r.tagName.length+2};r.start.row==r.end.row&&(l.column=r.end.column);while(a=this._readTagForward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(a.closing){this._pop(o,a);if(o.length==0)return s.fromPoints(l,a.start)}else o.push(a)}}else{var f=new u(e,n,r.end.column),c={row:n,column:r.start.column};while(a=this._readTagBackward(f)){if(a.selfClosing){if(!o.length)return a.start.column+=a.tagName.length+2,a.end.column-=2,s.fromPoints(a.start,a.end);continue}if(!a.closing){this._pop(o,a);if(o.length==0)return a.start.column+=a.tagName.length+2,a.start.row==a.end.row&&a.start.column<a.end.column&&(a.start.column=a.end.column),s.fromPoints(a.start,c)}else o.push(a)}}}}).call(a.prototype)}),define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./mixed").FoldMode,s=e("./xml").FoldMode,o=e("./cstyle").FoldMode,u=t.FoldMode=function(e,t){i.call(this,new s(e,t),{"js-":new o,"css-":new o})};r.inherits(u,i)}),define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(e,t,n){"use strict";function f(e,t){return e.type.lastIndexOf(t+".xml")>-1}function l(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"tag-name"))i=n.stepBackward();if(i)return i.value}function c(e,t){var n=new r(e,t.row,t.column),i=n.getCurrentToken();while(i&&!f(i,"attribute-name"))i=n.stepBackward();if(i)return i.value}var r=e("../token_iterator").TokenIterator,i=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],s=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],o=i.concat(s),u={html:{manifest:1},head:{},title:{},base:{href:1,target:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},noscript:{href:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},section:{},nav:{},article:{pubdate:1},aside:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},header:{},footer:{},address:{},main:{},p:{},hr:{},pre:{},blockquote:{cite:1},ol:{start:1,reversed:1},ul:{},li:{value:1},dl:{},dt:{},dd:{},figure:{},figcaption:{},div:{},a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},em:{},strong:{},small:{},s:{},cite:{},q:{cite:1},dfn:{},abbr:{},data:{},time:{datetime:1},code:{},"var":{},samp:{},kbd:{},sub:{},sup:{},i:{},b:{},u:{},mark:{},ruby:{},rt:{},rp:{},bdi:{},bdo:{},span:{},br:{},wbr:{},ins:{cite:1,datetime:1},del:{cite:1,datetime:1},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},embed:{src:1,height:1,width:1,type:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},param:{name:1,value:1},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},source:{src:1,type:1,media:1},track:{kind:1,src:1,srclang:1,label:1,"default":1},canvas:{width:1,height:1},map:{name:1},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},svg:{},math:{},table:{summary:1},caption:{},colgroup:{span:1},col:{span:1},tbody:{},thead:{},tfoot:{},tr:{},td:{headers:1,rowspan:1,colspan:1},th:{headers:1,rowspan:1,colspan:1,scope:1},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},fieldset:{disabled:1,form:1,name:1},legend:{},label:{form:1,"for":1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},datalist:{},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},output:{"for":1,form:1,name:1},progress:{value:1,max:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},details:{open:1},summary:{},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},menu:{type:1,label:1},dialog:{open:1}},a=Object.keys(u),h=function(){};(function(){this.getCompletions=function(e,t,n,r){var i=t.getTokenAt(n.row,n.column);if(!i)return[];if(f(i,"tag-name")||f(i,"tag-open")||f(i,"end-tag-open"))return this.getTagCompletions(e,t,n,r);if(f(i,"tag-whitespace")||f(i,"attribute-name"))return this.getAttributeCompletions(e,t,n,r);if(f(i,"attribute-value"))return this.getAttributeValueCompletions(e,t,n,r);var s=t.getLine(n.row).substr(0,n.column);return/&[a-z]*$/i.test(s)?this.getHTMLEntityCompletions(e,t,n,r):[]},this.getTagCompletions=function(e,t,n,r){return a.map(function(e){return{value:e,meta:"tag",score:Number.MAX_VALUE}})},this.getAttributeCompletions=function(e,t,n,r){var i=l(t,n);if(!i)return[];var s=o;return i in u&&(s=s.concat(Object.keys(u[i]))),s.map(function(e){return{caption:e,snippet:e+'="$0"',meta:"attribute",score:Number.MAX_VALUE}})},this.getAttributeValueCompletions=function(e,t,n,r){var i=l(t,n),s=c(t,n);if(!i)return[];var o=[];return i in u&&s in u[i]&&typeof u[i][s]=="object"&&(o=Object.keys(u[i][s])),o.map(function(e){return{caption:e,snippet:e,meta:"attribute value",score:Number.MAX_VALUE}})},this.getHTMLEntityCompletions=function(e,t,n,r){var i=["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"];return i.map(function(e){return{caption:e,snippet:e,meta:"html entity",score:Number.MAX_VALUE}})}}).call(h.prototype),t.HtmlCompletions=h}),define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text").Mode,o=e("./javascript").Mode,u=e("./css").Mode,a=e("./html_highlight_rules").HtmlHighlightRules,f=e("./behaviour/xml").XmlBehaviour,l=e("./folding/html").FoldMode,c=e("./html_completions").HtmlCompletions,h=e("../worker/worker_client").WorkerClient,p=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],d=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],v=function(e){this.fragmentContext=e&&e.fragmentContext,this.HighlightRules=a,this.$behaviour=new f,this.$completer=new c,this.createModeDelegates({"js-":o,"css-":u}),this.foldingRules=new l(this.voidElements,i.arrayToMap(d))};r.inherits(v,s),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=i.arrayToMap(p),this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.getCompletions=function(e,t,n,r){return this.$completer.getCompletions(e,t,n,r)},this.createWorker=function(e){if(this.constructor!=v)return;var t=new h(["ace"],"ace/mode/html_worker","Worker");return t.attachToDocument(e.getDocument()),this.fragmentContext&&t.call("setOptions",[{context:this.fragmentContext}]),t.on("error",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/html"}.call(v.prototype),t.Mode=v})
js/vendor/ace/mode-javascript.js ADDED
@@ -0,0 +1 @@
 
1
+ define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},s.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=s}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?"+e+"",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",r="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+o+")(\\.)(prototype)(\\.)("+o+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+o+")(\\.)("+o+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:r},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:r},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/cstyle").CstyleBehaviour,f=e("./folding/cstyle").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start"){if(o=="start"||o=="no_regex")return"";var u=t.match(/^\s*(\/?)\*/);u&&(u[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(l.prototype),t.Mode=l})
js/vendor/ace/theme-monokai.js ADDED
@@ -0,0 +1 @@
 
1
+ define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-monokai",t.cssText=".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta.ace_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_entity.ace_other.ace_attribute-name,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
js/vendor/ace/worker-css.js ADDED
@@ -0,0 +1 @@
 
1
+ "no use strict";!function(e){function t(e,t){var n=e,r="";while(n){var i=t[n];if(typeof i=="string")return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(i===!1)return"";var s=n.lastIndexOf("/");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!="undefined"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log("unable to load "+i);var o=t(i,e.require.tlns);return o.slice(-3)!=".js"&&(o+=".js"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require("ace/lib/es5-shim"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}}(this),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../document").Document,s=e("../lib/lang"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(""),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on("change",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:"insert",start:i[s],lines:i[s+1]};else var o={action:"remove",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),define("ace/mode/css/csslint",["require","exports","module"],function(require,exports,module){function objectToString(e){return Object.prototype.toString.call(e)}function clone(e,t,n,r){function u(e,n){if(e===null)return null;if(n==0)return e;var a;if(typeof e!="object")return e;if(util.isArray(e))a=[];else if(util.isRegExp(e))a=new RegExp(e.source,util.getRegExpFlags(e)),e.lastIndex&&(a.lastIndex=e.lastIndex);else if(util.isDate(e))a=new Date(e.getTime());else{if(o&&Buffer.isBuffer(e))return a=new Buffer(e.length),e.copy(a),a;typeof r=="undefined"?a=Object.create(Object.getPrototypeOf(e)):a=Object.create(r)}if(t){var f=i.indexOf(e);if(f!=-1)return s[f];i.push(e),s.push(a)}for(var l in e)a[l]=u(e[l],n-1);return a}var i=[],s=[],o=typeof Buffer!="undefined";return typeof t=="undefined"&&(t=!0),typeof n=="undefined"&&(n=Infinity),u(e,n)}function Reporter(e,t){this.messages=[],this.stats=[],this.lines=e,this.ruleset=t}var parserlib={};(function(){function e(){this._listeners={}}function t(e){this._input=e.replace(/\n\r?/g,"\n"),this._line=1,this._col=1,this._cursor=0}function n(e,t,n){this.col=n,this.line=t,this.message=e}function r(e,t,n,r){this.col=n,this.line=t,this.text=e,this.type=r}function i(e,n){this._reader=e?new t(e.toString()):null,this._token=null,this._tokenData=n,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}e.prototype={constructor:e,addListener:function(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e].push(t)},fire:function(e){typeof e=="string"&&(e={type:e}),typeof e.target!="undefined"&&(e.target=this);if(typeof e.type=="undefined")throw new Error("Event object missing 'type' property.");if(this._listeners[e.type]){var t=this._listeners[e.type].concat();for(var n=0,r=t.length;n<r;n++)t[n].call(this,e)}},removeListener:function(e,t){if(this._listeners[e]){var n=this._listeners[e];for(var r=0,i=n.length;r<i;r++)if(n[r]===t){n.splice(r,1);break}}}},t.prototype={constructor:t,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(e){var t=null;return e=typeof e=="undefined"?1:e,this._cursor<this._input.length&&(t=this._input.charAt(this._cursor+e-1)),t},read:function(){var e=null;return this._cursor<this._input.length&&(this._input.charAt(this._cursor)=="\n"?(this._line++,this._col=1):this._col++,e=this._input.charAt(this._cursor++)),e},mark:function(){this._bookmark={cursor:this._cursor,line:this._line,col:this._col}},reset:function(){this._bookmark&&(this._cursor=this._bookmark.cursor,this._line=this._bookmark.line,this._col=this._bookmark.col,delete this._bookmark)},readTo:function(e){var t="",n;while(t.length<e.length||t.lastIndexOf(e)!=t.length-e.length){n=this.read();if(!n)throw new Error('Expected "'+e+'" at line '+this._line+", col "+this._col+".");t+=n}return t},readWhile:function(e){var t="",n=this.read();while(n!==null&&e(n))t+=n,n=this.read();return t},readMatch:function(e){var t=this._input.substring(this._cursor),n=null;return typeof e=="string"?t.indexOf(e)===0&&(n=this.readCount(e.length)):e instanceof RegExp&&e.test(t)&&(n=this.readCount(RegExp.lastMatch.length)),n},readCount:function(e){var t="";while(e--)t+=this.read();return t}},n.prototype=new Error,r.fromToken=function(e){return new r(e.value,e.startLine,e.startCol)},r.prototype={constructor:r,valueOf:function(){return this.text},toString:function(){return this.text}},i.createTokenData=function(e){var t=[],n={},r=e.concat([]),i=0,s=r.length+1;r.UNKNOWN=-1,r.unshift({name:"EOF"});for(;i<s;i++)t.push(r[i].name),r[r[i].name]=i,r[i].text&&(n[r[i].text]=i);return r.name=function(e){return t[e]},r.type=function(e){return n[e]},r},i.prototype={constructor:i,match:function(e,t){e instanceof Array||(e=[e]);var n=this.get(t),r=0,i=e.length;while(r<i)if(n==e[r++])return!0;return this.unget(),!1},mustMatch:function(e,t){var r;e instanceof Array||(e=[e]);if(!this.match.apply(this,arguments))throw r=this.LT(1),new n("Expected "+this._tokenData[e[0]].name+" at line "+r.startLine+", col "+r.startCol+".",r.startLine,r.startCol)},advance:function(e,t){while(this.LA(0)!==0&&!this.match(e,t))this.get();return this.LA(0)},get:function(e){var t=this._tokenData,n=this._reader,r,i=0,s=t.length,o=!1,u,a;if(this._lt.length&&this._ltIndex>=0&&this._ltIndex<this._lt.length){i++,this._token=this._lt[this._ltIndex++],a=t[this._token.type];while(a.channel!==undefined&&e!==a.channel&&this._ltIndex<this._lt.length)this._token=this._lt[this._ltIndex++],a=t[this._token.type],i++;if((a.channel===undefined||e===a.channel)&&this._ltIndex<=this._lt.length)return this._ltIndexCache.push(i),this._token.type}return u=this._getToken(),u.type>-1&&!t[u.type].hide&&(u.channel=t[u.type].channel,this._token=u,this._lt.push(u),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),a=t[u.type],a&&(a.hide||a.channel!==undefined&&e!==a.channel)?this.get(e):u.type},LA:function(e){var t=e,n;if(e>0){if(e>5)throw new Error("Too much lookahead.");while(t)n=this.get(),t--;while(t<e)this.unget(),t++}else if(e<0){if(!this._lt[this._ltIndex+e])throw new Error("Too much lookbehind.");n=this._lt[this._ltIndex+e].type}else n=this._token.type;return n},LT:function(e){return this.LA(e),this._lt[this._ltIndex+e-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(e){return e<0||e>this._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[e].name},tokenType:function(e){return this._tokenData[e]||-1},unget:function(){if(!this._ltIndexCache.length)throw new Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:t,SyntaxError:n,SyntaxUnit:r,EventTarget:e,TokenStreamBase:i}})(),function(){function Combinator(e,t,n){SyntaxUnit.call(this,e,t,n,Parser.COMBINATOR_TYPE),this.type="unknown",/^\s+$/.test(e)?this.type="descendant":e==">"?this.type="child":e=="+"?this.type="adjacent-sibling":e=="~"&&(this.type="sibling")}function MediaFeature(e,t){SyntaxUnit.call(this,"("+e+(t!==null?":"+t:"")+")",e.startLine,e.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=e,this.value=t}function MediaQuery(e,t,n,r,i){SyntaxUnit.call(this,(e?e+" ":"")+(t?t:"")+(t&&n.length>0?" and ":"")+n.join(" and "),r,i,Parser.MEDIA_QUERY_TYPE),this.modifier=e,this.mediaType=t,this.features=n}function Parser(e){EventTarget.call(this),this.options=e||{},this._tokenStream=null}function PropertyName(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.PROPERTY_NAME_TYPE),this.hack=t}function PropertyValue(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.PROPERTY_VALUE_TYPE),this.parts=e}function PropertyValueIterator(e){this._i=0,this._parts=e.parts,this._marks=[],this.value=e}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2;switch(this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":case"ch":case"vh":case"vw":case"vmax":case"vmin":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}}else/^([+\-]?[\d\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\-]?\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\-]?[\d\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,temp.length==3?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100):/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.red=+RegExp.$1*255/100,this.green=+RegExp.$2*255/100,this.blue=+RegExp.$3*255/100,this.alpha=+RegExp.$4):/^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\(["']?([^\)"']+)["']?\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^([^\(]+)\(/i.test(text)?(this.type="function",this.name=RegExp.$1,this.value=text):/^["'][^"']*["']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\,\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\-_\u0080-\uFFFF][a-z0-9\-_\u0080-\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function Selector(e,t,n){SyntaxUnit.call(this,e.join(" "),t,n,Parser.SELECTOR_TYPE),this.parts=e,this.specificity=Specificity.calculate(this)}function SelectorPart(e,t,n,r,i){SyntaxUnit.call(this,n,r,i,Parser.SELECTOR_PART_TYPE),this.elementName=e,this.modifiers=t}function SelectorSubPart(e,t,n,r){SyntaxUnit.call(this,e,n,r,Parser.SELECTOR_SUB_PART_TYPE),this.type=t,this.args=[]}function Specificity(e,t,n,r){this.a=e,this.b=t,this.c=n,this.d=r}function isHexDigit(e){return e!==null&&h.test(e)}function isDigit(e){return e!==null&&/\d/.test(e)}function isWhitespace(e){return e!==null&&/\s/.test(e)}function isNewLine(e){return e!==null&&nl.test(e)}function isNameStart(e){return e!==null&&/[a-z_\u0080-\uFFFF\\]/i.test(e)}function isNameChar(e){return e!==null&&(isNameStart(e)||/[0-9\-\\]/.test(e))}function isIdentStart(e){return e!==null&&(isNameStart(e)||/\-\\/.test(e))}function mix(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function TokenStream(e){TokenStreamBase.call(this,e,Tokens)}function ValidationError(e,t,n){this.col=n,this.line=t,this.message=e}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",activeBorder:"Active window border.",activecaption:"Active window caption.",appworkspace:"Background color of multiple document interface.",background:"Desktop background.",buttonface:"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonhighlight:"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonshadow:"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttontext:"Text on push buttons.",captiontext:"Text in caption, size box, and scrollbar arrow box.",graytext:"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",greytext:"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.",highlight:"Item(s) selected in a control.",highlighttext:"Text of item(s) selected in a control.",inactiveborder:"Inactive window border.",inactivecaption:"Inactive window caption.",inactivecaptiontext:"Color of text in an inactive caption.",infobackground:"Background color for tooltip controls.",infotext:"Text color for tooltip controls.",menu:"Menu background.",menutext:"Text in menus.",scrollbar:"Scroll bar gray area.",threeddarkshadow:"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedface:"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedhighlight:"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedlightshadow:"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedshadow:"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",window:"Window background.",windowframe:"Window frame.",windowtext:"Text in windows."};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var e=new EventTarget,t,n={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var e=this._tokenStream,t=null,n,r,i;this.fire("startstylesheet"),this._charset(),this._skipCruft();while(e.peek()==Tokens.IMPORT_SYM)this._import(),this._skipCruft();while(e.peek()==Tokens.NAMESPACE_SYM)this._namespace(),this._skipCruft();i=e.peek();while(i>Tokens.EOF){try{switch(i){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:e.get();if(!!this.options.strict)throw new SyntaxError("Unknown @ rule.",e.LT(0).startLine,e.LT(0).startCol);this.fire({type:"error",error:null,message:"Unknown @ rule: "+e.LT(0).value+".",line:e.LT(0).startLine,col:e.LT(0).startCol}),n=0;while(e.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE)n++;while(n)e.advance([Tokens.RBRACE]),n--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(i){case Tokens.CHARSET_SYM:throw r=e.LT(1),this._charset(!1),new SyntaxError("@charset not allowed here.",r.startLine,r.startCol);case Tokens.IMPORT_SYM:throw r=e.LT(1),this._import(!1),new SyntaxError("@import not allowed here.",r.startLine,r.startCol);case Tokens.NAMESPACE_SYM:throw r=e.LT(1),this._namespace(!1),new SyntaxError("@namespace not allowed here.",r.startLine,r.startCol);default:e.get(),this._unexpectedToken(e.token())}}}catch(s){if(!(s instanceof SyntaxError&&!this.options.strict))throw s;this.fire({type:"error",error:s,message:s.message,line:s.line,col:s.col})}i=e.peek()}i!=Tokens.EOF&&this._unexpectedToken(e.token()),this.fire("endstylesheet")},_charset:function(e){var t=this._tokenStream,n,r,i,s;t.match(Tokens.CHARSET_SYM)&&(i=t.token().startLine,s=t.token().startCol,this._readWhitespace(),t.mustMatch(Tokens.STRING),r=t.token(),n=r.value,this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),e!==!1&&this.fire({type:"charset",charset:n,line:i,col:s}))},_import:function(e){var t=this._tokenStream,n,r,i,s=[];t.mustMatch(Tokens.IMPORT_SYM),i=t.token(),this._readWhitespace(),t.mustMatch([Tokens.STRING,Tokens.URI]),r=t.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/,"$1"),this._readWhitespace(),s=this._media_query_list(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"import",uri:r,media:s,line:i.startLine,col:i.startCol})},_namespace:function(e){var t=this._tokenStream,n,r,i,s;t.mustMatch(Tokens.NAMESPACE_SYM),n=t.token().startLine,r=t.token().startCol,this._readWhitespace(),t.match(Tokens.IDENT)&&(i=t.token().value,this._readWhitespace()),t.mustMatch([Tokens.STRING,Tokens.URI]),s=t.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/,"$1"),this._readWhitespace(),t.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),e!==!1&&this.fire({type:"namespace",prefix:i,uri:s,line:n,col:r})},_media:function(){var e=this._tokenStream,t,n,r;e.mustMatch(Tokens.MEDIA_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),r=this._media_query_list(),e.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:r,line:t,col:n});for(;;)if(e.peek()==Tokens.PAGE_SYM)this._page();else if(e.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(e.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;e.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:r,line:t,col:n})},_media_query_list:function(){var e=this._tokenStream,t=[];this._readWhitespace(),(e.peek()==Tokens.IDENT||e.peek()==Tokens.LPAREN)&&t.push(this._media_query());while(e.match(Tokens.COMMA))this._readWhitespace(),t.push(this._media_query());return t},_media_query:function(){var e=this._tokenStream,t=null,n=null,r=null,i=[];e.match(Tokens.IDENT)&&(n=e.token().value.toLowerCase(),n!="only"&&n!="not"?(e.unget(),n=null):r=e.token()),this._readWhitespace(),e.peek()==Tokens.IDENT?(t=this._media_type(),r===null&&(r=e.token())):e.peek()==Tokens.LPAREN&&(r===null&&(r=e.LT(1)),i.push(this._media_expression()));if(t===null&&i.length===0)return null;this._readWhitespace();while(e.match(Tokens.IDENT))e.token().value.toLowerCase()!="and"&&this._unexpectedToken(e.token()),this._readWhitespace(),i.push(this._media_expression());return new MediaQuery(n,t,i,r.startLine,r.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var e=this._tokenStream,t=null,n,r=null;return e.mustMatch(Tokens.LPAREN),this._readWhitespace(),t=this._media_feature(),this._readWhitespace(),e.match(Tokens.COLON)&&(this._readWhitespace(),n=e.LT(1),r=this._expression()),e.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(t,r?new SyntaxUnit(r,n.startLine,n.startCol):null)},_media_feature:function(){var e=this._tokenStream;return e.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(e.token())},_page:function(){var e=this._tokenStream,t,n,r=null,i=null;e.mustMatch(Tokens.PAGE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),e.match(Tokens.IDENT)&&(r=e.token().value,r.toLowerCase()==="auto"&&this._unexpectedToken(e.token())),e.peek()==Tokens.COLON&&(i=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:r,pseudo:i,line:t,col:n}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:r,pseudo:i,line:t,col:n})},_margin:function(){var e=this._tokenStream,t,n,r=this._margin_sym();return r?(t=e.token().startLine,n=e.token().startCol,this.fire({type:"startpagemargin",margin:r,line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:r,line:t,col:n}),!0):!1},_margin_sym:function(){var e=this._tokenStream;return e.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(e.token()):null},_pseudo_page:function(){var e=this._tokenStream;return e.mustMatch(Tokens.COLON),e.mustMatch(Tokens.IDENT),e.token().value},_font_face:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.FONT_FACE_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endfontface",line:t,col:n})},_viewport:function(){var e=this._tokenStream,t,n;e.mustMatch(Tokens.VIEWPORT_SYM),t=e.token().startLine,n=e.token().startCol,this._readWhitespace(),this.fire({type:"startviewport",line:t,col:n}),this._readDeclarations(!0),this.fire({type:"endviewport",line:t,col:n})},_operator:function(e){var t=this._tokenStream,n=null;if(t.match([Tokens.SLASH,Tokens.COMMA])||e&&t.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))n=t.token(),this._readWhitespace();return n?PropertyValuePart.fromToken(n):null},_combinator:function(){var e=this._tokenStream,t=null,n;return e.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(n=e.token(),t=new Combinator(n.value,n.startLine,n.startCol),this._readWhitespace()),t},_unary_operator:function(){var e=this._tokenStream;return e.match([Tokens.MINUS,Tokens.PLUS])?e.token().value:null},_property:function(){var e=this._tokenStream,t=null,n=null,r,i,s,o;return e.peek()==Tokens.STAR&&this.options.starHack&&(e.get(),i=e.token(),n=i.value,s=i.startLine,o=i.startCol),e.match(Tokens.IDENT)&&(i=e.token(),r=i.value,r.charAt(0)=="_"&&this.options.underscoreHack&&(n="_",r=r.substring(1)),t=new PropertyName(r,n,s||i.startLine,o||i.startCol),this._readWhitespace()),t},_ruleset:function(){var e=this._tokenStream,t,n;try{n=this._selectors_group()}catch(r){if(r instanceof SyntaxError&&!this.options.strict){this.fire({type:"error",error:r,message:r.message,line:r.line,col:r.col}),t=e.advance([Tokens.RBRACE]);if(t!=Tokens.RBRACE)throw r;return!0}throw r}return n&&(this.fire({type:"startrule",selectors:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:n,line:n[0].line,col:n[0].col})),n},_selectors_group:function(){var e=this._tokenStream,t=[],n;n=this._selector();if(n!==null){t.push(n);while(e.match(Tokens.COMMA))this._readWhitespace(),n=this._selector(),n!==null?t.push(n):this._unexpectedToken(e.LT(1))}return t.length?t:null},_selector:function(){var e=this._tokenStream,t=[],n=null,r=null,i=null;n=this._simple_selector_sequence();if(n===null)return null;t.push(n);do{r=this._combinator();if(r!==null)t.push(r),n=this._simple_selector_sequence(),n===null?this._unexpectedToken(e.LT(1)):t.push(n);else{if(!this._readWhitespace())break;i=new Combinator(e.token().value,e.token().startLine,e.token().startCol),r=this._combinator(),n=this._simple_selector_sequence(),n===null?r!==null&&this._unexpectedToken(e.LT(1)):(r!==null?t.push(r):t.push(i),t.push(n))}}while(!0);return new Selector(t,t[0].line,t[0].col)},_simple_selector_sequence:function(){var e=this._tokenStream,t=null,n=[],r="",i=[function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],s=0,o=i.length,u=null,a=!1,f,l;f=e.LT(1).startLine,l=e.LT(1).startCol,t=this._type_selector(),t||(t=this._universal()),t!==null&&(r+=t);for(;;){if(e.peek()===Tokens.S)break;while(s<o&&u===null)u=i[s++].call(this);if(u===null){if(r==="")return null;break}s=0,n.push(u),r+=u.toString(),u=null}return r!==""?new SelectorPart(t,n,r,f,l):null},_type_selector:function(){var e=this._tokenStream,t=this._namespace_prefix(),n=this._element_name();return n?(t&&(n.text=t+n.text,n.col-=t.length),n):(t&&(e.unget(),t.length>1&&e.unget()),null)},_class:function(){var e=this._tokenStream,t;return e.match(Tokens.DOT)?(e.mustMatch(Tokens.IDENT),t=e.token(),new SelectorSubPart("."+t.value,"class",t.startLine,t.startCol-1)):null},_element_name:function(){var e=this._tokenStream,t;return e.match(Tokens.IDENT)?(t=e.token(),new SelectorSubPart(t.value,"elementName",t.startLine,t.startCol)):null},_namespace_prefix:function(){var e=this._tokenStream,t="";if(e.LA(1)===Tokens.PIPE||e.LA(2)===Tokens.PIPE)e.match([Tokens.IDENT,Tokens.STAR])&&(t+=e.token().value),e.mustMatch(Tokens.PIPE),t+="|";return t.length?t:null},_universal:function(){var e=this._tokenStream,t="",n;return n=this._namespace_prefix(),n&&(t+=n),e.match(Tokens.STAR)&&(t+="*"),t.length?t:null},_attrib:function(){var e=this._tokenStream,t=null,n,r;return e.match(Tokens.LBRACKET)?(r=e.token(),t=r.value,t+=this._readWhitespace(),n=this._namespace_prefix(),n&&(t+=n),e.mustMatch(Tokens.IDENT),t+=e.token().value,t+=this._readWhitespace(),e.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(t+=e.token().value,t+=this._readWhitespace(),e.mustMatch([Tokens.IDENT,Tokens.STRING]),t+=e.token().value,t+=this._readWhitespace()),e.mustMatch(Tokens.RBRACKET),new SelectorSubPart(t+"]","attribute",r.startLine,r.startCol)):null},_pseudo:function(){var e=this._tokenStream,t=null,n=":",r,i;return e.match(Tokens.COLON)&&(e.match(Tokens.COLON)&&(n+=":"),e.match(Tokens.IDENT)?(t=e.token().value,r=e.token().startLine,i=e.token().startCol-n.length):e.peek()==Tokens.FUNCTION&&(r=e.LT(1).startLine,i=e.LT(1).startCol-n.length,t=this._functional_pseudo()),t&&(t=new SelectorSubPart(n+t,"pseudo",r,i))),t},_functional_pseudo:function(){var e=this._tokenStream,t=null;return e.match(Tokens.FUNCTION)&&(t=e.token().value,t+=this._readWhitespace(),t+=this._expression(),e.mustMatch(Tokens.RPAREN),t+=")"),t},_expression:function(){var e=this._tokenStream,t="";while(e.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]))t+=e.token().value,t+=this._readWhitespace();return t.length?t:null},_negation:function(){var e=this._tokenStream,t,n,r="",i,s=null;return e.match(Tokens.NOT)&&(r=e.token().value,t=e.token().startLine,n=e.token().startCol,r+=this._readWhitespace(),i=this._negation_arg(),r+=i,r+=this._readWhitespace(),e.match(Tokens.RPAREN),r+=e.token().value,s=new SelectorSubPart(r,"not",t,n),s.args.push(i)),s},_negation_arg:function(){var e=this._tokenStream,t=[this._type_selector,this._universal,function(){return e.match(Tokens.HASH)?new SelectorSubPart(e.token().value,"id",e.token().startLine,e.token().startCol):null},this._class,this._attrib,this._pseudo],n=null,r=0,i=t.length,s,o,u,a;o=e.LT(1).startLine,u=e.LT(1).startCol;while(r<i&&n===null)n=t[r].call(this),r++;return n===null&&this._unexpectedToken(e.LT(1)),n.type=="elementName"?a=new SelectorPart(n,[],n.toString(),o,u):a=new SelectorPart(null,[n],n.toString(),o,u),a},_declaration:function(){var e=this._tokenStream,t=null,n=null,r=null,i=null,s=null,o="";t=this._property();if(t!==null){e.mustMatch(Tokens.COLON),this._readWhitespace(),n=this._expr(),(!n||n.length===0)&&this._unexpectedToken(e.LT(1)),r=this._prio(),o=t.toString();if(this.options.starHack&&t.hack=="*"||this.options.underscoreHack&&t.hack=="_")o=t.text;try{this._validateProperty(o,n)}catch(u){s=u}return this.fire({type:"property",property:t,value:n,important:r,line:t.line,col:t.col,invalid:s}),!0}return!1},_prio:function(){var e=this._tokenStream,t=e.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),t},_expr:function(e){var t=this._tokenStream,n=[],r=null,i=null;r=this._term(e);if(r!==null){n.push(r);do{i=this._operator(e),i&&n.push(i),r=this._term(e);if(r===null)break;n.push(r)}while(!0)}return n.length>0?new PropertyValue(n,n[0].line,n[0].col):null},_term:function(e){var t=this._tokenStream,n=null,r=null,i=null,s,o,u;return n=this._unary_operator(),n!==null&&(o=t.token().startLine,u=t.token().startCol),t.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(r=this._ie_function(),n===null&&(o=t.token().startLine,u=t.token().startCol)):e&&t.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(s=t.token(),i=s.endChar,r=s.value+this._expr(e).text,n===null&&(o=t.token().startLine,u=t.token().startCol),t.mustMatch(Tokens.type(i)),r+=i,this._readWhitespace()):t.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(r=t.token().value,n===null&&(o=t.token().startLine,u=t.token().startCol),this._readWhitespace()):(s=this._hexcolor(),s===null?(n===null&&(o=t.LT(1).startLine,u=t.LT(1).startCol),r===null&&(t.LA(3)==Tokens.EQUALS&&this.options.ieFilters?r=this._ie_function():r=this._function())):(r=s.value,n===null&&(o=s.startLine,u=s.startCol))),r!==null?new PropertyValuePart(n!==null?n+r:r,o,u):null},_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match(Tokens.FUNCTION)){t=e.token().value,this._readWhitespace(),n=this._expr(!0),t+=n;if(this.options.ieFilters&&e.peek()==Tokens.EQUALS)do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_ie_function:function(){var e=this._tokenStream,t=null,n=null,r;if(e.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){t=e.token().value;do{this._readWhitespace()&&(t+=e.token().value),e.LA(0)==Tokens.COMMA&&(t+=e.token().value),e.match(Tokens.IDENT),t+=e.token().value,e.match(Tokens.EQUALS),t+=e.token().value,r=e.peek();while(r!=Tokens.COMMA&&r!=Tokens.S&&r!=Tokens.RPAREN)e.get(),t+=e.token().value,r=e.peek()}while(e.match([Tokens.COMMA,Tokens.S]));e.match(Tokens.RPAREN),t+=")",this._readWhitespace()}return t},_hexcolor:function(){var e=this._tokenStream,t=null,n;if(e.match(Tokens.HASH)){t=e.token(),n=t.value;if(!/#[a-f0-9]{3,6}/i.test(n))throw new SyntaxError("Expected a hex color but found '"+n+"' at line "+t.startLine+", col "+t.startCol+".",t.startLine,t.startCol);this._readWhitespace()}return t},_keyframes:function(){var e=this._tokenStream,t,n,r,i="";e.mustMatch(Tokens.KEYFRAMES_SYM),t=e.token(),/^@\-([^\-]+)\-/.test(t.value)&&(i=RegExp.$1),this._readWhitespace(),r=this._keyframe_name(),this._readWhitespace(),e.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),n=e.peek();while(n==Tokens.IDENT||n==Tokens.PERCENTAGE)this._keyframe_rule(),this._readWhitespace(),n=e.peek();this.fire({type:"endkeyframes",name:r,prefix:i,line:t.startLine,col:t.startCol}),this._readWhitespace(),e.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var e=this._tokenStream,t;return e.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(e.token())},_keyframe_rule:function(){var e=this._tokenStream,t,n=this._key_list();this.fire({type:"startkeyframerule",keys:n,line:n[0].line,col:n[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:n,line:n[0].line,col:n[0].col})},_key_list:function(){var e=this._tokenStream,t,n,r=[];r.push(this._key()),this._readWhitespace();while(e.match(Tokens.COMMA))this._readWhitespace(),r.push(this._key()),this._readWhitespace();return r},_key:function(){var e=this._tokenStream,t;if(e.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(e.token());if(e.match(Tokens.IDENT)){t=e.token();if(/from|to/i.test(t.value))return SyntaxUnit.fromToken(t);e.unget()}this._unexpectedToken(e.LT(1))},_skipCruft:function(){while(this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]));},_readDeclarations:function(e,t){var n=this._tokenStream,r;this._readWhitespace(),e&&n.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(!(n.match(Tokens.SEMICOLON)||t&&this._margin())){if(!this._declaration())break;if(!n.match(Tokens.SEMICOLON))break}this._readWhitespace()}n.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(i){if(!(i instanceof SyntaxError&&!this.options.strict))throw i;this.fire({type:"error",error:i,message:i.message,line:i.line,col:i.col}),r=n.advance([Tokens.SEMICOLON,Tokens.RBRACE]);if(r==Tokens.SEMICOLON)this._readDeclarations(!1,t);else if(r!=Tokens.RBRACE)throw i}},_readWhitespace:function(){var e=this._tokenStream,t="";while(e.match(Tokens.S))t+=e.token().value;return t},_unexpectedToken:function(e){throw new SyntaxError("Unexpected token '"+e.value+"' at line "+e.startLine+", col "+e.startCol+".",e.startLine,e.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(e,t){Validation.validate(e,t)},parse:function(e){this._tokenStream=new TokenStream(e,Tokens),this._stylesheet()},parseStyleSheet:function(e){return this.parse(e)},parseMediaQuery:function(e){this._tokenStream=new TokenStream(e,Tokens);var t=this._media_query();return this._verifyEnd(),t},parsePropertyValue:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._expr();return this._readWhitespace(),this._verifyEnd(),t},parseRule:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._ruleset();return this._readWhitespace(),this._verifyEnd(),t},parseSelector:function(e){this._tokenStream=new TokenStream(e,Tokens),this._readWhitespace();var t=this._selector();return this._readWhitespace(),this._verifyEnd(),t},parseStyleAttribute:function(e){e+="}",this._tokenStream=new TokenStream(e,Tokens),this._readDeclarations()}};for(t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}();var Properties={"align-items":"flex-start | flex-end | center | baseline | stretch","align-content":"flex-start | flex-end | center | space-between | space-around | stretch","align-self":"auto | flex-start | flex-end | center | baseline | stretch","-webkit-align-items":"flex-start | flex-end | center | baseline | stretch","-webkit-align-content":"flex-start | flex-end | center | space-between | space-around | stretch","-webkit-align-self":"auto | flex-start | flex-end | center | baseline | stretch","alignment-adjust":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>","alignment-baseline":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",animation:1,"animation-delay":{multi:"<time>",comma:!0},"animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"animation-duration":{multi:"<time>",comma:!0},"animation-fill-mode":{multi:"none | forwards | backwards | both",comma:!0},"animation-iteration-count":{multi:"<number> | infinite",comma:!0},"animation-name":{multi:"none | <ident>",comma:!0},"animation-play-state":{multi:"running | paused",comma:!0},"animation-timing-function":1,"-moz-animation-delay":{multi:"<time>",comma:!0},"-moz-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-moz-animation-duration":{multi:"<time>",comma:!0},"-moz-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-moz-animation-name":{multi:"none | <ident>",comma:!0},"-moz-animation-play-state":{multi:"running | paused",comma:!0},"-ms-animation-delay":{multi:"<time>",comma:!0},"-ms-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-ms-animation-duration":{multi:"<time>",comma:!0},"-ms-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-ms-animation-name":{multi:"none | <ident>",comma:!0},"-ms-animation-play-state":{multi:"running | paused",comma:!0},"-webkit-animation-delay":{multi:"<time>",comma:!0},"-webkit-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-webkit-animation-duration":{multi:"<time>",comma:!0},"-webkit-animation-fill-mode":{multi:"none | forwards | backwards | both",comma:!0},"-webkit-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-webkit-animation-name":{multi:"none | <ident>",comma:!0},"-webkit-animation-play-state":{multi:"running | paused",comma:!0},"-o-animation-delay":{multi:"<time>",comma:!0},"-o-animation-direction":{multi:"normal | reverse | alternate | alternate-reverse",comma:!0},"-o-animation-duration":{multi:"<time>",comma:!0},"-o-animation-iteration-count":{multi:"<number> | infinite",comma:!0},"-o-animation-name":{multi:"none | <ident>",comma:!0},"-o-animation-play-state":{multi:"running | paused",comma:!0},appearance:"icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit",azimuth:function(e){var t="<angle> | leftwards | rightwards | inherit",n="left-side | far-left | left | center-left | center | center-right | right | far-right | right-side",r=!1,i=!1,s;ValidationTypes.isAny(e,t)||(ValidationTypes.isAny(e,"behind")&&(r=!0,i=!0),ValidationTypes.isAny(e,n)&&(i=!0,r||ValidationTypes.isAny(e,"behind")));if(e.hasNext())throw s=e.next(),i?new ValidationError("Expected end of value but found '"+s+"'.",s.line,s.col):new ValidationError("Expected (<'azimuth'>) but found '"+s+"'.",s.line,s.col)},"backface-visibility":"visible | hidden",background:1,"background-attachment":{multi:"<attachment>",comma:!0},"background-clip":{multi:"<box>",comma:!0},"background-color":"<color> | inherit","background-image":{multi:"<bg-image>",comma:!0},"background-origin":{multi:"<box>",comma:!0},"background-position":{multi:"<bg-position>",comma:!0},"background-repeat":{multi:"<repeat-style>"},"background-size":{multi:"<bg-size>",comma:!0},"baseline-shift":"baseline | sub | super | <percentage> | <length>",behavior:1,binding:1,bleed:"<length>","bookmark-label":"<content> | <attr> | <string>","bookmark-level":"none | <integer>","bookmark-state":"open | closed","bookmark-target":"none | <uri> | <attr>",border:"<border-width> || <border-style> || <color>","border-bottom":"<border-width> || <border-style> || <color>","border-bottom-color":"<color> | inherit","border-bottom-left-radius":"<x-one-radius>","border-bottom-right-radius":"<x-one-radius>","border-bottom-style":"<border-style>","border-bottom-width":"<border-width>","border-collapse":"collapse | separate | inherit","border-color":{multi:"<color> | inherit",max:4},"border-image":1,"border-image-outset":{multi:"<length> | <number>",max:4},"border-image-repeat":{multi:"stretch | repeat | round",max:2},"border-image-slice":function(e){var t=!1,n="<number> | <percentage>",r=!1,i=0,s=4,o;ValidationTypes.isAny(e,"fill")&&(r=!0,t=!0);while(e.hasNext()&&i<s){t=ValidationTypes.isAny(e,n);if(!t)break;i++}r?t=!0:ValidationTypes.isAny(e,"fill");if(e.hasNext())throw o=e.next(),t?new ValidationError("Expected end of value but found '"+o+"'.",o.line,o.col):new ValidationError("Expected ([<number> | <percentage>]{1,4} && fill?) but found '"+o+"'.",o.line,o.col)},"border-image-source":"<image> | none","border-image-width":{multi:"<length> | <percentage> | <number> | auto",max:4},"border-left":"<border-width> || <border-style> || <color>","border-left-color":"<color> | inherit","border-left-style":"<border-style>","border-left-width":"<border-width>","border-radius":function(e){var t=!1,n="<length> | <percentage> | inherit",r=!1,i=!1,s=0,o=8,u;while(e.hasNext()&&s<o){t=ValidationTypes.isAny(e,n);if(!t){if(!(e.peek()=="/"&&s>0&&!r))break;r=!0,o=s+5,e.next()}s++}if(e.hasNext())throw u=e.next(),t?new ValidationError("Expected end of value but found '"+u+"'.",u.line,u.col):new ValidationError("Expected (<'border-radius'>) but found '"+u+"'.",u.line,u.col)},"border-right":"<border-width> || <border-style> || <color>","border-right-color":"<color> | inherit","border-right-style":"<border-style>","border-right-width":"<border-width>","border-spacing":{multi:"<length> | inherit",max:2},"border-style":{multi:"<border-style>",max:4},"border-top":"<border-width> || <border-style> || <color>","border-top-color":"<color> | inherit","border-top-left-radius":"<x-one-radius>","border-top-right-radius":"<x-one-radius>","border-top-style":"<border-style>","border-top-width":"<border-width>","border-width":{multi:"<border-width>",max:4},bottom:"<margin-width> | inherit","-moz-box-align":"start | end | center | baseline | stretch","-moz-box-decoration-break":"slice |clone","-moz-box-direction":"normal | reverse | inherit","-moz-box-flex":"<number>","-moz-box-flex-group":"<integer>","-moz-box-lines":"single | multiple","-moz-box-ordinal-group":"<integer>","-moz-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-moz-box-pack":"start | end | center | justify","-webkit-box-align":"start | end | center | baseline | stretch","-webkit-box-decoration-break":"slice |clone","-webkit-box-direction":"normal | reverse | inherit","-webkit-box-flex":"<number>","-webkit-box-flex-group":"<integer>","-webkit-box-lines":"single | multiple","-webkit-box-ordinal-group":"<integer>","-webkit-box-orient":"horizontal | vertical | inline-axis | block-axis | inherit","-webkit-box-pack":"start | end | center | justify","box-shadow":function(e){var t=!1,n;if(!ValidationTypes.isAny(e,"none"))Validation.multiProperty("<shadow>",e,!0,Infinity);else if(e.hasNext())throw n=e.next(),new ValidationError("Expected end of value but found '"+n+"'.",n.line,n.col)},"box-sizing":"content-box | border-box | inherit","break-after":"auto | always | avoid | left | right | page | column | avoid-page | avoid-column","break-before":"auto | always | avoid | left | right | page | column | avoid-page | avoid-column","break-inside":"auto | avoid | avoid-page | avoid-column","caption-side":"top | bottom | inherit",clear:"none | right | left | both | inherit",clip:1,color:"<color> | inherit","color-profile":1,"column-count":"<integer> | auto","column-fill":"auto | balance","column-gap":"<length> | normal","column-rule":"<border-width> || <border-style> || <color>","column-rule-color":"<color>","column-rule-style":"<border-style>","column-rule-width":"<border-width>","column-span":"none | all","column-width":"<length> | auto",columns:1,content:1,"counter-increment":1,"counter-reset":1,crop:"<shape> | auto",cue:"cue-after | cue-before | inherit","cue-after":1,"cue-before":1,cursor:1,direction:"ltr | rtl | inherit",display:"inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker | -webkit-box | -webkit-inline-box | -ms-flexbox | -ms-inline-flexbox | flex | -webkit-flex | inline-flex | -webkit-inline-flex","dominant-baseline":1,"drop-initial-after-adjust":"central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>","drop-initial-after-align":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical","drop-initial-before-adjust":"before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>","drop-initial-before-align":"caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical","drop-initial-size":"auto | line | <length> | <percentage>","drop-initial-value":"initial | <integer>",elevation:"<angle> | below | level | above | higher | lower | inherit","empty-cells":"show | hide | inherit",filter:1,fit:"fill | hidden | meet | slice","fit-position":1,flex:"<flex>","flex-basis":"<width>","flex-direction":"row | row-reverse | column | column-reverse","flex-flow":"<flex-direction> || <flex-wrap>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap | wrap | wrap-reverse","-webkit-flex":"<flex>","-webkit-flex-basis":"<width>","-webkit-flex-direction":"row | row-reverse | column | column-reverse","-webkit-flex-flow":"<flex-direction> || <flex-wrap>","-webkit-flex-grow":"<number>","-webkit-flex-shrink":"<number>","-webkit-flex-wrap":"nowrap | wrap | wrap-reverse","-ms-flex":"<flex>","-ms-flex-align":"start | end | center | stretch | baseline","-ms-flex-direction":"row | row-reverse | column | column-reverse | inherit","-ms-flex-order":"<number>","-ms-flex-pack":"start | end | center | justify","-ms-flex-wrap":"nowrap | wrap | wrap-reverse","float":"left | right | none | inherit","float-offset":1,font:1,"font-family":1,"font-size":"<absolute-size> | <relative-size> | <length> | <percentage> | inherit","font-size-adjust":"<number> | none | inherit","font-stretch":"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit","font-style":"normal | italic | oblique | inherit","font-variant":"normal | small-caps | inherit","font-weight":"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit","grid-cell-stacking":"columns | rows | layer","grid-column":1,"grid-columns":1,"grid-column-align":"start | end | center | stretch","grid-column-sizing":1,"grid-column-span":"<integer>","grid-flow":"none | rows | columns","grid-layer":"<integer>","grid-row":1,"grid-rows":1,"grid-row-align":"start | end | center | stretch","grid-row-span":"<integer>","grid-row-sizing":1,"hanging-punctuation":1,height:"<margin-width> | <content-sizing> | inherit","hyphenate-after":"<integer> | auto","hyphenate-before":"<integer> | auto","hyphenate-character":"<string> | auto","hyphenate-lines":"no-limit | <integer>","hyphenate-resource":1,hyphens:"none | manual | auto",icon:1,"image-orientation":"angle | auto","image-rendering":1,"image-resolution":1,"inline-box-align":"initial | last | <integer>","justify-content":"flex-start | flex-end | center | space-between | space-around","-webkit-justify-content":"flex-start | flex-end | center | space-between | space-around",left:"<margin-width> | inherit","letter-spacing":"<length> | normal | inherit","line-height":"<number> | <length> | <percentage> | normal | inherit","line-break":"auto | loose | normal | strict","line-stacking":1,"line-stacking-ruby":"exclude-ruby | include-ruby","line-stacking-shift":"consider-shifts | disregard-shifts","line-stacking-strategy":"inline-line-height | block-line-height | max-height | grid-height","list-style":1,"list-style-image":"<uri> | none | inherit","list-style-position":"inside | outside | inherit","list-style-type":"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit",margin:{multi:"<margin-width> | inherit",max:4},"margin-bottom":"<margin-width> | inherit","margin-left":"<margin-width> | inherit","margin-right":"<margin-width> | inherit","margin-top":"<margin-width> | inherit",mark:1,"mark-after":1,"mark-before":1,marks:1,"marquee-direction":1,"marquee-play-count":1,"marquee-speed":1,"marquee-style":1,"max-height":"<length> | <percentage> | <content-sizing> | none | inherit","max-width":"<length> | <percentage> | <content-sizing> | none | inherit","min-height":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","min-width":"<length> | <percentage> | <content-sizing> | contain-floats | -moz-contain-floats | -webkit-contain-floats | inherit","move-to":1,"nav-down":1,"nav-index":1,"nav-left":1,"nav-right":1,"nav-up":1,opacity:"<number> | inherit",order:"<integer>","-webkit-order":"<integer>",orphans:"<integer> | inherit",outline:1,"outline-color":"<color> | invert | inherit","outline-offset":1,"outline-style":"<border-style> | inherit","outline-width":"<border-width> | inherit",overflow:"visible | hidden | scroll | auto | inherit","overflow-style":1,"overflow-wrap":"normal | break-word","overflow-x":1,"overflow-y":1,padding:{multi:"<padding-width> | inherit",max:4},"padding-bottom":"<padding-width> | inherit","padding-left":"<padding-width> | inherit","padding-right":"<padding-width> | inherit","padding-top":"<padding-width> | inherit",page:1,"page-break-after":"auto | always | avoid | left | right | inherit","page-break-before":"auto | always | avoid | left | right | inherit","page-break-inside":"auto | avoid | inherit","page-policy":1,pause:1,"pause-after":1,"pause-before":1,perspective:1,"perspective-origin":1,phonemes:1,pitch:1,"pitch-range":1,"play-during":1,"pointer-events":"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",position:"static | relative | absolute | fixed | inherit","presentation-level":1,"punctuation-trim":1,quotes:1,"rendering-intent":1,resize:1,rest:1,"rest-after":1,"rest-before":1,richness:1,right:"<margin-width> | inherit",rotation:1,"rotation-point":1,"ruby-align":1,"ruby-overhang":1,"ruby-position":1,"ruby-span":1,size:1,speak:"normal | none | spell-out | inherit","speak-header":"once | always | inherit","speak-numeral":"digits | continuous | inherit","speak-punctuation":"code | none | inherit","speech-rate":1,src:1,stress:1,"string-set":1,"table-layout":"auto | fixed | inherit","tab-size":"<integer> | <length>",target:1,"target-name":1,"target-new":1,"target-position":1,"text-align":"left | right | center | justify | inherit","text-align-last":1,"text-decoration":1,"text-emphasis":1,"text-height":1,"text-indent":"<length> | <percentage> | inherit","text-justify":"auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida","text-outline":1,"text-overflow":1,"text-rendering":"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit","text-shadow":1,"text-transform":"capitalize | uppercase | lowercase | none | inherit","text-wrap":"normal | none | avoid",top:"<margin-width> | inherit","-ms-touch-action":"auto | none | pan-x | pan-y","touch-action":"auto | none | pan-x | pan-y",transform:1,"transform-origin":1,"transform-style":1,transition:1,"transition-delay":1,"transition-duration":1,"transition-property":1,"transition-timing-function":1,"unicode-bidi":"normal | embed | isolate | bidi-override | isolate-override | plaintext | inherit","user-modify":"read-only | read-write | write-only | inherit","user-select":"none | text | toggle | element | elements | all | inherit","vertical-align":"auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>",visibility:"visible | hidden | collapse | inherit","voice-balance":1,"voice-duration":1,"voice-family":1,"voice-pitch":1,"voice-pitch-range":1,"voice-rate":1,"voice-stress":1,"voice-volume":1,volume:1,"white-space":"normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap","white-space-collapse":1,widows:"<integer> | inherit",width:"<length> | <percentage> | <content-sizing> | auto | inherit","word-break":"normal | keep-all | break-all","word-spacing":"<length> | normal | inherit","word-wrap":"normal | break-word","writing-mode":"horizontal-tb | vertical-rl | vertical-lr | lr-tb | rl-tb | tb-rl | bt-rl | tb-lr | bt-lr | lr-bt | rl-bt | lr | rl | tb | inherit","z-index":"<integer> | auto | inherit",zoom:"<number> | <percentage> | normal"};PropertyName.prototype=new SyntaxUnit,PropertyName.prototype.constructor=PropertyName,PropertyName.prototype.toString=function(){return(this.hack?this.hack:"")+this.text},PropertyValue.prototype=new SyntaxUnit,PropertyValue.prototype.constructor=PropertyValue,PropertyValueIterator.prototype.count=function(){return this._parts.length},PropertyValueIterator.prototype.isFirst=function(){return this._i===0},PropertyValueIterator.prototype.hasNext=function(){return this._i<this._parts.length},PropertyValueIterator.prototype.mark=function(){this._marks.push(this._i)},PropertyValueIterator.prototype.peek=function(e){return this.hasNext()?this._parts[this._i+(e||0)]:null},PropertyValueIterator.prototype.next=function(){return this.hasNext()?this._parts[this._i++]:null},PropertyValueIterator.prototype.previous=function(){return this._i>0?this._parts[--this._i]:null},PropertyValueIterator.prototype.restore=function(){this._marks.length&&(this._i=this._marks.pop())},PropertyValuePart.prototype=new SyntaxUnit,PropertyValuePart.prototype.constructor=PropertyValuePart,PropertyValuePart.fromToken=function(e){return new PropertyValuePart(e.value,e.startLine,e.startCol)};var Pseudos={":first-letter":1,":first-line":1,":before":1,":after":1};Pseudos.ELEMENT=1,Pseudos.CLASS=2,Pseudos.isElement=function(e){return e.indexOf("::")===0||Pseudos[e.toLowerCase()]==Pseudos.ELEMENT},Selector.prototype=new SyntaxUnit,Selector.prototype.constructor=Selector,SelectorPart.prototype=new SyntaxUnit,SelectorPart.prototype.constructor=SelectorPart,SelectorSubPart.prototype=new SyntaxUnit,SelectorSubPart.prototype.constructor=SelectorSubPart,Specificity.prototype={constructor:Specificity,compare:function(e){var t=["a","b","c","d"],n,r;for(n=0,r=t.length;n<r;n++){if(this[t[n]]<e[t[n]])return-1;if(this[t[n]]>e[t[n]])return 1}return 0},valueOf:function(){return this.a*1e3+this.b*100+this.c*10+this.d},toString:function(){return this.a+","+this.b+","+this.c+","+this.d}},Specificity.calculate=function(e){function u(e){var t,n,r,a,f=e.elementName?e.elementName.text:"",l;f&&f.charAt(f.length-1)!="*"&&o++;for(t=0,r=e.modifiers.length;t<r;t++){l=e.modifiers[t];switch(l.type){case"class":case"attribute":s++;break;case"id":i++;break;case"pseudo":Pseudos.isElement(l.text)?o++:s++;break;case"not":for(n=0,a=l.args.length;n<a;n++)u(l.args[n])}}}var t,n,r,i=0,s=0,o=0;for(t=0,n=e.parts.length;t<n;t++)r=e.parts[t],r instanceof SelectorPart&&u(r);return new Specificity(0,i,s,o)};var h=/^[0-9a-fA-F]$/,nonascii=/^[\u0080-\uFFFF]$/,nl=/\n|\r\n|\r|\f/;TokenStream.prototype=mix(new TokenStreamBase,{_getToken:function(e){var t,n=this._reader,r=null,i=n.getLine(),s=n.getCol();t=n.read();while(t){switch(t){case"/":n.peek()=="*"?r=this.commentToken(t,i,s):r=this.charToken(t,i,s);break;case"|":case"~":case"^":case"$":case"*":n.peek()=="="?r=this.comparisonToken(t,i,s):r=this.charToken(t,i,s);break;case'"':case"'":r=this.stringToken(t,i,s);break;case"#":isNameChar(n.peek())?r=this.hashToken(t,i,s):r=this.charToken(t,i,s);break;case".":isDigit(n.peek())?r=this.numberToken(t,i,s):r=this.charToken(t,i,s);break;case"-":n.peek()=="-"?r=this.htmlCommentEndToken(t,i,s):isNameStart(n.peek())?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s);break;case"!":r=this.importantToken(t,i,s);break;case"@":r=this.atRuleToken(t,i,s);break;case":":r=this.notToken(t,i,s);break;case"<":r=this.htmlCommentStartToken(t,i,s);break;case"U":case"u":if(n.peek()=="+"){r=this.unicodeRangeToken(t,i,s);break};default:isDigit(t)?r=this.numberToken(t,i,s):isWhitespace(t)?r=this.whitespaceToken(t,i,s):isIdentStart(t)?r=this.identOrFunctionToken(t,i,s):r=this.charToken(t,i,s)}break}return!r&&t===null&&(r=this.createToken(Tokens.EOF,null,i,s)),r},createToken:function(e,t,n,r,i){var s=this._reader;return i=i||{},{value:t,type:e,channel:i.channel,endChar:i.endChar,hide:i.hide||!1,startLine:n,startCol:r,endLine:s.getLine(),endCol:s.getCol()}},atRuleToken:function(e,t,n){var r=e,i=this._reader,s=Tokens.CHAR,o=!1,u,a;i.mark(),u=this.readName(),r=e+u,s=Tokens.type(r.toLowerCase());if(s==Tokens.CHAR||s==Tokens.UNKNOWN)r.length>1?s=Tokens.UNKNOWN_SYM:(s=Tokens.CHAR,r=e,i.reset());return this.createToken(s,r,t,n)},charToken:function(e,t,n){var r=Tokens.type(e),i={};return r==-1?r=Tokens.CHAR:i.endChar=Tokens[r].endChar,this.createToken(r,e,t,n,i)},commentToken:function(e,t,n){var r=this._reader,i=this.readComment(e);return this.createToken(Tokens.COMMENT,i,t,n)},comparisonToken:function(e,t,n){var r=this._reader,i=e+r.read(),s=Tokens.type(i)||Tokens.CHAR;return this.createToken(s,i,t,n)},hashToken:function(e,t,n){var r=this._reader,i=this.readName(e);return this.createToken(Tokens.HASH,i,t,n)},htmlCommentStartToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(3),i=="<!--"?this.createToken(Tokens.CDO,i,t,n):(r.reset(),this.charToken(e,t,n))},htmlCommentEndToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(2),i=="-->"?this.createToken(Tokens.CDC,i,t,n):(r.reset(),this.charToken(e,t,n))},identOrFunctionToken:function(e,t,n){var r=this._reader,i=this.readName(e),s=Tokens.IDENT;return r.peek()=="("?(i+=r.read(),i.toLowerCase()=="url("?(s=Tokens.URI,i=this.readURI(i),i.toLowerCase()=="url("&&(s=Tokens.FUNCTION)):s=Tokens.FUNCTION):r.peek()==":"&&i.toLowerCase()=="progid"&&(i+=r.readTo("("),s=Tokens.IE_FUNCTION),this.createToken(s,i,t,n)},importantToken:function(e,t,n){var r=this._reader,i=e,s=Tokens.CHAR,o,u;r.mark(),u=r.read();while(u){if(u=="/"){if(r.peek()!="*")break;o=this.readComment(u);if(o==="")break}else{if(!isWhitespace(u)){if(/i/i.test(u)){o=r.readCount(8),/mportant/i.test(o)&&(i+=u+o,s=Tokens.IMPORTANT_SYM);break}break}i+=u+this.readWhitespace()}u=r.read()}return s==Tokens.CHAR?(r.reset(),this.charToken(e,t,n)):this.createToken(s,i,t,n)},notToken:function(e,t,n){var r=this._reader,i=e;return r.mark(),i+=r.readCount(4),i.toLowerCase()==":not("?this.createToken(Tokens.NOT,i,t,n):(r.reset(),this.charToken(e,t,n))},numberToken:function(e,t,n){var r=this._reader,i=this.readNumber(e),s,o=Tokens.NUMBER,u=r.peek();return isIdentStart(u)?(s=this.readName(r.read()),i+=s,/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vmax$|^vmin$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(s)?o=Tokens.LENGTH:/^deg|^rad$|^grad$/i.test(s)?o=Tokens.ANGLE:/^ms$|^s$/i.test(s)?o=Tokens.TIME:/^hz$|^khz$/i.test(s)?o=Tokens.FREQ:/^dpi$|^dpcm$/i.test(s)?o=Tokens.RESOLUTION:o=Tokens.DIMENSION):u=="%"&&(i+=r.read(),o=Tokens.PERCENTAGE),this.createToken(o,i,t,n)},stringToken:function(e,t,n){var r=e,i=e,s=this._reader,o=e,u=Tokens.STRING,a=s.read();while(a){i+=a;if(a==r&&o!="\\")break;if(isNewLine(s.peek())&&a!="\\"){u=Tokens.INVALID;break}o=a,a=s.read()}return a===null&&(u=Tokens.INVALID),this.createToken(u,i,t,n)},unicodeRangeToken:function(e,t,n){var r=this._reader,i=e,s,o=Tokens.CHAR;return r.peek()=="+"&&(r.mark(),i+=r.read(),i+=this.readUnicodeRangePart(!0),i.length==2?r.reset():(o=Tokens.UNICODE_RANGE,i.indexOf("?")==-1&&r.peek()=="-"&&(r.mark(),s=r.read(),s+=this.readUnicodeRangePart(!1),s.length==1?r.reset():i+=s))),this.createToken(o,i,t,n)},whitespaceToken:function(e,t,n){var r=this._reader,i=e+this.readWhitespace();return this.createToken(Tokens.S,i,t,n)},readUnicodeRangePart:function(e){var t=this._reader,n="",r=t.peek();while(isHexDigit(r)&&n.length<6)t.read(),n+=r,r=t.peek();if(e)while(r=="?"&&n.length<6)t.read(),n+=r,r=t.peek();return n},readWhitespace:function(){var e=this._reader,t="",n=e.peek();while(isWhitespace(n))e.read(),t+=n,n=e.peek();return t},readNumber:function(e){var t=this._reader,n=e,r=e==".",i=t.peek();while(i){if(isDigit(i))n+=t.read();else{if(i!=".")break;if(r)break;r=!0,n+=t.read()}i=t.peek()}return n},readString:function(){var e=this._reader,t=e.read(),n=t,r=t,i=e.peek();while(i){i=e.read(),n+=i;if(i==t&&r!="\\")break;if(isNewLine(e.peek())&&i!="\\"){n="";break}r=i,i=e.peek()}return i===null&&(n=""),n},readURI:function(e){var t=this._reader,n=e,r="",i=t.peek();t.mark();while(i&&isWhitespace(i))t.read(),i=t.peek();i=="'"||i=='"'?r=this.readString():r=this.readURL(),i=t.peek();while(i&&isWhitespace(i))t.read(),i=t.peek();return r===""||i!=")"?(n=e,t.reset()):n+=r+t.read(),n},readURL:function(){var e=this._reader,t="",n=e.peek();while(/^[!#$%&\\*-~]$/.test(n))t+=e.read(),n=e.peek();return t},readName:function(e){var t=this._reader,n=e||"",r=t.peek();for(;;)if(r=="\\")n+=this.readEscape(t.read()),r=t.peek();else{if(!r||!isNameChar(r))break;n+=t.read(),r=t.peek()}return n},readEscape:function(e){var t=this._reader,n=e||"",r=0,i=t.peek();if(isHexDigit(i))do n+=t.read(),i=t.peek();while(i&&isHexDigit(i)&&++r<6);return n.length==3&&/\s/.test(i)||n.length==7||n.length==1?t.read():i="",n+i},readComment:function(e){var t=this._reader,n=e||"",r=t.read();if(r=="*"){while(r){n+=r;if(n.length>2&&r=="*"&&t.peek()=="/"){n+=t.read();break}r=t.read()}return n}return""}});var Tokens=[{name:"CDO"},{name:"CDC"},{name:"S",whitespace:!0},{name:"COMMENT",comment:!0,hide:!0,channel:"comment"},{name:"INCLUDES",text:"~="},{name:"DASHMATCH",text:"|="},{name:"PREFIXMATCH",text:"^="},{name:"SUFFIXMATCH",text:"$="},{name:"SUBSTRINGMATCH",text:"*="},{name:"STRING"},{name:"IDENT"},{name:"HASH"},{name:"IMPORT_SYM",text:"@import"},{name:"PAGE_SYM",text:"@page"},{name:"MEDIA_SYM",text:"@media"},{name:"FONT_FACE_SYM",text:"@font-face"},{name:"CHARSET_SYM",text:"@charset"},{name:"NAMESPACE_SYM",text:"@namespace"},{name:"VIEWPORT_SYM",text:["@viewport","@-ms-viewport"]},{name:"UNKNOWN_SYM"},{name:"KEYFRAMES_SYM",text:["@keyframes","@-webkit-keyframes","@-moz-keyframes","@-o-keyframes"]},{name:"IMPORTANT_SYM"},{name:"LENGTH"},{name:"ANGLE"},{name:"TIME"},{name:"FREQ"},{name:"DIMENSION"},{name:"PERCENTAGE"},{name:"NUMBER"},{name:"URI"},{name:"FUNCTION"},{name:"UNICODE_RANGE"},{name:"INVALID"},{name:"PLUS",text:"+"},{name:"GREATER",text:">"},{name:"COMMA",text:","},{name:"TILDE",text:"~"},{name:"NOT"},{name:"TOPLEFTCORNER_SYM",text:"@top-left-corner"},{name:"TOPLEFT_SYM",text:"@top-left"},{name:"TOPCENTER_SYM",text:"@top-center"},{name:"TOPRIGHT_SYM",text:"@top-right"},{name:"TOPRIGHTCORNER_SYM",text:"@top-right-corner"},{name:"BOTTOMLEFTCORNER_SYM",text:"@bottom-left-corner"},{name:"BOTTOMLEFT_SYM",text:"@bottom-left"},{name:"BOTTOMCENTER_SYM",text:"@bottom-center"},{name:"BOTTOMRIGHT_SYM",text:"@bottom-right"},{name:"BOTTOMRIGHTCORNER_SYM",text:"@bottom-right-corner"},{name:"LEFTTOP_SYM",text:"@left-top"},{name:"LEFTMIDDLE_SYM",text:"@left-middle"},{name:"LEFTBOTTOM_SYM",text:"@left-bottom"},{name:"RIGHTTOP_SYM",text:"@right-top"},{name:"RIGHTMIDDLE_SYM",text:"@right-middle"},{name:"RIGHTBOTTOM_SYM",text:"@right-bottom"},{name:"RESOLUTION",state:"media"},{name:"IE_FUNCTION"},{name:"CHAR"},{name:"PIPE",text:"|"},{name:"SLASH",text:"/"},{name:"MINUS",text:"-"},{name:"STAR",text:"*"},{name:"LBRACE",endChar:"}",text:"{"},{name:"RBRACE",text:"}"},{name:"LBRACKET",endChar:"]",text:"["},{name:"RBRACKET",text:"]"},{name:"EQUALS",text:"="},{name:"COLON",text:":"},{name:"SEMICOLON",text:";"},{name:"LPAREN",endChar:")",text:"("},{name:"RPAREN",text:")"},{name:"DOT",text:"."}];(function(){var e=[],t={};Tokens.UNKNOWN=-1,Tokens.unshift({name:"EOF"});for(var n=0,r=Tokens.length;n<r;n++){e.push(Tokens[n].name),Tokens[Tokens[n].name]=n;if(Tokens[n].text)if(Tokens[n].text instanceof Array)for(var i=0;i<Tokens[n].text.length;i++)t[Tokens[n].text[i]]=n;else t[Tokens[n].text]=n}Tokens.name=function(t){return e[t]},Tokens.type=function(e){return t[e]||-1}})();var Validation={validate:function(e,t){var n=e.toString().toLowerCase(),r=t.parts,i=new PropertyValueIterator(t),s=Properties[n],o,u,a,f,l,c,h,p,d,v,m;if(!s){if(n.indexOf("-")!==0)throw new ValidationError("Unknown property '"+e+"'.",e.line,e.col)}else typeof s!="number"&&(typeof s=="string"?s.indexOf("||")>-1?this.groupProperty(s,i):this.singleProperty(s,i,1):s.multi?this.multiProperty(s.multi,i,s.comma,s.max||Infinity):typeof s=="function"&&s(i))},singleProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u;while(t.hasNext()&&o<n){i=ValidationTypes.isAny(t,e);if(!i)break;o++}if(!i)throw t.hasNext()&&!t.isFirst()?(u=t.peek(),new ValidationError("Expected end of value but found '"+u+"'.",u.line,u.col)):new ValidationError("Expected ("+e+") but found '"+s+"'.",s.line,s.col);if(t.hasNext())throw u=t.next(),new ValidationError("Expected end of value but found '"+u+"'.",u.line,u.col)},multiProperty:function(e,t,n,r){var i=!1,s=t.value,o=0,u=!1,a;while(t.hasNext()&&!i&&o<r){if(!ValidationTypes.isAny(t,e))break;o++;if(!t.hasNext())i=!0;else if(n){if(t.peek()!=",")break;a=t.next()}}if(!i)throw t.hasNext()&&!t.isFirst()?(a=t.peek(),new ValidationError("Expected end of value but found '"+a+"'.",a.line,a.col)):(a=t.previous(),n&&a==","?new ValidationError("Expected end of value but found '"+a+"'.",a.line,a.col):new ValidationError("Expected ("+e+") but found '"+s+"'.",s.line,s.col));if(t.hasNext())throw a=t.next(),new ValidationError("Expected end of value but found '"+a+"'.",a.line,a.col)},groupProperty:function(e,t,n){var r=!1,i=t.value,s=e.split("||").length,o={count:0},u=!1,a,f;while(t.hasNext()&&!r){a=ValidationTypes.isAnyOfGroup(t,e);if(!a)break;if(o[a])break;o[a]=1,o.count++,u=!0;if(o.count==s||!t.hasNext())r=!0}if(!r)throw u&&t.hasNext()?(f=t.peek(),new ValidationError("Expected end of value but found '"+f+"'.",f.line,f.col)):new ValidationError("Expected ("+e+") but found '"+i+"'.",i.line,i.col);if(t.hasNext())throw f=t.next(),new ValidationError("Expected end of value but found '"+f+"'.",f.line,f.col)}};ValidationError.prototype=new Error;var ValidationTypes={isLiteral:function(e,t){var n=e.text.toString().toLowerCase(),r=t.split(" | "),i,s,o=!1;for(i=0,s=r.length;i<s&&!o;i++)n==r[i].toLowerCase()&&(o=!0);return o},isSimple:function(e){return!!this.simple[e]},isComplex:function(e){return!!this.complex[e]},isAny:function(e,t){var n=t.split(" | "),r,i,s=!1;for(r=0,i=n.length;r<i&&!s&&e.hasNext();r++)s=this.isType(e,n[r]);return s},isAnyOfGroup:function(e,t){var n=t.split(" || "),r,i,s=!1;for(r=0,i=n.length;r<i&&!s;r++)s=this.isType(e,n[r]);return s?n[r-1]:!1},isType:function(e,t){var n=e.peek(),r=!1;return t.charAt(0)!="<"?(r=this.isLiteral(n,t),r&&e.next()):this.simple[t]?(r=this.simple[t](n),r&&e.next()):r=this.complex[t](e),r},simple:{"<absolute-size>":function(e){return ValidationTypes.isLiteral(e,"xx-small | x-small | small | medium | large | x-large | xx-large")},"<attachment>":function(e){return ValidationTypes.isLiteral(e,"scroll | fixed | local")},"<attr>":function(e){return e.type=="function"&&e.name=="attr"},"<bg-image>":function(e){return this["<image>"](e)||this["<gradient>"](e)||e=="none"},"<gradient>":function(e){return e.type=="function"&&/^(?:\-(?:ms|moz|o|webkit)\-)?(?:repeating\-)?(?:radial\-|linear\-)?gradient/i.test(e)},"<box>":function(e){return ValidationTypes.isLiteral(e,"padding-box | border-box | content-box")},"<content>":function(e){return e.type=="function"&&e.name=="content"},"<relative-size>":function(e){return ValidationTypes.isLiteral(e,"smaller | larger")},"<ident>":function(e){return e.type=="identifier"},"<length>":function(e){return e.type=="function"&&/^(?:\-(?:ms|moz|o|webkit)\-)?calc/i.test(e)?!0:e.type=="length"||e.type=="number"||e.type=="integer"||e=="0"},"<color>":function(e){return e.type=="color"||e=="transparent"},"<number>":function(e){return e.type=="number"||this["<integer>"](e)},"<integer>":function(e){return e.type=="integer"},"<line>":function(e){return e.type=="integer"},"<angle>":function(e){return e.type=="angle"},"<uri>":function(e){return e.type=="uri"},"<image>":function(e){return this["<uri>"](e)},"<percentage>":function(e){return e.type=="percentage"||e=="0"},"<border-width>":function(e){return this["<length>"](e)||ValidationTypes.isLiteral(e,"thin | medium | thick")},"<border-style>":function(e){return ValidationTypes.isLiteral(e,"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset")},"<content-sizing>":function(e){return ValidationTypes.isLiteral(e,"fill-available | -moz-available | -webkit-fill-available | max-content | -moz-max-content | -webkit-max-content | min-content | -moz-min-content | -webkit-min-content | fit-content | -moz-fit-content | -webkit-fit-content")},"<margin-width>":function(e){return this["<length>"](e)||this["<percentage>"](e)||ValidationTypes.isLiteral(e,"auto")},"<padding-width>":function(e){return this["<length>"](e)||this["<percentage>"](e)},"<shape>":function(e){return e.type=="function"&&(e.name=="rect"||e.name=="inset-rect")},"<time>":function(e){return e.type=="time"},"<flex-grow>":function(e){return this["<number>"](e)},"<flex-shrink>":function(e){return this["<number>"](e)},"<width>":function(e){return this["<margin-width>"](e)},"<flex-basis>":function(e){return this["<width>"](e)},"<flex-direction>":function(e){return ValidationTypes.isLiteral(e,"row | row-reverse | column | column-reverse")},"<flex-wrap>":function(e){return ValidationTypes.isLiteral(e,"nowrap | wrap | wrap-reverse")}},complex:{"<bg-position>":function(e){var t=this,n=!1,r="<percentage> | <length>",i="left | right",s="top | bottom",o=0,u=function(){return e.hasNext()&&e.peek()!=","};while(e.peek(o)&&e.peek(o)!=",")o++;return o<3?ValidationTypes.isAny(e,i+" | center | "+r)?(n=!0,ValidationTypes.isAny(e,s+" | center | "+r)):ValidationTypes.isAny(e,s)&&(n=!0,ValidationTypes.isAny(e,i+" | center")):ValidationTypes.isAny(e,i)?ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,s)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,"center")&&(n=!0)):ValidationTypes.isAny(e,s)?ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,r)&&(ValidationTypes.isAny(e,i)?(n=!0,ValidationTypes.isAny(e,r)):ValidationTypes.isAny(e,"center")&&(n=!0)):ValidationTypes.isAny(e,"center")&&ValidationTypes.isAny(e,i+" | "+s)&&(n=!0,ValidationTypes.isAny(e,r)),n},"<bg-size>":function(e){var t=this,n=!1,r="<percentage> | <length> | auto",i,s,o;return ValidationTypes.isAny(e,"cover | contain")?n=!0:ValidationTypes.isAny(e,r)&&(n=!0,ValidationTypes.isAny(e,r)),n},"<repeat-style>":function(e){var t=!1,n="repeat | space | round | no-repeat",r;return e.hasNext()&&(r=e.next(),ValidationTypes.isLiteral(r,"repeat-x | repeat-y")?t=!0:ValidationTypes.isLiteral(r,n)&&(t=!0,e.hasNext()&&ValidationTypes.isLiteral(e.peek(),n)&&e.next())),t},"<shadow>":function(e){var t=!1,n=0,r=!1,i=!1,s;if(e.hasNext()){ValidationTypes.isAny(e,"inset")&&(r=!0),ValidationTypes.isAny(e,"<color>")&&(i=!0);while(ValidationTypes.isAny(e,"<length>")&&n<4)n++;e.hasNext()&&(i||ValidationTypes.isAny(e,"<color>"),r||ValidationTypes.isAny(e,"inset")),t=n>=2&&n<=4}return t},"<x-one-radius>":function(e){var t=!1,n="<length> | <percentage> | inherit";return ValidationTypes.isAny(e,n)&&(t=!0,ValidationTypes.isAny(e,n)),t},"<flex>":function(e){var t,n=!1;ValidationTypes.isAny(e,"none | inherit")?n=!0:ValidationTypes.isType(e,"<flex-grow>")?e.peek()?ValidationTypes.isType(e,"<flex-shrink>")?e.peek()?n=ValidationTypes.isType(e,"<flex-basis>"):n=!0:ValidationTypes.isType(e,"<flex-basis>")&&(n=e.peek()===null):n=!0:ValidationTypes.isType(e,"<flex-basis>")&&(n=!0);if(!n)throw t=e.peek(),new ValidationError("Expected (none | [ <flex-grow> <flex-shrink>? || <flex-basis> ]) but found '"+e.value.text+"'.",t.line,t.col);return n}}};parserlib.css={Colors:Colors,Combinator:Combinator,Parser:Parser,PropertyName:PropertyName,PropertyValue:PropertyValue,PropertyValuePart:PropertyValuePart,MediaFeature:MediaFeature,MediaQuery:MediaQuery,Selector:Selector,SelectorPart:SelectorPart,SelectorSubPart:SelectorSubPart,Specificity:Specificity,TokenStream:TokenStream,Tokens:Tokens,ValidationError:ValidationError}}(),function(){for(var e in parserlib)exports[e]=parserlib[e]}();var util={isArray:function(e){return Array.isArray(e)||typeof e=="object"&&objectToString(e)==="[object Array]"},isDate:function(e){return typeof e=="object"&&objectToString(e)==="[object Date]"},isRegExp:function(e){return typeof e=="object"&&objectToString(e)==="[object RegExp]"},getRegExpFlags:function(e){var t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),t}};typeof module=="object"&&(module.exports=clone),clone.clonePrototype=function(e){if(e===null)return null;var t=function(){};return t.prototype=e,new t};var CSSLint=function(){function i(e,t){var r,i=e&&e.match(n),s=i&&i[1];return s&&(r={"true":2,"":1,"false":0,2:2,1:1,0:0},s.toLowerCase().split(",").forEach(function(e){var n=e.split(":"),i=n[0]||"",s=n[1]||"";t[i.trim()]=r[s.trim()]})),t}var e=[],t=[],n=/\/\*csslint([^\*]*)\*\//,r=new parserlib.util.EventTarget;return r.version="@VERSION@",r.addRule=function(t){e.push(t),e[t.id]=t},r.clearRules=function(){e=[]},r.getRules=function(){return[].concat(e).sort(function(e,t){return e.id>t.id?1:0})},r.getRuleset=function(){var t={},n=0,r=e.length;while(n<r)t[e[n++].id]=1;return t},r.addFormatter=function(e){t[e.id]=e},r.getFormatter=function(e){return t[e]},r.format=function(e,t,n,r){var i=this.getFormatter(n),s=null;return i&&(s=i.startFormat(),s+=i.formatResults(e,t,r||{}),s+=i.endFormat()),s},r.hasFormat=function(e){return t.hasOwnProperty(e)},r.verify=function(t,r){var s=0,o,u,a,f=new parserlib.css.Parser({starHack:!0,ieFilters:!0,underscoreHack:!0,strict:!1});u=t.replace(/\n\r?/g,"$split$").split("$split$"),r||(r=this.getRuleset()),n.test(t)&&(r=clone(r),r=i(t,r)),o=new Reporter(u,r),r.errors=2;for(s in r)r.hasOwnProperty(s)&&r[s]&&e[s]&&e[s].init(f,o);try{f.parse(t)}catch(l){o.error("Fatal error, cannot continue: "+l.message,l.line,l.col,{})}return a={messages:o.messages,stats:o.stats,ruleset:o.ruleset},a.messages.sort(function(e,t){return e.rollup&&!t.rollup?1:!e.rollup&&t.rollup?-1:e.line-t.line}),a},r}();Reporter.prototype={constructor:Reporter,error:function(e,t,n,r){this.messages.push({type:"error",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r||{}})},warn:function(e,t,n,r){this.report(e,t,n,r)},report:function(e,t,n,r){this.messages.push({type:this.ruleset[r.id]===2?"error":"warning",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},info:function(e,t,n,r){this.messages.push({type:"info",line:t,col:n,message:e,evidence:this.lines[t-1],rule:r})},rollupError:function(e,t){this.messages.push({type:"error",rollup:!0,message:e,rule:t})},rollupWarn:function(e,t){this.messages.push({type:"warning",rollup:!0,message:e,rule:t})},stat:function(e,t){this.stats[e]=t}},CSSLint._Reporter=Reporter,CSSLint.Util={mix:function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return n},indexOf:function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},forEach:function(e,t){if(e.forEach)return e.forEach(t);for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)}},CSSLint.addRule({id:"adjoining-classes",name:"Disallow adjoining classes",desc:"Don't use adjoining classes.",browsers:"IE6",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f];for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE){a=0;for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type==="class"&&a++,a>1&&t.report("Don't use adjoining classes.",o.line,o.col,n)}}}})}}),CSSLint.addRule({id:"box-model",name:"Beware of broken box size",desc:"Don't use width or height when using padding or border.",browsers:"All",init:function(e,t){function u(){s={},o=!1}function a(){var e,u;if(!o){if(s.height)for(e in i)i.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!=="padding"||u.parts.length!==2||u.parts[0].value!==0)&&t.report("Using height with "+e+" can sometimes make elements larger than you expect.",s[e].line,s[e].col,n));if(s.width)for(e in r)r.hasOwnProperty(e)&&s[e]&&(u=s[e].value,(e!=="padding"||u.parts.length!==2||u.parts[1].value!==0)&&t.report("Using width with "+e+" can sometimes make elements larger than you expect.",s[e].line,s[e].col,n))}}var n=this,r={border:1,"border-left":1,"border-right":1,padding:1,"padding-left":1,"padding-right":1},i={border:1,"border-bottom":1,"border-top":1,padding:1,"padding-bottom":1,"padding-top":1},s,o=!1;e.addListener("startrule",u),e.addListener("startfontface",u),e.addListener("startpage",u),e.addListener("startpagemargin",u),e.addListener("startkeyframerule",u),e.addListener("property",function(e){var t=e.property.text.toLowerCase();i[t]||r[t]?!/^0\S*$/.test(e.value)&&(t!=="border"||e.value.toString()!=="none")&&(s[t]={line:e.property.line,col:e.property.col,value:e.value}):/^(width|height)/i.test(t)&&/^(length|percentage)/.test(e.value.parts[0].type)?s[t]=1:t==="box-sizing"&&(o=!0)}),e.addListener("endrule",a),e.addListener("endfontface",a),e.addListener("endpage",a),e.addListener("endpagemargin",a),e.addListener("endkeyframerule",a)}}),CSSLint.addRule({id:"box-sizing",name:"Disallow use of box-sizing",desc:"The box-sizing properties isn't supported in IE6 and IE7.",browsers:"IE6, IE7",tags:["Compatibility"],init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.property.text.toLowerCase();r==="box-sizing"&&t.report("The box-sizing property isn't supported in IE6 and IE7.",e.line,e.col,n)})}}),CSSLint.addRule({id:"bulletproof-font-face",name:"Use the bulletproof @font-face syntax",desc:"Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).",browsers:"All",init:function(e,t){var n=this,r=!1,i=!0,s=!1,o,u;e.addListener("startfontface",function(){r=!0}),e.addListener("property",function(e){if(!r)return;var t=e.property.toString().toLowerCase(),n=e.value.toString();o=e.line,u=e.col;if(t==="src"){var a=/^\s?url\(['"].+\.eot\?.*['"]\)\s*format\(['"]embedded-opentype['"]\).*$/i;!n.match(a)&&i?(s=!0,i=!1):n.match(a)&&!i&&(s=!1)}}),e.addListener("endfontface",function(){r=!1,s&&t.report("@font-face declaration doesn't follow the fontspring bulletproof syntax.",o,u,n)})}}),CSSLint.addRule({id:"compatible-vendor-prefixes",name:"Require compatible vendor prefixes",desc:"Include all compatible vendor prefixes to reach a wider range of users.",browsers:"All",init:function(e,t){var n=this,r,i,s,o,u,a,f,l=!1,c=Array.prototype.push,h=[];r={animation:"webkit moz","animation-delay":"webkit moz","animation-direction":"webkit moz","animation-duration":"webkit moz","animation-fill-mode":"webkit moz","animation-iteration-count":"webkit moz","animation-name":"webkit moz","animation-play-state":"webkit moz","animation-timing-function":"webkit moz",appearance:"webkit moz","border-end":"webkit moz","border-end-color":"webkit moz","border-end-style":"webkit moz","border-end-width":"webkit moz","border-image":"webkit moz o","border-radius":"webkit","border-start":"webkit moz","border-start-color":"webkit moz","border-start-style":"webkit moz","border-start-width":"webkit moz","box-align":"webkit moz ms","box-direction":"webkit moz ms","box-flex":"webkit moz ms","box-lines":"webkit ms","box-ordinal-group":"webkit moz ms","box-orient":"webkit moz ms","box-pack":"webkit moz ms","box-sizing":"webkit moz","box-shadow":"webkit moz","column-count":"webkit moz ms","column-gap":"webkit moz ms","column-rule":"webkit moz ms","column-rule-color":"webkit moz ms","column-rule-style":"webkit moz ms","column-rule-width":"webkit moz ms","column-width":"webkit moz ms",hyphens:"epub moz","line-break":"webkit ms","margin-end":"webkit moz","margin-start":"webkit moz","marquee-speed":"webkit wap","marquee-style":"webkit wap","padding-end":"webkit moz","padding-start":"webkit moz","tab-size":"moz o","text-size-adjust":"webkit ms",transform:"webkit moz ms o","transform-origin":"webkit moz ms o",transition:"webkit moz o","transition-delay":"webkit moz o","transition-duration":"webkit moz o","transition-property":"webkit moz o","transition-timing-function":"webkit moz o","user-modify":"webkit moz","user-select":"webkit moz ms","word-break":"epub ms","writing-mode":"epub ms"};for(s in r)if(r.hasOwnProperty(s)){o=[],u=r[s].split(" ");for(a=0,f=u.length;a<f;a++)o.push("-"+u[a]+"-"+s);r[s]=o,c.apply(h,o)}e.addListener("startrule",function(){i=[]}),e.addListener("startkeyframes",function(e){l=e.prefix||!0}),e.addListener("endkeyframes",function(){l=!1}),e.addListener("property",function(e){var t=e.property;CSSLint.Util.indexOf(h,t.text)>-1&&(!l||typeof l!="string"||t.text.indexOf("-"+l+"-")!==0)&&i.push(t)}),e.addListener("endrule",function(){if(!i.length)return;var e={},s,o,u,a,f,l,c,h,p,d;for(s=0,o=i.length;s<o;s++){u=i[s];for(a in r)r.hasOwnProperty(a)&&(f=r[a],CSSLint.Util.indexOf(f,u.text)>-1&&(e[a]||(e[a]={full:f.slice(0),actual:[],actualNodes:[]}),CSSLint.Util.indexOf(e[a].actual,u.text)===-1&&(e[a].actual.push(u.text),e[a].actualNodes.push(u))))}for(a in e)if(e.hasOwnProperty(a)){l=e[a],c=l.full,h=l.actual;if(c.length>h.length)for(s=0,o=c.length;s<o;s++)p=c[s],CSSLint.Util.indexOf(h,p)===-1&&(d=h.length===1?h[0]:h.length===2?h.join(" and "):h.join(", "),t.report("The property "+p+" is compatible with "+d+" and should be included as well.",l.actualNodes[0].line,l.actualNodes[0].col,n))}})}}),CSSLint.addRule({id:"display-property-grouping",name:"Require properties appropriate for display",desc:"Certain properties shouldn't be used with certain display property values.",browsers:"All",init:function(e,t){function s(e,s,o){i[e]&&(typeof r[e]!="string"||i[e].value.toLowerCase()!==r[e])&&t.report(o||e+" can't be used with display: "+s+".",i[e].line,i[e].col,n)}function o(){i={}}function u(){var e=i.display?i.display.value:null;if(e)switch(e){case"inline":s("height",e),s("width",e),s("margin",e),s("margin-top",e),s("margin-bottom",e),s("float",e,"display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).");break;case"block":s("vertical-align",e);break;case"inline-block":s("float",e);break;default:e.indexOf("table-")===0&&(s("margin",e),s("margin-left",e),s("margin-right",e),s("margin-top",e),s("margin-bottom",e),s("float",e))}}var n=this,r={display:1,"float":"none",height:1,width:1,margin:1,"margin-left":1,"margin-right":1,"margin-bottom":1,"margin-top":1,padding:1,"padding-left":1,"padding-right":1,"padding-bottom":1,"padding-top":1,"vertical-align":1},i;e.addListener("startrule",o),e.addListener("startfontface",o),e.addListener("startkeyframerule",o),e.addListener("startpagemargin",o),e.addListener("startpage",o),e.addListener("property",function(e){var t=e.property.text.toLowerCase();r[t]&&(i[t]={value:e.value.text,line:e.property.line,col:e.property.col})}),e.addListener("endrule",u),e.addListener("endfontface",u),e.addListener("endkeyframerule",u),e.addListener("endpagemargin",u),e.addListener("endpage",u)}}),CSSLint.addRule({id:"duplicate-background-images",name:"Disallow duplicate background images",desc:"Every background-image should be unique. Use a common class for e.g. sprites.",browsers:"All",init:function(e,t){var n=this,r={};e.addListener("property",function(e){var i=e.property.text,s=e.value,o,u;if(i.match(/background/i))for(o=0,u=s.parts.length;o<u;o++)s.parts[o].type==="uri"&&(typeof r[s.parts[o].uri]=="undefined"?r[s.parts[o].uri]=e:t.report("Background image '"+s.parts[o].uri+"' was used multiple times, first declared at line "+r[s.parts[o].uri].line+", col "+r[s.parts[o].uri].col+".",e.line,e.col,n))})}}),CSSLint.addRule({id:"duplicate-properties",name:"Disallow duplicate properties",desc:"Duplicate properties must appear one after the other.",browsers:"All",init:function(e,t){function s(){r={}}var n=this,r,i;e.addListener("startrule",s),e.addListener("startfontface",s),e.addListener("startpage",s),e.addListener("startpagemargin",s),e.addListener("startkeyframerule",s),e.addListener("property",function(e){var s=e.property,o=s.text.toLowerCase();r[o]&&(i!==o||r[o]===e.value.text)&&t.report("Duplicate property '"+e.property+"' found.",e.line,e.col,n),r[o]=e.value.text,i=o})}}),CSSLint.addRule({id:"empty-rules",name:"Disallow empty rules",desc:"Rules without any properties specified should be removed.",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("startrule",function(){r=0}),e.addListener("property",function(){r++}),e.addListener("endrule",function(e){var i=e.selectors;r===0&&t.report("Rule is empty.",i[0].line,i[0].col,n)})}}),CSSLint.addRule({id:"errors",name:"Parsing Errors",desc:"This rule looks for recoverable syntax errors.",browsers:"All",init:function(e,t){var n=this;e.addListener("error",function(e){t.error(e.message,e.line,e.col,n)})}}),CSSLint.addRule({id:"fallback-colors",name:"Require fallback colors",desc:"For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.",browsers:"IE6,IE7,IE8",init:function(e,t){function o(){s={},r=null}var n=this,r,i={color:1,background:1,"border-color":1,"border-top-color":1,"border-right-color":1,"border-bottom-color":1,"border-left-color":1,border:1,"border-top":1,"border-right":1,"border-bottom":1,"border-left":1,"background-color":1},s;e.addListener("startrule",o),e.addListener("startfontface",o),e.addListener("startpage",o),e.addListener("startpagemargin",o),e.addListener("startkeyframerule",o),e.addListener("property",function(e){var s=e.property,o=s.text.toLowerCase(),u=e.value.parts,a=0,f="",l=u.length;if(i[o])while(a<l)u[a].type==="color"&&("alpha"in u[a]||"hue"in u[a]?(/([^\)]+)\(/.test(u[a])&&(f=RegExp.$1.toUpperCase()),(!r||r.property.text.toLowerCase()!==o||r.colorType!=="compat")&&t.report("Fallback "+o+" (hex or RGB) should precede "+f+" "+o+".",e.line,e.col,n)):e.colorType="compat"),a++;r=e})}}),CSSLint.addRule({id:"floats",name:"Disallow too many floats",desc:"This rule tests if the float property is used too many times",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("property",function(e){e.property.text.toLowerCase()==="float"&&e.value.text.toLowerCase()!=="none"&&r++}),e.addListener("endstylesheet",function(){t.stat("floats",r),r>=10&&t.rollupWarn("Too many floats ("+r+"), you're probably using them for layout. Consider using a grid system instead.",n)})}}),CSSLint.addRule({id:"font-faces",name:"Don't use too many web fonts",desc:"Too many different web fonts in the same stylesheet.",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("startfontface",function(){r++}),e.addListener("endstylesheet",function(){r>5&&t.rollupWarn("Too many @font-face declarations ("+r+").",n)})}}),CSSLint.addRule({id:"font-sizes",name:"Disallow too many font sizes",desc:"Checks the number of font-size declarations.",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("property",function(e){e.property.toString()==="font-size"&&r++}),e.addListener("endstylesheet",function(){t.stat("font-sizes",r),r>=10&&t.rollupWarn("Too many font-size declarations ("+r+"), abstraction needed.",n)})}}),CSSLint.addRule({id:"gradients",name:"Require all gradient definitions",desc:"When using a vendor-prefixed gradient, make sure to use them all.",browsers:"All",init:function(e,t){var n=this,r;e.addListener("startrule",function(){r={moz:0,webkit:0,oldWebkit:0,o:0}}),e.addListener("property",function(e){/\-(moz|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(e.value)?r[RegExp.$1]=1:/\-webkit\-gradient/i.test(e.value)&&(r.oldWebkit=1)}),e.addListener("endrule",function(e){var i=[];r.moz||i.push("Firefox 3.6+"),r.webkit||i.push("Webkit (Safari 5+, Chrome)"),r.oldWebkit||i.push("Old Webkit (Safari 4+, Chrome)"),r.o||i.push("Opera 11.1+"),i.length&&i.length<4&&t.report("Missing vendor-prefixed CSS gradients for "+i.join(", ")+".",e.selectors[0].line,e.selectors[0].col,n)})}}),CSSLint.addRule({id:"ids",name:"Disallow IDs in selectors",desc:"Selectors should not contain IDs.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f,l,c;for(f=0;f<i.length;f++){s=i[f],a=0;for(l=0;l<s.parts.length;l++){o=s.parts[l];if(o.type===e.SELECTOR_PART_TYPE)for(c=0;c<o.modifiers.length;c++)u=o.modifiers[c],u.type==="id"&&a++}a===1?t.report("Don't use IDs in selectors.",s.line,s.col,n):a>1&&t.report(a+" IDs in the selector, really?",s.line,s.col,n)}})}}),CSSLint.addRule({id:"import",name:"Disallow @import",desc:"Don't use @import, use <link> instead.",browsers:"All",init:function(e,t){var n=this;e.addListener("import",function(e){t.report("@import prevents parallel downloads, use <link> instead.",e.line,e.col,n)})}}),CSSLint.addRule({id:"important",name:"Disallow !important",desc:"Be careful when using !important declaration",browsers:"All",init:function(e,t){var n=this,r=0;e.addListener("property",function(e){e.important===!0&&(r++,t.report("Use of !important",e.line,e.col,n))}),e.addListener("endstylesheet",function(){t.stat("important",r),r>=10&&t.rollupWarn("Too many !important declarations ("+r+"), try to use less than 10 to avoid specificity issues.",n)})}}),CSSLint.addRule({id:"known-properties",name:"Require use of known properties",desc:"Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){e.invalid&&t.report(e.invalid.message,e.line,e.col,n)})}}),CSSLint.addRule({id:"order-alphabetical",name:"Alphabetical order",desc:"Assure properties are in alphabetical order",browsers:"All",init:function(e,t){var n=this,r,i=function(){r=[]};e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var t=e.property.text,n=t.toLowerCase().replace(/^-.*?-/,"");r.push(n)}),e.addListener("endrule",function(e){var i=r.join(","),s=r.sort().join(",");i!==s&&t.report("Rule doesn't have all its properties in alphabetical ordered.",e.line,e.col,n)})}}),CSSLint.addRule({id:"outline-none",name:"Disallow outline: none",desc:"Use of outline: none or outline: 0 should be limited to :focus rules.",browsers:"All",tags:["Accessibility"],init:function(e,t){function i(e){e.selectors?r={line:e.line,col:e.col,selectors:e.selectors,propCount:0,outline:!1}:r=null}function s(){r&&r.outline&&(r.selectors.toString().toLowerCase().indexOf(":focus")===-1?t.report("Outlines should only be modified using :focus.",r.line,r.col,n):r.propCount===1&&t.report("Outlines shouldn't be hidden unless other visual changes are made.",r.line,r.col,n))}var n=this,r;e.addListener("startrule",i),e.addListener("startfontface",i),e.addListener("startpage",i),e.addListener("startpagemargin",i),e.addListener("startkeyframerule",i),e.addListener("property",function(e){var t=e.property.text.toLowerCase(),n=e.value;r&&(r.propCount++,t==="outline"&&(n.toString()==="none"||n.toString()==="0")&&(r.outline=!0))}),e.addListener("endrule",s),e.addListener("endfontface",s),e.addListener("endpage",s),e.addListener("endpagemargin",s),e.addListener("endkeyframerule",s)}}),CSSLint.addRule({id:"overqualified-elements",name:"Disallow overqualified elements",desc:"Don't use classes or IDs with elements (a.foo or a#foo).",browsers:"All",init:function(e,t){var n=this,r={};e.addListener("startrule",function(i){var s=i.selectors,o,u,a,f,l,c;for(f=0;f<s.length;f++){o=s[f];for(l=0;l<o.parts.length;l++){u=o.parts[l];if(u.type===e.SELECTOR_PART_TYPE)for(c=0;c<u.modifiers.length;c++)a=u.modifiers[c],u.elementName&&a.type==="id"?t.report("Element ("+u+") is overqualified, just use "+a+" without element name.",u.line,u.col,n):a.type==="class"&&(r[a]||(r[a]=[]),r[a].push({modifier:a,part:u}))}}}),e.addListener("endstylesheet",function(){var e;for(e in r)r.hasOwnProperty(e)&&r[e].length===1&&r[e][0].part.elementName&&t.report("Element ("+r[e][0].part+") is overqualified, just use "+r[e][0].modifier+" without element name.",r[e][0].part.line,r[e][0].part.col,n)})}}),CSSLint.addRule({id:"qualified-headings",name:"Disallow qualified headings",desc:"Headings should not be qualified (namespaced).",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a;for(u=0;u<i.length;u++){s=i[u];for(a=0;a<s.parts.length;a++)o=s.parts[a],o.type===e.SELECTOR_PART_TYPE&&o.elementName&&/h[1-6]/.test(o.elementName.toString())&&a>0&&t.report("Heading ("+o.elementName+") should not be qualified.",o.line,o.col,n)}})}}),CSSLint.addRule({id:"regex-selectors",name:"Disallow selectors that look like regexs",desc:"Selectors that look like regular expressions are slow and should be avoided.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f,l;for(a=0;a<i.length;a++){s=i[a];for(f=0;f<s.parts.length;f++){o=s.parts[f];if(o.type===e.SELECTOR_PART_TYPE)for(l=0;l<o.modifiers.length;l++)u=o.modifiers[l],u.type==="attribute"&&/([\~\|\^\$\*]=)/.test(u)&&t.report("Attribute selectors with "+RegExp.$1+" are slow!",u.line,u.col,n)}}})}}),CSSLint.addRule({id:"rules-count",name:"Rules Count",desc:"Track how many rules there are.",browsers:"All",init:function(e,t){var n=0;e.addListener("startrule",function(){n++}),e.addListener("endstylesheet",function(){t.stat("rule-count",n)})}}),CSSLint.addRule({id:"selector-max-approaching",name:"Warn when approaching the 4095 selector limit for IE",desc:"Will warn when selector count is >= 3800 selectors.",browsers:"IE",init:function(e,t){var n=this,r=0;e.addListener("startrule",function(e){r+=e.selectors.length}),e.addListener("endstylesheet",function(){r>=3800&&t.report("You have "+r+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,n)})}}),CSSLint.addRule({id:"selector-max",name:"Error when past the 4095 selector limit for IE",desc:"Will error when selector count is > 4095.",browsers:"IE",init:function(e,t){var n=this,r=0;e.addListener("startrule",function(e){r+=e.selectors.length}),e.addListener("endstylesheet",function(){r>4095&&t.report("You have "+r+" selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,n)})}}),CSSLint.addRule({id:"selector-newline",name:"Disallow new-line characters in selectors",desc:"New-line characters in selectors are usually a forgotten comma and not a descendant combinator.",browsers:"All",init:function(e,t){function r(e){var r,i,s,o,u,a,f,l,c,h,p,d=e.selectors;for(r=0,i=d.length;r<i;r++){s=d[r];for(o=0,a=s.parts.length;o<a;o++)for(u=o+1;u<a;u++)f=s.parts[o],l=s.parts[u],c=f.type,h=f.line,p=l.line,c==="descendant"&&p>h&&t.report("newline character found in selector (forgot a comma?)",h,d[r].parts[0].col,n)}}var n=this;e.addListener("startrule",r)}}),CSSLint.addRule({id:"shorthand",name:"Require shorthand properties",desc:"Use shorthand properties where possible.",browsers:"All",init:function(e,t){function f(){u={}}function l(e){var r,i,s,o;for(r in a)if(a.hasOwnProperty(r)){o=0;for(i=0,s=a[r].length;i<s;i++)o+=u[a[r][i]]?1:0;o===a[r].length&&t.report("The properties "+a[r].join(", ")+" can be replaced by "+r+".",e.line,e.col,n)}}var n=this,r,i,s,o={},u,a={margin:["margin-top","margin-bottom","margin-left","margin-right"],padding:["padding-top","padding-bottom","padding-left","padding-right"]};for(r in a)if(a.hasOwnProperty(r))for(i=0,s=a[r].length;i<s;i++)o[a[r][i]]=r;e.addListener("startrule",f),e.addListener("startfontface",f),e.addListener("property",function(e){var t=e.property.toString().toLowerCase();o[t]&&(u[t]=1)}),e.addListener("endrule",l),e.addListener("endfontface",l)}}),CSSLint.addRule({id:"star-property-hack",name:"Disallow properties with a star prefix",desc:"Checks for the star property hack (targets IE6/7)",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.property;r.hack==="*"&&t.report("Property with star prefix found.",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:"text-indent",name:"Disallow negative text-indent",desc:"Checks for text indent less than -99px",browsers:"All",init:function(e,t){function s(){r=!1,i="inherit"}function o(){r&&i!=="ltr"&&t.report("Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.",r.line,r.col,n)}var n=this,r,i;e.addListener("startrule",s),e.addListener("startfontface",s),e.addListener("property",function(e){var t=e.property.toString().toLowerCase(),n=e.value;t==="text-indent"&&n.parts[0].value<-99?r=e.property:t==="direction"&&n.toString()==="ltr"&&(i="ltr")}),e.addListener("endrule",o),e.addListener("endfontface",o)}}),CSSLint.addRule({id:"underscore-property-hack",name:"Disallow properties with an underscore prefix",desc:"Checks for the underscore property hack (targets IE6)",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.property;r.hack==="_"&&t.report("Property with underscore prefix found.",e.property.line,e.property.col,n)})}}),CSSLint.addRule({id:"unique-headings",name:"Headings should only be defined once",desc:"Headings should be defined only once.",browsers:"All",init:function(e,t){var n=this,r={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};e.addListener("startrule",function(e){var i=e.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.elementName&&/(h[1-6])/i.test(o.elementName.toString())){for(f=0;f<o.modifiers.length;f++)if(o.modifiers[f].type==="pseudo"){u=!0;break}u||(r[RegExp.$1]++,r[RegExp.$1]>1&&t.report("Heading ("+o.elementName+") has already been defined.",o.line,o.col,n))}}}),e.addListener("endstylesheet",function(){var e,i=[];for(e in r)r.hasOwnProperty(e)&&r[e]>1&&i.push(r[e]+" "+e+"s");i.length&&t.rollupWarn("You have "+i.join(", ")+" defined in this stylesheet.",n)})}}),CSSLint.addRule({id:"universal-selector",name:"Disallow universal selector",desc:"The universal selector (*) is known to be slow.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(e){var r=e.selectors,i,s,o;for(o=0;o<r.length;o++)i=r[o],s=i.parts[i.parts.length-1],s.elementName==="*"&&t.report(n.desc,s.line,s.col,n)})}}),CSSLint.addRule({id:"unqualified-attributes",name:"Disallow unqualified attribute selectors",desc:"Unqualified attribute selectors are known to be slow.",browsers:"All",init:function(e,t){var n=this;e.addListener("startrule",function(r){var i=r.selectors,s,o,u,a,f;for(a=0;a<i.length;a++){s=i[a],o=s.parts[s.parts.length-1];if(o.type===e.SELECTOR_PART_TYPE)for(f=0;f<o.modifiers.length;f++)u=o.modifiers[f],u.type==="attribute"&&(!o.elementName||o.elementName==="*")&&t.report(n.desc,o.line,o.col,n)}})}}),CSSLint.addRule({id:"vendor-prefix",name:"Require standard property with vendor prefix",desc:"When using a vendor-prefixed property, make sure to include the standard one.",browsers:"All",init:function(e,t){function o(){r={},i=1}function u(){var e,i,o,u,a,f=[];for(e in r)s[e]&&f.push({actual:e,needed:s[e]});for(i=0,o=f.length;i<o;i++)u=f[i].needed,a=f[i].actual,r[u]?r[u][0].pos<r[a][0].pos&&t.report("Standard property '"+u+"' should come after vendor-prefixed property '"+a+"'.",r[a][0].name.line,r[a][0].name.col,n):t.report("Missing standard property '"+u+"' to go along with '"+a+"'.",r[a][0].name.line,r[a][0].name.col,n)}var n=this,r,i,s={"-webkit-border-radius":"border-radius","-webkit-border-top-left-radius":"border-top-left-radius","-webkit-border-top-right-radius":"border-top-right-radius","-webkit-border-bottom-left-radius":"border-bottom-left-radius","-webkit-border-bottom-right-radius":"border-bottom-right-radius","-o-border-radius":"border-radius","-o-border-top-left-radius":"border-top-left-radius","-o-border-top-right-radius":"border-top-right-radius","-o-border-bottom-left-radius":"border-bottom-left-radius","-o-border-bottom-right-radius":"border-bottom-right-radius","-moz-border-radius":"border-radius","-moz-border-radius-topleft":"border-top-left-radius","-moz-border-radius-topright":"border-top-right-radius","-moz-border-radius-bottomleft":"border-bottom-left-radius","-moz-border-radius-bottomright":"border-bottom-right-radius","-moz-column-count":"column-count","-webkit-column-count":"column-count","-moz-column-gap":"column-gap","-webkit-column-gap":"column-gap","-moz-column-rule":"column-rule","-webkit-column-rule":"column-rule","-moz-column-rule-style":"column-rule-style","-webkit-column-rule-style":"column-rule-style","-moz-column-rule-color":"column-rule-color","-webkit-column-rule-color":"column-rule-color","-moz-column-rule-width":"column-rule-width","-webkit-column-rule-width":"column-rule-width","-moz-column-width":"column-width","-webkit-column-width":"column-width","-webkit-column-span":"column-span","-webkit-columns":"columns","-moz-box-shadow":"box-shadow","-webkit-box-shadow":"box-shadow","-moz-transform":"transform","-webkit-transform":"transform","-o-transform":"transform","-ms-transform":"transform","-moz-transform-origin":"transform-origin","-webkit-transform-origin":"transform-origin","-o-transform-origin":"transform-origin","-ms-transform-origin":"transform-origin","-moz-box-sizing":"box-sizing","-webkit-box-sizing":"box-sizing"};e.addListener("startrule",o),e.addListener("startfontface",o),e.addListener("startpage",o),e.addListener("startpagemargin",o),e.addListener("startkeyframerule",o),e.addListener("property",function(e){var t=e.property.text.toLowerCase();r[t]||(r[t]=[]),r[t].push({name:e.property,value:e.value,pos:i++})}),e.addListener("endrule",u),e.addListener("endfontface",u),e.addListener("endpage",u),e.addListener("endpagemargin",u),e.addListener("endkeyframerule",u)}}),CSSLint.addRule({id:"zero-units",name:"Disallow units for 0 values",desc:"You don't need to specify units when a value is 0.",browsers:"All",init:function(e,t){var n=this;e.addListener("property",function(e){var r=e.value.parts,i=0,s=r.length;while(i<s)(r[i].units||r[i].type==="percentage")&&r[i].value===0&&r[i].type!=="time"&&t.report("Values of 0 shouldn't have units specified.",r[i].line,r[i].col,n),i++})}}),function(){var e=function(e){return!e||e.constructor!==String?"":e.replace(/[\"&><]/g,function(e){switch(e){case'"':return"&quot;";case"&":return"&amp;";case"<":return"&lt;";case">":return"&gt;"}})};CSSLint.addFormatter({id:"checkstyle-xml",name:"Checkstyle XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><checkstyle>'},endFormat:function(){return"</checkstyle>"},readError:function(t,n){return'<file name="'+e(t)+'"><error line="0" column="0" severty="error" message="'+e(n)+'"></error></file>'},formatResults:function(t,n){var r=t.messages,i=[],s=function(e){return!!e&&"name"in e?"net.csslint."+e.name.replace(/\s/g,""):""};return r.length>0&&(i.push('<file name="'+n+'">'),CSSLint.Util.forEach(r,function(t){t.rollup||i.push('<error line="'+t.line+'" column="'+t.col+'" severity="'+t.type+'"'+' message="'+e(t.message)+'" source="'+s(t.rule)+'"/>')}),i.push("</file>")),i.join("")}})}(),CSSLint.addFormatter({id:"compact",name:"Compact, 'porcelain' format",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(e,t,n){var r=e.messages,i="";n=n||{};var s=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};return r.length===0?n.quiet?"":t+": Lint Free!":(CSSLint.Util.forEach(r,function(e){e.rollup?i+=t+": "+s(e.type)+" - "+e.message+"\n":i+=t+": "+"line "+e.line+", col "+e.col+", "+s(e.type)+" - "+e.message+" ("+e.rule.id+")\n"}),i)}}),CSSLint.addFormatter({id:"csslint-xml",name:"CSSLint XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><csslint>'},endFormat:function(){return"</csslint>"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?"":e.replace(/\"/g,"'").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};return n.length>0&&(r.push('<file name="'+t+'">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity="'+e.type+'" reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>'):r.push('<issue line="'+e.line+'" char="'+e.col+'" severity="'+e.type+'"'+' reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>')}),r.push("</file>")),r.join("")}}),CSSLint.addFormatter({id:"junit-xml",name:"JUNIT XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><testsuites>'},endFormat:function(){return"</testsuites>"},formatResults:function(e,t){var n=e.messages,r=[],i={error:0,failure:0},s=function(e){return!!e&&"name"in e?"net.csslint."+e.name.replace(/\s/g,""):""},o=function(e){return!e||e.constructor!==String?"":e.replace(/\"/g,"'").replace(/</g,"&lt;").replace(/>/g,"&gt;")};return n.length>0&&(n.forEach(function(e){var t=e.type==="warning"?"error":e.type;e.rollup||(r.push('<testcase time="0" name="'+s(e.rule)+'">'),r.push("<"+t+' message="'+o(e.message)+'"><![CDATA['+e.line+":"+e.col+":"+o(e.evidence)+"]]></"+t+">"),r.push("</testcase>"),i[t]+=1)}),r.unshift('<testsuite time="0" tests="'+n.length+'" skipped="0" errors="'+i.error+'" failures="'+i.failure+'" package="net.csslint" name="'+t+'">'),r.push("</testsuite>")),r.join("")}}),CSSLint.addFormatter({id:"lint-xml",name:"Lint XML format",startFormat:function(){return'<?xml version="1.0" encoding="utf-8"?><lint>'},endFormat:function(){return"</lint>"},formatResults:function(e,t){var n=e.messages,r=[],i=function(e){return!e||e.constructor!==String?"":e.replace(/\"/g,"'").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")};return n.length>0&&(r.push('<file name="'+t+'">'),CSSLint.Util.forEach(n,function(e){e.rollup?r.push('<issue severity="'+e.type+'" reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>'):r.push('<issue line="'+e.line+'" char="'+e.col+'" severity="'+e.type+'"'+' reason="'+i(e.message)+'" evidence="'+i(e.evidence)+'"/>')}),r.push("</file>")),r.join("")}}),CSSLint.addFormatter({id:"text",name:"Plain Text",startFormat:function(){return""},endFormat:function(){return""},formatResults:function(e,t,n){var r=e.messages,i="";n=n||{};if(r.length===0)return n.quiet?"":"\n\ncsslint: No errors in "+t+".";i="\n\ncsslint: There ",r.length===1?i+="is 1 problem":i+="are "+r.length+" problems",i+=" in "+t+".";var s=t.lastIndexOf("/"),o=t;return s===-1&&(s=t.lastIndexOf("\\")),s>-1&&(o=t.substring(s+1)),CSSLint.Util.forEach(r,function(e,t){i=i+"\n\n"+o,e.rollup?(i+="\n"+(t+1)+": "+e.type,i+="\n"+e.message):(i+="\n"+(t+1)+": "+e.type+" at line "+e.line+", col "+e.col,i+="\n"+e.message,i+="\n"+e.evidence)}),i}}),module.exports.CSSLint=CSSLint}),define("ace/mode/css_worker",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/worker/mirror","ace/mode/css/csslint"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("../worker/mirror").Mirror,o=e("./css/csslint").CSSLint,u=t.Worker=function(e){s.call(this,e),this.setTimeout(400),this.ruleset=null,this.setDisabledRules("ids|order-alphabetical"),this.setInfoRules("adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none|vendor-prefix")};r.inherits(u,s),function(){this.setInfoRules=function(e){typeof e=="string"&&(e=e.split("|")),this.infoRules=i.arrayToMap(e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.setDisabledRules=function(e){if(!e)this.ruleset=null;else{typeof e=="string"&&(e=e.split("|"));var t={};o.getRules().forEach(function(e){t[e.id]=!0}),e.forEach(function(e){delete t[e]}),this.ruleset=t}this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.onUpdate=function(){var e=this.doc.getValue();if(!e)return this.sender.emit("annotate",[]);var t=this.infoRules,n=o.verify(e,this.ruleset);this.sender.emit("annotate",n.messages.map(function(e){return{row:e.line-1,column:e.col-1,text:e.message,type:t[e.rule.id]?"info":e.type,rule:e.rule.name}}))}}.call(u.prototype)}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!=