【フィッシング(phishing)詐欺をGoogleのクイズで学ぶ】|IT × 英語力アップ/IELTS対策

English_Practice I am learning cybersecurity in Coursera and I knew about phishing scams. I also understand malware and ransomware. Moreover, I will introduce the quiz of phishing scams by Google. The link of quiz of phising scams The link is this. It is japanese one but we can use English one also. I filled in my name and mail address. I did not have to write my name and mail address. It is no problem that you use your real one. They were just used on view. ...

2025年12月10日

【GoogleのCybersecurityをCourseraで学ぶ】|IT × 英語力アップ/IELTS対策

English_Practice Overall Cybersecurity and other lessons I applyed for free lessons of Japan re-skilling consortium before. I take some Google’s lesson for free. However, they are a half year left because they started from June 2025 until June 2026. I already finished taking the “AI prompting”, but I do not finish taking “Cybersecurity”, “data analytics” and “AI essential”. Even though “Cybersecurity” and “data analytics” take for a long time, I want to do because of usefull. ...

2025年12月2日

Win11Debloat を使ってPCのパフォーマンスを多少改善する

Win11Debloat たまたま見つけた記事でFreeTimeTechという企業のwindows11debloaterが紹介されていました。ただ、アプリを導入するのは少し躊躇したので調べた結果、Win11Debloatというツールに至りました。 こちらからツールの詳細を知ることができます。Githubからの導入なので多少ハードルが上がりますが、心理的なハードルは下がる気がします。 注意事項としては重要なアプリを消さないこと、効果が限定的であるかもしれないということですね。もともとあるアプリがそこまでCUPやメモリを使用してないと考えられるので、効果が限定的だと考えられます。私はこれに気づく前にやってしまいましたが… Win11Debloat_導入方法 導入方法は簡単でpowershellまたはコマンドプロンプトを管理者権限で開き、以下のコマンドを実行します。その後、画面の指示に従って実行していきます。 & ([scriptblock]::Create((irm "https://debloat.raphi.re/"))) 他の方法もありますが、そちらが良ければ確認してみてください。コマンドを実行すると以下のような画面になり、別のターミナルが開きます。 Win11Debloat_内容 ここから数字を選択します。一旦0を選んで情報を確認したほうが良いとは思いますが、面倒であれば1を選択すれば十分だと思います。 1を選択するとこんな感じで何を削除したり変えたりするのかが表示されます。問題なければ決定します。一応削除前のCPUとメモリを見てみました。こんな感じ。 2を選択するとこんな感じです。ここから更に選択して削除していきます。3を出すとリストを表示してどれを消すか選択できます。ぶっちゃけ詳しくなければやらないほうが良い気がします。重要なシステムを消す可能性がありますので。 2を選択するとこんな感じでどのようなアプリを消して変更するか選択していきます。こちらは最悪翻訳しながらできるので、面倒でなければこちらでもよいかと思います。 終わりに 終わったらボタンを押して終了ですね。終わった後がこんな感じ。正直そこまで変わった感じはしないですね。メモリは私がタブを開きすぎなので良いとして、それがあったとしても大きく変わった感じはない気がします。 とは言え少しでも軽くしたければ使うのもありだと思います。Windowsには余計なものも入ってることが多いので。気になるのであれば試してください。ではでは。

2025年5月24日

Cursorの話題に乗り遅れたけどpyxelの修正に使ってみたよ

