アサシンクリード ミラージュ トロフィー100%攻略解説

PS4
スポンサーリンク

『アサシンクリード ミラージュ』のトロフィー100%攻略解説記事です。

今作は初代アサシンクリードのオマージュと原点回帰を謳っているようにステルスメインで前作のように脳筋ゴリ押しプレイはできなくなっているのとボリュームも減っていましたが元々前作のDLCとして開発されていてバシムの過去を描いた物語になっているので前作プレイ済みならより楽しめると思います。

スポンサーリンク
  1. トロコンガイド
  2. ロードマップ
  3. トロフィーリスト
  4.  トロフィー獲得方法
    1. 🏆自己鍛錬 (全てのスキルをアンロックする)
    2. 🏆研ぎ澄まされた剣(武器を最大までアップグレードする)
    3. 🏆磨き上げられた鎧 (防具を最大までアップグレードする)
    4. 🏆ファッション哲学 (防具に染料を塗る)
    5. 🏆 仮面舞踏会 (両方の変装具を入手する)
    6. 🏆 トレジャーハンター (コインの箱を開ける)
    7. 🏆 恐れ知らず (全てのビューポイントでシンクロする)
    8. 🏆 猛禽 (エンキドゥを使って衛兵を100人マークする)
    9. 🏆 探索者 (全地域を探索し尽くす)
    10. 🏆 人々の守護者 (勢力の依頼を10件完了する)
    11. 🏆 再会 (バグダッドの物語を完了する)
    12. 🏆 学者 (失われた書を7冊全てアル=ジャヒズに渡す)
    13. 🏆 謎かけしてみて (謎を解いて宝を手に入れる)
    14. 🏆 商売道具 (すべての道具を最大までアップグレードする)
    15. 🏆 ワシの眼 (投げナイフで衛兵を75人倒す)
    16. 🏆 安らかな眠りを (吹き矢で衛兵を10人眠らせる)
    17. 🏆 待ち伏せ (衛兵を10人罠にかける)
    18. 🏆 雲散霧消 (20人の衛兵に煙幕の効果を与える)
    19. 🏆 お騒がせ者 (騒音爆弾で10人の衛兵の気をそらす)
    20. 🏆 泥棒の手 (50人にスリをする)
    21. 🏆 居眠り厳禁 (吹き矢の影響を受けた衛兵にスリをする)
    22. 🏆 骨董品収集家 (18種類の秘宝をすべて盗んでデルヴィスに渡す)
    23. 🏆 貯金好き (2007ディルハムを貯める)
    24. 🏆 朝から晩まで (ベンチを使って5回時間を進める)
    25. 🏆 芸術の後援者 (音楽家に5回支払う)
    26. 🏆 傭兵の後援者 (傭兵に5回支払う)
    27. 🏆 商業の後援者 (商人集団に5回支払う)
    28. 🏆 群集の刃 (群集に紛れた状態で衛兵を10人暗殺する)
    29. 🏆 サプライズ! (隠れ場所から衛兵を10人暗殺する)
    30. 🏆 影と炎 (精鋭兵を戦闘で倒す)
    31. 🏆 音を奪う者 (警笛兵の角笛を投げナイフで破壊する)
    32. 🏆 悪名高き者 (悪い噂が最大に達した状態を10分維持する)
    33. 🏆 手配書の男 (悪い噂が最大に達した状態で手配書を剥がして一般市民状態に戻る)
    34. 🏆 ニュースの拡散 (布告者を3回利用する)
    35. 🏆 阻止不能 (「暗殺の極意」で衛兵5人を同時に倒す)
    36. 🏆 生存本能 (戦闘状態を10分間生き延びる)
    37. 🏆 才能ある逃亡者 (足場を20個破壊する)
    38. 🏆 真の隠れし者 (戦闘状態に移行せず、衛兵を10人連続で暗殺する)
    39. 🏆 街の清掃人 (干し草に死体を5体隠す)
トロコン難易度★★☆☆☆
トロコンまでの時間20時間前後
面白さ★★★★☆
時限トロフィーあり
ゲーム難易度に関するトロフィーなし
トロコンまでに必要な周回1周

トロコンまでのプレイ時間としては20時間前後で前作よりかなりボリュームは少ないです。時限トロフィーも1つのみ、難易度も自由で作業も少ないので簡単にトロコンできました。

ロードマップ

STEP1.ストーリークリア

