diff --git a/dev/link.mjs b/dev/link.mjs new file mode 100644 index 0000000..5692068 --- /dev/null +++ b/dev/link.mjs @@ -0,0 +1,27 @@ +import { execSync } from 'child_process'; +import { join } from 'path'; +import { existsSync } from 'fs'; + +// 获取旧的 PATH 环境变量 +const oldPath = process.env.PATH; + +// 获取脚本的路径 +const repoPath = join(__dirname, '..') + +// 切换到用户的主目录 +process.chdir(process.env.USERPROFILE); + +// 测试node_modules/jsstp是否存在 +if(!existsSync(join(process.env.USERPROFILE, 'node_modules', 'jsstp'))) { + // 如果不存在则创建软链接 + execSync(`npm link ${repoPath}`); +} + +// 测试node_modules是否存在 +if(!existsSync(join(repoPath, 'node_modules'))) { + // 如果不存在则创建软链接 + execSync(`cmd /c mklink /j "${join(repoPath, 'node_modules')}" "${join(process.env.USERPROFILE, 'node_modules')}"`); +} + +// 切换回旧的路径 +process.chdir(oldPath); diff --git a/dist/cn/jsstp.d.ts b/dist/cn/jsstp.d.ts index d154e0d..e77b8ee 100644 --- a/dist/cn/jsstp.d.ts +++ b/dist/cn/jsstp.d.ts @@ -48,7 +48,7 @@ declare class info_object { /** * 基础sstp报文类 * @example - * let info = jsstp.base_sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.base_sstp_info_t @@ -59,7 +59,7 @@ declare class base_sstp_info_t extends info_objec * @param {String} info_head 报文头 * @param {Object} info_body 对象格式的报文体 * @param {Array|undefined} unknown_lines 未知行的数组 - * @see {@link sstp_info_t.from_string} + * @see {@link sstp_info_t.constructor} * @ignore */ /*@__PURE__*/constructor(info_head: String, info_body: Object, unknown_lines?: String[]); @@ -100,7 +100,7 @@ declare class base_sstp_info_t extends info_objec /** * sstp报文类 * @example - * let info = jsstp.sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.sstp_info_t @@ -111,7 +111,7 @@ declare class sstp_info_t extends base_sstp_info_t { * @param {String} str 字符串报文 * @returns {sstp_info_t} 构造的sstp_info_t * @example - * let info = sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); */ /*@__PURE__*/constructor(str: String); /** diff --git a/dist/en/jsstp.d.ts b/dist/en/jsstp.d.ts index 7f607f6..db4fc8f 100644 --- a/dist/en/jsstp.d.ts +++ b/dist/en/jsstp.d.ts @@ -48,7 +48,7 @@ declare class info_object { /** * Base sstp message class * @example - * let info = jsstp.base_sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.base_sstp_info_t @@ -59,7 +59,7 @@ declare class base_sstp_info_t extends info_objec * @param {String} info_head The header of the message. * @param {Object} info_body The body of the message in object format. * @param {Array|undefined} unknown_lines Array of unknown lines. - * @see {@link sstp_info_t.from_string} + * @see {@link sstp_info_t.constructor} * @ignore */ /*@__PURE__*/constructor(info_head: String, info_body: Object, unknown_lines?: String[]); @@ -100,7 +100,7 @@ declare class base_sstp_info_t extends info_objec /** * sstp message class * @example - * let info = jsstp.sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.sstp_info_t @@ -111,7 +111,7 @@ declare class sstp_info_t extends base_sstp_info_t { * @param {String} str 字符串报文 * @returns {sstp_info_t} 构造的sstp_info_t * @example - * let info = sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); + * let info = new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); */ /*@__PURE__*/constructor(str: String); /** diff --git a/dist/jp/jsstp.d.ts b/dist/jp/jsstp.d.ts index e139fca..aaf948b 100644 --- a/dist/jp/jsstp.d.ts +++ b/dist/jp/jsstp.d.ts @@ -48,7 +48,7 @@ declare class info_object { /** * ベースsstpメッセージクラス * @example - * let info = jsstp.base_sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.base_sstp_info_t @@ -59,7 +59,7 @@ declare class base_sstp_info_t extends info_objec * @param {String} info_head メッセージのヘッダー。 * @param {Object} info_body オブジェクト形式のメッセージ本文。 * @param {Array|undefined} unknown_lines 未知の行の配列。 - * @see {@link sstp_info_t.from_string} + * @see {@link sstp_info_t.constructor} * @ignore */ /*@__PURE__*/constructor(info_head: String, info_body: Object, unknown_lines?: String[]); @@ -80,7 +80,7 @@ declare class base_sstp_info_t extends info_objec */ /*@__PURE__*/TextContent(): String; /** - * JSON.stringify` で使用するオブジェクトを取得する。 + * `JSON.stringify` で使用するオブジェクトを取得する。 * @returns {Object} `JSON.stringify` で使用するオブジェクト。 * @ignore */ @@ -100,7 +100,7 @@ declare class base_sstp_info_t extends info_objec /** * SSTPメッセージクラス * @example - * let info = jsstp.sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.sstp_info_t @@ -111,7 +111,7 @@ declare class sstp_info_t extends base_sstp_info_t { * @param {String} str メッセージ文字列 * @returns {sstp_info_t} 構築された sstp_info_t * @example - * let info = sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); */ /*@__PURE__*/constructor(str: String); /** diff --git a/package.json b/package.json index b9dd6f8..0e7b57b 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,8 @@ "build:doc": "npm run build:doc:cn && npm run build:doc:en && npm run build:doc:jp", "build:all": "npm run build:dist && npm run build:doc", - "prepublish": "npm run build" + "link": "npm run dev/link.mjs", + "prepublish": "npm run build:dist" }, "repository": { "type": "git", diff --git a/src/.decls/cn/types/base_sstp_info_t.d.ts b/src/.decls/cn/types/base_sstp_info_t.d.ts index e5e5422..e47428e 100644 --- a/src/.decls/cn/types/base_sstp_info_t.d.ts +++ b/src/.decls/cn/types/base_sstp_info_t.d.ts @@ -12,7 +12,7 @@ Option: notranslate /** * 基础sstp报文类 * @example - * let info = jsstp.base_sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.base_sstp_info_t @@ -23,7 +23,7 @@ declare class base_sstp_info_t extends info_objec * @param {String} info_head 报文头 * @param {Object} info_body 对象格式的报文体 * @param {Array|undefined} unknown_lines 未知行的数组 - * @see {@link sstp_info_t.from_string} + * @see {@link sstp_info_t.constructor} * @ignore */ /*@__PURE__*/constructor(info_head: String, info_body: Object, unknown_lines?: String[]); diff --git a/src/.decls/cn/types/sstp_info_t.d.ts b/src/.decls/cn/types/sstp_info_t.d.ts index ab0f0cd..1d8d4a0 100644 --- a/src/.decls/cn/types/sstp_info_t.d.ts +++ b/src/.decls/cn/types/sstp_info_t.d.ts @@ -14,7 +14,7 @@ Option: notranslate /** * sstp报文类 * @example - * let info = jsstp.sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.sstp_info_t @@ -25,7 +25,7 @@ declare class sstp_info_t extends base_sstp_info_t { * @param {String} str 字符串报文 * @returns {sstp_info_t} 构造的sstp_info_t * @example - * let info = sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); */ /*@__PURE__*/constructor(str: String); /** diff --git a/src/.decls/en/types/base_sstp_info_t.d.ts b/src/.decls/en/types/base_sstp_info_t.d.ts index 85e8ea6..d929b9e 100644 --- a/src/.decls/en/types/base_sstp_info_t.d.ts +++ b/src/.decls/en/types/base_sstp_info_t.d.ts @@ -12,7 +12,7 @@ Consists of a fixed header line and an optional set of message lines, with \r\n /** * Base sstp message class * @example - * let info = jsstp.base_sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.base_sstp_info_t @@ -23,7 +23,7 @@ declare class base_sstp_info_t extends info_objec * @param {String} info_head The header of the message. * @param {Object} info_body The body of the message in object format. * @param {Array|undefined} unknown_lines Array of unknown lines. - * @see {@link sstp_info_t.from_string} + * @see {@link sstp_info_t.constructor} * @ignore */ /*@__PURE__*/constructor(info_head: String, info_body: Object, unknown_lines?: String[]); diff --git a/src/.decls/en/types/sstp_info_t.d.ts b/src/.decls/en/types/sstp_info_t.d.ts index 4bf9324..01e157b 100644 --- a/src/.decls/en/types/sstp_info_t.d.ts +++ b/src/.decls/en/types/sstp_info_t.d.ts @@ -14,7 +14,7 @@ Consists of a fixed header line and an optional set of message lines, with \r\n /** * sstp message class * @example - * let info = jsstp.sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.sstp_info_t @@ -25,7 +25,7 @@ declare class sstp_info_t extends base_sstp_info_t { * @param {String} str 字符串报文 * @returns {sstp_info_t} 构造的sstp_info_t * @example - * let info = sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); + * let info = new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0Testing!\\u\\s[10]It's a test.\r\nOption: notranslate\r\n\r\n"); */ /*@__PURE__*/constructor(str: String); /** diff --git a/src/.decls/jp/types/base_sstp_info_t.d.ts b/src/.decls/jp/types/base_sstp_info_t.d.ts index b0d754e..15aff89 100644 --- a/src/.decls/jp/types/base_sstp_info_t.d.ts +++ b/src/.decls/jp/types/base_sstp_info_t.d.ts @@ -12,7 +12,7 @@ Option: notranslate /** * ベースsstpメッセージクラス * @example - * let info = jsstp.base_sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.base_sstp_info_t @@ -23,7 +23,7 @@ declare class base_sstp_info_t extends info_objec * @param {String} info_head メッセージのヘッダー。 * @param {Object} info_body オブジェクト形式のメッセージ本文。 * @param {Array|undefined} unknown_lines 未知の行の配列。 - * @see {@link sstp_info_t.from_string} + * @see {@link sstp_info_t.constructor} * @ignore */ /*@__PURE__*/constructor(info_head: String, info_body: Object, unknown_lines?: String[]); @@ -44,7 +44,7 @@ declare class base_sstp_info_t extends info_objec */ /*@__PURE__*/TextContent(): String; /** - * JSON.stringify` で使用するオブジェクトを取得する。 + * `JSON.stringify` で使用するオブジェクトを取得する。 * @returns {Object} `JSON.stringify` で使用するオブジェクト。 * @ignore */ diff --git a/src/.decls/jp/types/sstp_info_t.d.ts b/src/.decls/jp/types/sstp_info_t.d.ts index 9c0964f..09978c3 100644 --- a/src/.decls/jp/types/sstp_info_t.d.ts +++ b/src/.decls/jp/types/sstp_info_t.d.ts @@ -14,7 +14,7 @@ Option: notranslate /** * SSTPメッセージクラス * @example - * let info = jsstp.sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.sstp_info_t @@ -25,7 +25,7 @@ declare class sstp_info_t extends base_sstp_info_t { * @param {String} str メッセージ文字列 * @returns {sstp_info_t} 構築された sstp_info_t * @example - * let info = sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTP Client\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); */ /*@__PURE__*/constructor(str: String); /** diff --git a/src/types/base_sstp_info_t.mjs b/src/types/base_sstp_info_t.mjs index 1163b04..994e213 100644 --- a/src/types/base_sstp_info_t.mjs +++ b/src/types/base_sstp_info_t.mjs @@ -23,7 +23,7 @@ Option: notranslate /** * 基础sstp报文类 * @example - * let info = jsstp.base_sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.base_sstp_info_t @@ -41,7 +41,7 @@ class base_sstp_info_t extends info_object { * @param {String} info_head 报文头 * @param {Object} info_body 对象格式的报文体 * @param {Array|undefined} unknown_lines 未知行的数组 - * @see {@link sstp_info_t.from_string} + * @see {@link sstp_info_t.constructor} * @ignore */ /*@__PURE__*/constructor(info_head, info_body, unknown_lines) { diff --git a/src/types/sstp_info_t.mjs b/src/types/sstp_info_t.mjs index ee364c0..0129632 100644 --- a/src/types/sstp_info_t.mjs +++ b/src/types/sstp_info_t.mjs @@ -25,7 +25,7 @@ Option: notranslate /** * sstp报文类 * @example - * let info = jsstp.sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = jsstp.new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); * console.log(info.head);//SSTP/1.4 200 OK * console.log(info.Option);//notranslate * @alias jsstp.sstp_info_t @@ -36,7 +36,7 @@ class sstp_info_t extends base_sstp_info_t { * @param {String} str 字符串报文 * @returns {sstp_info_t} 构造的sstp_info_t * @example - * let info = sstp_info_t.from_string("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); + * let info = new sstp_info_t("SSTP/1.4 200 OK\r\nCharset: UTF-8\r\nSender: SSTPクライアント\r\nScript: \\h\\s0テストー。\\u\\s[10]テストやな。\r\nOption: notranslate\r\n\r\n"); */ /*@__PURE__*/constructor(str) { let [head, ...lines] = split_sstp_text(str);