Cursorを使ってみた Cursorが凄いとだいぶ前に話題になりましたが、重い腰を上げてようやく使ってみました。 コードエディターとして使っても優秀ですし、テキストベースで自身の考えを整理するのにも使えそうですね。 興味を持ったのが音声入力でテキスト変換し、文字おこしした文を整理してもらうという記事です。日常的にも使えそうですし、コードの修正にも活用できそうでしたので使うことにしました。 Cursorのインストールとダウンロード まずはインストーラーのダウンロードから。Windows、Mac、LINUXがあるので使っているPCに応じて選びましょう。 ダウンロードが完了したら、インストーラーを実行しましょう。基本的には何も変更せずポチポチ推して大丈夫です。こだわりがあれば変更するくらいですね。 Cursorの初期設定 インストールが完了したら実行して開きましょう。デフォルトのIDEはVS Codeになりますが、他のIDEを使ってる場合はそちらを選択しましょう。似たようなUIにしてくれると思います。 AIに対する言語は必要であれば選択しましょう。日本語なら"日本語"や"Japanese"で大丈夫だと思います。 Codebase-wideはプロジェクト全体を読み込ませるかどうかですね。単体のコードだけを読み込ませるなら不要だと思います。設定が完了したら"Continue"をクリックしましょう。 こちらはVS Codeを使ってると表示されます。VS Codeで使用してる拡張機能をそのまま使用するかの確認です。使うのであれば"Use Extensions"ですね。他のIDEはわかりませんが… こちらは利用状況を送信するかの設定です。“Privacy Mode"であれば送信されなくなります。私は個人で使う分には気にならないですし、もっと発展してほしいので送信するようにしています。ただ、業務委託では使えませんが。 設定が完了したらログインが必要になります。Freeであってもですね。今のところはproにする予定がないのですが… リポジトリのクローン ログインが完了したら初期画面はこんな感じ。後はここからプロジェクトを開くなり、Gitからリポジトリの接続をすることになります。ちなみに日本語UIへの変更はVS Codeと同じ手順で変更できます。 真ん中のcloneをクリックするとGitからcloneすることができます。Githubの場合は8桁のコードを求められます。画面に表示されますのでそれをペーストすれば問題ありません。 初期画面はこんな感じ。拡張機能のCotinueと似たようなUIに感じますね。 freeの場合、最初の2週間はproを使うことができます。アカウントの設定画面でどれくらい使ったかを確認することができます。 Cursorを使ってコーディング 次は実際に使ってみましょう。Agent、Ask、Editを使い分けます。使い分けとしてはこんな感じみたいです。 Agent: AIが考えてコードの変更や提案をする Ask: シンプルに質問する Edit: コードやテキストを変更したり指示する モデルは4oですね。モデルによってはproにするか設定を変えないとダメみたいです。 実際に実行してみるとこんな感じです。変更内容に問題なければ確定します。ちなみに動かしてみましたが、特に問題もなく動きました。リファクタリングが楽でめっちゃ嬉しい! 最後にAIに指示を出して意図通りの動きをするコードが作れるか試してみました。複雑になりすぎないように2つに分割しました。私が描いたイメージはAIが読み取ってくれるわけではないので、そこはコードをコピペして指示を出しました。こんな感じ。 少しだけ手作業で修正しましたが、ほぼ完ぺきに作ってくれました。障害物は名前から推定したんだと思います。流石に配色とその位置から形を推測するのはまだ無理だと思うので。 終わりに ただ、正直に言うとなめてました(笑)ほぼ完璧に指示をこなしてコードを書いてくれるとは。何よりリファクタリングが嬉しいですね。もちろんこれだけのためにお試しで導入するのもありだと思います。読みやすくもなるし、今後の作業も楽になると思うので。ではでは。

2025年3月2日

Deepseekが話題なので軽く触ってみたよ