今作の時限トロフィーは🏆「居眠り厳禁」のみなのでこのトロフィーさえ気を付ければ自由にプレイ出来るのでビューポイントを解放しながらストーリークリアを目指しましょう。

収集品に関してはストーリー進行で順次解放されるものもあるのでクリア後に収集するのが良いと思います。

効率的に進めるポイント
  1. スリの確定成功
    • [設定]>[ゲームプレイ]>「スリの確定成功」をオンにする事により失敗する可能性が無くなり時短できる。スリは🏆「泥棒の手」や金策、キドマーコイン入手のために最低でも50回はやることになります。
  2. 部品の購入
    • 🏆「商売道具」獲得の為、道具をアップグレードするのに必要な部品が大量に必要になります。部品は交易商で購入出来て時間経過で補充されるので定期的に購入しましょう。交易商に商人のコインを渡すと最大30%永続割引になる。
  3. カウント・行動系のトロフィーを意識
    • 🏆「ワシの眼」🏆「才能ある逃亡者」などの後からまとめてやるには面倒なトロフィーを意識しながらプレイすると効率的
最強装備

今作の最強装備「ミラード」シリーズは謎の欠片を10個集めて荒野北にある北のオアシスから古き場所に入り謎の欠片を捧げる事で入手できる。

STEP2.収集品をコンプリート

🏆「探索者」を獲得するために収集品をコンプリートしていきましょう。

収集品はクリア後のフリーロームでも時限要素はなくコンプリート可能。

STEP3.残ったトロフィーを獲得しトロコン完了!!!

🏆「自己鍛錬」すべてのスキルのアンロック、武器防具の最大アップグレード、行動系のトロフィーなどの残ったトロフィーを獲得してトロコン完了です。

収集品をコンプリートしていれば武器防具の強化設計図、収集品で入手できるスキルポイントは入手済みなので難しいものはないです。

トロフィーリスト

ランクトロフィー名トロフィー内容
プラチナ己が運命の支配者全てのトロフィーを集める
ブロンズアンバールの大盗賊プロローグを完了する
シルバー真実はない隠れし者の入門者になる
シルバー屍食鬼の血アル=グールを排除する
ブロンズ悪魔の血アル=ラビスを排除する
ブロンズ魔女の血アル=パリカーを排除する
ブロンズ密偵長の血アル=マルディフワールを排除する
シルバー蛇の頭結社総長を排除する
ゴールド許されぬ事などないバシムの過去を知る
ブロンズ光に奉仕する者隠れし者の最高ランクに到達する
シルバー自己鍛錬全てのスキルをアンロックする
ブロンズ研ぎ澄まされた剣武器を最大までアップグレードする
ブロンズ磨き上げられた鎧防具を最大までアップグレードする
ブロンズファッション哲学防具に染料を塗る
ブロンズ仮面舞踏会両方の変装具を入手する
ブロンズトレジャーハンターコインの箱を開ける
ブロンズ霊薬収集家霊薬を合計10個入手する
シルバー恐れ知らず全てのビューポイントでシンクロする
ブロンズ猛禽エンキドゥを使って衛兵を100人マークする
シルバー探索者全地域を探索し尽くす
シルバー人々の守護者勢力の依頼を10件完了する
ブロンズ再会バグダッドの物語を完了する
ブロンズ学者失われた書を7冊全てアル=ジャヒズに渡す
ブロンズ謎かけしてみて謎を解いて宝を手に入れる
シルバー商売道具すべての道具を最大までアップグレードする
シルバーワシの眼投げナイフで衛兵を75人倒す
ブロンズ首狩り族投げナイフで20人の衛兵にヘッドショットを決める
ブロンズ安らかな眠りを吹き矢で衛兵を10人眠らせる
ブロンズ待ち伏せ衛兵を10人罠にかける
ブロンズ雲散霧消20人の衛兵に煙幕の効果を与える
ブロンズお騒がせ者騒音爆弾で10人の衛兵の気をそらす
シルバー泥棒の手50人にスリをする
ブロンズ居眠り厳禁【時限】吹き矢の影響を受けた衛兵にスリをする
シルバー骨董品収集家18種類の秘宝をすべて盗んでデルヴィスに渡す
ブロンズ貯金好き2007ディルハムを貯める
ブロンズ朝から晩までベンチを使って5回時間を進める
ブロンズ芸術の後援者音楽家に5回支払う
ブロンズ傭兵の後援者傭兵に5回支払う
ブロンズ商業の後援者商人集団に5回支払う
ブロンズ群集の刃群集に紛れた状態で衛兵を10人暗殺する
ブロンズサプライズ!隠れ場所から衛兵を10人暗殺する
ブロンズ影と炎精鋭兵を戦闘で倒す
ブロンズ音を奪う者警笛兵の角笛を投げナイフで破壊する
シルバー悪名高き者悪い噂が最大に達した状態を10分維持する
ブロンズ手配書の男悪い噂が最大に達した状態で手配書を剥がして一般市民状態に戻る
ブロンズニュースの拡散布告者を3回利用する
シルバー阻止不能「暗殺の極意」で衛兵5人を同時に倒す
シルバー生存本能戦闘状態を10分間生き延びる
シルバー才能ある逃亡者足場を20個破壊する
ブロンズ真の隠れし者戦闘状態に移行せず、衛兵を10人連続で暗殺する
ブロンズ街の清掃人干し草に死体を5体隠す

 トロフィー獲得方法

