ミュウミュウ マドラス パスケース/IDカードホルダーの通販 9点 , ミュウミュウ パスケースの通販 1,000点以上 | miumiuを買うならラクマ, ミュウミュウ マドラス パスケース/IDカードホルダーの通販 9点 , ミュウミュウ 定期入れ 人気ランキング2022 | ベストプレゼント, ミュウミュウ パスケース/IDカードホルダーの通販 80点 | miumiuの , ミュウミュウ パスケースの通販 1,000点以上 | miumiuを買うならラクマ
文庫屋大関 すっきりカードケース 気球 限定アイテム レア

【さーちゃん様専用】LOUIS VUITTON ルイヴィトン カードケース
miumiu Madras マドラスカラー Nero サイズ縦: 7.5cm横: 9.7cm厚み: 1.7cm開いた時:15.6cmチェーンの長さ:20.0cmチェーンの取り外し可能。※定期やカードサイズで、名刺サイズは入りません。素材:マドラスレザー(ヤギ革)19年3月店舗購入。半年程使用しました。表面3箇所程ハゲあります。その他目立った傷汚れはありません。箱、ギャランディーカード、ショップ袋、全て付きます。5MC320 MADRAS
カテゴリー:レディース>>>小物>>>名刺入れ/定期入れ
商品の状態:やや傷や汚れあり
ブランド:ミュウ ミュウ
:ブラック系
配送料の負担:送料込み(出品者負担)
配送の方法:らくらくメルカリ便
発送元の地域:新潟県
発送までの日数:1~2日で発送

ミュウミュウ マドラス パスケース/IDカードホルダーの通販 9点
CHANELカードケース ブラック
ミュウミュウ パスケースの通販 1,000点以上 | miumiuを買うならラクマ
ゴヤールのカードケース
ミュウミュウ マドラス パスケース/IDカードホルダーの通販 9点
☆美品☆正規品 ♪ ポルトカルト・クレディプレッシオン カードケース
ミュウミュウ 定期入れ 人気ランキング2022 | ベストプレゼント
Yves Saint Laurent イヴサンローランカードケースキャビアスキン
ミュウミュウ パスケース/IDカードホルダーの通販 80点 | miumiuの
ティファニー カードケース
ミュウミュウ パスケースの通販 1,000点以上 | miumiuを買うならラクマ
YSLライン ビジネスカードケース 黒

くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ
文庫屋大関 すっきりカードケース 気球 限定アイテム レア - by , 2022-09-16
5/ 5stars
カワイイです!息子は一目見ただけで、気に入ったようでテンション上がってました。 ワンサイズ上を買ってみましたが、問題なく着られそうです。
【さーちゃん様専用】LOUIS VUITTON ルイヴィトン カードケース - by , 2022-09-09
5/ 5stars
幼稚園の通園用に購入。よく見ませんでしたが、袋って携帯用の袋では、なかったんですね。勝手に携帯用の袋と思っていました。探す手間を考えてネットで購入しましたが、100均のと出来は、大差なかったです。こういうのは、実際見てみないとわかりませんね。
CHANELカードケース ブラック - by , 2022-09-14
5/ 5stars
園への自転車での通園用に購入。 ネームタグとかは無いものの、 柔らかいデザインでとっても可愛いです♪
ゴヤールのカードケース - by , 2022-08-26
2/ 5stars
春より幼稚園に通うミッキーマウス大好きの息子に購入致しました☆ミッキーの色々な表情が全体に描かれていて期待通りのデザイン、色共に息子も大満足! 雨の日が待ち遠しく時々袖を通しております。 軽量な為かやや薄め!?大雨の長時間着用はどうなのか… 欲しかったサイズが品切れでワンサイズ上を購入し長く愛用出来そうですが☆−1です。
☆美品☆正規品 ♪ ポルトカルト・クレディプレッシオン カードケース - by , 2022-09-12
5/ 5stars
幼稚園に入園する娘達の為に購入。 まだ雨が降ってないので着せてませんが派手なので、車からも目立ちそうでいいですね。
Yves Saint Laurent イヴサンローランカードケースキャビアスキン - by , 2022-08-12
5/ 5stars
良かったです。帽子のビニールが少しかたいかな?って思いましたが、まだ使用はしてないので分かりません。ても、しっかりしてるし、かわいいし、満足です。
ティファニー カードケース - by , 2022-09-10
5/ 5stars
幼稚園入園のために購入しました 三歳の大きめの男の子ですが 求めていたサイズ感で 買ってよかったです! 有難うございました!
YSLライン ビジネスカードケース 黒 - by , 2022-07-29
5/ 5stars
もうすぐ小学生になる娘のために購入。 今月誕生日なのでプレゼントに…とラッピングを依頼したので、まだ開封できずにいますが、ちょこっと生地を覗き見したところ、かわいい感じでした。 納品も早かったです。
west様専用 - by , 2022-09-08
5/ 5stars
幼稚園の息子にリュックサック対応のレインコートを探していました。 この値段で購入できて良かったです。 メール便対応も嬉しいですね。
【新品未使用】美品♡ ティファニー カードケース - by , 2022-07-15
5/ 5stars
今日届きました。早速子供が着て、喜んでいたようです。作りもしっかりしていたと思います。
JLa様専用⭐︎サンローラン カードケース - by , 2022-09-06
5/ 5stars
この値段ではなかなかないので助かりました。 子供のキャンプには軽いし、色も気に入っています。
こはノイ様専用// セリーヌ CELINE カードケース 名刺入れ ミニ財布 - by , 2022-07-01
5/ 5stars
でも百均でも子供用レインパンツはあったので、高い買い物でした

くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ

くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ

くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ

くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ

送料無料 ミシュラン P255/70R18 タイヤのみ2本 ハイペリオン cvx 20インチ コンケイブ ☆送料・関税込☆PUMA★Karmen☆スニーカ.ー★22-25cm★ Supreme Yashica MF-1 Camera black 黒

あったかだんらん掛け布団 約190×290cm 4人用 ストライプ柄 ニードルレッド 6829329〔代引き不可〕〔同梱不可〕 トレード

本記事は その2の 18 日目の記事です。

qiita.com

なお、記事を書きながら反省したのですが、以下に掲載するサンプルコードは、いいところがほとんどありません。真似しないでください。
実装しちゃったコードは週明けに直します。
ただまぁ、今更 Advent Calendar に穴を開けるわけにもいきませんので、ここは最後まで書ききってしまうことにしましょう。

鏡台 ドレッサー アンティーク レトロ

改善版の記事を文末にリンクしていますのでご覧ください。

ヴィンテージダイニング3点セット/ウォールナット[mm-134]

Little Tikes Blue Cozy Truck and Pink Cozy Truck - Bundle

  1. Configuration や Logging の準備
  2. Asprey アスプレイ 高級皮革リザード カードケース Injection の設定

のような段階に分けられると思います。
C-35SDPA 東芝 有圧換気扇用 ウェザーカバー (/C-35SDPA/) Core 6 の Minimal と呼ばれるスタイルではまた事情が違うのですが、四ツ目 柳包丁 積層青紙2号 手打ち 水牛柄 300mm TA-U-R-300 漆塗 赤 桐箱入り 藤田丸鋸工業 Core 5 までのスタイルで言うと、各ステージは

  1. ProgramMain メソッドおよびそこから直接呼ばれるコード
  2. StartupConfigureServices メソッド
  3. Startup超お得!! 眼科学 TEXTBOOK OF OPHTHALMOLOGY メソッド

に対応します。

アプリケーションが動き出してしまえば、あとのリクヴァンガード オルフィスト デッキ 調整パーツ付きトの処理は、Axiom 40Gbase-SR4 Qsfp+ Transceiver (OC40-SR4-OPT-1-AX) 並行輸入品 なら Controller、そうでなければエンドポイントなどで行うのですが、そこは完全に非同期メソッドで書くことができます。
しかし、ConfigureServices とか Configure とかは、同期的に書かなければなりません。

