From 3a6ded75b3d19daf3a2aaecd8a0d017013772ba8 Mon Sep 17 00:00:00 2001 From: Last2014 Date: Wed, 17 Dec 2025 00:36:09 +0900 Subject: [PATCH] First Commit --- .env.example | 10 + .gitignore | 2 + Dockerfile | 23 ++ README.md | 13 ++ entrypoint.sh | 15 ++ src/core.js | 457 ++++++++++++++++++++++++++++++++++++++ src/img/rana_bot_icon.png | Bin 0 -> 30684 bytes src/img/rana_logo.png | Bin 0 -> 91670 bytes src/license.txt | 54 +++++ src/main.js | 266 ++++++++++++++++++++++ src/memory.db | Bin 0 -> 40960 bytes src/package.json | 17 ++ 12 files changed, 857 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 entrypoint.sh create mode 100644 src/core.js create mode 100644 src/img/rana_bot_icon.png create mode 100644 src/img/rana_logo.png create mode 100644 src/license.txt create mode 100644 src/main.js create mode 100644 src/memory.db create mode 100644 src/package.json diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..8171cde --- /dev/null +++ b/.env.example @@ -0,0 +1,10 @@ +# Warn: 全ての値は必須です。指定しないで動くかは知りません。 + +# uwuzuサーバーへの接続 +UWUZU_HOST=uwuzu.example.com # uwuzuサーバーのホスト名+":"+ポート(:ポートは任意)です。originではないのでHTTPSが必須になっています。stringです。 +UWUZU_TOKEN=APITOKEN # uwuzuサーバーのアカウントで使えるAPIトークンです。全権限を与えることが推奨されているらしいです。stringです。 + +# Botの挙動 +TWEET_ENABLED=true # 3分から3時間での間隔でランダムなつぶやきをユーズとして投稿するかどうかを指定できます。booleanです。 +CHECK_INTERVAL=300 # メンション/返信を確認する間隔です。number(second)です。 +THINK_OUTPUT_ENABLED=false # 人工無能の脳内をconsole.log()するかどうかを指定できます。量が多いため非推奨らしいです。booleanです。 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e70261a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.env** +!/.env.example \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..90e72a0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM node:24.12.0-alpine3.23 + +# Set working directory +WORKDIR /app + +# Copy package.json +COPY ./src/package.json ./ + +# Install dependencies +RUN npm install + +# Copy source +COPY ./src ./src + +# Create replied_ids.json +RUN touch replied_ids.json + +# Setup entrypoint +COPY ./entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +# Run entrypoint +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..863eeec --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# rana for Docker +## About +[Daichimarukana/rana](https://github.com/Daichimarukana/rana)がDockerで動きます。 +中身は[f970f75](https://github.com/Daichimarukana/rana/commit/f970f75b3ff9babe6c711d3b6c2ecf9bd8bfa622)です。 + +## Usage +```bash +docker run -d --restart=always -v ./memory.db:/app/memory.db -e UWUZU_HOST=uwuzu.example.com -e UWUZU_TOKEN=APITOKEN -e TWEET_ENABLED=true -e CHECK_INTERVAL=300 -e THINK_OUTPUT_ENABLED=false --name rana gitea.last2014.com/last2014/rana-for-docker:latest +``` +で動きます。 +/app/memory.dbが記憶になっているのでvolumesにしてください。 +環境変数への値は`.env.example`を確認してください。 +全ての環境変数は必須です。指定しないで動くかは知りません。 \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..32910df --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# Create config.json +cat < /app/config.json +{ + "host": "${UWUZU_HOST}", + "api_token": "${UWUZU_TOKEN}", + "random_ueuse": "${TWEET_ENABLED}", + "check_interval": "${CHECK_INTERVAL}", + "rana_core_log": "${THINK_OUTPUT_ENABLED}" +} +EOF + +# Run +exec npm start diff --git a/src/core.js b/src/core.js new file mode 100644 index 0000000..ca915c9 --- /dev/null +++ b/src/core.js @@ -0,0 +1,457 @@ +// Rana Core +//注意: 結構LLMのみなさんにご協力いただいています。感謝の舞。 +const kuromoji = require('kuromoji'); +const Database = require('better-sqlite3'); +const path = require('path'); + +const DB_PATH = './memory.db'; +const MARKOV_ORDER = 3; //n-gramのやつらしい(例外的にお礼メッセージは2か3) +const TOP_K = 5; //類似上位 K 件をマルコフモデルに使うらしい +const SIM_THRESHOLD = 0.5; //類似度の閾値 +const MAX_GENERATE_TOKENS = 600; //生成上限トークン数 +let RANA_LOG = false; + +// -------- DB 初期化 -------- +const db = new Database(DB_PATH); +db.pragma('encoding = "UTF-8"'); +db.exec(` +CREATE TABLE IF NOT EXISTS qa ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + question TEXT, + tokens TEXT, + vector TEXT, + answer TEXT, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP +); +`); + +// -------- ログ出力関数 -------- +function ranaLog(label, ...args) { + if (RANA_LOG !== true) return; + + const LABEL_WIDTH = 30; + const PREFIX = "[LOG]"; + + const now = new Date(); + const timeStr = now.toLocaleTimeString('ja-JP', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour12: false, + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); + + const formattedTime = `[${timeStr}]`; + const formattedLabel = `[${label}]`; + const paddedLabel = formattedLabel.padEnd(LABEL_WIDTH, " "); + + const message = args.map(arg => + typeof arg === 'object' ? JSON.stringify(arg) : arg + ).join(" "); + + console.log(`${formattedTime}${PREFIX}${paddedLabel}: ${message}`); +} +// -------- kuromoji 初期化 (非同期だが CLI 起動で await) -------- +function buildTokenizer() { + return new Promise((resolve, reject) => { + const dicPath = path.join(__dirname, 'node_modules', 'kuromoji', 'dict'); + kuromoji.builder({ dicPath }).build((err, tokenizer) => { + if (err) return reject(err); + resolve(tokenizer); + }); + }); +} + +// -------- トークン化(原形があれば原形を使う) -------- +function tokenizeToArray(tokenizer, text) { + const toks = tokenizer.tokenize(text); + // basic_form が '*' の場合は surface_form を使う + const arr = toks.map(t => t.surface_form); + // フィルタ(空白・記号だけのトークン省く) + // return arr.filter(tok => tok && tok.trim().length > 0); + // 英語も使えるようになるはず + return arr.filter(tok => tok !== ""); +} + +// -------- 簡易 TF-IDF 実装(バッチで全件再計算) -------- +function buildVocabAndDf(tokensList) { + const df = new Map(); + tokensList.forEach(tokens => { + const seen = new Set(tokens); + seen.forEach(t => df.set(t, (df.get(t) || 0) + 1)); + }); + const vocab = Array.from(df.keys()); + return { vocab, df }; +} +function computeTfIdfVectors(tokensList, vocab, df) { + const N = tokensList.length; + const idf = vocab.map(term => { + const d = df.get(term) || 0; + return Math.log((N + 1) / (d + 1)) + 1; // smoothing + }); + return tokensList.map(tokens => { + const tf = new Map(); + tokens.forEach(t => tf.set(t, (tf.get(t) || 0) + 1)); + return vocab.map((term, i) => { + const t = tf.get(term) || 0; + return t * idf[i]; + }); + }); +} + +// -------- コサイン類似度 -------- +function cosine(a, b) { + let dot = 0, na = 0, nb = 0; + const len = Math.max(a.length, b.length); + for (let i = 0; i < len; i++) { + const av = a[i] || 0; + const bv = b[i] || 0; + dot += av * bv; + na += av * av; + nb += bv * bv; + } + if (na === 0 || nb === 0) return 0; + return dot / (Math.sqrt(na) * Math.sqrt(nb)); +} + +// -------- Markov(n-gram) テーブル構築(形態素単位) -------- +function buildMarkovTable(n, sequences) { + const table = new Map(); + const START = ''; + const END = ''; + sequences.forEach(seq => { + if (!seq || seq.length === 0) return; + const padded = [START, ...seq, END]; + for (let i = 0; i <= padded.length - n; i++) { + const keyArr = padded.slice(i, i + n - 1); + const next = padded[i + n - 1]; + const key = keyArr.join('\u0001'); + if (!table.has(key)) table.set(key, []); + table.get(key).push(next); + } + }); + return table; +} + +function weightedRandomChoice(choices, temperature = 2.0) { + const counts = {}; + choices.forEach(c => counts[c] = (counts[c] || 0) + 1); + const entries = Object.entries(counts).map(([tok, count]) => + [tok, Math.pow(count, 1 / temperature)] + ); + const total = entries.reduce((sum, [, w]) => sum + w, 0); + let r = Math.random() * total; + for (const [token, weight] of entries) { + r -= weight; + if (r <= 0) return token; + } + return entries[0][0]; +} + +function generateFromMarkov(table, n, startTokens = null, maxTokens = MAX_GENERATE_TOKENS) { + const keys = Array.from(table.keys()); + if (keys.length === 0) return ''; + ranaLog("Start Tokens", startTokens); + ranaLog("Keys", keys); + ranaLog("Markov Table", "=== Markov Table ==="); + for (const [key, values] of table.entries()) { + ranaLog("Markov Table", `${key} => ${values.join(", ")}`); + } + ranaLog("Markov Table", "=== End of Table ==="); + + let key; + if (startTokens && startTokens.length >= n - 1) { + // startTokensに部分一致するキーを全部探す + const matchingKeys = keys.filter(k => + k.includes(startTokens.slice(0, n - 1).join('\u0001')) + ); + if (matchingKeys.length > 0) { + // 複数候補からランダムに開始キーを選ぶ + key = matchingKeys[Math.floor(Math.random() * matchingKeys.length)]; + } + } + if (!key) { + // 文頭のキーを優先して選ぶ + const startKeys = keys.filter(k => k.startsWith('')); + key = startKeys.length > 0 ? startKeys[Math.floor(Math.random() * startKeys.length)] : keys[Math.floor(Math.random() * keys.length)]; + } + + const out = key.split('\u0001').filter(tok => tok !== ''); + let loopcnt = 0; // const から let に変更 + while (out.length < maxTokens) { + ranaLog("Generating Tokens Count", "token = " + loopcnt); + ranaLog("Generating N-gram Value", "n = " + n); + loopcnt++; + + const choices = table.get(key); + ranaLog("Generating Next Tokens List", choices); + if (!choices || choices.length === 0) break; + const next = weightedRandomChoice(choices); + ranaLog("Generating Next Token Choice", next) + if (next === '') break; + out.push(next); + const nextKeyArr = out.slice(out.length - (n - 1), out.length); + key = nextKeyArr.join('\u0001'); + if (!table.has(key)) break; + } + + return out.join(''); +} + + +// -------- DB 操作 -------- +const insertStmt = db.prepare('INSERT INTO qa (question, tokens, vector, answer) VALUES (?, ?, ?, ?)'); +const selectAllStmt = db.prepare('SELECT id, question, tokens, vector, answer FROM qa ORDER BY created_at DESC'); + +// 全ベクトルを再計算してDBに保存する(小規模向けバッチ処理) +function rebuildAllVectors() { + const rows = selectAllStmt.all(); + const tokensList = rows.map(r => JSON.parse(r.tokens || '[]')); + if (tokensList.length === 0) return { vocab: [], df: new Map() }; + const { vocab, df } = buildVocabAndDf(tokensList); + const vectors = computeTfIdfVectors(tokensList, vocab, df); + const updateVec = db.prepare('UPDATE qa SET vector = ? WHERE id = ?'); + rows.forEach((r, idx) => { + updateVec.run(JSON.stringify(vectors[idx]), r.id); + }); + return { vocab, df }; +} + +// getAnswer: 入力文章から最適な応答(Markov生成) or 学習要求を返す +function getAnswerForInput(inputTokens) { + const allRows = selectAllStmt.all(); // includes answered and unanswered + const answeredRows = allRows.filter(r => r.answer); + // tokensList includes ALL answered rows tokens + current input tokens for TF-IDF calc + const tokensList = answeredRows.map(r => JSON.parse(r.tokens || '[]')).concat([inputTokens]); + if (tokensList.length === 1) { + // データが全く無い(最初の1件だけ):必ず学習フロー + return { needTeach: true, reason: 'no_data' }; + } + const { vocab, df } = buildVocabAndDf(tokensList); + const vectors = computeTfIdfVectors(tokensList, vocab, df); + const inputVec = vectors[vectors.length - 1]; + + // compute score for each answeredRow + const candidates = answeredRows.map((r, idx) => { + const vec = vectors[idx]; + const score = cosine(inputVec, vec); + return { row: r, score }; + }).sort((a, b) => b.score - a.score); + + if (candidates.length === 0 || candidates[0].score < SIM_THRESHOLD) { + return { needTeach: true, reason: 'low_similarity', bestScore: candidates[0] ? candidates[0].score : 0 }; + } + + const highSimilarityCandidates = candidates.filter(c => c.score >= SIM_THRESHOLD); + + // 閾値を超える候補が3件以下の場合 + if (highSimilarityCandidates.length <= 3) { + // 2/3の確率で学習モードにすることでもっと頭を良くしようっていう感じ + if (Math.random() < 2 / 3) { + return { needTeach: true, reason: 'less_than_3_high_sim_candidates', bestScore: candidates[0].score }; + } + } + + const top = candidates.slice(0, TOP_K).filter(x => x.row.answer); + const answerTexts = top.map(x => x.row.answer).filter(Boolean); + if (answerTexts.length === 0) { + return { needTeach: true, reason: 'no_answer_text' }; + } + + const sequences = top.map(t => tokenizeToArray(globalTokenizer, t.row.answer)); + const table = buildMarkovTable(MARKOV_ORDER, sequences); + const generated = generateFromMarkov(table, MARKOV_ORDER, inputTokens); + const finalReply = (generated && generated.length >= 4) ? generated : top[0].row.answer; + + return { + needTeach: false, + reply: finalReply, + bestScore: candidates[0].score, + candidates: top.map(t => ({ id: t.row.id, score: t.score })) + }; +} + +// 学習はここだけ(重いので非同期) +async function teachAnswer(question, answer, tokens) { + ranaLog("Teaching Answer", "データベースにデータを保存しました!"); + insertStmt.run(question, JSON.stringify(tokens), JSON.stringify([]), answer); + + setImmediate(() => { + ranaLog("Rebuild All Vectors", "ベクトルのバックグラウンド再計算を開始"); + const start = Date.now(); + rebuildAllVectors(); + ranaLog("Rebuild All Vectors", `再計算完了 (${Date.now() - start}ms)`); + }); +} + +function sampleArray(array, n) { + const result = []; + const copy = array.slice(); + const len = Math.min(n, copy.length); + for (let i = 0; i < len; i++) { + const idx = Math.floor(Math.random() * copy.length); + result.push(copy.splice(idx, 1)[0]); + } + return result; +} + +// あらかじめ用意しておく定型文(たまに呟くときに使う) +const casualMutterings = [ + "お腹すいたなー。", + "今日の天気バチボコに悪いんだけど", + "さて、と。", + "ふぁ〜、ちょっと眠いかも…", + "何か面白いことないかなぁ。", + "ふへー...疲れた...", + "圧倒的疲労感...", + "眠すぎて死にそうかも", + "ちょっと暇ですね...", + "布団から出られないんですが", + "甘いものしか勝たん", + "血糖値スパイクで絶体絶命です...", + "ほら、らなちゃんですよー!", + "uwuzuってめっちゃ軽いらしいですよ~", + "布教布教...", +]; + +let globalTokenizer = null; + +async function init(log = false) { + globalTokenizer = await buildTokenizer(); + if (log === true) { + RANA_LOG = true; + } + ranaLog("Rana Core Start", "初期化完了!"); +} + +// ここでランダムなテキストを生成する(事前に学習データがある程度ないとうごけないよ) +function generateRandomText() { + ranaLog("Random Generating Start", "ランダム生成を開始しました!"); + const allRows = selectAllStmt.all(); + if (allRows.length === 0) return "何を話そうかな…"; + + // 質問と回答とさっきのcasualMutteringsから学習データを作成 + const filteredQuestions = allRows.filter(r => !r.question.includes("?") && !r.question.includes("?")); + const sampledQuestions = sampleArray(filteredQuestions, 25); + const questionSequences = sampledQuestions.map(r => tokenizeToArray(globalTokenizer, r.question)); + + const answeredRows = allRows.filter(r => r.answer); + const sampledAnsweredRows = sampleArray(answeredRows, 25); + const answerSequences = sampledAnsweredRows.map(r => tokenizeToArray(globalTokenizer, r.answer)); + + const casualSequences = casualMutterings.map(text => tokenizeToArray(globalTokenizer, text)); + + const sequences = [...questionSequences, ...answerSequences, ...casualSequences].filter(s => s.length > 0); + + // マルコフ連鎖します + //const n = [2, 3][Math.floor(Math.random() * 2)]; + const table = buildMarkovTable(MARKOV_ORDER, sequences); + let text = generateFromMarkov(table, MARKOV_ORDER, null, 50); + + // 短すぎたりしたらちょっとだめかも + if (!text || text.length < 2) { + if (answeredRows.length > 0) { + ranaLog("Generate Result(Too short)", answeredRows[0].answer); + text = answeredRows[0].answer; + } else { + ranaLog("Generate Error", "生成できませんでした..."); + text = "うーん、うまく言葉が出てこないかも"; + } + }else{ + ranaLog("Generate Result", text); + } + + return text; +} + +// これは質問に答えるやつ +function generateInputText(input) { + ranaLog("Generating Start", "生成を開始しました!"); + ranaLog("Generating Input", input); + const tokens = tokenizeToArray(globalTokenizer, input); + const result = getAnswerForInput(tokens); + ranaLog("Generate Raw Result", result); + if (result.needTeach) { + ranaLog("Generate Error", "生成できませんでした..."); + return "ごめんなさい...よくわかりませんでした..."; + } else { + ranaLog("Generate Result", result.reply); + return result.reply; + } +} + +function generateThanksText(template) { + ranaLog("Generate Thanks Start", "生成を開始しました!"); + + const thanksKeywords = [ + 'ありがとう', 'ありがと', '感謝', '覚えました', '助かり', 'うれしい', '嬉しい', + '勉強になります', '賢く', '把握', '了解', 'やったー', '最高' + ]; + + const whereClause = thanksKeywords.map(() => "answer LIKE ?").join(" OR "); + const query = `SELECT answer FROM qa WHERE ${whereClause} LIMIT 50`; + + const params = thanksKeywords.map(k => `%${k}%`); + let thanksRows = db.prepare(query).all(...params); + + if (template !== null && Array.isArray(template)) { + const templateRows = template.map(text => ({ answer: text })); + thanksRows = thanksRows.concat(templateRows); + } + + if (!thanksRows || thanksRows.length >= 5) { + const sequences = thanksRows.map(r => tokenizeToArray(globalTokenizer, r.answer)); + + // nは結構ランダムに! + const n = [2, 3][Math.floor(Math.random() * 2)]; + const table = buildMarkovTable(n, sequences); + + const generated = generateFromMarkov(table, n, null, 50); + + if (generated.length > 0) { + ranaLog("Generate Result", generated); + return generated; + } + } else { + ranaLog("Generate Error", "生成できませんでした..."); + return null; + } +} + +// お勉強はこちら +function studyInputText(Question, Answer) { + ranaLog("Learning Start", "学習を開始しました!"); + ranaLog("Learning Question", Question); + ranaLog("Learning Answer", Answer); + + const tokens = tokenizeToArray(globalTokenizer, Question); + teachAnswer(Question, Answer, tokens); + + const thanks_to_user = [ + "教えてくださりありがとうございます...!", + "しっかり覚えました!", + "また一つ賢くなれました!", + "次からは自信を持って答えられます!", + "ありがとうございます!しっかり学びました!" + ]; + + const thanks_message = generateThanksText(thanks_to_user); + if (thanks_message === null) { + ranaLog("Learning Reply", "定型文から返します。"); + return thanks_to_user[Math.floor(Math.random() * thanks_to_user.length)]; + } else { + ranaLog("Learning Reply", thanks_message+"を返します"); + return thanks_message; + } +} + +module.exports = { + init, + generateRandomText, + generateInputText, + tokenizeToArray, + getAnswerForInput, + studyInputText +}; \ No newline at end of file diff --git a/src/img/rana_bot_icon.png b/src/img/rana_bot_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f423cd9275084a3d89f3bfc8b058d99422159945 GIT binary patch literal 30684 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