🏆自己鍛錬 (全てのスキルをアンロックする)

全てのスキルをアンロックするためのスキルポイントは以下の3つの方法で入手できます。依頼に関してはスキルポイントが入手できる依頼が出るまで他の依頼をこなす必要があるのでクリアしたら新しい依頼が出ていないかチェックしましょう。

  1. メインストーリー
  2. 失われた書・バグダットの物語
  3. 依頼

🏆研ぎ澄まされた剣(武器を最大までアップグレードする)

鍛冶屋で剣か短剣どちらかを最大までアップグレードすると獲得できます。

剣と短剣はアップグレードをするのに装備箱や依頼から入手できる設計図が必要。「鋼鉄の鋳塊」と「革」は余るほど手に入るので困ることは無いと思いますが足りない場合は交易商から購入してもいいと思います。

🏆磨き上げられた鎧 (防具を最大までアップグレードする)

仕立て屋で防具を最大までアップグレードすると獲得できます。

防具はアップグレードをするのに装備箱や依頼から入手できる設計図が必要。「鋼鉄の鋳塊」と「革」は余るほど手に入るので困ることは無いと思いますが足りない場合は交易商から購入してもいいと思います。

🏆ファッション哲学 (防具に染料を塗る)

防具に染料を塗るには[インベントリ]>[防具の染料]から防具に対応した染料を選ぶことで塗る事ができます。染料は謎解きや交易商などから入手する事ができる。

🏆 仮面舞踏会 (両方の変装具を入手する)

以下の変装具を入手することで獲得できます。ストーリー中に入手できる物なので取り逃すことは無いです。

  • 患者用の白ローブ
  • 宦官のチュニック

🏆 トレジャーハンター (コインの箱を開ける)

商人のコインを使用して開けられるコインの箱を開けると獲得できます。商人のコインはスリや依頼などで入手できる。プレイ中何個かあるので最後まで獲得できないことは無いと思います

🏆 恐れ知らず (全てのビューポイントでシンクロする)

全21か所のビューポイントでシンクロすると獲得できます。今作はそこまでマップが広いわけではないので順々にシンクロしていけば簡単に見つかります。

  • ハルビヤ(4)
  • アッバシヤ(3)
  • カルフ(3)
  • 円形都市(4)
  • 荒野(7)

🏆 猛禽 (エンキドゥを使って衛兵を100人マークする)

エンキドゥを使わない縛りプレイなどをしていなければ特に気にしなくても獲得できます。

🏆 探索者 (全地域を探索し尽くす)

全地域の収集品をコンプリートすることで獲得できます。

Assassin's Creed Mirage Collectibles Guide - 100% Completion
Assassin's Creed Mirage Collectibles Guide for all collectible locations and 100% Completion to get the Explorer trophy ...

エンキドゥでの探索

エンキドゥで周りを見渡すと見える黄色い柱がまだマップに表示されていない収集品です。かなり遠くまで見えるのででマーカーを設置して収集しましょう

【失われた書の地図】、【装備箱】、【謎解き】の3種の収集品に関しては円形都市にある地図製作所で学者のコインと交換で地図を入手する事ができる。

🏆 人々の守護者 (勢力の依頼を10件完了する)

隠れし者の各支部で受注できる依頼を10件完了すると獲得できる。依頼はスキルポイントや道具のアップグレードに必要な部品も入手出来る。