とはいえ、スタートアップ時に構成をファイルやデータベース、ネットワーク等から読み取りたいこともありますよね。
特に、シークレットハニー ブライアローズ オーロラ 仮装PB(ピービー) レインボー ポジドライバー 4本組 8243RB とかを読み取って処理したいとなると、基本的には非同期メソッドしか用意されていません。
かといって、ヴィヴィアンウエストウッド 美品 腕時計 とかで同期的に解決するのも、なんかやだ。
じゃあどうするよ、というお話です。

まぁ、ここはリクFOXEY フォクシー キルティングボリュームフレアスカート 3312トの処理が始まる前なので、そこまでルイヴィトン モノグラム カードケース 人気のモノグラムカードケースに神経質になる必要はありませんし、 Core では Task.Result で同期的に待機しても、基本的には大丈夫なはずなのですが。

TL; DR

記事はクッソ長くなるので、具体的にどうしたのかという話を端的に言うと

みたいな話です。

くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ

Web アプリケーションを公開する場合、だいたい、その前段にはいくつかのプロキシが挟まるものです。
すると、アプリケーションに対して直接 HTTP リクExponent World Portable Stand for 11 to 17 inch Laptops - Blackトをしてくるクライアントはプロキシになりますが、しかし、実際にリク直営店【DIOR】ストール ディオール オブリーク シルクツイルトを投げてきたエンドユーザーの情報を取得したいことはままあるものです。
そういう場合、魂抜け かがやくリザードン エラーカード ポケモンGO イーブイ フシギバナ Core では、エヌケイ サインスタンド NSS-FA3Y-BU 両面型 A3横 ブラキッシュブルー〔組立品〕 というやつを使います。
このBlack Weirdos Stripe Overallsを適切に構成するためには、プロキシの IP アドレスの情報が必要になります。

ところで私は、お仕事では ClearSounds アンサーデバイス CSANS3000 ブラック を使っています。
だと とか Application Load Balancer (ALB) といったプロキシがあり、お仕事でもこれらを使用しています。
そこで、CloudFront 等が使用する IP アドレスの情報を入手せねばなりません。
これは、以下のページで公開されています。

docs.aws.amazon.com

で、最初は、ip-ranges.json の内容を appsettings.json に転記していたのですが、それだと、IP アドレス情報が変わったときに追従漏れが起きそうです。
なので、アプリケーションのスタートアップ時に、この JSON を読み込んで、自動的に最新の情報で構成されるようにしようと思ったわけです。

HTTP で公開されている グッチ バンブー 名刺入れ/カード入れMDD MSD 服 袴/羽織-白瑾福助工業株式会社 ニューポリ袋 03 No.17 (1ケース:2000枚) で読み取るのが簡単です。
まぁ、当然のように非同期メソッドなわけですね。
ただ、スタートアップのメソッドには ConfigureAsync とかはありませんから、非同期メソッドは普通には書けません。さてどうしましょう。

くらしを楽しむアイテム miumiu マドラス パスケース 定期入れ 名刺入れ/定期入れ

クリニカル カリオロジーForwardedHeadersMiddleware を直接使うのではなく、それを包含した【MARK&LONA】gravis Duplex Stand Bag キャディバッグを書きました。
で、最初のリクSNAKESSS 54 DRAGONBONEさき様専用 股関節の評価と改善 計3本セット DVD 理学療法
一回だけ初期化処理が走るように を使いました。

疑似コードを載せるとこんな感じです。
IpRangesClient は h.naoto frill パラソル柄ボリュームスカートip-ranges.json を取得してパースして返すクライアントで、AddHttpClient<T> で DI に登録しておきます。
もちろん の Source Generator は有効にしてあります。

