发信人: soulfox (小o&灵狐~以华丽之名), 信区: ANSI_Discuss
标 题: [教程相关][第三章]部分超长代码作品的张贴by hw
发信站: 日月光华 (2007年08月09日20:46:43 星期四), 站内信件
───────────────────────────────────────
__ ___
╱█ __ __ ______ ______ ╱∠-╲
╱__█ █ █ █__ ̄  ̄█ ̄ /╱︵╲\\
__╱  ̄█ █╲█ ▁ █ __█__ (╱⌒ \\│
 ̄  ̄  ̄  ̄  ̄ ̄ ̄  ̄ ̄ ̄ ╱_ / _)_/
日月光华ANSI版短期培训班 /__ /__
▏ ╱/╱
____ /▏╱╱ ╲
╱◣●\ /\︶╱ \
番 外 篇: 部分超长代码作品的张贴 /◆ _ / │ ~╲ │
▕▲ ╰)/─│ ☉│ │ │
▕◢ ^ \─│ │ │ │
时间安排: 火星人不讲日期 ╲▼■/ │ ☉│ │_│
当班教师: hw (其实只是个发课外资料的) ▔▔ │ │ | |
│ ︵___/ \_
│ (~──||||-'
───────────────────────────────────────
──|问题简介|────────────────────────────────
一 光华系统的限制
在光华,有一行至多254字节的限制(一个中文字占2个字节),因此,一些颜色
频繁变化的作品,用普通的方法将代码精简到最短,仍会有某一些行超长,无
法直接张贴上来,于是就要尝试一些特殊的方法,比如利用光标移动等特殊的
ANSI控制符,借用作品中较短的一些行的字符空间来存放超长行中放不下的那
部分内容。
二 兼容性
使用了*[m以外的控制符,兼容性当然要打点折扣,比如web下面肯定是要乱掉
了,好在光华的web本来就对ANSI的支持不是很好,一般不会在web下面看ANSI
作品。还有就是不同的Term软件对各种ANSI代码的解释不同所造成的差异,所
以尽量使用最通用的控制,如ABCDH等,不使用@这类
光华的smd是屏蔽所有*[m以外的控制符的,所以代码超长的作品不可能按原样
放置到smd中
────────────────────────────────────|⑴|─
──|问题简介|────────────────────────────────
三 观看方式 (不关注可以先跳过,知道本文中“屏显字符”的定义即可)
张贴代码超长作品,或者使用某些特殊qmd,可能遇到另一个问题,就是屏幕滚
动(↑↓) 与翻页(PgUp、PgDn)时的系统处理方式造成对作品的破坏,因此有必
要在此简单说明一下(并没有去对照BBS源码,根据一些简单测试的个人总结)
大家都知道文章题头3行(信件4行)并且与正文之间有一个空行,因此第一屏有
效代码为19行,其后每一屏23行。不过行数并不总是等同于回车数量,一行代
码中,扣除所有的普通和特殊ANSI代码后,每80个字符会附加一次断行。这里
扣除控制码后的字符是实际要在屏幕上显示的,称为屏显字符 (包括空格)
↓或Space或PgDn时,先计算出需要移动的行数,将当前屏幕内容上移(并不重
新解释这部分的代码),然后在原来最后一行的下面开始解释新的行代码,对于
普通作品至多影响分页处的行间代码接续,使用规范代码即可避免,但是对于
定位等特殊代码,代码的位置以及前面说的80屏显字符断行都可能影响作品。
↑或PgUp时,计算出起始行后,连续解释23行代码,不管这行在滚屏前是否已
经解释过,所以有的作品向下一行行看不对,按一次↑又修好了。
────────────────────────────────────|⑵|─
──|问题简介|────────────────────────────────
四 编辑方式
由于在BBS里编辑行长度超过254的代码容易断线(一般是BackSpace或Del时造成
的),所以代码改写可以在记事本之类的文本编辑器中进行,完成后再贴到 BBS
上,不过文本编辑器中没法预览效果,也容易弄丢控制符,所以操作时要格外小
心,过一段时间就用term看看效果。也能直接在Term里改,合并行时小心点。
五 其他问题
注意修改的作品与原图的显示效果一致,原作的暗标也应予以保留。
对于观看方式(↓或Space)的限制最好给出说明,注意转载等操作系统增加的内
容会导致分页位置的变化,若影响了作品记得修正。
若光标定位后所在行与实际行不符,记得在整幅作品的末尾恢复到正确的行,以
免造成观看时蓝色状态条的上移(一般不用每行都保证这样,提示别人正确的观
看方式即可)。总之多测试,尽量减少副作用。
────────────────────────────────────|⑶|─
──|常用技法|────────────────────────────────
一 *[x;yH绝对定位
控制码详解:x是列标(横坐标),y是行号(纵坐标),H必须大写,屏幕的左上角
为*[1;1H,右下角为*[24;80H,一般只会用到第23行。当只指定一个参数时,
fterm等解释为*[x;1H而Cterm3解释为*[1;1H,所以一般都要求写全两个参数。
修改方法:观察源代码,找到超长的行,将超过的部分截取出来,对照作品记
下显示位置,放到短行中并在开头加上定位码及必要的颜色控制。
注意事项:第一行内容的位置需要确定;所有代码需要在同一屏内解释;注意
回车前光标要恢复到正确的行以保证下一行起始位置正确;第一屏作品要注意
信头会占掉3行或4行;对于第二屏的作品,应提示使用Space来观看,用↓一般
是看不到正确效果的,另外第二屏的第一行会显示在第一屏末尾,这一行代码
中不能使用绝对定位;注意单行屏显字符80的限制,所以并不是行代码短就能
借用的,还必须控制行屏显字符数,作品较小或者有空白行可以利用当然就最
好了,如果可利用的屏显字符空间不够,就要结合或换用其它方法来尝试。
────────────────────────────────────|⑷|─
──|常用技法|────────────────────────────────
二 行内右移*[nC
控制码详解:参数n表示移动的距离,若n较大移动到屏幕边界会停止。
修改方法:当行内有连续5个以上黑背景的空格时可以用*[nC越过(其他背景的
空格不能这么干,除非已事先涂过背景),少于5个空格不能缩短长度,不过能
让出屏显字符的空间,是充分挖掘短行潜力的辅助手段,另一种可能是黑背景
与另一种背景色的交替,虽然只用*[nC不一定能缩短代码长度,但是由于省去
了背景色的切换,综合起来能缩短总代码长度。
注意事项:兼容性很好,除了必须用Term看外没什么特别要求。不过由于作用
有限,只有少部分作品能只用这一种控制符解决法搞定,一般要结合其他技法
实例:培训班教材中的习题,要求并排两个Fterm,此作品有一定量黑色背景,
而且不少地方是黑色与另一种颜色*[43m或*[47m的交替,于是正适合采用此法
来进行代码长度压缩,精华区有,可以F回去看代码,其实只需要对超长的行进
行处理即可,不过精华区里的例子对所有行都做了,一般不需要做那么多。
────────────────────────────────────|⑸|─
──|常用技法|────────────────────────────────
三 行内移动*[nC与*[nD
控制码详解:*[nD与*[nC类似,只不过移动方向换为向左。
修改方法:只用这两个控制来压缩代码长度是很累而且条件苛刻的任务,想法
来自于上一种技法中关于黑彩交替背景的代码压缩,真正省下空间的并不是光
标移动代替空格,而是减少了背景色的切换,只要后者节省的代码量超过前者
增加的代码量就是有意义的。在本技巧中,就换为将同样显示属性或者变换时
控制码较短的放在一起,利用光标移动来控制写字符的地方,要求最终结果的
代码短于原始代码。
注意事项:兼容性很好,除了必须用Term看外没什么特别要求。但其苛刻的条
件及复杂的分析与计算量,决定了这至多只是一个局部调整的辅助技法。
例子:没有很好的实例,有个概念性的例子。单行的38方块标准双色跑马灯,
如果用标准的代码,每次切换前背景需要8个字节,由于整行只用到两种显示属
性,将同种的放在一起每次只需要4到5字节的移位控制。
────────────────────────────────────|⑹|─
──|常用技法|────────────────────────────────
四 光标移动*[nA、*[nB、*[nC和*[nD
控制码详解:A是上移,B是下移。
修改方法:上下左右4个方向都能移动,于是就能利用短行来补长行了,就像第
一个技法中用绝对定位,差别就在于一个观察绝对位置一个观察相对位移。结
合前面的技法二和三,足以处理很多作品了,而技法一我个人很少使用。
注意事项:第二屏作品一般应该推荐用Space观看,虽然只要不把光标位移动到
代码所在行之下用↓一般也能逐渐显现正确结果,但用Space是最保险的。注意
行屏显字符80的限制,不要超,短行中的黑背景空格,可以考虑用技法二,牺
代码空间换取屏显字符空间。作品末尾记得把光标恢复到正确位置。第二屏作
品的第一行会显示在第一屏末尾,这一行不要用A和B。
实例:精华区中Sylow个展第二期中的《风见隼人》、《camio》、《ACE》以及
《NARUTO》,还有“自然风景”分类中Sylow的《小镇风光》,最后一个是用↓
也能看到正确结果的,但一定要移动到代码最后一行才会把前面缺掉的部分补
上,前面那些作品都是不能用↓的。
────────────────────────────────────|⑺|─
──|附加说明|────────────────────────────────
一 *[s与*[u光标的存取与恢复
控制码详解:*[s存储光标的当前位置,*[u恢复到最近的一个*[s位置。另有一
套相应的代码为*7和*8,很多终端同时支持这两套,但也有只支持一套的,所
以这些虽然简单但是并不是非常提倡。一般都用*[s与*[u,Windows用户多嘛。
使用方法:这两个控制一般都会结合光标移动或定位一同使用。这两个控制符
比较简短,可以代替个别相对较长的移动或定位控制来缩短代码。
注意事项:保证所有代码在同一屏得到解释,其余要求由主要技法决定。
二 *[K删行及其他控制符
*[K可以用背景色填涂到行末,有可能用来作为辅助手段,不过在Cterm2000下
永远用黑背景填充,条件苛刻兼容性也不够好,我本人从来没考虑过;*[1K有
些Term下是向左填涂,兼容性更差;J之类清屏极不推荐;Ansi3.64中@或P还有
E、F、G等控制符同样受限于兼容性及本身的作用而基本不会去考虑;*[L有用
来制作军棋图谱之类的,这与本篇无关,不详述。
────────────────────────────────────|⑻|─
──|附加说明|────────────────────────────────
三 色彩代码的精简与规范化
对于代码超长的作品的张贴,限于光华系统的限制,有时不得不采用特殊的方
法来解决,不过普通代码的精简仍是最基本的,为了兼容性及减少用户观看时
的不便,能不使用特殊控制的就坚决不用。
代码精简和规范化在个别临界条件下是有矛盾的,这时候就要清楚哪个更为重
要。下一行接续上一行末尾的代码有什么弊端呢?回头看看翻页的系统处理,
在分页处,会破坏代码的接续。行末不恢复到默认背景,在smd里可能造成颜色
拖尾(只在Ctrl+A观看时发生)。*[m后面非空格字符的显示,会造成默认高亮用
户与默认低亮用户看到的效果不同,是否应该照顾到更多的人呢?
代码精简,首先删除无效控制符;其次观察空格,对于无下划线的空格,前景
色、高低亮、闪烁与否都是没区别的,可以与前后的内容协调减少属性变化。
做上面这两步时都应保证规范代码。若调整后还是不行,但是只差一点点,于
是考虑颜色代码的行间接续、*[m代替*[0m等等,也就是不再遵从代码规范。
────────────────────────────────────|⑼|─
──|附加说明|────────────────────────────────
四 太累了,想尽快结束掉……
假如没有行代码长度限制就好了,大家可以专注于创作而不必去关心代码是否
会超长,希望哪一天光华也能有所改进,不过在此之前,只能将就一下了。
本篇所说的技巧并不要求每个人掌握,不过比如光华的ANSI版版主,经常转贴
外站作品的人最好能知道一点,当然还有对光华ANSI特有感情的人,呵呵。
有没有用了特殊控制仍旧贴不过来的作品呢?我想是有的,极端情况,撑满整
屏的大作品,颜色变化频繁,空格极少,于是代码空间和屏显字符空间都无法
压榨,当然贴过来就不可能了。好在至今为止,这类BT作品不多。
根据全局的颜色分布来调整代码,精确计算,也许能得到最最简短的代码,但
这似乎已经不是人力能做的事情了。追求最短代码没有意义,能贴得过来就是
了。
────────────────────────────────────|⑽|─
--
BBS客户端探测程序(仅支持cterm、fterm、sterm、qterm以及WinXP telnet)
您当前所使用的是:
ctermIII fterm sterm Win telnet qterm <SFC(100,222,255) T(0,-10,"CTERMIII")>
※ 来源:·日月光华 bbs.fudan.edu.cn·[FROM: 10.8.225.9]
--
※ 转寄:·日月光华 bbs.fudan.edu.cn·[FROM: 10.85.48.11]
--
※ 转载:·日月光华 bbs.fudan.edu.cn·[FROM: 10.85.48.11]
※ 修改:·soulfox 於 08月09日20:46:52 修改本文·[FROM: 10.85.48.11]
发信人: soulfox 小o&灵狐 以华丽之名 , 信区: ANSI Discuss
标 题: [教程相关][第三章]部分超长代码作品的张贴by hw
发信站: 日月光华 2007年08月09日20:46:43 星期四 , 站内信件
⌒
日月光华ANSI版短期培训班
番 外 篇: 部分超长代码作品的张贴
^
时间安排 火星人不讲日期
当班教师 hw 其实只是个发课外资料的
'
问题简介
一 光华系统的限制
在光华 有一行至多254字节的限制 一个中文字占2个字节 因此 一些颜色
频繁变化的作品 用普通的方法将代码精简到最短 仍会有某一些行超长 无
法直接张贴上来 于是就要尝试一些特殊的方法 比如利用光标移动等特殊的
ANSI控制符 借用作品中较短的一些行的字符空间来存放超长行中放不下的那
部分内容
二 兼容性
使用了*[m以外的控制符 兼容性当然要打点折扣 比如web下面肯定是要乱掉
了 好在光华的web本来就对ANSI的支持不是很好 一般不会在web下面看ANSI
作品 还有就是不同的Term软件对各种ANSI代码的解释不同所造成的差异 所
以尽量使用最通用的控制 如ABCDH等 不使用@这类
光华的smd是屏蔽所有*[m以外的控制符的 所以代码超长的作品不可能按原样
放置到smd中
⑴
问题简介
三 观看方式 不关注可以先跳过 知道本文中 屏显字符 的定义即可
张贴代码超长作品 或者使用某些特殊qmd 可能遇到另一个问题 就是屏幕滚
动 与翻页 PgUp PgDn 时的系统处理方式造成对作品的破坏 因此有必
要在此简单说明一下 并没有去对照BBS源码 根据一些简单测试的个人总结
大家都知道文章题头3行 信件4行 并且与正文之间有一个空行 因此第一屏有
效代码为19行 其后每一屏23行 不过行数并不总是等同于回车数量 一行代
码中 扣除所有的普通和特殊ANSI代码后 每80个字符会附加一次断行 这里
扣除控制码后的字符是实际要在屏幕上显示的 称为屏显字符 包括空格
或Space或PgDn时 先计算出需要移动的行数 将当前屏幕内容上移 并不重
新解释这部分的代码 然后在原来最后一行的下面开始解释新的行代码 对于
普通作品至多影响分页处的行间代码接续 使用规范代码即可避免 但是对于
定位等特殊代码 代码的位置以及前面说的80屏显字符断行都可能影响作品
或PgUp时 计算出起始行后 连续解释23行代码 不管这行在滚屏前是否已
经解释过 所以有的作品向下一行行看不对 按一次 又修好了
⑵
问题简介
四 编辑方式
由于在BBS里编辑行长度超过254的代码容易断线 一般是BackSpace或Del时造成
的 所以代码改写可以在记事本之类的文本编辑器中进行 完成后再贴到 BBS
上 不过文本编辑器中没法预览效果 也容易弄丢控制符 所以操作时要格外小
心 过一段时间就用term看看效果 也能直接在Term里改 合并行时小心点
五 其他问题
注意修改的作品与原图的显示效果一致 原作的暗标也应予以保留
对于观看方式 或Space 的限制最好给出说明 注意转载等操作系统增加的内
容会导致分页位置的变化 若影响了作品记得修正
若光标定位后所在行与实际行不符 记得在整幅作品的末尾恢复到正确的行 以
免造成观看时蓝色状态条的上移 一般不用每行都保证这样 提示别人正确的观
看方式即可 总之多测试 尽量减少副作用
⑶
常用技法
一 *[x;yH绝对定位
控制码详解 x是列标 横坐标 y是行号 纵坐标 H必须大写 屏幕的左上角
为*[1;1H 右下角为*[24;80H 一般只会用到第23行 当只指定一个参数时
fterm等解释为*[x;1H而Cterm3解释为*[1;1H 所以一般都要求写全两个参数
修改方法 观察源代码 找到超长的行 将超过的部分截取出来 对照作品记
下显示位置 放到短行中并在开头加上定位码及必要的颜色控制
注意事项 第一行内容的位置需要确定 所有代码需要在同一屏内解释 注意
回车前光标要恢复到正确的行以保证下一行起始位置正确 第一屏作品要注意
信头会占掉3行或4行 对于第二屏的作品 应提示使用Space来观看 用 一般
是看不到正确效果的 另外第二屏的第一行会显示在第一屏末尾 这一行代码
中不能使用绝对定位 注意单行屏显字符80的限制 所以并不是行代码短就能
借用的 还必须控制行屏显字符数 作品较小或者有空白行可以利用当然就最
好了 如果可利用的屏显字符空间不够 就要结合或换用其它方法来尝试
⑷
常用技法
二 行内右移*[nC
控制码详解 参数n表示移动的距离 若n较大移动到屏幕边界会停止
修改方法 当行内有连续5个以上黑背景的空格时可以用*[nC越过 其他背景的
空格不能这么干 除非已事先涂过背景 少于5个空格不能缩短长度 不过能
让出屏显字符的空间 是充分挖掘短行潜力的辅助手段 另一种可能是黑背景
与另一种背景色的交替 虽然只用*[nC不一定能缩短代码长度 但是由于省去
了背景色的切换 综合起来能缩短总代码长度
注意事项 兼容性很好 除了必须用Term看外没什么特别要求 不过由于作用
有限 只有少部分作品能只用这一种控制符解决法搞定 一般要结合其他技法
实例 培训班教材中的习题 要求并排两个Fterm 此作品有一定量黑色背景
而且不少地方是黑色与另一种颜色*[43m或*[47m的交替 于是正适合采用此法
来进行代码长度压缩 精华区有 可以F回去看代码 其实只需要对超长的行进
行处理即可 不过精华区里的例子对所有行都做了 一般不需要做那么多
⑸
常用技法
三 行内移动*[nC与*[nD
控制码详解 *[nD与*[nC类似 只不过移动方向换为向左
修改方法 只用这两个控制来压缩代码长度是很累而且条件苛刻的任务 想法
来自于上一种技法中关于黑彩交替背景的代码压缩 真正省下空间的并不是光
标移动代替空格 而是减少了背景色的切换 只要后者节省的代码量超过前者
增加的代码量就是有意义的 在本技巧中 就换为将同样显示属性或者变换时
控制码较短的放在一起 利用光标移动来控制写字符的地方 要求最终结果的
代码短于原始代码
注意事项 兼容性很好 除了必须用Term看外没什么特别要求 但其苛刻的条
件及复杂的分析与计算量 决定了这至多只是一个局部调整的辅助技法
例子 没有很好的实例 有个概念性的例子 单行的38方块标准双色跑马灯
如果用标准的代码 每次切换前背景需要8个字节 由于整行只用到两种显示属
性 将同种的放在一起每次只需要4到5字节的移位控制
⑹
常用技法
四 光标移动*[nA *[nB *[nC和*[nD
控制码详解 A是上移 B是下移
修改方法 上下左右4个方向都能移动 于是就能利用短行来补长行了 就像第
一个技法中用绝对定位 差别就在于一个观察绝对位置一个观察相对位移 结
合前面的技法二和三 足以处理很多作品了 而技法一我个人很少使用
注意事项 第二屏作品一般应该推荐用Space观看 虽然只要不把光标位移动到
代码所在行之下用 一般也能逐渐显现正确结果 但用Space是最保险的 注意
行屏显字符80的限制 不要超 短行中的黑背景空格 可以考虑用技法二 牺
代码空间换取屏显字符空间 作品末尾记得把光标恢复到正确位置 第二屏作
品的第一行会显示在第一屏末尾 这一行不要用A和B
实例 精华区中Sylow个展第二期中的 风见隼人 camio ACE 以及
NARUTO 还有 自然风景 分类中Sylow的 小镇风光 最后一个是用
也能看到正确结果的 但一定要移动到代码最后一行才会把前面缺掉的部分补
上 前面那些作品都是不能用 的
⑺
附加说明
一 *[s与*[u光标的存取与恢复
控制码详解 *[s存储光标的当前位置 *[u恢复到最近的一个*[s位置 另有一
套相应的代码为*7和*8 很多终端同时支持这两套 但也有只支持一套的 所
以这些虽然简单但是并不是非常提倡 一般都用*[s与*[u Windows用户多嘛
使用方法 这两个控制一般都会结合光标移动或定位一同使用 这两个控制符
比较简短 可以代替个别相对较长的移动或定位控制来缩短代码
注意事项 保证所有代码在同一屏得到解释 其余要求由主要技法决定
二 *[K删行及其他控制符
*[K可以用背景色填涂到行末 有可能用来作为辅助手段 不过在Cterm2000下
永远用黑背景填充 条件苛刻兼容性也不够好 我本人从来没考虑过 *[1K有
些Term下是向左填涂 兼容性更差 J之类清屏极不推荐 Ansi3.64中@或P还有
E F G等控制符同样受限于兼容性及本身的作用而基本不会去考虑 *[L有用
来制作军棋图谱之类的 这与本篇无关 不详述
⑻
附加说明
3. Simplification and standardization of color codes
For the posting of works with extremely long code, it is limited by the limitations of the Guanghua system and sometimes special methods have to be used.
There is no way to solve it, but the simplification of ordinary code is still the most basic for the sake of compatibility and reducing user viewing time.
If you can avoid the inconvenience by using special controls, then definitely don’t use them.
Code streamlining and standardization are contradictory under certain critical conditions. At this time, it is necessary to know which one is more important.
What are the disadvantages of continuing the code at the end of the previous line in the next line? Let’s look back at the system processing of page turning.
At the paging point, it will destroy the continuation of the code. The default background will not be restored at the end of the line, which may cause color in smd.
Trailing only occurs when viewing with Ctrl A. The display of non-space characters after *[m will cause the default highlight to be used.
The effect seen by users is different from that of users with low brightness by default. Should more people be taken care of?
To streamline the code, first remove invalid control characters, and secondly observe spaces for spaces without underlines. Foreground
It makes no difference whether the color is high or low, whether it is flashing or not. It can be coordinated with the content before and after to reduce attribute changes.
When doing the above two steps, you should ensure that the code is standardized. If it still doesn't work after adjustment, but it is only a little bit different.
It is to consider the interline continuation of the color code *[m instead of *[0m, etc., which means that the code specification is no longer followed.
⑼
Additional information
4. I’m so tired. I want to end it as soon as possible.
It would be great if there was no limit on the length of lines of code. Everyone could focus on creating without having to worry about whether the code is
It will be too long. I hope Guanghua can improve one day, but until then, I can only make do with it.
The skills mentioned in this article do not require everyone to master them, but for example, Guanghua’s ANSI version moderator often reposts
People who work on external sites should know a little bit about it. Of course, there are also people who have special feelings for Guanghua ANSI. Haha
Are there any works that can’t be posted even after using special controls? I think there are. In extreme cases, it lasts the whole time.
Large screen works with frequent color changes and very few spaces, so neither the code space nor the screen display character space are available.
Squeezing it, of course, it is impossible to post it. Fortunately, there are not many BT works of this kind so far.
Adjusting the code according to the global color distribution and calculating accurately may lead to the shortest code, but
It seems that this is no longer something that humans can do. There is no point in pursuing the shortest code. As long as it can be pasted
Got it
⑽
BBS client detection program only supports cterm fterm sterm qterm and WinXP telnet
You are currently using
ctermIII fterm sterm Win telnet qterm <SFC 100,222,255 T 0, 10,"CTERMIII" >
Source: Sun and Moon Guanghua bbs.fudan.edu.cn [FROM: 10.8.225.9]
Forward: Sun and Moon Guanghua bbs.fudan.edu.cn [FROM: 10.85.48.11]
Reprint: Sun and Moon Guanghua bbs.fudan.edu.cn [FROM: 10.85.48.11]
Modification: soulfox modified this article at 20:46:52 on August 9th [FROM: 10.85.48.11]