🏆 再会 (バグダッドの物語を完了する)

全6個あるバグダッドの物語をどれか1つクリアすると獲得できます。ですが🏆「探索者」獲得の為、全てクリアする必要があります。

ハルビヤ(1)

聖なる使命

アッバシア(2)

人生を捧げた研究
群衆の刃、物置の道具

カルフ(1)

若きイーグルダイブ

荒野(2)

シーラの呪い
宝探し

🏆 学者 (失われた書を7冊全てアル=ジャヒズに渡す)

失われた書を7冊全てアッバシヤの知恵の館にいるアル=ジャヒズに渡すと獲得できます。失われた書の場所は地図製作所で学者のコインと地図を交換してもらえる。

7冊目の場所

失われた書は7冊目だけ収集品に該当せずマップにも表示されないので注意。

荒野東の歴史的場所「チグリス川のセレウキア」と同じ場所にあり、火炎壺でもろい床を破壊すると入手できます。

🏆 謎かけしてみて (謎を解いて宝を手に入れる)

収集品である「謎解き」は全て収集する必要があるが全ての謎を解く必要はないのでどれか1つ謎を解いてトロフィー獲得しましょう。例として1つ紹介します。

「盗んだものを探せ」

  • 報酬として防具の染料「ザンジュ軍(黒)」

🏆 商売道具 (すべての道具を最大までアップグレードする)

すべての道具を最大までアップグレードすると獲得できる。

アップグレードには「鋼鉄の鋳塊」、「革」、「部品」が必要。「鋼鉄の鋳塊」、「革」は余るほど手に入りますが「部品」が足りなくなると思います。

交易商では時間経過で「鋼鉄の鋳塊」、「革」、「部品」が補充されるので定期的に購入するのをおすすめします。交易商に商人のコインを渡すと永続的に30%割引される。他にも依頼などで入手できますがスリをして売却すればお金には困らないので買ってしまうのがおすすめ

🏆 ワシの眼 (投げナイフで衛兵を75人倒す)

投げナイフで衛兵を75人倒すと獲得できます。攻略中に意識して獲得を目指し基本的にヘッドショットを狙うと🏆「首狩り族」もついでに獲得できて効率的。

🏆 安らかな眠りを (吹き矢で衛兵を10人眠らせる)

🏆 待ち伏せ (衛兵を10人罠にかける)

🏆 雲散霧消 (20人の衛兵に煙幕の効果を与える)

🏆 お騒がせ者 (騒音爆弾で10人の衛兵の気をそらす)

🏆 泥棒の手 (50人にスリをする)

そのまま50人にスリをすると獲得できるトロフィーです。面倒なトロフィーかと思いましたが今作はスリが簡単に出来てキドマーコインや交易品などのアイテムが入手できるので序盤に獲得してしまいました。

[オプション]>[ゲームプレイ]>[スリの確定成功]をオンにするとQTEなしスリを行う事ができるので効率的です。

🏆 居眠り厳禁 (吹き矢の影響を受けた衛兵にスリをする)

吹き矢の影響を受けた鍵を持った衛兵にスリをする必要があるのでストーリークリア後や依頼などで取り逃した場合は取り返しのつかない今作唯一の時限トロフィーとなります。

衛兵は鍵を持っている場合のみスリが出来るのでその条件が揃った調査、依頼を下記に紹介します。

道具の解除
  • アル=グールを倒した後、ハルビヤ支部に戻ると新しい道具を1つ解除できるので吹き矢を選ぶと解除される
    • この時に他の道具を選んだ場合は、スキル「暗殺者の道具1・2・3」を習得してまだ選んでいない道具を解除できる

鍵を持った衛兵がいる調査・依頼・収集品(管理人調べ)

  • アッバシヤ支部…調査「写字室」
  • カルフ支部…調査「収税吏の邸宅」
  • シャルキーヤ支部…調査「アル=ロック」
  • 調査「アル=バハムート」
  • 依頼「銅鏡泥棒」など

🏆 骨董品収集家 (18種類の秘宝をすべて盗んでデルヴィスに渡す)

18種類の秘宝をすべて盗んでデルヴィスに渡すと獲得できる。

デルヴィスの秘宝の場所は🏆「探索者」を参考にしてください。

🏆 貯金好き (2007ディルハムを貯める)