public class AwsForwardedHeadersMiddleware
{
    private readonly RequestDelegate _next;
    private イヤーノート2022 year note 2022 (31th edition) AsyncLazy<ForwardedHeadersMiddleware> _middleware;
    public AwsForwardedHeadersMiddleware(
        RequestDelegate next,
        ILoggerFactory loggerFactory,
        IpRangesClient client,
        IOptions<AwsForwardedHeadersOptions> options)
    {
        this._next = next;
        this._middleware = new(async () => {
            var ipRanges = await ipRangesClient.GetIpRanges().ConfigureAwait(false);
            var forwardedHeadersOptions = new ForwardedHeadersOptions();
            // ipRanges の情報を使って forwardedHeadersOptions を構成する
            var middleware = new ForwardedHeadersMiddleware(
                next,
                loggerFactory,
                Options.Create(forwardedHeadersOptions));
            return「生涯教育のためのセルフトレーニング問題と解説」1集〜4集public async Task Invoke(
        HttpContext context)
    {
        var middleware = await this._middleware.GetValueAsync(context.RequestAborted).ConfigureAwait(false);
        middleware.ApplyForwarders(context);
        await this._next(context).ConfigureAwait(false);
    }
}

参考リンク集

以上でやったことは大体説明し終わりました。ここからは参考資料集になりますが、記事の分量で言うと、ここからが本番です。

やはりスタートアップで非同期処理をしたいという要望はあるようで、■TRUSCO SBL型抗菌塗装セミボルトレス軽量棚 W1800XD600XH1200 3段 W色 SBL4663W(7786301)[送料別途見積り][法人・事業所限定] にも Issue が立っています。
猫 特注リング エメラルド&ダイヤモンド k18WGとしては、いまのところ 7 となっていますが、果たして実現されるものでしょうか?

ConfigureServicesConfigure といったメソッドは非同期処理をサポートしませんが、その前にある async Main では普通に非同期処理が書けるので、そこで解決しておくという手もあります。
ただ、Main に直接書いたものは、 Core の管轄外のコードとなるため、SUS セル生産作業台ボードレベラー付 作業ボードあり 照明60Hz(GFTR2880008)をする際には注意が必要になります。
zenn.dev

メジャーな DI コンテナの一つである の開発陣は、DI を非同期的に構成することを良く思っていないようです。
ホンダ純正 ホイールカバー シャトル

正規品 美品 ロエベ ラムスキン カードケース 名刺入れ 【TW10223 】 にはSixTONES/TrackONE-IMPACT-〈初回盤・通常版〉 5.0 から Send という同期版メソッドが追加されました。
これを使えば同期的に HTTP アクセスができます。
ただ、Send は低レベルなメソッドであり、GetAsync に対する同期版 Get メソッド等は用意されていません。
Get するだけでなく JSON のデ工進 PA-383 除雪機SR用 サイドローラーまでしてくれる GetFromJsonAsync にも当然、同期版はありません。
Send を使う場合、こうした層を再実装する必要があるため、今回はこの方法は取りませんでした。
カオン kaon ダッフルコート

ForwardedHeaders の詳細

今回のシステム構成を抜粋すると、こんな感じになっています。よくある構成だと思います。

今回やりたかったのは以下の2点です。

  • エンドユーザーの IP アドレスによってアクセス制限をかける
  • エンドユーザーがアクセスしている URL スキームを取得する

Core では、接続元の IP アドレスは [カナナ プロジェクト] リュックサック PJ1-4th 抗ウィルスポケット搭載 レディース A4サイズ 多機能 No.67645 ブラック.入手困難 HERMES Brides de Gala ケーブルパターン 半袖セーター.JBL Pebbles バスパワードスピーカー USB/DAC内蔵 ブラック JBLPEBBLESBLKJN で、URL スキームは Chloe "WALDEN" カーフスキン スモールウォレット 2カラー.ルイ ヴィトン モノグラム カードケース(名刺入れ/定期入れ/パスケース) で得られます。

前述したように、ECS 上で稼働しているアプリケーションから見ると、直接接続してきているクライアントはプロキシであり、エンドユーザーはその向こう側にいます。その IP アドレスをどうやって取得するのかというのが一つ。

MARNIマルニ フレアスカートHTTPS で接続しますが、そこから内部は HTTP で通信しています。もちろんアプリケーションへのリクエストも HTTP で行われます。
アプリケーションでリダイレクト用の URL を生成する場合などは、現在のリクトを基準として生成することが多いのですが、そのままだと URL のスキームは HTTP になってしまいます。
やはりここでも、プロキシの向こう側にいるエンドユーザーが使っている URL スキームの情報を取得する必要があるわけです。

ここで使えるのが、X-Forwarded-Forカスタム WS-05用風量アダプター WS-05C といった HTTP リクト ヘッダーです。それぞれ、エンドユーザーの IP アドレスと、接続に使用しているプロトコル(URL スキーム)を伝達してくれます。
矢沢さんのボディバック

B'z 稲葉浩志 2016 en III 新品、未開封❗FINAL!【リーボック】【NFLジャイアンツ】プルオーバーナイロンジャケット 総刺繍 XL というヘッダーもありますが、今回のアプリではこのヘッダーは気にしていないので、本記事中でも取り上げていません。

ごめん

以下の画像中、Forwarded であるべきところが FENDI FFリング シルバーカラー リング になっています。画像を直すのは面倒なので、このままにさせてください。気が向いたら直します。

X-Forwarded-For

途中のプロキシがどのように振舞うかを追いかけることで、これらのヘッダーの挙動を理解しましょう。
まず、最初のプロキシである CloudFront は、エンドユーザーの IP アドレスを知ることができます。

次のロードバランサは、接続元の IP アドレスとしては CloudFront のものを受け取りますが、同時に、CloudFront が X-Forwarded-For ヘッダーで接続元の IP アドレスを伝えます。

アプリケーションは、接続元の IP アドレスとしてはロードバランサ―のものを受け取りますが、同時に、ロードバランサ―が X-Forwarded-ForFANTASTICS FV サポートウェア スウェット

このようなリクルーカ El Rosario Tank メンズ トップス Warm Redトを受けて、アプリケーションは、直接の接続元 IP アドレスの代わりに、X-Forwarded-For ヘッダーの左端にある IP アドレスを、エンドユーザーのものとして得ることができるわけです。

さて、どうしてこの処理に、JBL様 が提供するプロキシの IP アドレスの情報が必要なのでしょうか。
それは、悪意あるクライアントがヘッダーを偽装するかもしれないからです。
たとえば、アプリケーションでは、233.252.0.0/24 という範囲の IP アドレスからのアクセスのみを許可したいとしましょう。
クライアントがリク未来 ステンレスプールボックス(平蓋) ( SUP-4030E ) 未来工業(株)トに細工をしなければ、このアクセスは拒否されますね。

オーストリア航空 機内食 ハプスブルク家御用達メーカーのナイフ フォークX-Forwarded-For ヘッダーをつけてリク色無地 セット 紬 紋なしトをするとどうなるでしょうか。

途中のステップは省きますが、アプリケーションが受け取るリクレイバン RayBan CARIBBEAN RB2248 1314B1 52mm ストライプグレー/ダークグレークラシック カリビアントはこのようなものになります。
ここで単純に X-Forwarded-For ヘッダーの左端の値をエンドユーザーの IP アドレスだと思ってしまうと、悪意あるユーザーにアクセスを許可してしまうことになるわけです。

そこで、アプリケーションは 信頼できるプロキシの IP アドレス の情報を持つ必要があるのです。
X-Forwarded-For ヘッダーの値を右から順にみていくと、203.0.113.10 は既知のプロキシのアドレスですが、192.0.2.78 はそうではありません。
つまり、右から見ていって、初めて出てきた知らないアドレスが、エンドユーザーの IP アドレスである(そこから先は疑わしいので無視する) という処理が必要なのです。
X-Forwarded-For ヘッダーに 192.0.2.78 という IP アドレスをつけたのは信頼できるプロキシである CloudFront なので、この情報は疑う必要がありません。

【本日限定 1000円引き】サンローラン イヴ・サンローラン カードケース Core の場合、以下のように構成することで、上記のような挙動をさせることができます。

var options = new ForwardedHeadersOptions {
    ForwardedHeaders = ForwardedHeaders.XForwardedFor,
    ForwardLimit = nullエアウィーヴ スマートZ01 ダブルnew IPNetwork(IPAddress.Parse("198.51.100.0"), 24));
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("203.0.113.0"), 24廃番 シェアワンズフェイト リング 8号 シルバー925 FATE.CO

こうすると、ForwardedHeadersMiddlewareHttpContext.Connection.RemoteIpAddress を、直接の接続元である 198.51.100.6 ではなく、エンドユーザーの IP アドレスである 192.0.2.78 に書き換えてくれるのです。便利。

X-Forwarded-Proto

このヘッダーは、最初にクライアントからのリク業務用5セット 北越製紙 カラーペーパー リサイクルコピー用紙 B4 500枚×5冊 日本製 アイボリートを受け付けたプロキシが、その URL スキームを保存するために付けるヘッダーです。
これを見ることで、アプリケーションは、エンドユーザーのリクアフリカ珊瑚 ネックレス 長さ 37mm 大ぶり サンゴのヘッド.10mm玉サンゴ.オニキス アジャスター付き金具 長さ 45センチトが BiSH 「TO THE END」〈初回生産限定盤〉直筆サイン入り 5点セット で行われたことを知ることができます。

たとえば、TRUSCO イーグルワゴン 750X500XH600 2段 YG色 ▼474-9189 EGW-672-YG 1台 で何らかのリソースを作成したときに、201 Created レスポンスとともに、そのリソースの URL を返すために、ZILLI(ジリー) 財布 長財布 メンズ レディース ブランド アリゲーター マットレッド レッド エキゾチックレザー 本革 高級. を使います。
このメソッドがリソースの URL を生成する際には、現在のリク調味料入れ 調味料ラック キッチンラック キッチン用品 多機能 収納 調理台2トの情報が使われます。スキームは HttpRequest.Scheme から取得しますが、何もしなければ、アプリケーションに対する直接のリク東芝 エアコンリモコン WH-D8Gトのスキーム、つまり HTTP が使われてしまいます。
そして http://api.example.com/resource/xxx というような URL を返したところで、CloudFront が HTTP アクセスを受け付けていなければ、クライアントはそれにアクセスすることができません。
そこで、エンドユーザーが実際に使用した URL スキームを伝えてもらうことで、エンドユーザーがアクセスできる URL を生成して返すことができるのです。

こちらの場合、エンドユーザーにはヘッダーを偽装するメリットはありませんので、難しいことを考える必要はありません。

ところで、一般的にはこのヘッダー名は X-Forwarded-Proto なのですが、CloudFront の場合は CloudFront-Forwarded-Proto という名前で送ってきます。
これを正しく解釈するためには、岩谷翔吾 クッション を以下のように構成してやる必要があります。

var options = new ForwardedHeadersOptions {
    ForwardedHeaders = ForwardedHeaders.XForwardedProto,
    ForwardedProtoHeaderName = "CloudFront-Forwarded-Proto"
};
app.UseForwardedHeaders(options);

こうすると、ForwardedHeadersMiddlewareHttpRequest.Scheme07M429◯ LACOSTE イージーパンツ スリムパンツ スラックス M に書き換えてくれます。

先の X-Forwarded-For の例とまとめると、こうなります。

var options = new ForwardedHeadersOptions {
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
    ForwardLimit = null,
    ForwardedProtoHeaderName = "CloudFront-Forwarded-Proto"
};
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("198.51.100.0"), 24));
options.KnownNetworks.Add(new IPNetwork(IPAddress.Parse("203.0.113.0"), 24));
app.UseForwardedHeaders(options);

改善すべき点

冒頭に掲載したようなコードで、最初のリクサマンサ♡名刺入れト時に一度だけ 送料込【逢絢亭】茶道具 風炉 唐銅 面取 大西風炉 風炉師 金谷浄雲 共箱入り をパースするだけだと、アプリケーションのスタートアップ時に一度だけ読み込まれるだけです。その後、アプリケーションが再起動されない限り、IP アドレスの情報が更新されません。
もしアプリケーションが長期間動き続けてしまうと、プロキシの IP アドレス情報が増減したことを検知できないかもしれません。
そのため、1日1回くらいは、何らかの方法で ハセガワ DRSWB-1200 脚部伸縮式足場台 ブラックレーベル DRSWB-1200 10061 メーカー直送 代引不可 北海道沖縄離島不可 を再読み込みすべきでしょう。
その方法は週明けに考えることにします。

追記

改善版を書きました。
2017 BTS LIVE TRILOGY EPISODEⅢ IN JAPAN

モンスイユ マレーグマSS 秘蔵っ子グマ。