Deepseekを試した背景 英語にカマかけてAIについてほぼ触れてこなかったのですが、Deepseekは割と盛り上がってるみたいなので触ってみました。 一応、o3が出ることやCursor、Browser Use(openAIがoperatorを出してましたが…)があることは知っています。 ただ、開発をほぼやってなかったのでノータッチでしたが、今回は軽量で低コストでo1に匹敵するということで気になったので触ってみました。 とは言えDeepseekが中国産というのは知っています。どうしても不安がぬぐえない部分があったので、軽く調べて判断することにしました。 AI検索エンジンの利用状況 さて、AI検索エンジンと言われて何を使ってますか? perplexityでしょうか?それともOpenAIのSearchGPT?あるいはGoogleのDeepResearchでしょうか?私が使っていたのはfeloになります。 feloは日本初のAI検索エンジンになります。無料でも使えますし、20個以上のソースから回答してくれます。有料になればさらに思考を深めて解答したり、マインドマップの生成も無限にできます。無料でも回数制限がありますが、使うことはできます。 Deepseekのセキュリティについて ということでDeepseekのセキュリティ系について聞いてみました。回答としてはこんな感じ。 他のAIと同じく個人情報の取り扱いには気を付けたほうが良いが、そこ以外でデータが抜かれる可能性は低いよと解釈しました。一応ソース元を軽く見たりもしましたが、個人的に不安になるほどの内容はなかったので使ってみることにしました。 ただ、中国には国家情報法というものがあるんですね。これは知っておいてよかった気がします。今後中国産系のアプリやらサービスを使う場合はこの辺も気を付けたほうが良いとわかったので。後は中国の思想に寄ってることですね。特定の話はできないとか。とは言え日本独自だろうが米国独自だろうが多少なりともありそうな気はしてますが… AI検索エンジンとしての性能 というわけでまずは普通に使ってみます。web版ですね。まずは登録します。私はGoogleアカウントで登録しました。今回はコード支援ツールであるContinueとClineとcursorの違いについて聞いてみました。まずはfeloでdeepthinkあり。 次はdeepseekですね。こちらも同様にdeepthinkありのsearch付きで。 こちらもかなり細かく書かれています。feloはdeepthinkを使ったうえでの結果なので、普段の検索であればこちらでもよい気がします。feloのdeepthinkは無料だと回数制限があるので。ただ、マインドマップという利点があるので、使い分けできればよさそうです。 Deepseekをコード支援ツールに導入 次はコード支援ツールへの導入ですね。一旦continueに導入してみます。まずはapiキーの発行からですね。ここからプラットフォームへログインできます。apiキーの発行手順は簡単です。キーの値だけ忘れないようにしてください。 ちなみに中国国内であれば多少のトークンが付与されます。それ以外の人はクレジットカード、デビットカードまたはpaypalの設定が必要です。というわけでtop up(トークンのチャージ)をしたら使用してみましょう!こんな感じで確認できます。 ちなみに余談ですがtop upという単語はよく目にします。カードに現金をチャージしたりするときもtop upが使われます。なので、覚えておくと海外旅行行った時も便利ですよ! まずはcontinueに導入してみます。だいぶ昔にコード補完として入れてましたが、あまり使ってなかったですね。ということで入れてみます。 昔tabAutocompleteModelにstarcoder2:3bを使ってましたが、同じ書き方はできないので一旦コメントアウトしました。 Continueタブを開いて設定(歯車)からjsonファイルを開きます。そこにモデルとcompleteモデルの追加をすれば完了です。この設定はここから引用してきました。 { "model": "deepseek-coder", "provider": "deepseek", "contextLength": 128000, // 替换为自己的 API Key "apiKey": "xxx", "title": "DeepSeek v3" } ], "tabAutocompleteModel": { "title": "DeepSeek Coder", "provider": "deepseek", "model": "deepseek-coder", // 之前遗漏了,这块加上apiKey后tab补全才会生效 "apiKey": "xxx", }, トークンのチャージ もし、アカウントにチャージがされていないとこんな感じのエラーが出ますので支払いを忘れずにしておきましょう。 ...

2025年1月28日

BigQueryのテーブルのカラム説明欄に一括で追記したい!

bqコマンドを使ってカラム説明を一括入力 業務委託で副業としてやっていた仕事の内、カラムに説明を追加するというタスクがありました。 今後非エンジニアの人も使えるようにするため、カラムの意味を把握する必要がありました。そこで説明欄を埋める必要があるという流れです。 ただ、一つ一つ手作業で埋めるのは手間なのでいい方法がないか探して試したやり方ですね。ということでbqコマンドを使用して進めてみます。 まずは埋めたいテーブルはこんな感じ。カラム名はさておき、説明が埋まってないという状況ですね。 ターミナルでbqコマンド実行 まずはターミナルを開いて一旦テーブルの中を確認してみます。ターミナル自体は簡単に開けます。ここからですね。画像の左から2番目のアイコンから開けます。 コマンドは以下ですね。dataset_idとtable_idは任意で変えることになります。 bq show --format=prettyjson <dataset_id>.<table_id> コマンドが実行されると人によっては承認が必要みたいです。承認しましょう。 テーブル確認 ターミナルに以下のように表示されます。もし説明欄に入力していると文字化けのように見えます。ただ、文字化けではなくエスケープ表示にされてます。書き換えるときも日本語で入力しても問題ないので、今は無視して進めましょう。 特に問題なさそうであればこのスキーマをjsonファイルに書きましょう。コマンドはこんな感じ。 bq show --format=prettyjson <dataset_id>.<teble_id> > <file_name>.json こうするとローカルのフォルダにjsonファイルが格納されます。コマンドを実行したらファイルを確認しましょう。ターミナルのエディタを開くから確認することができます。 中を開くと初期ファイルと作成したjsonファイルがあります。作成したjsonファイルを開いてみます。 ファイルを開くとターミナルで確認したような文字列があります。後は同じように説明を追加します。エスケープ表示ですが日本語に変更してみました。それからfieldsの中身のみが必要になります。[]の中身だけ取り出しましょう。 bqコマンド_カラムの説明欄更新 ではこのjsonファイルを使用してカラムの説明欄を更新してみます。コマンドは以下 bq update --source <file_name>.json <dateset_id>.<table_id> 更新が完了したら"successfully updated.“と出るので確認してみましょう。特に問題なければこれで完了になります。 終わりに 当初はgcloud alphaというコマンドがあり、そちらを使おうと思ってました。 ただ、いいやり方が見つからず従来のbqコマンドとファイルの編集を利用したやり方を採用しました。 最近AIのニュースを見てはいたのですが、全く触ってないので何かやってみたいですね。ではでは。

2025年1月25日

Pyxelを使って簡単なゲームの作成を試してみたい!part3

前回pyxeleditorを使ってサウンドを作って動かすところまでやってみました。 スコアとゲームオーバーの実装 スコア表示の実装 今回はゲーム性を持たせるところですね。やることはスコアの作成とゲームオーバーの作成ですね。まずはスコアの作成をしていきます。コードとしてはシンプルです。 class Scrolling_Game: def __init__(self): … self.score = 0 … def draw(self): … pyxel.text(5, 5, f"Score: {self.score}", 1) textの後の引数はx座標とy座標。後はテキストとカラーパレットですね。カラーパレットはドット絵と同じで0が黒、7が白になります。 さらにスコアについては特定のアイテムを取った時にプラスしていきたいので、変数にしています。ただ、固定ならテキストを入力で問題ないですね。表示させるとこんな感じ。左上にスコアが出ています。 スコア増加の実装 次はどうやってスコアを増加させるかですね。シンプルな方法でアテイムを取ったら増加するという方法でやろうと思います。 というわけでアイテムを書きました。ハチミツの壺ですね。「ハチミツ食べたいな~」でおなじみの奴です。 他にもいろいろ描いてますが、将来的に使いたいなーと思って描いたやつです。気にしないでください(笑) それから出現をランダムで出したいと思います。ここもそこまで難しくないですね。初期変数をランダムに設定し、draw関数でランダム変数を設定する感じですね。以下のコード import random class Scrolling_Game: def __init__(self): … self.item_x = random.randint(0, 120) self.item_y = random.randint(0, 120) … def draw(self): pyxel.blt(self.item_x, self.item_y, 0, 8, 24, 8, 8, 0) 当たり判定の実装 これでランダムに出現するようになりました。ただ、初期配置でランダムになるだけで取得もできないし、スコアも変わらないです。なので、次は取得して配置を変え、スコアを上げるコードを書いていきます。 class Scrolling_Game: … def update(self): … # 当たり判定 if (self.char_x < self.item_x + 8 and self.char_x + 16 > self.item_x and self.char_y < self.item_y + 8 and self.char_y + 16 > self.item_y): self.score += 100 self.item_x = random.randint(0, 120) self.item_y = random.randint(0, 120) … これで当たり判定とスコアの上昇、アイテムの再配置を行いました。動かすとこのような感じですね。 ...

2024年12月30日

Pyxelを使って簡単なゲームの作成を試してみたい!part2

pyxeleditorでキャラの動きやサウンド 前回pyxelのインストールからドット絵を描いて表示させるところまでやってみました。今回は実際にキャラクターを動かしたり、サウンドを作ったりしたいと思います。 pyxeleditorで作った部分 実際に動いた画面がこちら。 コードの中身_init 一旦各コードを簡単に見ていこうと思います。まずは__init__内ですね。前回も話したのでざっくりと見ます。 pyxel.init(128, 128, title='Scrolling Game') pyxel.load('assets/scroll_game.pyxres') self.char_x = 50 # キャラクターのX座標 self.char_y = 50 # キャラクターのY座標 initで画面サイズの設定、char_xとchar_yはキャラ座標を設定しています。loadでpixel editで作成したものをロードしています。ドット絵、タイルマップ、サウンドなど全て一旦ロードしています。 self.char_frame = 0 # 表示する画像のインデックス (0 または 1) self.frame_count = 0 # フレームカウンター self.is_moving = False # 移動中フラグを追加 self.last_input = False #直前のフレームでキー入力があったか pyxel.run(self.update, self.draw) 他のコードはコメントも記載していますが、キャラ画像の入れ替えやフラグの設定をしています。後はpyxelの起動ですね。 コードの中身_update 次はupdate関数ですね。 # ゲーム中断 if pyxel.btnp(pyxel.KEY_Q): pyxel.quit() # キー入力と移動処理 self.is_moving = False key_pressed = False # 今のフレームでキーが押されているか Qを押したらゲームを中断します。それからフラグとキー入力の初期設定をしています。 # キー入力処理とキャラクターの移動 if pyxel.btn(pyxel.KEY_LEFT): self.char_x -= 1 self.is_moving = True # 移動中フラグを立てる key_pressed = True if pyxel.btn(pyxel.KEY_RIGHT): self.char_x += 1 self.is_moving = True key_pressed = True if pyxel.btn(pyxel.KEY_UP): self.char_y -= 1 self.is_moving = True key_pressed = True if pyxel.btn(pyxel.KEY_DOWN): self.char_y += 1 self.is_moving = True key_pressed = True ここでは各方向キーを入力した時の設定をしています。上下左右分書いてるので記述は多いですが、内容はシンプルです。キャラクターの座標をずらして、フラグを書き換えています。というか関数化したほうがもっとシンプルになりますね… ...

2024年12月27日

Pyxelを使って簡単なゲームの作成を試してみたい!part1

Pyxelでゲーム開発入門 ゲームを作成するのであればUnityやUnreal Engineが有名です。それとは別にpythonでコーディングができるpyxelがあります。 pyxelはレトロゲームエンジンになります。ファミコンのようなドット絵スタイルのゲームしか作れませんが、pythonを知ってる人にはちょうどいいかもしれません。 開発環境の準備 pythonを導入している前提ですが、少し進めていきたいと思います。基本的にはREADME通りに進めていけばよいと思います。まずはライブラリのインストールを進めていきます。 pip install -U pyxel 私の例: py -3.10 -m pip install -U pyxel -Uがないとエディター画面が出ないので忘れずにつけましょう!その後は参考のためサンプルを導入するのもよいと思います。なくても特に問題はありません。 pyxel copy_examples 基本的なコード構造 そうすると簡単なゲームやガイドなどが入ってます。これを理解できれば基本的なコードは書けるようになると思います。基本的なコードはこんな感じになってます。 import pyxel class App: def __init__(self): pyxel.init(160, 120) self.x = 0 pyxel.run(self.update, self.draw) def update(self): self.x = (self.x + 1) % pyxel.width def draw(self): pyxel.cls(0) pyxel.rect(self.x, 0, 8, 8, 9) App() クラスの中に__init__関数とupdate関数とdraw関数があります。__init__関数では画面サイズの指定や各関数の実行ができます。 update関数ではキー入力や画面の切り替えを行う関数になります。update関数がメインになりそうです。もちろんupdate関数だけじゃなくて新しく関数を作っても問題ないです。キャラクター用や画面用などいろいろ作ると使い分けが楽になると思います。 draw関数では画面やキャラクターの描画を行います。エディター画面で作成した背景やキャラクターを呼び出したりします。 ドット絵とタイルマップの作成 というわけでまずはドット絵とタイルマップの作成からですね。ちなみに私は絵心は全くないので、大したものは書けません。所謂味がある絵みたいなイメージですね…コマンドは以下になります。 pyxel edit "絶対パス" 例: pyxel edit "C:\pyxel\assets\game.pyxres" コマンドは相対パスだと開かないので気を付けてください。一応実行しているフォルダーに移動してファイル名のみ指定しても問題ありません。 こんな感じで蜂A、蜂B、空、草原、岩のタイルを用意してみました。適当ですが苦手なりにそれっぽくできた気がします。まずはタイルマップの作成をします。左上のエディターからタイルマップを選び、書いたタイルを指定して書いていきます。 タイルマップへのキャラクター表示 今度はコードを使ってタイルマップにキャラクターを表示してみます。 ...

2024年12月21日

AIVMGeneraterでAivisSpeechでも使えるようにしたよ!

AIVMGeneraterを使えるようになるまで 前回Style-Bert-VITS2を使って音声合成モデルを作りました。今回は作ったモデルをAivis Speechでも使えるようにしようと思います。 AIVMGeneraterでは自作した音声合成モデルをAivis Speechで使えるようにします。以前までは音声合成モデルさえあればAIVMGeneraterで変換できるようになってました。しかし、今は使えなくなってます。そのため、.onnxファイルを作って変換する必要があります。 ただ、Style-Bert-VITS2を使えるのであればできますので諦めずやっていきましょう! Style-Bert-VITS2をdevブランチへ切り替え まずはStyle-Bert-VITS2をdevブランチへ切り替えます。デフォルトだとmainブランチになってますので、これをdevブランチへ切り替えます。ターミナルからコマンド実施でもよいですが、VSCodeを使っているのであれば以下の方法で切り替えて実施できます。 まずはGitのタブを選択しましょう。それからソース管理の設定から"チェックアウト先"を選択します。 そうすると真ん中あたりにこんな感じでブランチやリモートブランチが出てきます。ここからorigin/devを選択しましょう。 onnxファイルの作成 そうすると中のファイルなどが変わっていると思います。以下を確認してみましょう! “convert_onnx.py"が存在しているかどうか requirements.txtにonnx系のライブラリが記述されているかどうか 上記が確認出来たらrequirements.txtで一括再インストールをしてconvert_onnx.pyを実行しましょう。私の環境でのコマンドだと以下のような感じですね。この辺は適宜自身の環境に合わせて変えてください。 py -3.10 -m pip install -r requirements.txt py -3.10 convert_onnx.py --model model_assets/{モデル名} 例:py -3.10 convert_onnx.py --model model_assets/10minmodel そうするとモデルファイル内に.onnxファイルができてると思います。モデルごとにできるので少し容量を使っちゃいますが… AIVMGeneraterの設定 .onnxファイルが出来たらこちらのページからAIVMGeneraterを使います。使い方はシンプルでモデルに関するファイルをアップして、サンプルボイスもアップして変換するだけです。 メタデータ編集では製作者や説明を記載出来ます。この辺はなくても大丈夫です。私は一応記載しましたが。それからモデルの公開ですね。今回は公開しませんが、公開したい場合はライセンスを選びましょう。 ACML 1.0 と ACML-NC-1.0 の違い営利目的の利用を許可するかどうかです。ACML 1.0は許可しますが、ACML-NC-1.0は非営利目的のみとなっています。パブリックドメインは著作権フリーで、カスタムライセンスはライセンスを自作することになります。 ACML 1.0かACML-NC-1.0のどちらかを選べば特に問題ないかと思います。 それからアイコン、スタイル説明、サンプルボイスを追加しましょう。サンプルボイスは実際にモデルを使った時の音声を貼っておきます。 アイコンはデフォルトだと卵型の形になります。公開する場合は設定しておきましょう。スタイルは何もなければノーマルになります。公開するスタイルに合わせて書き換えましょう。 設定が完了したら、変換をします。そうすると変換が完了したファイルがダウンロードされます。許可を求められた場合は許可しましょう。 Aivis Speechへの取り込み ダウンロードが完了したら、Aivis Speechに取り込みます。まずはAivis Speechを起動します。“設定” > “音声合成モデルの管理"を選択します。そしたら右上の"インストール/更新"を選択して.aivmxファイルを選択します。 ファイルを選択したら右下の"インストール/更新"を選択しましょう。このような画面になったらインストール完了です。後は自由に使えるようになります。 終わりに 今後ですがもう少しモデルの作成を試してみたいなと思います。10minmodelを作りましたが、お試しで作った物なので。使ってみた感じつまずいたり、うまく喋れてない部分がありました。なので、データの再集録からですね。 それからスタイルもいくつか使ってみたいですね。本来Audibuleスタイルで作りましたが、せっかくなら感情表現もできるキャラクター用も作ってみたいですし。 ここまでできれば色んな音声合成モデルを作れるようになります。皆さんもぜひ試してみてください。唯一の難点はローカルでモデル作成しているときPCが使えないということですね。Colabを使えばいいと思いますが、あれだと数日かかりそうですし。ではでは。

2024年12月18日