スリなどから手に入る小物を交易商で売ればすぐ貯まります。

🏆 朝から晩まで (ベンチを使って5回時間を進める)

ベンチに座ると時間を進める事ができるのでこれを5回行うと獲得できます。

🏆 芸術の後援者 (音楽家に5回支払う)

音楽家に学者のコインを1枚渡すと近くの衛兵を引き付けてくれるのでこれを5回行うと獲得できます。音楽家の場所はビューポイントでシンクロするとマップに表示され、学者のコインはスリや依頼などで入手できる。

🏆 傭兵の後援者 (傭兵に5回支払う)

傭兵に力のコインを1枚渡すと近くの衛兵を引き付けてくれるのでこれを5回行うと獲得できます。傭兵の場所はビューポイントでシンクロするとマップに表示され、力のコインはスリや依頼などで入手できる。

🏆 商業の後援者 (商人集団に5回支払う)

商人集団に商人のコインを1枚渡すと近くの衛兵を引き付けてくれるのでこれを5回行うと獲得できます。商人集団の場所はビューポイントでシンクロするとマップに表示され、商人のコインはスリや依頼などで入手できる。

🏆 群集の刃 (群集に紛れた状態で衛兵を10人暗殺する)

町で衛兵を見かけたら群衆に紛れて口笛でおびき寄せて暗殺しましょう。3人以上で群衆判定で白くハイライトされます。

ザンジュ軍の防具が悪い噂メーターの上昇量を下げる効果があるのでおすすめ

このトロフィーの群衆に当てはまる条件がおそらく一般人のみなので注意しましょう。商人集団やダマスカス門の監獄の囚人に紛れて何回も暗殺しましたがカウントされませんでした。

🏆 サプライズ! (隠れ場所から衛兵を10人暗殺する)

干し草やベンチ、壁で隠れた状態で衛兵を暗殺すると獲得できます。暗殺した時に死体を隠そうとする動作をするとカウントされていると思います。

🏆 影と炎 (精鋭兵を戦闘で倒す)

悪い噂メーターがレベル3の時に出現する精鋭兵を戦闘で倒すと獲得できます。精鋭兵は仮面をかぶった2刀流なので見分けは付くと思います。

騒音爆弾に火花をつけて精鋭兵に投げて炎上している間に攻撃すると簡単に倒せます。

🏆 音を奪う者 (警笛兵の角笛を投げナイフで破壊する)

警笛兵の腰に付いている角笛を投げナイフで破壊すると獲得できます。警笛は鷹の目でスキャンすると黄色くハイライトされます。

警笛兵は普通に町を巡回していたり依頼や調査で行く場所に配置されているので見つけるのは難しくありません。

🏆 悪名高き者 (悪い噂が最大に達した状態を10分維持する)

悪い噂メーターがレベル3の状態を10分維持すると獲得できます。

悪い噂メーターがレベル3の時に出現する精鋭兵を倒すとレベルが下がるので何もせずに大人しく10分待ちましょう。ただ待っている間も精鋭兵が追ってきて干し草などで隠れても見つかってしまうので登ってこれないビューポイントなどで待つのがおすすめです。

🏆 手配書の男 (悪い噂が最大に達した状態で手配書を剥がして一般市民状態に戻る)

画面右下の悪い噂ゲージが3つ目のマークまで達した状態で手配書を3枚剥がして一般市民状態に戻ると獲得できます。

悪い噂ゲージは一般市民や衛兵をを切りつけたりしていると上がります。また手配書はワールドマップには表示されませんが画面上部のマップには表示されるのでそれを頼りに見つけてください。

🏆 ニュースの拡散 (布告者を3回利用する)

悪い噂メーターがレベル1以上の時に布告者に力のコインを渡すと悪い噂を減らしてくれるのでこれを3回利用すると獲得できる。力のコインはスリや依頼などで入手できる。

🏆 阻止不能 (「暗殺の極意」で衛兵5人を同時に倒す)

「暗殺の極意」強化1、2を習得して付近に衛兵が5人いる状態で「暗殺の極意」(非戦闘時にR3)を発動して5人同時に倒す事で獲得できます。

必須スキル
  • 「暗殺の極意」強化1:必要スキルポイント2
  • 「暗殺の極意」強化2:必要スキルポイント3

🏆 生存本能 (戦闘状態を10分間生き延びる)

単純に戦闘状態を10分間生き延びれば獲得できます。