Gshn{BYx%TYn8~aqsb8qa_r-Z67vd9BDoAt_ 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

UL8BUUSe zP|4?E<+uc?x-c|1kA%FbwLt|IPUYp}D_Ty)Aj8a0`M&F>wVG1BMt6zqA@=m+B_QMnQr%hU6Q;%ssdBznclw2UylZu{dQMJkXo{RtWEoEIqJ zKd*14=&hhNEK`JPomEg%K7?jfuez}5u3FHAQlQvM&gZb=fd(M(f{irD_rafSy)2;y z-#Qxw*u483KW5`*Mxv+)3<0ScD!UuiH43JtLPnkMr~lLyI-?E;=&gQEOe+J3I9EP% zU#hAC`;P@wyb|AlYlmbv`d1qpBa}<&)9akGUk{5Kx#muG-MlFJYAg*L1NY2*!@bbQ zn#HirUMTV7-@jP#h;{h?!r)~Ykk5S)kQlm3kx0uADXJHRvWGQ74eZX#?;DY+B5K>` z^e`xR8QQ0wC~9+jr>a(OfAP`oHFEpk9tT&(970`9RqU9*6RLP@A49t(0`Z&82OXnM zgVqu)1=tUImOePe5Jr4mH?MY6zNo%c3AB71dU7i&oH}U5+s|c~OsHo#^~7n#5zqsC z3)Tb<6_CzQ*kWl2BcxX&GLhaV4?@aL4c;(+|05zPii+IfO9}2WqKKr@ch!QeUJ74L zlLzfXLb6I;h$cgfjv}5ihX~pvFe+;P}Z8N^=aJwXJq`d2hj{MaFuECbbtCLrw$)E#C_Sh@U{88Pi(7=j>F z9fGzAaG;HEfLbVn0(a0~F=XAC4iqdLj#z}`627t50*l(W|2+d)gl9>5G2m9cQzs_Y zz$tuS1J%_mokh6@xw6>)1kKxrtbRFk1Z6F_)K(`Qq3|y79b8!I5z?A7&^>#c*UZ96 zqnis*F-VhF_ICgt+duRi^|MImhp(&O(KZYl;(#UYgWeoNgN4TFGM|^w=*t%Q(HeA` z{hZv}n!a1$^w{zNzo_w@hu@!rdqEEyB??OQvHgcTZ0vOqYMn(Rk?Zd6evs#dF)xQo zNNYPF^#JV6#{NZB_?fXv0dNMOPi$9i{$n7UxpkKCrUZlz7Be=7svyGl+!i(4U>qn( z2JT)@{sR7$cr|&RMx$Z(Q+a9fWozE4#voskPn$s~QOjI~It{?F4OX|609&Ck5*Zo+ z)1h0L>sPSeLm<&rGgl82Brpd0#CoIAAwp;lF7y#~@T&vALAY2^Uc2Uzu zU_(0hr&}m-$1b7LcxN7aD2=Eeqj0AlyhNYvm_hR3j74R!f@~)I{_aE(QU?Cl+x0q3 z{qfy%G(xTMxAlhe#lZPK6#}6{&4L0-?tGu_Bwh(fN~M5LebN{PP`2WDk3v!r+^46Q@OjD3Ju8NDXQ;ZnEy#H8?hP|O++=| zlZcUFzt`0_vTPnqc$bps85%oc1ibaJl?Y$w8}f z7PeP;5~l^2Lof(WuLWRvN6;hN4ZrtAUV;uCXec}FJ#=U%uIr;RYagwJJ2gmzN(1EM z)`mbAdr;8@H)USmF=1c2cYztXbQf(7%?0Yt7qEdO>T25&J|6quFuN?&{9bA1mB3$q z4coJl6HAtWb+Mqz4eqydb+{egI@J~NyjSl<5) zZ~#}Lw(mWpH7q8Kgn&P$z{VSXyR9+_0SzV**4VCIg!FQ8mAhYtWf0frGDF#G0^Ih*hg-2lTE&REFkZDGI3LVzgO$ zZZm%ivgqjh`L)lyV$d)u>F%-?xZvY>Ov>Tjqs@7HO*0fc*^u|HTaa}?v%zn}biECu z;}!(?G{O-s59&jktuqiW;8Ee%t>(UXtxblYp2LQ*dMldf6T;en=z}?>rco1wf!Mpt zI)^szP;?cjY078RTRAPheha z3Ap{t>Pn5MLpEVvgC9FY1!}d>I|@9p0#ATmA<3+kUIxd=3Kq?r` z)4x?>VnMFkmGEnw)B`Kb2pT>Os0_;eo3YHQH~YfqDJb!>N&7lrd?Civd~! zZ#ajWUAi`NS{&*esFO5Ri7h?Bi>R?D23dBS{C`hp!3bTyLY?YOj{g0yKrtO%5a5(}r*);$O^ zIcHhIpRa;&al^2?J6I5s1#*(avGNv@Dw=7Oyoio`2QC=tv;LBWMrY0sr#(qobdWYS zIlv4hnG*)h51-OAgKnVhtAfYch&SRzMHd4hEW_Lt*>F?qEe?+0s zn;sOuA-R7!X+SYv5L${Jy2j&_po8I`OchXs542Fdm#&b*-4HhLB`{XlL<#i? z!wVxUfCqk0gN0){1hr9h3Ia>(u@r<>Nnvr7^+=$nVXJb*N(zh-1KLKM+wt%b>MC{< zg6$4vBNQZN6H@g==jY`-rU<@uPGDB$dMLsM_H{v;eiiyg9k$z)DNPWcdmqt=TIYv~ z5X!(!6NS?I}nkJii!#>Q>K^pFgukRDz#IRJ%0vuHGrT|8BDo zQIdcW(!0;|YTs?n^YLnVfG~X}*+G-;d&*)!)I%^-P)oXGzxu6@gF6UjFg&TCxdNfhsj>(F&*+F@tn;xT3ES(Muy> zzEUrIl+gAi{A%YXk%U&Oes*3M;_W45j+2ySEc^~rHn~wg|s8K+w=I7$GJD|bHc2_hh z^BN~&46@Tk43Ml`(ImRIzwvPwAPv@M-Nm7GjQ~9v+?gOl_k`W=%F$2)IR&U%$?q;n zjV9>Mb~811J1{mORyjZ=n0{K7yhXli@-ZC1loeh$yyafY7?NOKamX3H^Sq%`WS<2cM>Eu9AT9S9$~l11e3RTM=Co!Pb8;gGK8-tLRr*{Q#E^u`6l$oC`fN%BS?7z?3KtZH&`H);2SeX5~i z(pu?GGoi;#qKA56+gPf9I^G6JF*>Oypn=Q5?plAE%c>B1Dg=HwDfU6glCe@!f}b7H zwUgWTYQi^y09A@wI~Wkvd|(RVq|8g-pRIr3U40}1SU0aJj5uXXqy*?5>}ZT*vJ{us;Xu?4mu$52jy^I04lqA!5nVezeKO|W7~HISsR9+=#nJ8 zjGak7*AwoL`)a~CNhe}I7+zl7C(pjGM|kSDbXSLi0-@dBQmEa zG-lTJ++QVpW@~9eZWC8sA#xmT6iBHC2j+3GBxRo5^r?k6LPmi$tYue;4VZivVoa3^K-IJ}aB0o8~5dR<;N=_~P+xHV2c2bh_#8 zX?Yyv!xYc?7U(7;?5%b=^{U7K*htgKZ-V)5E@8RUxB$>H>*=t|W*eXlQ+dl)P#@a@*xtX@U6 zBCz;v%Z&t~;BxM-%*g)N5Bzy50h12H-dCpwmch5?64BKAeNp-9#>V9Ez9#1QHq|6v zdaBf@g0@i98&6yRuAS*2Ap>D2{CJH8k z9d7epGVZ10Vy7#f!VRl79%OjmLggzL^eLl^cQ! zp5Hhtf=@PodH*~p2Mm;oe4aKAcbI_NwKUm~6X}bBkCj_}| z20}Nk798tsm3S~BQnfX0ixZlVW*iwZ;Z2;T(1&k(#}I^q{TH-j!zrQ$;~XcGJeawy zo+a#d(h4kG!h}+HTfG)|_Y+%>Qkn5G0P;6=Yi#!=7UL&vi-RBG92V~013lj|BjzuS zJc`QbyD*U#tI*0B`72)#;rtd7@|BcqPVboLyNWgnR5U>xLvRD`4Ezk-S>96y$Ms^K zaw*{IS-2yX$ZI}ZZRkWcF{2-A%5^@r)O`)bCq)vU{kN$#AHtp~T_o|A!V0ef}R1Rtskq1-PUUh0Hh)g&2 zaM0Iicf*iQOK`Z6^v@sH{FT+W(S)+k_`9yD5Ak4sFJT)myCwMV4iy;aRLRx`Eq$TH z^|=mz`XxFe5sca5c8gcMm{6kKh>!HPyT^uX(hii{rn2Y+xZ{NFzw3o_OZp?}8v&X` zP|_9}^&~W9YSuO^W9Hv@I~|G=d5QnXyr_$7UGpSejEF17R_JA{k1PZx)5^dl+u1?H zapb6>BA0A7C!>0-9U-;e0D3sjvvT;`DOY4&Y-+KYgl*~VITKxV?ao8UJwMc@`W)^o zb%>oPZ<7uUQ*rr{HAPCs`7o=|1HRhz`-(X`EUFQ`#Np(Rg`i70`6P9SnW zR>hBH;nyp3L+hke)w->JvZ*_cb}fb$(!=&=n}h8p?OHL+<}6szv<1J<9f-E5Dj5Y_@dJG?isJe{=8$NhFE(hT^!@X0Kydk?Bm-m6^;k zRn@>uoHFz?U^JcBt0fI?$IN@mR0kdk)dj#zQs(t-HHwA``&&~adI2^drz`VGh_>I_ zEI?!Z^bQ#)E)E-w{<{8&UgACd{f=)uA1b^@aI&#f(2T&@m+wOZ{68aOYihPe2fE@48O-`CkF{e`!-=?if=oVbe2%?aiq4H%GPAK{9Ge=Gmnx20E%G|=*bF1>thX-9*!KOX&A`L@chRx92obIwGL z%AFpF(^W60{CllBuC~ZvS{AvY2Zi`VT0QA&kyKFrbE4FIg!Hn-?(?VG4qiK|0ED6$ zzPML*^MvblPnx9HVr5K>S^edu^G-{+*8yFbu&OqIa9qY4h|!={$!-ryj>#O**Q z8Midkbl1wOUA`Cs)y}ldG>_d?$}f>x7$rdJUfIr z%I!5m#M%OEvP+7mLq0s92h;K&^uG zo-PmfTBonsE@Awp|h3?f<6-M|uA+c>#im*3Zg=F&N+vk%Ws4M$C*j{j4BT4e<1 zD9`3xWC6XUs>$9vnrdjG5UsS*H1+PvbW0!FKBCy_+?zambibLB{=$<#do7VaXy=R)b%)YKsIC+DTLDbSpPTe!0W_3ZjElYi zrH|%~C)P6*jwaEjDLM~ac?P4yd@3j8c4A!WnECK`(1TDO|K(9e_|o9e0wu{|scY(= z<-D&pNEB2EfgmN%(}#s!s+WPMvn?+D~-FKG$grh=?|MwRvc=~VH&l3OQuGR6$q zC6(9vNe@{FZ;ol%y^0$zQZha9YvM;omL_Y}8|+W1&Q|WD-K43hWC2e-fgWEadh%s_ zaB-k`CB3=|N8Rdy8_R?1t3Y_h_;cO^KM1~+J&8v53O}BV6v{Ywjg=V6UZ98r;uMH1 zxMx2Mtx$ss&Gg^==2&v9`JBiO1*6$SpFM!&y@%MC8| zED>}QCA7)!oGby!h6K&<@;81<+Do;HWaqq(lk^hqe|_ZR<-3c1(ZEUjt?cF`vN;t6 z3KDB8uo5m_IA|R2*;HK5pPF-n?wGUE5@JTO=_R*Zyj?qt6tB!A=iUwWYJK;`abjMX zE+AhorSU^bGTfF27bV)WM49OrfvAyyGXwwtw}hPQ*ZFgqu`0=r7jiH!mC5<8h7itq zd>L#yx_Pin1;%XCtIOJ0PYotQgh8RVW=ks>`uK${W#vDmhCZTumMz#cYqvzJ^kqfN zjqK}?Qt5Ao{$l7n3UuTjb#t4L8@nwdRIRv88Cc%5*Sv(7L85E7j59lxxx;Qzt$S$V z!lO2O34x<@HIJ$OmguK~1$uF*wp9QNZz-MT9Zkw?3F= z4{O5e0|!gWm3+q&ryYH}%q=ZDM$f6$LgILBfSbkA4eit{zVNgefFJ5Iq3}m*E*cM5 zD&16f3OEvxJ5ss|H<=>~MmRjyT*!+0;dkLm_s-lHd_F;GWjQC(LtMiyOTo2hp{%3! zciUCtO^)Fp`s=F1seIfs@Fq2rKIg%OoTrO*X}2OUCn+r_F3n~ z!Ub=AqVwmjaqP@#i11NszCVe6xnNnm$7U}M`to$Es}454@ay{2?R|AQ12-rmN0_OO zoXw--2?_NJe=BVp%UrQpd;)jYRMut9dL4|eOtjak%I_G4$QbpQgUnCeOv?a7mYmcwFFaqv=6HYDj?dZEwHaveVMwjLC^pxr?>_ka8jmZsi?khhzrOUT==bgPB`GWGHyQ{-X7UbB+pt5ZC)Ua>527h`YmR_S4tpNJ(s0E%O|n?;&##W}a%{eAcZl9}_x*N0Q7hnsB1`=Ok$d+y8Q${4ZO!L=27VhG&#;$f%K7Uy zl#X#-^*k!15nLin?B94@eS_-m2o+KXJ>F|gM-4RCh1@g+-LjZ9+-&FJlMdecy>OxP zFICI@t%9vTJ?Qm$K0j>@m5s-l?UQY*d}aX>AE>KZBLhBLCOx>B(>l5bS~3lu^S3sy zzDsWAF5B85lDYA&g#Y*cRZYQ7CbXGSNIHgOx>Q zC$f*gcV}EQa3b*C0YU)X#6W3eQwC7^t=ebfPw43pd;VpU1^kiixic#g&U%$l2+@y! zyH?YqoAgZ{$Utw}(t7mkEtE|hBaG^oW^)c^l2<;s8jJFZ9OD9jPwpx|igSXfAwPe2 zai*(5w_2gjW9f>)g}`NBLH@m#sWIFQz95sucQ{LEv5Tn5qE*Qlz}^XN)%Q>M706`d zOs4R7ujP>*SD?`zbUf`lY$Z)C28bX0LT&Qe7Mo7%zYZ8!@H%c?@0PU45-l#g~6D6glvzFRyCiDDUZ!NJv=%K-2JrrA~II)5t(W^X~HS zSh3F+caJIAsA~8kNr!57zE%)z=5-ll^$6BD_f_~XQBvhlGNfdV2IIUJ$UelX&9APc zO@+OB$Sb0of?VwW!smb-t^IicxBw(AA;FKSE%U0vrdYsR8n|kOP>+6D0gdrqoFW01 zUyRtLn|t*43u**Y*ZyjT2(yU3ws@!G49__^Nc=%2Ve}8`)N_9G!MwNO>8@ggGWmLs z-X9Sf+^Orfbt>zfE-*^uJT-891<``-|!BkLR5Vqy=)&ZyHFtWPma9(8#A-%NS0 zl|-zE66Jso$f2p-1wV=rVK5+P;cwp{=baztAlujNW6cqiTXKtPbAPHi>S&Oy$2gdX z{T=+sMsLwI?dN1j}!hGC3_>BH#?6)##cj5WiO8` z{zwQXP7KIRs+Q^d3K02>>`{8>ddJUbD}hk!#tz@^DCK1AR-n{+u}4`oDkulLl$p3- z$)H(U6010`4giFMb9TstU+!cEw=<#r@3IqH1It^@F&3f5!`}aHL~aEdAgbT?LC&R6 zU@yH~vyt%RPIp}8o^DvX$J!L#XjA}fZhmxPT}j}rZLb&zyWY}#`y|p`B?#Kk;2F91 zuPN-t32wdI**c)`wY-6Q)f>8YMgG74Fq{sb`MGW0;RiCve~|9T?1JC--Sr&m^`mso3btviMpdCDbqK&HQT{KknZ9i`FINfGU-sBm#p==xD&rRKYZ1Mg=PQgnMHE`6Tei4IV^I{=;SHacGN_$7in-1R4Nzqi zXnECJ8~ihIdI}B0Rn5(*v@dR1uB=4d-|j4-t`Bvqhg>!{IAY=ZLfiD5sXAP|D6crb zIo0MRw7AMH@0pYHBsyyP$}JZIZHY?#kS=5yGp7E=fOdQV#Tlcx<##u6iEsgnH1+>_ zI`ep{_Wl1aNu48c?rk(g=VoY-VIwo0CNoJg4@ELh8Inx7)jef6?2Ls<$dC-BkZh@( zU1phww#-6g%DBI;wa?@C`*-cNKKnDR&+z`dUe7gpFE(&J1o_V4dva~Px=-%Q6A+Gm zbmnZox_Svc*3El0T2fW`3cQc7Cb`$IZlkYx>eBt6aMY0!` z&!x{sB?RjHVtbgcZZIm%vRgR~q@U99vX&eB=rLcOL~UqPZSfa|M}J~PvT|kU=6ASN z&nLO}G-o?oYpeGr{?IMAq4ul~V88pee{kQI)cchHv4p;H*u0r$?yGcDsaX|zf|v^9 z^Cbf(A!fd|@tzmpS)G-o*Gd69awt;>Ne_Bh_AtZdQ=~9yrY&`xia|OLdx!_5UeBdX z+WzhoZ*Kw|Z{(iu*1-O5yYb;EE1qsA6Zsy5+PyO>EuD9DvBDJ=I1E9toPqZ!knrQmA)*04LgJj5oio=T%LRBPeE9n3VAXdW!Jld-zp;~~ zzEI!7@NkLbikdo=ZYTRol;V#nw_jZSF+#0jexXbnq_5c2YqR&ll-`{Y;vp02J1vD5effoe;a_}<*ijK4%(%KCWM+9^U* z8Po(9|2cW;t>A*-mtSyl2<;@$1JGR&uD3D}&ncv2n0(*{90Vr-0zoa>rP3zA4|M~B zQ6PwLG3^6TQ`+1mHTfp)6IVOZE8|q=(xA0x(W|~S?`Q8wd{2#1amxa}g+8=rDRS_k zkR}jF;3#2+B-*OExyvqAtwy@Z6v-q78zO#APty@xj`njWNEZ!}XO_;V`wO`N(jASX z^Hb^HKFugI{f#4mseG2PCHiHBkbYE)EZC}`q(|VP;<75o%pc2HU zB{$Qi2w^Sw73}hK&)bn2Qq?9+zt_*X(p+!=!}J$1Sko?r#s&LYnmJ3(7%pMx=^Fj# zar)fk#bwu71K~w*-d3Z@tiv@#wB;x!lTxlD4$zl1ZZYx~-iOHWqgj8E#cLMc!@WbW zypRXwF0H$DlA++@Z-GSY>iI>NkAsh>9#20;ZdruTfRtjAN#($rpmfK5u!Ea4I&fS} z_Q8R~x&~$&%IXf5z^mX~|KiRbGLGfSqLmWpcWM&PGs|sg_T1PqqspN1`_~n4mucWFKRd>qo?ys)8 zSyn-f7Uk9{aDN5iEgGz5?gvrrhao{K)S!Z~H$Y?i?35IYfu~0XT*6k*b~5_LERO{( zDxC=BBb%#r^q`5(+p9i!RV$7J8&k;eoRApKAr2-Hp<&RhnI2MB7>(B#gXE-BJLSe; zn7rtvJ^*(}9Ut0- z?1ea!CObZrOt?4SiE ze3DRYhd(@%*w&!{l_iTBQn1r*^T&-xvJ_z(BwRsHB5yz*@8eW%13?o-DI~I_L3%q3 zd+P9sB!VdT6@Xr>VAGD0x9IuAgL~*?2{OSKlVItrg*2MD2R4|g@jgs;T<2%a;R=JoiJUhw zrDFkhGXmDho+ZvD_@VPQ)pIH1qi`b5?6W3C9NmSsJ|`3GJFlNzgKsMACtZ+-3gVKkZwa{{UgN0)@e#UGjEv23HN9jPqx(IKZL z|Bt^t2$73DRXl!)zwU8UPLV8i*s)n409MR_}8WV5JkEkZ^O>t)b8cZ@kF zoV+}7A*RXnfJ*a~5A9}4%VW`>#`3OpjDFZ@e&yg2!$cTr=pBGP0!il@=3uM>%)%+s z@@ecOUFLr=|GkXbONX3CUp;hgH^oJ}N$gab6#f+Tq~Jw-gNT2K9cYpNFEedfiX}zW z7et*VpJ?AMJe1qL_tb)@or!RIU=F|Lx?k4&|EB!rc|d3>i%x%uftgi+)TfH)Cf_*f z8=rjtv-ObBtsH)#Q;Wh+t>~lqISkVlFCIp$;Bpm$OIX>mvUohJkP>nEk&+SxGzTv? zir15_Kc&mmf$j`)*Gs769WAM@#8xH^r{AHzXFO>%=dlQ+dxvaSDHqaQSYlCbC(EWJs!-WW9j%KuSxABFDnXm z@V-WJwZ)2ty=T8F{5qF5RE)FEr zvNUI-Q-krznzu3Ib_fov|A|xkI7vaHP&^F1JJ3E>J9fe5j3tbb|Jicc5BX1`QafVU zTu)qD`pO;so=RUGAmg^Bw{oBDG62jncH!6(aNf%(*z(ECDu^fQ_Wh;%#ViP>y9gT# ztCyUOTd)r6cYHBmw_cd@GqFNGDNr1z+k3*s5}9nooDfJPcO06N^M>u=?v3N6%A08D zpYn_6$!u403paWA*(@*WCA?V&RV8{7YSsR#RX5*r!|*DmScrNtMV(qaS4>ImOOal? zKK_$jFG+Qit_{Iw!}p2YQQ^t=_A`!@KpV)o7qV`fSsbi7_=U$Jh(TB zuw+sKbSM;~-l(HY=LX}ntu8mVI*RFxwDbgVE_*nD1c2S}?K18!oc^pmHq&pvkeV}Xs$xC45o7BH6j5^@Z?Dk~K4lxT zI6kWUSq*){)ap{{K^24;9MnmUfba8*GgpdKEY$c2TRoDAQuimE|3$OuxzS_F;7Wed zU@Q0+PV{GsU-C=p#l`u-ihL&f*Z zF95wth>Jx=0oM*8X)@e))lJSMUCvmIGc>s6&0pdI1`<8@?gxeV=3QK$v0pFf&tTzD zxw4vqTBjmeuvq!$1AtC|7}X4BQ7-4E9#fa{Qc0E~}5n(l4QE z&DKk)}{oqorSUP2wyDJ)Dl_kFrukVo_rAhdvul2idXvDh(X7B?1V=wQ9()6PWWNgQ1})J$l^wtUa= zyIQL{?rctw?zZuaCT-Z_7J|>niTjX|x-)8=M9HbZ-$9lwOBt#yhXT`JIPL5eEcQ-& zp5{qk$w}e^b_`7n_8peE742r)5W72SC~`Vu|hX4mG*mZ zZ6h(4uwdzXe`sPQ=V8W(+F#igkd*Yp>SMXpu{Om%aRJR;iG1 zUE5Afb8&K)^bJPRK~Gv(OR@i&?7ahX@QGG zbntC89Wn_qrb?-&4JaT&9K>;!U3Ln*7jtjM<=pPmq)U%*jaxWI3H+|zIdh5LQ|;$R zki;F=`i?3<#I*8%=HWFj1!T=U@OMRK)gTT9AR4PxJ@2rYIQ|C=n;1w1e!d2mNhEy* zWYh;j;tl8I3-AAI8DH+qFhVQX+CpxfM(2-Zx4ApPoU^z0CzH$22Wiy%>r-g@^8Bv& zOpL>TLdvqSM+mn$V>Lg1YCF8b3zkra;l#;!RtZb~Xd=`cr_p6dE8Hfh0}IlYZ1?ku z3*A@_>+FoW%Y)wyJ*QW}#mZkTa{h4h0<1ONZ;j~KRHZJrVlKfy!U}bF0@=kIzH?pHno3(*F)Nu= zW=Wr!+^~mSHECf2d*iMz9N9F!D4wRZGs>9RjgagC@aqIqEA$~`>~PSw`vC< zHW^z`txr1O#n%N|Mbp>^A$R+QH#r;GNI4YOonh0W?=rEul@3GuIq@>PG@$dQKrA*m z*NvlObZAh-YNQeaoV@EWC#h$GygC{JU6;!IC;Ff2P;e3nj~Tn|5t7ISYH@GZeGo}^ zUqMh^=;+huh)C(B{!AK=-$m@-udvB5J#J#<`Cy~E=MadXrqIto*D1K-(YjTfC^%Ln z?I`M@nZKq%pEA(ot3!j>O4UMIwi-^)t^^Sgq^GDqnv!#(9$C(}wx-O&3zM&!pfbmf zRtD^I_c8n|HQP*55dpZs#)PY+{sLlP`l+j>_G7xGP`4X;el~N_kUKH=Q4(7_fKO@D z3X4_P|LZw?2e@wczi-NZZk=iumHat2IR4Dg9UH-}i$pId7<4!F*xJ{x!Qj;Fs4|qt zLhsg_-*Gs`;;RB|2N~=lli!5Cf$Mi=1?Tjb3845mpu_mNVQ3RUo5fI1A}jk0ph4g5 z>F4>m3f<=gQ>t^3m!y`$?r)y@)ZJ8ZK^f~yc7)g7wBeNF>W}Np_z9*snS?o*!~9HN zVEM3*-E?=4z?$>KQ4kh8Ua%1bypv0V{X)73qa%Z~j;f|;5UfgPvnIL-q9bqkig$Ho zUaAS3RO5Dmwa1E}Ue=*J_pxEbKVwy5Df;=Ooos185Nc_s^9iY=xb4D^%)tdAE$*Nc z{xf*DJB`geo+b@u%8Qm;W78+K7q{3ph>7^Go+z5NLzdtI23)hnU!=vKq>&OFH6_lX zCLzAQCMz9PAQp$Z^Mm#W94zq8*ca5&4BAk&@PU7?pE@FzNYerRAbgx`DJR zl~j-Rji-bI|CCQ#_$GeNWSot*w;Pb(G7lZTRBm=I&M!@YZmZ*iZA|;y@@u)$=2qF8 ziSQ}fh=|Gh8Z4EW*vrbYn7t&J@la!p(nWNdfn*P#VwU4)?qf^MnM|A0`QT5$SjQDL zY>%3H;@7$1vlVuLPqOsOmx<6nK^mwbpEawccfbTG$K1=Z!GqvXL(=XnXZ7-h;PDB^ z7Xw~=`T7KYvVftAIKXNVO{Q=V4{Rov{yY8(!&W+@<6w&<=-S{s5{>PA^oJf#{4Nux z4{=5vZqm$O|2WEB(0=A zMlKpfD=#i$#ITxN@33#rh2KlPG%`o35M>XIbW0!**gW7bK*)E&u-)d+eyC{`RXV( zy3Boim~A=YdOCmd0J*{5d+(JRFTxpY9j9;?d}0K+>r>edUMviJZ{u!Qi-=8tnZW>d zTu7n$6FlvHRKYEiyW>lfO+5QDbXv%A1j)Ox( zUiMT@U?cjJAih#?nRJ4%o<>}61iT0oxHHM0#S^0)F+@9Fl2%;TK+mK-aF!IVVZt=Q zDyrg=7;yFE^}W#QlMWfAgEl)1G0{FIX`|XL3o!nod$o~MXmIoB>w%#ZihVfN3z9#R z03!3|Kt20gEsRHO%Ps2A7A=+eO&teuFMns!Yep8n^YLlN@)@lEvFRwwDo!N#l*;u%dlhF> zap*k$WD8-1A%GJf04SaL5`SRLVaav=-31?;QlOK3vGd--Bbcu zUC&2yu0w%f+}k5j?7Oe$m2nn64!Z<8e z{MXyZWe6g#{YNL{Q6jfO6cs~EFy{i)S<>~!K*xRE`m!KqqgPnjeXXNYD^K@+V9`vk z_BXbRwO^xt(_|w$?qjXn;eoKDbW-4ROAbISqf#A(H>;_a_NR4&mr5IkLKd3W!Rcpb zYfOp%9a6jchzi>a!eUzxl?ui(#N~}*K$U@5pw0IH(a`JZw?sX>PoV9llFLL&hc?Gr zgzQZ!dx50U0@l2p#t8Zq1b~1uLXA~se!&PzVlVfR81-}$KKT0)F_Qtu9PIIzYnl{a zi&9RKpI*^?7SXLn_HygEo*60-kCc1ttP~5w5yiCT?WOiiOM-4K$*XLdzky4bL*p4V z^czWt8R}wc)dR`_Oq1*yRZWM|16e=xy_2IqRZkRHF2imM&v4-x7G4A3wBZw2eTlui zRymSEqn+`bJ9b%|#it}jpF#-NGqVj}P#NMRKT3A>A($s*{Be{W8{?NuM-=Sij!<(W z&$+jMNBo`++j}%-oWo2t5?${E#pw$S+c#pYS|zyg&@P-0Er-NfF1oeGIFk-uJe3NU z7GARshdQ!$)|r#N7SyvN0UV6h-WFBWOE(pTcH91!`&`8TL{6SKNsqCV&{EKRTUhYv zKOaVI&u2Wky-j53qn4j{%)554byta4%jW{!lD|kxsm@KUshAY(l-J#1)q1C*^82c~ zXvLEG2HD$T1HxP-&Zv2+-I}@g&pY-GrALU!^9+Swi_7KMh)}xsa<`4;zQ8hEwZ+xy z@MH{YgJuDWrPD%m+u|d{wg#HCdx|xs=NTezx|u_}-t1O&@HfNB8Yk z_~6zCvJ@fPF)mM?4N3D^e!-Twe^Zp#J!KmVzmD-QMOV57 z^3>jLIgZ5LxN-cMC<=l;>Cjb4&9lipKszDj8PPJmcdWj3J3%C8%TVvHblWdwbP+0k zxSuaorz|{q199~7e0*$mi1skI3;VPwufhlVEriuu9Q`B}nLPAbZ#P1aAG!8fruUTM zcAAgr@+t4>;>QDrIHY*5@kQ!*)Pn#+=)R2fkB$5$$8klROJIP~p|zalf(UENP%XZe zQY^=z;D!G*yW%{TjH|lENkfB-mdDC@TWNn%JR?5!+#oC4$2|Bz=aQiwoBrJ}J8`9Y z_{ASs`MHbSX=vTfc!xTASeeYl<4h)-E3aN=oFQ++AG+;4WB0A~v8G-a;2TAC5@IXT zK5u87z}@Gs)Cb|>^Ol7`dKYrGTlve|n)CfGWNZ74)<#$x^QJ!CN+ZjBew~gC91Y|u zfnGhuXY&iT-6*uzx5FaEs9)T!IRA0fVMpk;3k(JK@Ok?JGxS}@wBAMP&@N|Ashyjm z2HI@+RWYX%ZtZ(SH>ZiL&36$3%1DEMsvU1=mrMVcJ(DV&f~$wftEta089(nH?xru_ zL+zYH3d6smyX-HcCmC4n*%A>KHt;H-@;8E*I?|zC9~|#<$%Wk$bz76&VsP~`GDXA= zevTWQPT(He{NXLl>wa1IV;Li4iy_};ZNR;rlSxF^;_{I`eTNhP0f@yH0jix>a&h?` z%}YS3!k(FhC=l-&A3?l|*7qKkgu&j0ZMu<5AUa1`vwq#GXp#D5U4c1L`7I5vO|VHw zkWaC;|7rfvTNfBtwpT0-u8z>#BG0UPEU6NNXM&MQY@Ir~-EnD8mAt-V}DB+ zobou2_)%1hj6(Oxc&bG7UHI{?QaG#93jLk2e-l5wPXjeTVXrZ)+aubrs$>@Q^ay%G zwP|^B-Wzi~B<(5iKKl?|h8ZVrowt=BrVGg2Qy*8F^M`JBU|iXoVn5qE__k6kyv`gs zjdor?Ruoj6N$}LtW{k^<>75O+v+6>7#L;mgYT6?0XV8bHk8%ktw%F)MtXdSU9ald{ z5W8RYT`2Mw8=J#>fL$s`GRm$+z9!wB_D*B3;RU$9X>=~~T=5y&S%%oa%V-&!) zXF<(-VUMT%rl>EiW6}B^YRmviv84ryCR{s(y>0#hS`e>7aQe%;0_(Gmho`umF{j*r zT<0H~G2+5GoxvrbMd{E^T{SLR&%&;Y5WF>ISrk$eqP79qm+ldY3@dCc8-BPK&Q?hLn#(|CHFJn7Xk~j2ZRIu07dVBwTMt>_qrX~7*!n$ZB zSdVS0xjrntMW=pE#jNZsnd{~}8~%#?4W2@i0t#*UqAnh77$Xu-^mf{Rx7!@GVX^g1 znB9=K_d+pVd4lS?bi;m4S&rjp$RwY_axT59;nau+7GZToD~6PgoC8Oj%fjqd94O4Q zdU&@)6MMD%+}pPAb!w#*PP-P(uaSx970vY8&s@-B>!Nu2P%C(1`;HwZaPwH5*h-pk zO0ZjKyh{zu3tpf3R@VK`y%otSe=w98!Wca)TK-*Z>@!O1nA6+MEx-}nFvlZs4{@3| z=g{XL&~IL%rdY^vn7fv3j_UuTXswz|qs4aiYSG*^y|DP?sW7|m)%FF3xY?G^=N9^$ z7P|6-8=3wL(*Q-Yz;ukrG+DFK`+1edM!0;LF^Y@{l`EmsblEP}Us?rSqj`(8=iE+e?_$>QGqO)y$Dlj3%Y{?7bj)<)k!NCC8a|^P9n+^=(S^Q! zYoyc(DLD93Cl|><^Lc0UEPdD?cNY%x2w13l9u~)Y`?9y2KCP=4cA#}4%x>z}_M_xb z(Pp#qHBarq)?`&rS8OrO@{wKI-(9WtL(zEr;V`$rmWC*`JamCKy8eGn1l^w-c45~| z!gXc&AS}5E8@I7DMFHuVw7X8jw8Ed3Ma#~pGGfYY#DU^(YGiv`_A;YmIk7RH@C-?D_a0`w{I;C3 zE)3JxiTBsfk%C}5UM`E#yD%j4KCBFZ7wMh_l}hAaZ9~&iZ`z-tFO~VzEXhWKN_6`P->O>Ny7*f1@gU=2gVZ#s71; z_m83wu`x{UvNU^c0hvSTVdyvv;ln}uI#;dr!Zsz=qLbaDdsdQvIPmha3~y@o0jYjb z55{P%@IT`M!=9@|K!J0sYyf-B+m>|D2vFGx^Dgv{pX4}1I|jE3xP0MdO@7m_d>l?~ gj#?ml!xJWZ-|K;8fmT}#cm$z!QvXE$G283^2VES;LgDm9dVv;ZN=ce9`Ee%^14bI#B6>&+PG2*YHpIoDisUh}%YRMAzJ*8gi3V8AD=vV@~I}j03GkKlbIQsc^k|pU-D%|e7ry}<-qN< z)?Xpi3%eKWN?ajzCnQ8Zgtw}=EN(@&F4S&D;pN2gg8NCfBuP48Q~&$=Ul07R2maRs z|NnbH(siE>)ZP|=(37QTFcg*D(i>+vd)x@UEuMrLP#CS(%&Oe?39$ ztdCc3E~tz|!unnXFOIJ%oE)(c4=pb4~XZCMC8c{k_u(K8wUZ(6#l&VF?EJ6O5ObOx80A$%jmnE4dy=LX>Ku%vONgh zx?8w&JskRC`eI*N9H1}H!Oy`T7lqOoeGjK1BuD}4kaY^Nd2y8OTHUCF+q6cLc|h3q z*y)#^Fb~=-d45`G&qY!s3y9I{`NT&{6ALBxN!-Q$1VxP z)t>VUV*abwqR;X}Oc|`hf8>{cST#nK2p%@o>lKnrmlr}u8%W&!cxnCl5Vzk_RDB#% z(B#_3j$d6`-xBY;aV$%r!qUh!h9t3ff4Mtt?Rr|b*zraSqwu2jD&B8{>ysM%vgS+w z9LthA;D9DrvmtGLJDTl&#yiZz6g_eL>|Gd-82X8eeTHY7@SE3KTb2E-L$%F|rOHq z=cvycvwy#GmmhRu(1IvSS$f+U?fY9=j%W6+NYAgkS5&^8=dRIWO01gZwXJJ3TWie; zeBV|1VPGR|Dn=O1?Gl|nRb`2f@xn~E4&?>RniKE-aYDPq(RZ3sJDJaeY5qv9wTC<7 zHjO;s(Yvyhcg`(X-zZs1?4MS91aA72XZ-WC5Tb=+#os7vTQ0<|lnZ6?VMB1oh=NPn z|H+z>cm!*XUJeUqLG+nHzh9-t7u_xw&J`jUHu8bZdS1QZ_gqzom@)0oR3YA1o+$dU z>7M**Vw~yenyEDHJ{RH+INQ;!y_vnr&l<P@ZXm>WUqYI~zb$f_WWY*$gPI=i)<0%v&$ermn2JYk zOyWOg&qpWD(cWayk|mLC<4G-kV*mYua2~*tICe}-;1vVoGy*|Z<>n1W8-WY#PKCXQ zK~A)!uGn$WrWOtnmnQuo+9$`gn30*7a-NX2K&sTAO>F-KWIwhqC~M12d~`uksrZs1 zgT|LvC*Oc4d`-A)lQ)~*`D0A0XyRM6T1S8G2Y=l78UY+{LozLNM{7oXJydT1wxV~+ z#=Ub;XDL3(xlj7q`1up$r-q1fBCX^OjjwrjBXKte{NcR9KMTJuJp-aw>$m%ey8esb zh@>|1ICs5dwt|b}%t1lDts!2`OmHc&eBN_7XD%v z=hS01h6xX(u6VI~X~56jMmR<*4&F92l@^r=lbkMmTRwMCP(VW%NgmYZ{$8{BuiaSo z^Tb{IFA2&8+i1*7oIczf@`ar$*nfr32Q+Hu0^2tHx2o z#%+G_7g79w)+GU{p~?2};}CO=%5@_ja5~|#aNXyrM3=lrIs$Lc9v^kItMYU?$PxbO zdC>V0Q@0rT(vtn355JxTg2YZN+STZtbc0DQ>p&F3P1;98s7LGHjJ zzrsS#-}pC{;Xo|%^kX8vodaJPNLd}xU%e)mt+T;gGnB_4IuRqhui?qRuTdBFvGVV{ zRQAtWpqfiS7{2*sBqD*!m>8B^R>)hr#e5v2sk7gQ8^olM7oDlrlM34gj~)K`gr*AM z5S}a1z9X+Y9tXIDC!Wi7{CI*X`Vnh}yt=;HLEpR10goGpIXviPRy25I%k0k)W&(IX zGj4+qMci788ZfUJz51d1zT?)(=tokf(mlec&TJtH{9xPtegs8Z&c5@HGrj{sGl8|c zVR<>~Ra#3A^X>&^#kZF}f(L6)T?q*pp)kVKJt)7+gI8HX7XK~1(%gXK6<=BMMrAtw z4AS3@WDvg}Xoej)HW*ZK@%U(z{@oc&amjc5!ORQ`d4pquW1i9VQyAykJ()i7!_P_0!O9wc!Xy?6RLPnKIKnrYpiQ6Y`orO-H!Lb#>1(+I#!(&mDwv0p35>X8&zTCf2J`moq7NGHZ`&^kq`JeC=Bj!@ z-<+=|M~uYLiyyEpG;NCg@Rfo|#;%RkEuHUqBEX-BC>Cq_{4Vq@^W zD7pyBF}G}f(aaW(m@A{5@7N+GbHc~#4(0#(h^FsffIV6*1W`&>g{sL*DbtUv=q669 z&5N2kS2I-)6mLgOv`__d13&RVTW|ePD5BOBQJ-gr=7W z=RahS7Lm_*nrFHlW9qnGKU+mEzNnJ*&&6oB)d4;;Z^^5%{9)HZc-Iszc~@wkLAv`m z{PCO&73J~M#A~R(eC-Q&>E^$26TnC(9S(zp9bQVVCB1WVwfP28^8+nNz|E!iYi8bM zC6E8Y)1W%j4Qd*HfO! zK7M20ro4gNd46R1gx>J}C1}4}+4k{g55uEdiX9Jk_vYq8Ha~$Dl7=KA;)^t35x-1R zE;w^k?0bfod^@Z~DlE%|R`uXfilh&}dwP85JdZ5kol1xjWmLY`;@IaAw#U3fFf2#U zfI+LZ;0>@uSN(q7UgE|a-*k5ViPz*aAX35|<6#-Oh>*5Htx2K8L`yL~EGG!dQ)pdh zkF$zyxyKX>1bM8E$Q)yAqmX^r;d$rXlk96=<$yzCg?faInk(EGBR;AZylF%1E37>K z?@{67KwJS9Er(;Sy(=;0pN*@VNFRWG%o#RIJgwG>%paY-f0z|i{BI0th6sSVa%N*N zRa{_|-5^;??PHz?LBdZlpbdTxDYztzz@xslzO!C6Ig=~-*FR_V`u|9C)S}x*rd2A$m?(ydMqEkNJX9KVTv;!~YF$%|$_Ask2~>4-$Nl`3w>9 zNc~k3Gl^TYJo)_&Z@iL}kJvYP{D0q+l$0~n;v`6C+m3HOsG)DHF)A3m*M<02lL}HK{^U#YaeZSJN z*Lv^CpOlapR&46-o>h{}ck$wNpTM6T=I15@>Bd}-w=a48{wioZh2=h2rBx!6~2bKR))tNX!5mk~?5|fp#kNR4@T47oixP&VFHUkF`sbHA*}^i&Wer&W%t%6=uwp{^!&ky08fO6uw9ytd}N~F>9P4)%qDb&91c< z$4?0nc$(c}j|q|Qjg;@LOCR2LotGd(uN!Hkrt7a`t5=`7XXQ0H_rTa;2b;+(ubY9~ zu=2TgRQ28)DnfsitGrwjI3je#f-JgIwsmrSE#hX&=3eUGL5jV;K+NDfJ}50K>mQoo zBErVP;+HBBdyySawp|`b9(ex@TKBam0J}OO@RW3d5b$z5gdE?gqK)puza}8lx{PtD=(5Q5v1&&Qtq?@|th=kfxUV?ysGl+QnAV7N`>ey)<4BuLa%( zx;5XV%MjstNFB0{KEfdjr;j=O_{i=IobfrmCs%R>(a8*i(s_A`UPcLDfAuPI-XH07 z1w_X79eiVYr1GkHhDZ#V>!u650vzeH(9RFw3<3pKS+n%0rD}4GXZgEue#Wn~3n5Cr zeH#|jq1mUROlA4mIrO50%VNsp*Fo+-9Nek;?$if;lW+PaziN9=zv`NDEc2Ujesp0$ z@4JXK?i%9f^j<5GObJo&ZRU1T$Df9iSW`|W4t*-+E)5}J z?Sgx-?6{%Y##W6$aA!pEL~vP~(Yu++ z7H@>dWR{ak%=y#n_(v@wOm%~YTMtuJ!*8Wb%>z)mvq2!o{}XD<3{*4imeqC(mx*Ql zI%?C22j{)DP}0rnAC-2}x^C2sUB&NfF?+-1746F+r6C|`*9%$e3hP)-;Gh1tN@%LM zSno;%@X4VIw`$|&)CJIC#EP#q#ekW#b}hp?E5MQ zka5~e*%DrX`!=wcK}8R$8gYendWh-i$|Uy!-< z52Cs#+EcQtcNuCaq~}lB+Y43DVAEW;Y6>JoqDDsznyx}TMMCm}Ni69-J@H!#pxl?{ z$9Tl;{Z`|JBT$Co*s!YLA~l1*BD`91pQ@KNSS>>YST5tNUWH9R!nMo;e3`RDQrp^R zZPyLrN%w9e+%BK)WVFQELAv>jSSLZ7-|M9Kx)bqaVz2Pr!F@CT54oW`q0y&eftHPU z5g>+a-k@?yR!+t~B6IWd+M64~fU+CVwrkZ$W^J4iLW>(V6)Z&W&&|z&_w5y*Zm#E@Ur3a0s|KSsDDQwaKxsNE))- zdx^X*Wh*IZCETa-_QRsj)!p6uhEpR;r>B1hxKHlj>iG1VeS8Di#P#1aItPMj+z*IM zuwGApO0CBZ+tY5^dszOl*9uIr5hv)Rd70s9m-*R)i`*Z0c)XLw*n_{FIB{wxT#XR_ z;SQLCS*A-%pi4{Q!YSC5cOxFDDCWWuk5KsRecV;>dTyu&}T6t*c%a`B! zupL-l2CDA_LhYcmwtg_sb$UNct`lD>JhJ<=8d@jvI=6Nvpss-&7h+`OJ=PSok`d_*DRK|jy`e0m zp^mskQkRQJ#pY$BYF{Uq9~&QZ^gq zsd(TMZ&?wQ^_Xf~@<~!m;Lw}VSIT{AD)74X)jo~47x$_>0}nWKgv968U+8>Y!F_ug zxSrUjxyOj>pDaG8)5f1_Q7cq=w$Ss!ZQW8=ox`{#+zg25@!Oy&Ilv9Jav)y#__O^> zyc32D?bc=69&+4rXqWv<8*ZTq5Q|oI#SbpMCYuU@8AB5H!R`_o)5b*m^lf@Q%diB? z+vsu;5fLTe7?&dFQ&Z(GbYvpc1R$P;OT-xEyOnLFe!sXhm0sgd^9V-!u3eY4Gu)eG zoo@JY%~+|U$N7#;WI+uryQn+LHhfB?h@N`qlKRbM@$*!5iws>#Z_!V55xo?Qmz10s zvpA0tk-XM)H+eWRUyJk-_DmYWKuK-c)u;WuYp`hs6j!H3qOIf@^!r}5ap@Ik0`j)p ztf6k4!EoR=JYu1HvJY!2r!tA1z6hK1d^x^0FW>4eZ=``p*N?d)mTr8%#%<^!H5#Ox zEYg#L<(TiD{7PZftM{uuwTh36iUlq$Fm0>|LH3pCg_%+AS#je+&FEQ_C)(f z^Rgf=8U;I%oC;$IEb1?DZmZdFbKmy_>@rjieNr>`O`B9}Vqow2e7i+@kYV`<2aiuu zrsssCDKhauJph54@~r2Cu0k{K&xSo?&1gW$65bz%mdc_-;PY> zQ(pI?TevgFBjr@|alP18-*f17wrvvaU5?ABtNTH6q5HwX=Ela!PoF;Jj)XC7XYxzJ zB6M0=p9Jch{<(X2Ew*19lu!roToF024bD?_{ROWsFJnu_PO}w$!{o~!sJf5DaerKo zMx}G`>Mc#`b*Q?3{E6Ef)hpK!sHCb8UWe!s%!=FQ`^=2{X!)8V@0u&lXglxn@+B;G zujk_KTB44D2G^`kG_@93;|bqCV+-gTn2)=c=>@p2uRps|c@m0B8}F{T(@<@7b;{a! zxV+c>AjCSOwZv8`U$azt&@?`)KIv?+%DWLUo_0-y07!fC^E!{;3yBuX+bT&LAslOj zT^4%WFS8>08R1H*4xznXFW$sQLJqsxpIa&Y&FZi4?MB>J4S3RCP0i*n?b3%28a~|G zj_SQd&r`He{n?aZ@^wd&+^mZT%imZzP&6a9D?#?9TC9p~h6`hJpl)Q&9n!0m^;Y+_!~k` z&?MEO%_MxPyO?4x$Z}aIOo&N)5gBal*vsBQuDBLeKno3m93i$bov0|&9}nAdCAzMX z!lN&T))ZXiY3Gsp-0*cuC7L!f?f|8S1~(Kf9w)TkILK&Lxc{jNLYkL~Y1D`+ES|G_^MMhJQ9U{aR_<}c6E zi^vGesM%m5#3~u+L>3IKHM`jrGIIsQ3F8hw6|wueNzAv>_;l&xbf>2lFD_jemSV1( zP;1kfT;!QY`y?|TJlBBt+a{^DrJ%DZ* z+PL5tVAFzV)Z06IFFUWvWR+-0xsD@%2C@_gWe4lBz}1b7hdOIPr)tcY9#|0t_kRcb zk!%uvXS{rQ63|eX&w>hTJ*fV|KX(?y{NAe4?;gkW#LD|81&%Qm-HQ=U&%45&F~~I- ze~_V=@zj1t$u#)Ug%j2smvTRnp0)?)m8^PGDNcxmqh>EK-i;#{#3k1w@%&7vanM`; z#uj~OAWfYE3NW@$^*A%fn;&lv$UI$nrDqB>y7vLhI@4>t`^dj+`;|nmv3-r(U7esC z$0{9UlHS5IVilW>1kO;8*}VdsdLE^`JI;IfS0i{{dS9jqyq7z}6v0MLso8XN|9!rw z{grZxJnanOb-h7co25;Sg=`@=*V>|o#NE8T-U13~~#8UUUY{*~UXexo|%>ndpWR%c;-NVhLxN_!*X z%L(_TTcX(B0c{kz$nS3Zn;22as77NHbF=GS z-f5az+4uV~3*yfw6`q%LhKbaIgh`L>5od6`$tk@&6znYKXRe%G^7oJ>*h- zgCU}P{gesGz!Ho-x=~ARiN;24=1y0x8)$}*(g@_5qoW zmFO9r05FwaQ_$8zU&w+dsEM9V8hY<=*H2uYoodLSGE_i1OC^dU94pU`vE=esMnY!m z_MDZYKO`I4M82xo94OjW?KzQ!Z`aKJW@qu%&$| zuZ|su>dVXZX9d0v)AQ#d(}LOH9LVt@jt(??$8CY9CRVURR3oiGQK7alr$ptedpOxG zD_W|z8oothoG7-ED7g}Zv#_p@pU;0(1r#^y^O$;%JM=sC`ITA-YQK+Cv!X&x#kONj!=LwP6+$WnBb}pLnkxw3j*&C+q7^Uk(EY1aFt#S`lGoW zxvzktVXha6I2D}GcnU~|InYtx%uy>?$OvQc_C-^iX#UR9$!EeiYRsUOf6MzKzZ=H} zJ%(I9av1#N!L`6=l`M7_|4y&32Cb+_aDS%El}6<6oMq`ep>pRgDkdO7PigdI?9h!9 zFlS^CZgT+op8y1S@r$!ZB!49p${zH5L|$``EWH~@k-BE9?ED0P@{*en+%_

tO@O#d65yqwRUL_s<19N8SOLagn|cT%*C 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 z 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 + +ライセンス名 : uwuzu公衆利用ライセンス(英: uwuzu Public Use License) +バージョン : 1.0.0 +ライセンス著作権 : uwuzu +本ライセンス使用著作者帰属先 : daichimarukana +本ライセンス使用著作者連絡先 : daichimarukana@gmail.com + +この文書を完全にコピーして利用、2-15以降に追記することは許可されていますが、この文書の2-14以前の改変、保存・利用することは許可されていません。 + + +0. まえがき +uwuzu公衆利用ライセンスは本ライセンスを使用する全ての著作物の利用条件を明確にするためのライセンスです。 +主にコンピューターで実行されるソフトウェアに対して使用しやすいように作成されています。 + +本ライセンスでは、ソフトウェアの作成者、利用者、改変者、それぞれが負担なく利用できるように考えられています。 + +1. 定義 +ここにある定義はこの文書全体に適用されます。 +「本ライセンス」とはuwuzu公衆利用ライセンス バージョン1.0.0を指します。 +「著作権」とはベルヌ条約で示されている著作権及び各国の法律により示されている著作権を指します。 +「著作物」とは上記の著作権に基づく作成された物を指します。 +「著作者」とは本ライセンスの適用されている著作物を作成した人物を指します。 + +2. 利用条件 + 2-1. 本ライセンスが適用されている著作物は完全無料で閲覧・利用・改変が可能なものとします。 + 2-1-1. 改変し、公開する場合、本ライセンスが適用されている著作物のライセンスを変更することはできないものとします。 + 2-1-2. 改変する場合、著作物の原型を残す必要があります。 + 2-1-3. 改変する場合、「本ライセンス使用著作者帰属先」「本ライセンス使用著作者連絡先」を含め、本文書を引き継いで適用し、著作者の情報を削除しない必要があります。 + 2-1-3-1. 改変者の情報を追記することが可能ですが、著作者の権利を侵害しない範囲に限ります。 + 2-2. 本ライセンスが適用されている著作物を改変した場合、改変者は著作者による内容の開示を請求された場合に開示する必要があります。 + 2-2-1. 改変者は、改変した著作物を自身で公開する場合、著作者の同意を得る必要はありません。 + 2-3. 本ライセンスが適用されている著作物を改変して自身で利用する場合は、改変内容を開示する必要はありません。ただし、著作者から開示要求があった場合は、これに応じる必要があります。 + 2-3-1. 改変してから改変者が著作者以外の他人に譲渡・共有・配布する際は改変した著作物を誰でも使用できるものとします。 + 2-3-2. もし改変者が改変済の著作物を他人に譲渡・共有・配布せずに改変者自身で利用してサービスを提供する場合はサービス利用者に改変した著作物を公開する必要はありません。 + 2-4. 本ライセンスが適用されている著作物を二次配布したり改変したものを配布することは可能とします。 + 2-5. 本ライセンスはいかなる著作物にも著作者が適用することが可能です。 + 2-6. 著作物に本ライセンスを適用した著作者はいつでもこのライセンスの適用を取り消し、別のライセンスに変更することが可能なものとします。 + 2-6-1. 本ライセンスを適用した著作物のライセンスを変更した場合著作者はライセンスを変更したことを著作物内に明記する必要があります。 + 2-7. 本ライセンスが適用されている場合でも著作権は著作者に帰属します。 + 2-7-1. 著作者が本ライセンスが適用されている著作物の著作権の放棄を明記しない限り著作権は保護されます。 + 2-8. 著作者は本文書の「本ライセンス使用著作者帰属先」欄に著作者を判別できる文字列を記入する必要があります。 + 2-8-1. 可能であれば著作者は本文書の「本ライセンス使用著作者連絡先」に連絡先を記入する必要があります。 + 2-9. 本ライセンスが適用されている著作物の取り扱いは本ライセンス及び法律に則って扱う必要があります。 + 2-10. 本ライセンスが適用されている著作物を著作者が公開を停止し、著作者が利用者・改変者などに削除を求める旨の文章を公開していて、利用者・改変者などの関係者がそれに気づくことができた場合は削除する必要があるものとします。 + 2-11. 本ライセンスが適用されている著作物を使用し、何らかの損害が発生した場合に著作者は責任を負う必要はありません。 + 2-11-1. 本ライセンスが適用されている著作物を使用する際の責任は全て使用者にあるものとします。 + 2-12. 本ライセンスが適用されている著作物から本ライセンスを無効化するには著作者の許可、もしくは著作者によるライセンス変更が必要となります。 + 2-13. 本ライセンスが適用されている著作物は、営利目的を含む、いかなる利用目的であっても利用が可能です。 + 2-14. 本ライセンスはどなたでも自由にご利用いただけます。 + 2-15. 著作者は本ライセンスに追記して独自の規約を作成することが可能なものとし、利用者・改変者はその規約に従う必要があるものとします。 +/----------(以下追記欄)----------/ +追加事項はありません。 +-------------------<以上>------------------- \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..0c254cf --- /dev/null +++ b/src/main.js @@ -0,0 +1,266 @@ +const rana = require('./core.js'); +const fs = require('fs'); +const path = require('path'); +const config = require('./config.json'); + +// 返信済みIDを保存するファイルパス(いつかはSQLiteとかに移行したほうが良いのかも?) +const REPLIED_IDS_FILE = path.join(__dirname, 'replied_ids.json'); + +// --- ここを自分の環境に合わせて設定 --- +const API_DOMAIN = config.host; +const API_TOKEN = config.api_token; +const CHECK_INTERVAL = config.check_interval * 1000; // 5分間隔(ミリ秒) +const RANDOM_UEUSE = config.random_ueuse; +const CORE_LOG = config.rana_core_log; +// ------------------------------------ + +function getRandomInterval() { + // ミリ秒単位で計算する + const minMinutes = 3; + const maxMinutes = 180; + const interval = Math.random() * (maxMinutes - minMinutes) + minMinutes; + return interval * 60 * 1000; // 分をミリ秒に変換 +} + +// 返信済みIDをファイルから読み込む関数 +function loadRepliedIds() { + try { + if (fs.existsSync(REPLIED_IDS_FILE)) { + const data = fs.readFileSync(REPLIED_IDS_FILE, 'utf8'); + return new Set(JSON.parse(data)); + } + } catch (error) { + console.error('返信済みIDファイルの読み込みに失敗しました:', error); + } + return new Set(); // ファイルがない、またはエラーの場合は空のSetを返す +} + +// 返信済みIDをファイルに保存する関数 +function saveRepliedIds(repliedIds) { + try { + fs.writeFileSync(REPLIED_IDS_FILE, JSON.stringify(Array.from(repliedIds))); + } catch (error) { + console.error('返信済みIDファイルの保存に失敗しました:', error); + } +} + +// ランダムな投稿処理 +async function randomPostLoop() { + console.log(`[${new Date().toLocaleString()}] ランダム投稿を開始します...`); + + // ランダムなテキストを生成 + const postText = rana.generateRandomText(); + console.log(`投稿テキスト: "${postText}"`); + + // 投稿するAPIを叩く + const url = `https://${API_DOMAIN}/api/ueuse/create`; + const params = { + token: API_TOKEN, + text: postText + }; + + try { + const response = await fetch(url, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(params) + }); + const data = await response.json(); + if (data.uniqid) { + console.log(`ランダム投稿に成功しました!(投稿ID: ${data.uniqid})`); + } else { + console.error('ランダム投稿に失敗しました。'); + } + } catch (error) { + console.error('ランダム投稿エラー:', error); + } + + // 次の投稿までの時間をランダムに決めて、再度この関数を呼び出す + const nextInterval = getRandomInterval(); + console.log(`次のランダム投稿は ${(nextInterval / 60000).toFixed(2)} 分後です。`); + setTimeout(randomPostLoop, nextInterval); +} + +async function getMentions() { + const url = `https://${API_DOMAIN}/api/ueuse/mentions.php`; + const params = { token: API_TOKEN }; + + try { + const response = await fetch(url, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(params) + }); + const data = await response.json(); + // 成功した場合はオブジェクトのキーを配列に変換 + if (data.success) { + return Object.values(data).filter(item => typeof item === 'object'); + } + return []; + } catch (error) { + console.error('メンション取得エラー:', error); + return []; + } +} + +async function getReplies() { + const url = `https://${API_DOMAIN}/api/me/notification/`; + const params = { token: API_TOKEN }; + + try { + const response = await fetch(url, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(params) + }); + const data = await response.json(); + + if (data.success) { + return Object.values(data) + .filter(item => typeof item === 'object' && item.category === 'reply' && item.valueid !== null); + } + return []; + } catch (error) { + console.error('返信通知取得エラー:', error); + return []; + } +} + + +// 返信を投稿するAPIを叩く関数 +async function replyToPost(replyId, text) { + const url = `https://${API_DOMAIN}/api/ueuse/create`; + const params = { + token: API_TOKEN, + text: text, + replyid: replyId + }; + + try { + const response = await fetch(url, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(params) + }); + const data = await response.json(); + return data; + } catch (error) { + console.error('返信投稿エラー:', error); + return { success: false }; + } +} + +async function getPostById(postId) { + const url = `https://${API_DOMAIN}/api/ueuse/get`; + const params = { token: API_TOKEN, uniqid: postId }; + + try { + const response = await fetch(url, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(params) + }); + const data = await response.json(); + + if (data.success) { + // 数字キーの最初の要素を取得 + const firstKey = Object.keys(data).find(key => key !== "success"); + if (firstKey && data[firstKey] && data[firstKey].text) { + return data[firstKey]; // 投稿データ全体を返す + } + } + console.warn(`投稿ID ${postId} の本文が取得できませんでした。`); + return null; + } catch (error) { + console.error(`投稿取得エラー (ID: ${postId}):`, error); + return null; + } +} + +async function processReply(targetId, repliedIds, studyIds) { + const postData = await getPostById(targetId); + if (!postData || !postData.text) { + console.log(`ID: ${targetId} の本文が取得できないためスキップします。`); + return; + } + + const cleanedText = postData.text.replace(/@\w+\s/, ""); + console.log(cleanedText) + + let replyResult = null; + let replyText = ""; + + console.log(postData) + if (studyIds.has(postData.replyid)) { + const QuestionSubData = await getPostById(postData.replyid); + const QuestionData = await getPostById(QuestionSubData.replyid); + replyText = rana.studyInputText(QuestionData.text, cleanedText); + studyIds.delete(QuestionSubData.uniqid); + }else{ + replyText = rana.generateInputText(cleanedText); + } + + if(replyText == "ごめんなさい...よくわかりませんでした..."){ + replyText = replyText+"\nなんと答えれば良いか、教えていただけますか?\n```\nらなちゃんにこう答えてほしい!という理想のメッセージを返信してください!\nそれが求められてる回答なんだ!って感じで学習します!\n何も学習させたくなければ、このユーズには返信しないでください!\n```" + replyResult = await replyToPost(targetId, replyText); + studyIds.add(replyResult.uniqid); + console.log(studyIds); + }else{ + replyResult = await replyToPost(targetId, replyText); + } + + if (replyResult && replyResult.uniqid) { + console.log(`返信に成功しました!(投稿ID: ${replyResult.uniqid})`); + repliedIds.add(targetId); + } else { + console.error(`ID: ${targetId} への返信に失敗しました。`); + } +} + +const studyIds = new Set(); +// メインの処理(メンション+返信対応) +async function main() { + console.log(`[${new Date().toLocaleString()}] メンション&返信のチェックを開始します...`); + + const repliedIds = loadRepliedIds(); + + // メンション取得 + const allMentions = await getMentions(); + const newMentions = allMentions.filter(mention => + !repliedIds.has(mention.uniqid) && + mention.account && !mention.account.is_bot + ); + + // 返信取得 + const allReplies = await getReplies(); + const newReplies = allReplies.filter(reply => + !repliedIds.has(reply.valueid) // 通知の valueid が元投稿 ID + ); + + console.log(`新しいメンション: ${newMentions.length} 件, 新しい返信: ${newReplies.length} 件`); + + // メンション処理 + for (const mention of newMentions) { + await processReply(mention.uniqid, repliedIds, studyIds); + } + + // 返信処理 + for (const reply of newReplies) { + await processReply(reply.valueid, repliedIds, studyIds); + } + + saveRepliedIds(repliedIds); + console.log('今回の処理が完了しました。'); +} + +rana.init(CORE_LOG).then(() => { + // 10分ごとにメイン処理を実行 + setInterval(main, CHECK_INTERVAL); + // 最初に一度実行する + main(); + if(RANDOM_UEUSE === true){ + randomPostLoop(); + } +}).catch(err => { + console.error("Initialization failed:", err); +}); diff --git a/src/memory.db b/src/memory.db new file mode 100644 index 0000000000000000000000000000000000000000..637751dc14320ac5cb86a58c238e0f44fb2b7cf8 GIT binary patch literal 40960 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 literal 0 HcmV?d00001 diff --git a/src/package.json b/src/package.json new file mode 100644 index 0000000..7dbe510 --- /dev/null +++ b/src/package.json @@ -0,0 +1,17 @@ +{ + "name": "rana", + "version": "1.0.0", + "description": "Yuzuhare Rana", + "main": "main.js", + "scripts": { + "start": "node main.js" + }, + "keywords": [], + "author": "daichimarukana", + "license": "UPUL", + "type": "commonjs", + "dependencies": { + "better-sqlite3": "^12.5.0", + "kuromoji": "^0.1.2" + } +}