おすすめな方法は荒野の廃れた隊商宿などにいる弓兵を1体だけ残して矢を10分避け続ける方法です。敵を倒し続けてしまうと増援や精鋭兵が出現するのでおすすめはしません。

🏆 才能ある逃亡者 (足場を20個破壊する)

足場は攻略中見かけたらなるべく倒すようにすると効率的です。

荒野の発掘現場に足場が3つあるので破壊する→逃げてファストトラベル→また発掘現場に足場を破壊しに行くの繰り返しで数を稼ぐ事ができます。

荒野の発掘現場

🏆 真の隠れし者 (戦闘状態に移行せず、衛兵を10人連続で暗殺する)

特に気にしなくても獲得できるトロフィーだと思いますが、難しい場合は敵が多い場所の前でセーブして何度もトライして獲得しましょう。

🏆 街の清掃人 (干し草に死体を5体隠す)

干し草に潜んで暗殺するか倒した敵を干し草に隠すかで5体隠すと獲得できます。同じ干し草に5体隠す必要はありません。

コメント

'+e+"");const o=le?le.createHTML(e):e;if(ot===nt)try{t=(new Y).parseFromString(o,ut)}catch(e){}if(!t||!t.documentElement){t=se.createDocument(ot,"template",null);try{t.documentElement.innerHTML=rt?ce:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),ot===nt?pe.call(t,ze?"html":"body")[0]:ze?t.documentElement:i},St=function(e){return ue.call(e.ownerDocument||e,e,B.SHOW_ELEMENT|B.SHOW_COMMENT|B.SHOW_TEXT|B.SHOW_PROCESSING_INSTRUCTION|B.SHOW_CDATA_SECTION,null)},bt=function(e){return e instanceof G&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof W)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Nt=function(e){return"function"==typeof R&&e instanceof R};function Rt(e,t,n){u(e,(e=>{e.call(o,t,n,ft)}))}const wt=function(e){let t=null;if(Rt(de.beforeSanitizeElements,e,null),bt(e))return Et(e),!0;const n=pt(e.nodeName);if(Rt(de.uponSanitizeElement,e,{tagName:n,allowedTags:Ne}),Ue&&e.hasChildNodes()&&!Nt(e.firstElementChild)&&S(/<[/\w!]/g,e.innerHTML)&&S(/<[/\w!]/g,e.textContent))return Et(e),!0;if(e.nodeType===ee)return Et(e),!0;if(Ue&&e.nodeType===te&&S(/<[/\w]/g,e.data))return Et(e),!0;if(!Ne[n]||ve[n]){if(!ve[n]&&Dt(n)){if(De.tagNameCheck instanceof RegExp&&S(De.tagNameCheck,n))return!1;if(De.tagNameCheck instanceof Function&&De.tagNameCheck(n))return!1}if(je&&!$e[n]){const t=ae(e)||e.parentNode,n=ie(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=$(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,re(e))}}}return Et(e),!0}return e instanceof O&&!function(e){let t=ae(e);t&&t.tagName||(t={namespaceURI:ot,tagName:"template"});const n=h(e.tagName),o=h(t.tagName);return!!it[e.namespaceURI]&&(e.namespaceURI===tt?t.namespaceURI===nt?"svg"===n:t.namespaceURI===et?"svg"===n&&("annotation-xml"===o||lt[o]):Boolean(Tt[n]):e.namespaceURI===et?t.namespaceURI===nt?"math"===n:t.namespaceURI===tt?"math"===n&&ct[o]:Boolean(yt[n]):e.namespaceURI===nt?!(t.namespaceURI===tt&&!ct[o])&&!(t.namespaceURI===et&&!lt[o])&&!yt[n]&&(st[n]||!Tt[n]):!("application/xhtml+xml"!==ut||!it[e.namespaceURI]))}(e)?(Et(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!S(/<\/no(script|embed|frames)/i,e.innerHTML)?(Me&&e.nodeType===Q&&(t=e.textContent,u([he,ge,Te],(e=>{t=y(t,e," ")})),e.textContent!==t&&(f(o.removed,{element:e.cloneNode()}),e.textContent=t)),Rt(de.afterSanitizeElements,e,null),!1):(Et(e),!0)},Ot=function(e,t,n){if(Ge&&("id"===t||"name"===t)&&(n in r||n in dt))return!1;if(Ce&&!Le[t]&&S(ye,t));else if(xe&&S(Ee,t));else if(!we[t]||Le[t]){if(!(Dt(e)&&(De.tagNameCheck instanceof RegExp&&S(De.tagNameCheck,e)||De.tagNameCheck instanceof Function&&De.tagNameCheck(e))&&(De.attributeNameCheck instanceof RegExp&&S(De.attributeNameCheck,t)||De.attributeNameCheck instanceof Function&&De.attributeNameCheck(t))||"is"===t&&De.allowCustomizedBuiltInElements&&(De.tagNameCheck instanceof RegExp&&S(De.tagNameCheck,n)||De.tagNameCheck instanceof Function&&De.tagNameCheck(n))))return!1}else if(Je[t]);else if(S(be,y(n,_e,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==E(n,"data:")||!Ve[e]){if(ke&&!S(Ae,y(n,_e,"")));else if(n)return!1}return!0},Dt=function(e){return"annotation-xml"!==e&&T(e,Se)},vt=function(e){Rt(de.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||bt(e))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:we,forceKeepAttr:void 0};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=pt(a),m=c;let f="value"===a?m:A(m);if(n.attrName=s,n.attrValue=f,n.keepAttr=!0,n.forceKeepAttr=void 0,Rt(de.uponSanitizeAttribute,e,n),f=n.attrValue,!Ye||"id"!==s&&"name"!==s||(At(a,e),f="user-content-"+f),Ue&&S(/((--!?|])>)|<\/(style|title)/i,f)){At(a,e);continue}if("attributename"===s&&T(f,"href")){At(a,e);continue}if(n.forceKeepAttr)continue;if(!n.keepAttr){At(a,e);continue}if(!Ie&&S(/\/>/i,f)){At(a,e);continue}Me&&u([he,ge,Te],(e=>{f=y(f,e," ")}));const d=pt(e.nodeName);if(Ot(d,s,f)){if(le&&"object"==typeof j&&"function"==typeof j.getAttributeType)if(l);else switch(j.getAttributeType(d,s)){case"TrustedHTML":f=le.createHTML(f);break;case"TrustedScriptURL":f=le.createScriptURL(f)}if(f!==m)try{l?e.setAttributeNS(l,a,f):e.setAttribute(a,f),bt(e)?Et(e):p(o.removed)}catch(t){At(a,e)}}else At(a,e)}Rt(de.afterSanitizeAttributes,e,null)},Lt=function e(t){let n=null;const o=St(t);for(Rt(de.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)Rt(de.uponSanitizeShadowNode,n,null),wt(n),vt(n),n.content instanceof s&&e(n.content);Rt(de.afterSanitizeShadowDOM,t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(rt=!e,rt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Nt(e)){if("function"!=typeof e.toString)throw b("toString is not a function");if("string"!=typeof(e=e.toString()))throw b("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Pe||gt(t),o.removed=[],"string"==typeof e&&(Xe=!1),Xe){if(e.nodeName){const t=pt(e.nodeName);if(!Ne[t]||ve[t])throw b("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof R)n=_t("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===J&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!Me&&!ze&&-1===e.indexOf("<"))return le&&We?le.createHTML(e):e;if(n=_t(e),!n)return Fe?null:We?ce:""}n&&He&&Et(n.firstChild);const c=St(Xe?e:n);for(;i=c.nextNode();)wt(i),vt(i),i.content instanceof s&&Lt(i.content);if(Xe)return e;if(Fe){if(Be)for(l=me.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(we.shadowroot||we.shadowrootmode)&&(l=fe.call(a,l,!0)),l}let m=ze?n.outerHTML:n.innerHTML;return ze&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&S(K,n.ownerDocument.doctype.name)&&(m="\n"+m),Me&&u([he,ge,Te],(e=>{m=y(m,e," ")})),le&&We?le.createHTML(m):m},o.setConfig=function(){gt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Pe=!0},o.clearConfig=function(){ft=null,Pe=!1},o.isValidAttribute=function(e,t,n){ft||gt({});const o=pt(e),r=pt(t);return Ot(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&f(de[e],t)},o.removeHook=function(e,t){if(void 0!==t){const n=m(de[e],t);return-1===n?void 0:d(de[e],n,1)[0]}return p(de[e])},o.removeHooks=function(e){de[e]=[]},o.removeAllHooks=function(){de={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},o}();return re}))
タイトルとURLをコピーしました