{"id":17551,"date":"2026-10-05T17:31:41","date_gmt":"2026-10-05T08:31:41","guid":{"rendered":"https:\/\/f1-lap-time.com\/?page_id=17551"},"modified":"2026-10-05T17:31:42","modified_gmt":"2026-10-05T08:31:42","slug":"%e3%83%9e%e3%83%ac%e3%83%bc%e3%82%b7%e3%82%a2gp%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc","status":"publish","type":"page","link":"https:\/\/f1-lap-time.com\/?page_id=17551","title":{"rendered":"\u30de\u30ec\u30fc\u30b7\u30a2GP\u30ec\u30d3\u30e5\u30fc"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">F1\u304c\u30de\u30ec\u30fc\u30b7\u30a2\u306b\u5e30\u3063\u3066\u304d\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f4e\u4e2d\u9ad8\u901f\u30b3\u30fc\u30ca\u30fc\u304b\u3089\u30ed\u30f3\u30b0\u30b9\u30c8\u30ec\u30fc\u30c8\u307e\u3067\u3001\u3042\u3089\u3086\u308b\u8981\u7d20\u304c\u8a70\u307e\u3063\u305f\u975e\u5e38\u306b\u30c1\u30e3\u30ec\u30f3\u30b8\u30f3\u30b0\u306a\u30c8\u30e9\u30c3\u30af\u3067\u3042\u308a\u3001\u305d\u306e\u6691\u3055\u3068\u8def\u9762\u306e\u7c97\u3055\u304b\u3089\u30bf\u30a4\u30e4\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u306b\u304a\u3044\u3066\u3082\u975e\u5e38\u306b\u96e3\u3057\u3044\u3002\u305d\u3093\u306a\u4e45\u3005\u306e\u30bb\u30d1\u30f3\u3067\u306e\u958b\u50ac\u3068\u306a\u308b\u4e00\u6226\u3092\u3001\u4eca\u56de\u3082\u30c7\u30fc\u30bf\u3092\u4ea4\u3048\u3066\u632f\u308a\u8fd4\u3063\u3066\u3044\u3053\u3046\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u306a\u304a\u5f53\u30b5\u30a4\u30c8\u3067\u306f\u3001\u5f8c\u5e74\u632f\u308a\u8fd4\u3063\u305f\u969b\u306b\u6df7\u4e71\u305b\u306c\u3088\u3046\u3001\u3053\u306e\u30b0\u30e9\u30f3\u30d7\u30ea\u3092\u30de\u30ec\u30fc\u30b7\u30a2GP\u3068\u3057\u3066\u6271\u3046\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-1024x768.png\" alt=\"\" class=\"wp-image-17554\" srcset=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-1024x768.png 1024w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-300x225.png 300w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-768x576.png 768w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/\u30cd\u30aa\u30f3\u8f1d\u304f\u30b5\u30fc\u30ad\u30c3\u30c8\u6226\u7565\u30de\u30c3\u30d7.png 1448w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">\u56f31 \u30b3\u30fc\u30b9\u56f3<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">1. \u7d76\u5bfe\u738b\u8005\u304c\u9031\u672b\u3092\u5b8c\u5168\u652f\u914d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u5b63\u306f\u30ec\u30c3\u30c9\u30d6\u30eb\u306e\u30de\u30b7\u30f3\u306e\u6226\u95d8\u529b\u304c\u4e4f\u3057\u304f\u3001\u52dd\u5229\u304c\u306a\u304b\u3063\u305f\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u3002\u3057\u304b\u3057\u4eca\u56de\u306f\u91d1\u66dc\u65e5\u304b\u3089\u7af6\u4e89\u529b\u3092\u898b\u305b\u3001\u4e88\u9078\u3067\u306f2\u4f4d\u306e\u30cf\u30df\u30eb\u30c8\u30f3\u306b0.298\u79d2\u5dee\u3092\u3064\u3051\u308b\u5727\u5dfb\u306e\u30dd\u30fc\u30eb\u30dd\u30b8\u30b7\u30e7\u30f3\u3092\u7372\u5f97\u3057\u3001\u6c7a\u52dd\u3067\u3082\u30dd\u30fc\u30eb\u30fb\u30c8\u30a5\u30fb\u30a6\u30a3\u30f3\u3092\u98fe\u3063\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.1. \u30bf\u30a4\u30e4\u3092\u6301\u305f\u305b\u305f\u6700\u7d42\u30a2\u30bf\u30c3\u30af<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305a\u306f\u4e88\u9078\u306e\u30e9\u30c3\u30d7\u3092\u632f\u308a\u8fd4\u3063\u3066\u307f\u3088\u3046\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"365\" src=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-2026-10-04-20.16.05-1024x365.png\" alt=\"\" class=\"wp-image-17553\" srcset=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-2026-10-04-20.16.05-1024x365.png 1024w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-2026-10-04-20.16.05-300x107.png 300w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-2026-10-04-20.16.05-766x273.png 766w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-2026-10-04-20.16.05-1536x547.png 1536w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-2026-10-04-20.16.05-2048x730.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">\u56f32 \u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\uff081\u56de\u76ee\uff1a\u30aa\u30ec\u30f3\u30b8\u30012\u56de\u76ee\uff1a\u7d3a\uff09\u3001\u30cf\u30b8\u30e3\u30fc\uff08\u767d\uff09\u306e\u30c6\u30ec\u30e1\u30c8\u30ea<br>\uff08Data: <a href=\"https:\/\/www.gp-tempo.com\/\" target=\"_blank\" rel=\"noopener\" title=\"\">GP Tempo<\/a>\uff09<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u3068\u30cf\u30b8\u30e3\u30fc\u3067\u7279\u306b\u5dee\u304c\u3064\u3044\u305f\u306e\u304c\u3001\u30bf\u30fc\u30f32\u304b\u3089\u306e\u7acb\u3061\u4e0a\u304c\u308a\u3060\u3002\u4f4e\u901f\u304b\u3089\u30bf\u30fc\u30f33\u3078\u3068\u66f2\u304c\u308a\u306a\u304c\u3089\u30c8\u30e9\u30af\u30b7\u30e7\u30f3\u3092\u304b\u3051\u3066\u3044\u304f\u30c6\u30af\u30cb\u30ab\u30eb\u306a\u30b3\u30fc\u30ca\u30fc\u3067\u3001\u3053\u3053\u3067\u306e\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u306f\u898b\u4e8b\u3060\u3063\u305f\u3002\u30cf\u30b8\u30e3\u30fc\u3082\u9045\u304b\u3063\u305f\u308f\u3051\u3067\u306f\u306a\u304f\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u3084\u30e9\u30c3\u30bb\u30eb\u3082\u540c\u7a0b\u5ea6\u3067\u3001\u552f\u4e00\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u306b\u6bd4\u80a9\u3057\u305f\u306e\u304c\u30cf\u30df\u30eb\u30c8\u30f3\u3060\u3063\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30b0\u30e9\u30d5\u3092\u898b\u308b\u3068\u3001\u3053\u306e\u30bf\u30fc\u30f31,2\u306b\u95a2\u3057\u3066\u306f1\u56de\u76ee\u306e\u30a2\u30bf\u30c3\u30af\u306e\u65b9\u304c\u901f\u3044\u3002\u3060\u304c\u30012\u56de\u76ee\u306e\u30a2\u30bf\u30c3\u30af\u306e\u65b9\u304c\u3001\u6700\u5f8c\u306e2\u3064\u306e\u30b3\u30fc\u30ca\u30fc\u3067\u5727\u5012\u7684\u306a\u901f\u3055\u3092\u793a\u3057\u3066\u3044\u308b\u3002\u30bf\u30fc\u30f31,2\u306f\u30c8\u30e9\u30af\u30b7\u30e7\u30f3\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u3042\u308a\u3001\u304a\u305d\u3089\u304f2\u56de\u76ee\u306e\u30a2\u30bf\u30c3\u30af\u3067\u306f\u3053\u3053\u3067\u30bf\u30a4\u30e4\u306b\u639b\u3051\u308b\u8ca0\u8377\u3092\u63a7\u3048\u3081\u306b\u3057\u3066\u3001\u30e9\u30c3\u30d7\u306e\u6700\u5f8c\u307e\u3067\u30bf\u30a4\u30e4\u3092\u6301\u305f\u305b\u308b\u65b9\u5411\u306b\u3001\u8d70\u308a\u3092\u5fae\u8abf\u6574\u3057\u305f\u306e\u3067\u306f\u306a\u3044\u3060\u308d\u3046\u304b\u3002\u9577\u3044\u30d0\u30c3\u30af\u30b9\u30c8\u30ec\u30fc\u30c8\u524d\u306e\u30bf\u30fc\u30f314\u306e\u7acb\u3061\u4e0a\u304c\u308a\u306f\u975e\u5e38\u306b\u91cd\u8981\u3067\u3001\u30bf\u30fc\u30f315\u3082\u30b3\u30fc\u30ca\u30fc\u6ede\u5728\u6642\u9593\u304c\u9577\u304f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30e9\u30a4\u30f3\u307e\u3067\u306e\u8ddd\u96e2\u3082\u305d\u3053\u305d\u3053\u9577\u3044\u3002\u3053\u3053\u306b\u5411\u3051\u3066\u30bf\u30a4\u30e4\u3092\u4f59\u3089\u305b\u3066\u304a\u304f\u3053\u3068\u306f\u975e\u5e38\u306b\u91cd\u8981\u3067\u3001\u6700\u7d42\u30a2\u30bf\u30c3\u30af\u3067\u305d\u308c\u3092\u5b8c\u74a7\u306b\u3084\u308a\u9042\u3052\u305f\u306e\u306f\u3001\u300c\u3055\u3059\u304c\u738b\u8005\u306e\u8d70\u308a\u300d\u3067\u3042\u3063\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.2. \u30ec\u30fc\u30b9\u3092\u5b8c\u5168\u652f\u914d<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u30ec\u30fc\u30b9\u3067\u306f\u30b9\u30bf\u30fc\u30c8\u3067\u51fa\u9045\u308c\u305f\u3082\u306e\u306e\u30016\u5468\u76ee\u3067\u30e9\u30c3\u30bb\u30eb\u3092\u629c\u304d\u53bb\u308b\u3068\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306b\u5bfe\u3057\u3066\u3082\u653b\u52e2\u30029\u5468\u76ee\u306b\u306f0.3\u79d2\u5dee\u306b\u8feb\u3063\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3057\u3066SC\u5f8c\u306e\u30ea\u30b9\u30bf\u30fc\u30c8\u3067\u306f\u3001\u30bf\u30fc\u30f31\u3067\u30a2\u30a6\u30c8\u304b\u3089\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306b\u4e26\u3073\u639b\u3051\u3001\u30bf\u30fc\u30f32\u3067\u30a4\u30f3\u3092\u53d6\u3063\u305f\u3002<br>\u3053\u3053\u3067\u300c\u6280\u30a2\u30ea\u300d\u306a\u306e\u306f\u3001\u30bf\u30fc\u30f32\u3067\u904e\u5ea6\u306b\u524d\u306b\u51fa\u306a\u304b\u3063\u305f\u3053\u3068\u3060\u3002\u3053\u3053\u3067\u3082\u3046\u5c11\u3057\u901f\u5ea6\u3092\u4e57\u305b\u3066\u524d\u306b\u884c\u3063\u3066\u3057\u307e\u3046\u3068\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306b\u30af\u30ed\u30b9\u30e9\u30a4\u30f3\u306e\u9078\u629e\u80a2\u3092\u4e0e\u3048\u3066\u3057\u307e\u3046\u3002\u305d\u3057\u3066\u30bf\u30fc\u30f33\u3067\u5916\u5074\u306e\u6709\u5229\u306a\u30e9\u30a4\u30f3\u3092\u4e0e\u3048\u3001\u629c\u304d\u8fd4\u3055\u308c\u3066\u3057\u307e\u3046\u30ea\u30b9\u30af\u304c\u9ad8\u307e\u308b\u3002\u3060\u304c\u3001\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u306f\u30bf\u30fc\u30f32\u3067\u901f\u5ea6\u3092\u843d\u3068\u3057\u3066\u81ea\u8eab\u306f\u30a4\u30f3\u306b\u3001\u305d\u3057\u3066\u5916\u5074\u306b\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u3092\u7f6e\u3044\u305f\u307e\u307e\u3001\u30bf\u30fc\u30f33\u306b\u5411\u3051\u3066\u30a2\u30a6\u30c8\u5074\u3092\u53d6\u308c\u308b\u30e9\u30a4\u30f3\u3067\u3001\u3088\u308a\u76f4\u7dda\u7684\u306b\u7acb\u3061\u4e0a\u304c\u3063\u305f\u3002\u3053\u308c\u3092\u3084\u3089\u308c\u308b\u3068\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u3068\u3057\u3066\u306f\u624b\u3082\u8db3\u3082\u51fa\u306a\u3044\u3002\u3053\u308c\u305e\u4e00\u7d1a\u54c1\u306e\u30d0\u30c8\u30eb\u30b9\u30ad\u30eb\u3060\u3063\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u306e\u5f8c\u306e\u30da\u30fc\u30b9\u306f\u3082\u306f\u3084\u6700\u5f37\u7121\u6575\u3002\u3068\u306f\u3044\u3048\u3001\u30cf\u30b8\u30e3\u30fc\u306e\u30da\u30fc\u30b9\u3092\u898b\u308c\u3070\u3001\u30ec\u30c3\u30c9\u30d6\u30eb\u306e\u30de\u30b7\u30f3\u306e\u304a\u304b\u3052\u3068\u306f\u5230\u5e95\u8a00\u3048\u305a\u3001\u3053\u306e10\u5e74\u9593\u898b\u7d9a\u3051\u3066\u3044\u308b\u901a\u308a\u3001\u307e\u3055\u306b\u300c\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u304c\u3082\u304e\u7372\u3063\u305f\u52dd\u5229\u300d\u3067\u3042\u3063\u305f\u3068\u8a00\u3048\u308b\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. 20\u6b73\u306e\u30c1\u30e3\u30f3\u30d4\u30aa\u30f3\u8a95\u751f\u3078\u307e\u305f\u4e00\u6b69<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306f\u968f\u6240\u3067\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u306e\u96e3\u6613\u5ea6\u304c\u9ad8\u3044\u30b7\u30fc\u30f3\u304c\u898b\u53d7\u3051\u3089\u308c\u305f\u3002\u7279\u306b\u30ec\u30fc\u30b9\u524d\u534a\u306f\u30ec\u30fc\u30b7\u30f3\u30b0\u30d6\u30eb\u30ba\u52e2\u3084\u30aa\u30b3\u30f3\u306e\u96c6\u56e3\u3092\u4e0a\u4f4d\u52e2\u304c\u629c\u3044\u3066\u3044\u3051\u306a\u3044\u5c55\u958b\u304c\u751f\u3058\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3057\u304b\u3057\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306f\u30e9\u30c3\u30bb\u30eb\u3092\u629c\u304d\u53bb\u3063\u305f\u3002\u3053\u308c\u306b\u306f2\u3064\u306e\u8981\u7d20\u304c\u3042\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u3064\u76ee\u306f\u30bf\u30a4\u30e4\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u3060\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"520\" src=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-2-1.png\" alt=\"\" class=\"wp-image-17582\" srcset=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-2-1.png 1016w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-2-1-300x154.png 300w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-2-1-768x393.png 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><figcaption class=\"wp-element-caption\">\u56f33 \u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u3068\u30e9\u30c3\u30bb\u30eb\u306e\u30ec\u30fc\u30b9\u30da\u30fc\u30b9\uff08\u30d7\u30ed\u30c3\u30c8\u70b9\u767d\u629c\u304d\u306f\u524d\u8eca\u30682\u79d2\u4ee5\u5185\uff09<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u30c9\u30e9\u30a4\u3067\u306e\u7b2c1\u30b9\u30c6\u30a3\u30f3\u30c8\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306f\u6700\u521d\u306e\u6570\u5468\u3053\u305d\u614e\u91cd\u306b\u5165\u308b\u304c\u3001\u305d\u306e\u5f8c\u306f\u30da\u30fc\u30b9\u3092\u4e0a\u3052\u3066\u30e9\u30c3\u30bb\u30eb\u3092\u8ffd\u3046\u3002\u3057\u304b\u3057\u30b0\u30e9\u30d5\u306e\u50be\u304d\u306b\u6ce8\u76ee\u3057\u3066\u307b\u3057\u3044\u3002\u30b9\u30c6\u30a3\u30f3\u30c8\u304c\u9032\u3080\u307b\u3069\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306e\u512a\u4f4d\u6027\u304c\u5897\u3057\u3066\u3044\u308b\u3002\u30e9\u30c3\u30bb\u30eb\u308228\u5468\u76ee\u304b\u3089\u30da\u30fc\u30b9\u3092\u4e0a\u3052\u305f\u304c\u3001\u305d\u306e\u5f8c\u5d16\u3092\u8fce\u3048\u3066\u3057\u307e\u3063\u305f\u3002\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306e\u30bf\u30a4\u30e4\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u306e\u79c0\u9038\u3055\u306f\u6628\u5e74\u304b\u3089\u4f55\u5ea6\u3082\u76ee\u306b\u3057\u3066\u304d\u305f\u304c\u3001\u4eca\u56de\u3082\u3001\u6570\u5468\u306e\u9593\u306b\u4f5c\u3063\u305f\u30bf\u30a4\u30e4\u306e\u5dee\u3067\u3001\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u306b\u5341\u5206\u306a\u30da\u30fc\u30b9\u5dee\u3092\u751f\u307f\u51fa\u3057\u305f\u306e\u306f\u3001\u898b\u4e8b\u3060\u3063\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3057\u3066\u4f55\u3068\u8a00\u3063\u3066\u3082\u3001\u30bf\u30fc\u30f32,3\u3067\u306e\u901f\u3055\u3092\u6d3b\u304b\u3057\u305f\u30d0\u30c8\u30eb\u30b9\u30ad\u30eb\u3060\u3002<br>\u524d\u8ff0\u306e\u901a\u308a\u3057\u3063\u304b\u308a\u3068\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u3057\u305f\u30bf\u30a4\u30e4\u3067\u30e9\u30c3\u30bb\u30eb\u306b\u8ffd\u3044\u3064\u304d\u300119\u5468\u76ee\u306b\u306f1\u79d2\u570f\u5185\u306b\u5165\u3063\u3066\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u30e2\u30fc\u30c9\u3092\u7372\u5f97\u3002\u3053\u3053\u3067\u8208\u5473\u6df1\u304b\u3063\u305f\u306e\u306f\u30012\u53f0\u304c\u63a5\u8fd1\u3059\u308b\u3068\u30bf\u30fc\u30f32\u306e\u7acb\u3061\u4e0a\u304c\u308a\u304b\u3089\u30bf\u30fc\u30f33\u3078\u3068\u7e4b\u3052\u308b\u30e9\u30a4\u30f3\u304c2\u53f0\u3067\u7570\u306a\u3063\u3066\u3044\u305f\u3053\u3068\u3060\u3002\u30e9\u30c3\u30bb\u30eb\u304c\u30bf\u30fc\u30f32\u306e\u51fa\u53e3\u3067\u5916\u5074\u307e\u3067\u81a8\u3089\u3093\u3067\u3001\u30bf\u30fc\u30f33\u306b\u5411\u3051\u3066\u53f3\u306b\u66f2\u304c\u308a\u306a\u304c\u3089\u52a0\u901f\u3057\u3066\u3044\u304f\u306e\u306b\u5bfe\u3057\u3066\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306f\u30bf\u30fc\u30f32\u51fa\u53e3\u3067\u4e2d\u592e\u306b\u7acb\u3061\u4e0a\u304c\u3063\u3066\u3001\u30bf\u30fc\u30f33\u306b\u5411\u3051\u3066\u76f4\u7dda\u7684\u306b\u7acb\u3061\u4e0a\u304c\u3063\u3066\u3044\u305f\u3002\u305d\u3057\u3066\u3053\u306e\u533a\u9593\u30672\u53f0\u306e\u30ae\u30e3\u30c3\u30d7\u304c\u4e00\u6c17\u306b\u7e2e\u307e\u308b\u306e\u3060\u3002\u3053\u306e\u3053\u3068\u304b\u3089\u3001\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u304c\u3053\u306e\u533a\u9593\u3067\u30a2\u30c9\u30d0\u30f3\u30c6\u30fc\u30b8\u3092\u6301\u3063\u3066\u3044\u308b\u3053\u3068\u306f\u660e\u767d\u3060\u3063\u305f\u3002<br>\u5f7c\u306e\u982d\u306e\u4e2d\u306b\u3082\u3001\u3053\u3053\u306e\u7acb\u3061\u4e0a\u304c\u308a\u3067\u63a5\u8fd1\u3059\u308b\u3053\u3068\u3067\u3001\u30bf\u30fc\u30f34\u3067\u629c\u304d\u53bb\u308b\u30b7\u30ca\u30ea\u30aa\u304c\u30b7\u30df\u30e5\u30ec\u30fc\u30c8\u3055\u308c\u3066\u3044\u305f\u3067\u3042\u308d\u3046\u3053\u3068\u306f\u660e\u767d\u3060\u308d\u3046\u3002\u305d\u3057\u306621\u5468\u76ee\u306b\u306f\u898b\u4e8b\u306b\u305d\u306e\u901a\u308a\u306e\u52d5\u304d\u3067\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u3092\u5b8c\u9042\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306f\u975e\u5e38\u306b\u30af\u30ea\u30a8\u30a4\u30c6\u30a3\u30d6\u306b\u6700\u9069\u306a\u30e9\u30a4\u30f3\u3092\u898b\u3064\u3051\u3066\u304f\u308b\u3002\u30d0\u30eb\u30bb\u30ed\u30ca\u3067\u3082\u3001\u6700\u7d42\u533a\u9593\u3067\u5916\u5074\u306e\u30e9\u30a4\u30f3\u3092\u53d6\u308b\u72ec\u7279\u306e\u8d70\u308a\u3067\u3001\u30e9\u30c3\u30bb\u30eb\u306b\u5bfe\u3059\u308b\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u3092\u6c7a\u3081\u305f\u3002\u305d\u308c\u304c\u4eca\u56de\u3082\u70b8\u88c2\u3057\u305f\u683c\u597d\u3060\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u306f\u3001\u4e88\u9078\u30fb\u6c7a\u52dd\u3092\u901a\u3058\u3066\u3001\u7d14\u7c8b\u306a\u30da\u30fc\u30b9\u3067\u30e9\u30c3\u30bb\u30eb\u306b\u660e\u78ba\u306b\u5dee\u3092\u3064\u3051\u305f\u3002\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3GP\u306e\u5185\u5bb9\u304c\u60aa\u304b\u3063\u305f\u3060\u3051\u306b\u3001\u3053\u3053\u3067\u5999\u306b\u5b88\u308a\u306b\u5165\u3063\u3066\u30b9\u30d4\u30fc\u30c9\u3092\u5931\u3063\u305f\u308a\u3001\u30ea\u30ba\u30e0\u306e\u72c2\u3063\u305f\u9031\u672b\u3092\u9001\u308b\u3088\u3046\u3060\u3068\u3001\u30d4\u30a2\u30b9\u30c8\u30ea\u3084\u30a6\u30a7\u30d0\u30fc\u306e\u9053\u3092\u8fbf\u308b\u3053\u3068\u306b\u306a\u308b\u3068\u8003\u3048\u3066\u3044\u305f\u3060\u3051\u306b\u3001\u3053\u3053\u3067\u4eca\u307e\u3067\u901a\u308a\u306e\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u3092\u898b\u305b\u3089\u308c\u305f\u306e\u306f\u975e\u5e38\u306b\u5927\u304d\u304b\u3063\u305f\u3002\u3053\u308c\u3067\u30e9\u30c3\u30bb\u30eb\u3068\u306f84\u70b9\u3001\u30b9\u30d4\u30fc\u30c9\u9762\u3067\u6700\u3082\u8105\u5a01\u3068\u601d\u308f\u308c\u308b\u30ce\u30ea\u30b9\u3068\u306f132\u70b9\u5dee\u3068\u3001\u30bf\u30a4\u30c8\u30eb\u7372\u5f97\u3078\u4e00\u6c17\u306b\u8996\u91ce\u304c\u958b\u3051\u3066\u304d\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. \u3044\u307e\u3060\u306b\u30d9\u30b9\u30c8\u306e\u4e00\u4eba<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306e\u30ec\u30fc\u30b9\u3001\u3082\u3046\u4e00\u4eba\u306eMVP\u306f\u30a2\u30ed\u30f3\u30bd\u3060\u308d\u3046\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30b9\u30bf\u30fc\u30c8\u3067\u306f\u30c9\u30e9\u30a4\u30bf\u30a4\u30e4\u3092\u9078\u629e\u3057\u3066\u5f8c\u9000\u3057\u3066\u3057\u307e\u3063\u305f\u304c\u3001\u30bb\u30fc\u30d5\u30c6\u30a3\u30ab\u30fc\u306b\u3088\u3063\u3066\u30ec\u30fc\u30b9\u306b\u5fa9\u5e30\u3002\u4e2d\u56e3\u30b0\u30eb\u30fc\u30d7\u306e\u6700\u5f8c\u65b9\u306b\u3064\u3051\u305f\u3002\u305d\u3057\u3066\u30d4\u30c3\u30c8\u30b9\u30c8\u30c3\u30d7\u3092\u9045\u3089\u305b\u3066\u3001\u30e9\u30a4\u30d0\u30eb\u306e\u30ea\u30f3\u30c9\u30d6\u30e9\u30c3\u30c9\u304c28\u5468\u76ee\u3001\u30aa\u30b3\u30f3\u304c29\u5468\u76ee\u306b\u30d4\u30c3\u30c8\u3078\u3068\u5411\u304b\u3046\u4e2d\u3001\u30a2\u30ed\u30f3\u30bd\u306f31\u5468\u76ee\u307e\u3067\u5f15\u3063\u5f35\u308a\u3001\u6b21\u306e\u30b9\u30c6\u30a3\u30f3\u30c8\u30673\u5468\u5206\u306e\u30aa\u30d5\u30bb\u30c3\u30c8\u3092\u4f5c\u3063\u305f\u3002\u4eca\u56de\u306e\u30c7\u30b0\u30e9\u30c7\u30fc\u30b7\u30e7\u30f3\u306f\u57fa\u672c\u7684\u306b\u5404\u8eca0.1\u79d2\u4ee5\u4e0a\u3042\u3063\u305f\u304c\u3001\u30ea\u30f3\u30c9\u30d6\u30e9\u30c3\u30c9\u306f0.05\u79d2\u7a0b\u5ea6\u3068\u5c0f\u3055\u304f\u3001\u30a2\u30ed\u30f3\u30bd\u306e3\u5468\u306e\u30aa\u30d5\u30bb\u30c3\u30c8\u306f0.2\u79d2\u7a0b\u5ea6\u306e\u30a2\u30c9\u30d0\u30f3\u30c6\u30fc\u30b8\u306b\u3057\u304b\u306a\u3089\u306a\u304b\u3063\u305f\u306f\u305a\u3060\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9f\u969b\u3001\u30ea\u30f3\u30c9\u30d6\u30e9\u30c3\u30c9\u3092\u629c\u3044\u305f\u5f8c\u306e\u3001\u30af\u30ea\u30a2\u30a8\u30a2\u3067\u306e\u30a2\u30ed\u30f3\u30bd\u306e\u30da\u30fc\u30b9\u3092\u898b\u3066\u3082\u3001\u305d\u3053\u307e\u3067\u901f\u3044\u308f\u3051\u3067\u306f\u306a\u3044\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"520\" src=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-4.png\" alt=\"\" class=\"wp-image-17585\" srcset=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-4.png 1016w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-4-768x393.png 768w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/newplot-4-300x154.png 300w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><figcaption class=\"wp-element-caption\">\u56f34 \u30a2\u30ed\u30f3\u30bd\u3001\u30ea\u30f3\u30c9\u30d6\u30e9\u30c3\u30c9\u3001\u30aa\u30b3\u30f3\u306eL30\u301c42<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u3067\u306f\u3001\u30a2\u30ed\u30f3\u30bd\u306f\u3069\u306e\u3088\u3046\u306b\u3057\u3066\u3001\u305d\u306e\u50c5\u304b\u306a\u30bf\u30a4\u30e4\u3068\u30da\u30fc\u30b9\u306e\u5dee\u3092\u30b3\u30fc\u30b9\u4e0a\u3067\u306e\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u306b\u7e4b\u3052\u305f\u306e\u304b\uff1f\u4e00\u9023\u306e\u52d5\u304d\u3092\u8ffd\u3063\u3066\u307f\u3088\u3046\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305a\u30c1\u30fc\u30e0\u30e1\u30a4\u30c8\u306e\u30b9\u30c8\u30ed\u30fc\u30eb\u3092\u3042\u3063\u3055\u308a\u30d1\u30b9\u3059\u308b\u3068\u300136\u5468\u76ee\u306b\u306f\u30aa\u30b3\u30f3\u306b\u5bfe\u3057\u3066\u30bf\u30fc\u30f32\u306e\u9032\u5165\u3067\u30a2\u30a6\u30c8\u306b\u632f\u308a\u3001\u305d\u3057\u3066\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u3068\u540c\u3058\u3088\u3046\u306b\u51fa\u53e3\u3067\u4e2d\u592e\u5074\u306e\u30e9\u30a4\u30f3\u3092\u53d6\u308b\u3068\u3001\u30bf\u30fc\u30f33\u306b\u5411\u3051\u3066\u30aa\u30b3\u30f3\u3088\u308a\u76f4\u7dda\u7684\u306b\u30c8\u30e9\u30af\u30b7\u30e7\u30f3\u3092\u304b\u3051\u3001\u4e00\u6c17\u306b\u80cc\u5f8c\u306b\u8feb\u3063\u3066\u3001\u30c8\u30a5\u3092\u5229\u7528\u3057\u3066\u30bf\u30fc\u30f34\u3067\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u3057\u305f\u3002\u30aa\u30b3\u30f3\u3068\u306f\u30da\u30fc\u30b9\u5dee\u30820.5\u79d2\u307b\u3069\u3042\u308a\u3001\u3053\u308c\u304c\u6210\u529f\u3057\u305f\u306e\u306f\u307e\u3060\u9837\u3051\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3057\u306639\u5468\u76ee\u306b\u306f\u30ea\u30f3\u30c9\u30d6\u30e9\u30c3\u30c9\u306b\u5bfe\u3057\u3066\u540c\u3058\u52d5\u304d\u3092\u898b\u305b\u308b\u304c\u3001\u30ec\u30fc\u30b7\u30f3\u30b0\u30d6\u30eb\u30ba\u306e\u30bf\u30fc\u30f34\u307e\u3067\u306e\u4f38\u3073\u306f\u92ed\u304f\u30010.1\u79d2\u5dee\u3067\u30c8\u30a5\u3092\u5229\u7528\u3057\u3066\u3082\u8ffd\u3044\u3064\u304f\u3053\u3068\u304c\u3067\u304d\u306a\u304b\u3063\u305f\u3002<br>\u305d\u3053\u3067\u30a2\u30ed\u30f3\u30bd\u306f\u6226\u7565\u3092\u5909\u66f4\u3002\u7fcc\u5468\u306e\u30db\u30fc\u30e0\u30b9\u30c8\u30ec\u30fc\u30c8\u3067\u30ea\u30f3\u30c9\u30d6\u30e9\u30c3\u30c9\u306e\u5f8c\u65b9\u306b\u8feb\u308b\u3068\u3001\u30bf\u30fc\u30f31\u306e\u9032\u5165\u3067\u30a4\u30f3\u306b\u98db\u3073\u8fbc\u3093\u3060\u3002\u3060\u304c\u3001\u30ea\u30f3\u30c9\u30d6\u30e9\u30c3\u30c9\u3082\u305f\u3060\u3067\u306f\u5f15\u304b\u306a\u3044\u3002\u30bf\u30fc\u30f31\u3067\u30a2\u30a6\u30c8\u3092\u4e26\u8d70\u3057\u3001\u30bf\u30fc\u30f32\u3067\u30a4\u30f3\u3092\u53d6\u3063\u305f\u3002\u305d\u3057\u3066\u30a2\u30ed\u30f3\u30bd\u304c\u30af\u30ed\u30b9\u30e9\u30a4\u30f3\u3092\u4ed5\u639b\u3051\u3066\u304f\u308b\u3053\u3068\u3092\u8aad\u3093\u3067\u3001\u30a2\u30a6\u30c8\u3044\u3063\u3071\u3044\u306b\u7acb\u3061\u4e0a\u304c\u3089\u305a\u30bb\u30f3\u30bf\u30fc\u4ed8\u8fd1\u306b\u7acb\u3061\u4e0a\u304c\u3063\u3066\u3001\u30bf\u30fc\u30f33\u306b\u5411\u3051\u3066\u76f4\u7dda\u7684\u306b\u52a0\u901f\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u305f\u3002<br>\u3060\u304c\u3001\u30a2\u30ed\u30f3\u30bd\u306f\u30af\u30ed\u30b9\u30e9\u30a4\u30f3\u3067\u3055\u3089\u306b\u305d\u306e\u30a4\u30f3\uff08\u30bf\u30fc\u30f33\u4e3b\u4f53\u3067\u898b\u308c\u3070\u30a2\u30a6\u30c8\uff09\u3078\u3068\u30b9\u30a4\u30c3\u30c1\u30d0\u30c3\u30af\u3057\u3001\u30bf\u30fc\u30f33\u3067\u30a2\u30a6\u30c8\u304b\u3089\u629c\u304d\u53bb\u3063\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u524d\u304b\u3089\u30a2\u30ed\u30f3\u30bd\u306f\u3001\u300c\u3053\u306e\u30c8\u30e9\u30c3\u30af\u3067\u306f\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u306b\u306f\u3007\u3007\u79d2\u306e\u30da\u30fc\u30b9\u5dee\u304c\u5fc5\u8981\u300d\u3068\u3055\u308c\u308b\u4e2d\u3067\u3001\u305d\u308c\u3088\u308a\u3082\u9065\u304b\u306b\u5c11\u306a\u3044\u30da\u30fc\u30b9\u5dee\u3067\u30aa\u30fc\u30d0\u30fc\u30c6\u30a4\u30af\u3092\u6210\u529f\u3055\u305b\u308b\u3053\u3068\u304c\u975e\u5e38\u306b\u591a\u3044\u3002\u4eca\u56de\u3082\u968f\u6240\u3067\u8ffd\u3044\u629c\u304d\u306e\u56f0\u96e3\u3055\u304c\u76ee\u7acb\u3064\u4e2d\u3001\u5de8\u5320\u30a2\u30ed\u30f3\u30bd\u306e\u30b9\u30fc\u30d1\u30fc\u30d7\u30ec\u30a4\u304c\u5149\u3063\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3057\u3066\u6700\u7d42\u30e9\u30c3\u30d7\u3067\u306e\u30ce\u30ea\u30b9\u306b\u5bfe\u3059\u308b\u30c7\u30a3\u30d5\u30a7\u30f3\u30b9\u3082\u898b\u4e8b\u3060\u3063\u305f\u3002<br>\u30ce\u30ea\u30b9\u304c\u30d2\u30e5\u30eb\u30b1\u30f3\u30d9\u30eb\u30b0\u3092\u629c\u3044\u305f\u306e\u306f53\u5468\u76ee\u3002\u305d\u3053\u304b\u30892\u5468\u534a\u306b\u308f\u305f\u308a\u3001\u30a2\u30ed\u30f3\u30bd\u306e\u30c7\u30a3\u30d5\u30a7\u30f3\u30b9\u304c\u70b8\u88c2\u3057\u305f\u3002<br>\u30a2\u30ed\u30f3\u30bd\u306e\u30bf\u30fc\u30f32\u306e\u7acb\u3061\u4e0a\u304c\u308a\u304c\u76f8\u5909\u308f\u3089\u305a\u92ed\u304f\u3001\u3053\u308c\u306f\u9632\u5fa1\u3067\u3082\u6a5f\u80fd\u3057\u3001\u30ce\u30ea\u30b9\u306b\u3068\u3063\u3066\u30bf\u30fc\u30f34\u3067\u4ed5\u639b\u3051\u308b\u9699\u306f\u7121\u304b\u3063\u305f\u3002<br>\u305d\u3057\u3066\u30ce\u30ea\u30b9\u306f\u3001\u6700\u7d42\u30b3\u30fc\u30ca\u30fc\u3067\u30bf\u30a4\u30e4\u3092\u30ed\u30c3\u30af\u30a2\u30c3\u30d7\u3057\u306a\u304c\u3089\u30a2\u30bf\u30c3\u30af\u3059\u308b\u304c\u3001\u30a2\u30ed\u30f3\u30bd\u306f\u30a2\u30a6\u30c8\u5074\u3092\u30ad\u30fc\u30d7\u3057\u3066\u3001\u30b9\u30e0\u30fc\u30ba\u306b\u7acb\u3061\u4e0a\u304c\u308a8\u4f4d\u30c1\u30a7\u30c3\u30ab\u30fc\u3092\u53d7\u3051\u305f\u3002\u3053\u3053\u3067\u4e0d\u7528\u610f\u306b\u30a4\u30f3\u5074\u3092\u30d6\u30ed\u30c3\u30af\u3057\u3066\u3057\u307e\u3046\u3068\u3001\u30a2\u30a6\u30c8\u304b\u3089\u4e26\u3073\u639b\u3051\u3089\u308c\u3001\u76f4\u5f8c\u306b\u4ed8\u304b\u308c\u305f\u72b6\u614b\u3067\u7acb\u3061\u4e0a\u304c\u3063\u3066\u3001\u30e1\u30eb\u30bb\u30c7\u30b9PU\u306e\u30d1\u30ef\u30fc\u3067\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30e9\u30a4\u30f3\u307e\u3067\u306b\u9006\u8ee2\u3001\u3068\u3044\u3046\u30b7\u30ca\u30ea\u30aa\u3082\u3042\u308a\u5f97\u305f\u3060\u308d\u3046\u3002\u3060\u304c\u3001\u30d6\u30ec\u30fc\u30ad\u30f3\u30b0\u3067\u7a81\u3063\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u308b\u30a2\u30a6\u30c8\u5074\u3092\u9078\u3093\u3060\u3053\u3068\u3067\u3001\u30ce\u30ea\u30b9\u306b\u4e26\u3070\u308c\u308b\u3053\u3068\u3092\u9632\u304e\u3001\u76f8\u624b\u306b\u82e6\u3057\u3044\u30e9\u30a4\u30f3\u3092\u53d6\u3089\u305b\u3064\u3064\u3001\u81ea\u8eab\u306f\u7acb\u3061\u4e0a\u304c\u308a\u91cd\u8996\u306e\u30e9\u30a4\u30f3\u3092\u53d6\u308b\u3053\u3068\u3067\u3001PU\u306e\u30d1\u30ef\u30fc\u5dee\u3092\u30dd\u30b8\u30b7\u30e7\u30f3\u9006\u8ee2\u306b\u3064\u306a\u3052\u306a\u3044\u3053\u3068\u306b\u6210\u529f\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306f\u3001\u653b\u3081\u5074\u3067\u3082\u5b88\u308a\u5074\u3067\u3082\u3001\u30a2\u30ed\u30f3\u30bd\u3089\u3057\u3044\u5727\u5012\u7684\u306a\u5224\u65ad\u529b\u304c\u5149\u3063\u305f\u3002\u3053\u308c\u307b\u3069\u307e\u3067\u306b\u3001\u72b6\u6cc1\u72b6\u6cc1\u306b\u5408\u308f\u305b\u3066\u6700\u9069\u89e3\u3092\u9078\u3073\u7d9a\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u306f\u3001\u6050\u308d\u3057\u3044\u3068\u3057\u304b\u8a00\u3044\u3088\u3046\u304c\u306a\u3044\u3002\u4eca\u56de\u306e\u3088\u3046\u306b\u4ed6\u30c1\u30fc\u30e0\u3068\u4e89\u3048\u308b\u72b6\u6cc1\u304c\u751f\u307e\u308c\u308b\u3068\u3001\u305d\u308c\u304c\u8ab0\u306e\u76ee\u306b\u3082\u660e\u3089\u304b\u306a\u5f62\u3068\u306a\u3063\u3066\u9855\u308c\u308b\u3002\u4eca\u5f8c\u306f\u3082\u3046\u5c11\u3057\u983b\u7e41\u306b\u3001\u305d\u3057\u3066\u6765\u5e74\u4ee5\u964d\u306f\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u3084\u30a2\u30f3\u30c8\u30cd\u30c3\u30ea\u3001\u30cf\u30df\u30eb\u30c8\u30f3\u3089\u3068\u306e\u30c8\u30c3\u30d7\u4e89\u3044\u3067\u305d\u308c\u304c\u898b\u3089\u308c\u308b\u3088\u3046\u3001\u30a2\u30b9\u30c8\u30f3\u30de\u30fc\u30c6\u30a3\u30f3\u30fb\u30db\u30f3\u30c0\u306e\u8e8d\u9032\u306b\u671f\u5f85\u3057\u305f\u3044\u3002\u305d\u308c\u306f\u304d\u3063\u3068\u30b9\u30dd\u30fc\u30c4\u304b\u3089\u82b8\u8853\u306e\u57df\u3078\u3068\u76f8\u8ee2\u79fb\u3057\u305f\u3082\u306e\u306b\u306a\u308b\u306e\u3060\u304b\u3089\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. \u6b21\u6226\u3078\u306e\u5c55\u671b\uff1a\u30de\u30ea\u30fc\u30ca\u30d9\u30a4\u306e\u95c7\u306b\u6f5c\u3080\u30c1\u30e3\u30f3\u30b9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b21\u6226\u306f\u3001\u714c\u3073\u3084\u304b\u306a\u591c\u666f\u306e\u4e2d\u3067\u7e70\u308a\u5e83\u3052\u3089\u308c\u308b\u904e\u9177\u306a\u30ca\u30a4\u30c8\u30ec\u30fc\u30b9\u3001\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb\u3060\u3002<br>\u76f4\u89d2\u30b3\u30fc\u30ca\u30fc\u304c\u9023\u7d9a\u3059\u308b\u5178\u578b\u7684\u306a\u30b9\u30c8\u30ea\u30fc\u30c8\u30c8\u30e9\u30c3\u30af\u3067\u3042\u308a\u3001\u5168\u958b\u7387\u304c\u4f4e\u304f\u5e73\u5747\u901f\u5ea6\u3082\u9045\u3044\u3002\u3053\u308c\u306f\u3001\u76f4\u7dda\u306e\u30c8\u30c3\u30d7\u30b9\u30d4\u30fc\u30c9\u3084\u7d76\u5bfe\u7684\u306aPU\u30d1\u30ef\u30fc\u3067\u52a3\u308b\u30a2\u30b9\u30c8\u30f3\u30de\u30fc\u30c6\u30a3\u30f3\u306b\u3068\u3063\u3066\u3001\u4eca\u5b63\u6700\u3082\u8868\u5f70\u53f0\u306b\u8fd1\u3065\u304f\u3053\u3068\u304c\u3067\u304d\u308b\u6700\u5927\u306e\u30c1\u30e3\u30f3\u30b9\u3068\u8a00\u3048\u308b\u3060\u308d\u3046\u3002\u30c9\u30e9\u30a4\u30d0\u30fc\u3068\u3057\u3066\u3082\u76f8\u6027\u306e\u826f\u3044\u30a2\u30ed\u30f3\u30bd\u304c\u30c8\u30c3\u30d74\u306e\u4e00\u89d2\u3092\u5207\u308a\u5d29\u3059\u306e\u304b\u3001\u6ce8\u76ee\u3057\u305f\u3044\u3068\u3053\u308d\u3060\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u65b9\u3001\u30bf\u30a4\u30c8\u30eb\u3092\u4e89\u3046\u4e0a\u4f4d\u52e2\u306e\u52e2\u529b\u56f3\u3067\u306f\u3001\u4f4e\u901f\u30b3\u30fc\u30ca\u30fc\u306b\u8ab2\u984c\u3092\u62b1\u3048\u308b\u30de\u30af\u30e9\u30fc\u30ec\u30f3\u306b\u3068\u3063\u3066\u6211\u6162\u306e\u9031\u672b\u306b\u306a\u308b\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u3002<br>\u5bfe\u7167\u7684\u306b\u3001\u30e1\u30eb\u30bb\u30c7\u30b9\u3084\u30d5\u30a7\u30eb\u30b9\u30bf\u30c3\u30da\u30f3\u306b\u3068\u3063\u3066\u306f\u3001\u76f8\u6027\u306e\u826f\u3044\u30c8\u30e9\u30c3\u30af\u304b\u3082\u3057\u308c\u306a\u3044\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u58c1\u4e00\u679a\u306e\u30df\u30b9\u3082\u8a31\u3055\u308c\u306a\u3044\u30de\u30ea\u30fc\u30ca\u30d9\u30a4\u3002\u96e8\u306e\u4e88\u5831\u3082\u51fa\u3066\u304a\u308a\u3001\u4eca\u56de\u4ee5\u4e0a\u306e\u30ab\u30aa\u30c6\u30a3\u30c3\u30af\u306a\u30ec\u30fc\u30b9\u306b\u306a\u308b\u53ef\u80fd\u6027\u3082\u5341\u5206\u8003\u3048\u3089\u308c\u308b\u3002\u6975\u9650\u306e\u30c1\u30e3\u30ec\u30f3\u30b8\u30f3\u30b0\u306a\u74b0\u5883\u3067\u529b\u3092\u767a\u63ee\u3059\u308b\u306e\u306f\u8ab0\u304b\uff1f\u4eca\u304b\u3089\u697d\u3057\u307f\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u30b0\u30e9\u30d5<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3054\u81ea\u8eab\u306e\u8996\u70b9\u3067\u3055\u3089\u306b\u30c7\u30fc\u30bf\u3092\u6df1\u6398\u308a\u3057\u305f\u3044\u65b9\u5411\u3051\u306b\u3001\u64cd\u4f5c\u53ef\u80fd\u306a\u30b0\u30e9\u30d5\u3092\u7528\u610f\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001**\u300c\u30da\u30fc\u30b9\u30b0\u30e9\u30d5\u300d\u3068\u300c\u30ae\u30e3\u30c3\u30d7\u30b0\u30e9\u30d5\u300d**\u306e\u4e8c\u7a2e\u985e\u304c\u5229\u7528\u3067\u304d\u3001\u30dc\u30bf\u30f3\u64cd\u4f5c\u3067\u898b\u305f\u3044\u30c9\u30e9\u30a4\u30d0\u30fc\u3060\u3051\u3092\u81ea\u7531\u306b\u9078\u3093\u3067\u8868\u793a\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7279\u306b\u30e9\u30c3\u30d7\u30bf\u30a4\u30e0\u30b0\u30e9\u30d5\u306b\u306f\u3001\u30ec\u30fc\u30b9\u72b6\u6cc1\u3092\u7406\u89e3\u3057\u3084\u3059\u304f\u3059\u308b\u305f\u3081\u306e\u5de5\u592b\u304c\u65bd\u3055\u308c\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5857\u308a\u3064\u3076\u3057\u306e\u70b9<\/strong>\uff1a\u524d\u304c\u7a7a\u3044\u3066\u3044\u308b\u72b6\u614b\uff08\u30af\u30ea\u30a2\u30a8\u30a2\uff09\u3067\u306e\u30e9\u30c3\u30d7\u3092\u793a\u3059\u3002<\/li>\n\n\n\n<li><strong>\u767d\u629c\u304d\u306e\u70b9<\/strong>\uff1a\u524d\u306e\u30de\u30b7\u30f3\u306e\u5f71\u97ff\u4e0b\uff08\u30c0\u30fc\u30c6\u30a3\u30a8\u30a2\uff1a\u524d\u65b92\u79d2\u4ee5\u5185\uff09\u306b\u3042\u308b\u30e9\u30c3\u30d7\u3092\u793a\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u8272\u5206\u3051\u306b\u3088\u3063\u3066\u3001\u5404\u30c9\u30e9\u30a4\u30d0\u30fc\u304c\u3069\u306e\u3088\u3046\u306a\u72b6\u6cc1\u3067\u305d\u306e\u30bf\u30a4\u30e0\u3092\u8a18\u9332\u3057\u305f\u306e\u304b\u304c\u4e00\u76ee\u3067\u628a\u63e1\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305f\u3001\u30b0\u30e9\u30d5\u53f3\u4e0a\u306e\u30dc\u30bf\u30f3\u304b\u3089\u306f\u3001\u753b\u50cf\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3084\u30b0\u30e9\u30d5\u306e\u62e1\u5927\u30fb\u7e2e\u5c0f\uff08\u30ba\u30fc\u30e0\uff09\u3082\u53ef\u80fd\u3060\u3002\u5206\u6790\u306e\u88dc\u52a9\u3068\u3057\u3066\u3001\u305c\u3072\u3054\u6d3b\u7528\u3044\u305f\u3060\u304d\u305f\u3044\u3002<\/p>\n\n\n\n<!--\nWordPress\u300c\u30ab\u30b9\u30bf\u30e0HTML\u300d\u30d6\u30ed\u30c3\u30af\u306e\u65e2\u5b58\u30b3\u30fc\u30c9\u3092\u3001\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5168\u6587\u3067\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002\n\u4e0b\u306e DATA_FILE \u306f\u73fe\u5728\u3068\u540c\u3058\u76f8\u5bfeURL\u3067\u3059\u3002\u5fc5\u8981\u306b\u5fdc\u3058\u3066TSV\u306e\u516c\u958bURL\u3078\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\u30c9\u30e9\u30a4\u30d0\u30fc\u306e\u4e26\u3073\u30fb\u540d\u524d\u30fb\u914d\u8272\u306f\u5143\u30b3\u30fc\u30c9\u3092\u7dad\u6301\u3057\u3066\u3044\u307e\u3059\u3002\n-->\n<style>\n.race-lap-widget{width:100%;max-width:1200px;background:#fff;color:#000;font-family:\"Times New Roman\",Times,serif;line-height:1.5}\n.race-lap-widget .race-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}\n.race-lap-widget .race-drivers{display:flex;flex-wrap:wrap;gap:6px}\n.race-lap-widget button,.race-lap-widget input,.race-lap-widget select{font:inherit;box-sizing:border-box;border:1px solid #aaa;border-radius:4px;box-shadow:none;text-transform:none;letter-spacing:normal;line-height:1.4}\n.race-lap-widget button{padding:6px 10px;background:#f5f5f5;color:#000;cursor:pointer;min-height:36px}\n.race-lap-widget button:disabled{cursor:wait;opacity:.5}\n.race-lap-widget button:focus-visible,.race-lap-widget input:focus-visible,.race-lap-widget select:focus-visible{outline:3px solid #2865c7;outline-offset:2px}\n.race-lap-widget .race-driver{font-weight:bold;border:2px solid transparent;min-width:62px}\n.race-lap-widget .race-driver[aria-pressed=\"true\"]{border-color:#000}\n.race-lap-widget .race-driver .race-check{display:inline-block;width:1em}\n.race-lap-widget label{display:inline-flex;align-items:center;gap:5px;color:#000;font-weight:normal;max-width:100%}\n.race-lap-widget label>span{white-space:nowrap;flex-shrink:0}\n.race-lap-widget .race-reference-label{flex-wrap:wrap;gap:8px}\n.race-lap-widget .race-reference{width:auto;min-width:150px;flex:0 1 auto}\n.race-lap-widget .race-language{justify-content:flex-end}\n.race-lap-widget [data-lang][aria-pressed=\"true\"]{background:#222;color:#fff;border-color:#222}\n.race-lap-widget input{width:105px;padding:6px;background:#fff;color:#000}\n.race-lap-widget select{padding:6px;background:#fff;color:#000;max-width:100%}\n.race-lap-widget .race-chart{width:100%;height:520px}\n.race-lap-widget .race-gap-chart{height:650px}\n.race-lap-widget .race-note{font-size:14px;margin:8px 0;color:#444}\n.race-lap-widget .race-error{color:#a40000;min-height:1.5em;margin:4px 0}\n.race-lap-widget h2{color:#000;margin:24px 0 10px;font-family:inherit}\n@media(max-width:600px){.race-lap-widget .race-chart{height:440px}.race-lap-widget .race-gap-chart{height:510px}}\n<\/style>\n\n<div id=\"raceLapWidget\" class=\"race-lap-widget\" lang=\"ja\">\n  <div class=\"race-controls race-language\" role=\"group\" aria-label=\"Language\"><button type=\"button\" data-lang=\"ja\" aria-pressed=\"true\">\u65e5\u672c\u8a9e<\/button><button type=\"button\" data-lang=\"en\" aria-pressed=\"false\">English<\/button><\/div>\n  <p class=\"race-status\" role=\"status\">\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059\u2026<\/p>\n  <div class=\"race-interactive\" hidden=\"\">\n    <div class=\"race-controls\"><strong>Drivers:<\/strong><button type=\"button\" data-action=\"select\">Select All<\/button><button type=\"button\" data-action=\"clear\">Clear All<\/button><\/div>\n    <div class=\"race-drivers\" data-i18n-aria=\"driversAria\" aria-label=\"\u8868\u793a\u3059\u308b\u30c9\u30e9\u30a4\u30d0\u30fc\"><\/div>\n    <p class=\"race-note\"><span data-i18n=\"driversNote\">\u30c9\u30e9\u30a4\u30d0\u30fc\u3092\u9078\u3076\u3068\u4e21\u30b0\u30e9\u30d5\u306b\u8868\u793a\u3057\u307e\u3059\u3002\u51e1\u4f8b\u306f\u9078\u629e\u3057\u305f\u9806\u306b\u4e26\u3073\u307e\u3059\u3002<\/span><\/p>\n    <form class=\"race-controls\" data-form=\"laps\" novalidate=\"\">\n      <strong><span data-i18n=\"laps\">\u8868\u793a\u5468\u56de\uff08\u4e21\u30b0\u30e9\u30d5\u5171\u901a\uff09:<\/span><\/strong>\n      <label><span data-i18n=\"start\">\u958b\u59cb<\/span><input name=\"min\" type=\"number\" min=\"1\" step=\"1\" required=\"\"><\/label>\n      <label><span data-i18n=\"end\">\u7d42\u4e86<\/span><input name=\"max\" type=\"number\" min=\"1\" step=\"1\" required=\"\"><\/label>\n      <button type=\"submit\"><span data-i18n=\"apply\">\u9069\u7528<\/span><\/button><button type=\"button\" data-action=\"reset-laps\"><span data-i18n=\"allLaps\">\u5168\u5468\u56de\u306b\u623b\u3059<\/span><\/button>\n    <\/form>\n    <p class=\"race-error\" data-error=\"laps\" role=\"alert\"><\/p>\n\n    <h2>Lap Times<\/h2>\n\n    <form class=\"race-controls\" data-form=\"time\" novalidate=\"\">\n      <label><span>Fastest<\/span><input name=\"min\" type=\"text\" placeholder=\"1:20.000\" required=\"\" aria-label=\"Fastest\"><\/label>\n      <label><span>Slowest<\/span><input name=\"max\" type=\"text\" placeholder=\"1:28.000\" required=\"\" aria-label=\"Slowest\"><\/label>\n      <button type=\"submit\"><span data-i18n=\"apply\">\u9069\u7528<\/span><\/button><button type=\"button\" data-action=\"reset-time\"><span data-i18n=\"reset\">\u521d\u671f\u7bc4\u56f2\u306b\u623b\u3059<\/span><\/button>\n    <\/form>\n    <p class=\"race-note\"><span data-i18n=\"format\">\u30bf\u30a4\u30e0\u306f\u300c1:20.000\u300d\u307e\u305f\u306f\u300c80.000\u300d\u3067\u5165\u529b\u3067\u304d\u307e\u3059\u3002\u901f\u3044\u30bf\u30a4\u30e0\u3092\u4e0a\u306b\u8868\u793a\u3057\u307e\u3059\u3002<\/span><\/p>\n    <p class=\"race-error\" data-error=\"time\" role=\"alert\"><\/p>\n\n    <div class=\"race-chart race-time-chart\" data-i18n-aria=\"timeAria\" aria-label=\"\u30e9\u30c3\u30d7\u30bf\u30a4\u30e0\u30b0\u30e9\u30d5\"><\/div>\n    <p class=\"race-note\"><span data-i18n=\"white\">\u767d\u4e38\uff1a\u524d\u306e\u30c9\u30e9\u30a4\u30d0\u30fc\u3068\u306e\u5dee\u304c2\u79d2\u4ee5\u5185\u3002<\/span><\/p>\n\n    <h2 class=\"race-gap-title\">Gap to Leader<\/h2>\n\n    <div class=\"race-controls\">\n      <label class=\"race-reference-label\">\n        <span data-i18n=\"reference\">\u6bd4\u8f03\u57fa\u6e96<\/span>\n        <select class=\"race-reference\">\n          <option value=\"leader\" data-i18n=\"leader\">Leader\uff08\u5404\u5468\u306e\u9996\u4f4d\uff09<\/option>\n        <\/select>\n      <\/label>\n    <\/div>\n\n    <form class=\"race-controls\" data-form=\"gap\" novalidate=\"\">\n      <label><span data-i18n=\"min\">\u6700\u5c0f\u5024\uff08\u79d2\uff09<\/span><input name=\"min\" type=\"number\" step=\"any\" required=\"\"><\/label>\n      <label><span data-i18n=\"max\">\u6700\u5927\u5024\uff08\u79d2\uff09<\/span><input name=\"max\" type=\"number\" step=\"any\" required=\"\"><\/label>\n      <button type=\"submit\"><span data-i18n=\"apply\">\u9069\u7528<\/span><\/button><button type=\"button\" data-action=\"reset-gap\"><span data-i18n=\"reset\">\u521d\u671f\u7bc4\u56f2\u306b\u623b\u3059<\/span><\/button>\n    <\/form>\n\n    <p class=\"race-note\"><span data-i18n=\"gapNote\">\u30d7\u30e9\u30b9\uff1d\u57fa\u6e96\u3088\u308a\u5f8c\u65b9\u3001\u30de\u30a4\u30ca\u30b9\uff1d\u524d\u65b9\u3002\u57fa\u6e96\u3092\u5207\u308a\u66ff\u3048\u308b\u3068\u7e26\u8ef8\u306f\u521d\u671f\u7bc4\u56f2\u306b\u623b\u308a\u307e\u3059\u3002<\/span><\/p>\n    <p class=\"race-error\" data-error=\"gap\" role=\"alert\"><\/p>\n\n    <div class=\"race-chart race-gap-chart\" data-i18n-aria=\"gapAria\" aria-label=\"\u30ae\u30e3\u30c3\u30d7\u30b0\u30e9\u30d5\"><\/div>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/cdn.plot.ly\/plotly-2.26.0.min.js\"><\/script>\n\n<script>\n(() => {\n  \"use strict\";\n\n  const root = document.getElementById(\"raceLapWidget\");\n  const DATA_FILE = \"malaysia_2026_lap_times.tsv\";\n\n  \/\/ [\u7565\u79f0, TSV\u306e\u5217\u540d, \u8272]\n  const driverConfig = [\n    [\"NOR\",\"Lando NORRIS\",\"rgb(255,128,0)\"],\n    [\"PIA\",\"Oscar PIASTRI\",\"rgb(255,192,128)\"],\n\n    [\"RUS\",\"George RUSSELL\",\"rgb(166,166,166)\"],\n    [\"ANT\",\"Kimi ANTONELLI\",\"rgb(0,176,80)\"],\n\n    [\"VER\",\"Max VERSTAPPEN\",\"rgb(0,32,96)\"],\n    [\"HAD\",\"Isack HADJAR\",\"rgb(102,255,0)\"],\n\n    [\"LEC\",\"Charles LECLERC\",\"rgb(255,0,0)\"],\n    [\"HAM\",\"Lewis HAMILTON\",\"rgb(255,192,192)\"],\n\n    [\"ALB\",\"Alexander ALBON\",\"rgb(192,176,224)\"],\n    [\"SAI\",\"Carlos SAINZ\",\"rgb(0,112,192)\"],\n\n    [\"LAW\",\"Liam LAWSON\",\"rgb(180,198,231)\"],\n    [\"LIN\",\"Arvid LINDBLAD\",\"rgb(112,48,160)\"],\n\n    [\"ALO\",\"Fernando ALONSO\",\"rgb(0,176,240)\"],\n    [\"STR\",\"Lance STROLL\",\"rgb(0,112,112)\"],\n\n    [\"OCO\",\"Esteban OCON\",\"rgb(0,0,0)\"],\n    [\"BEA\",\"Oliver BEARMAN\",\"rgb(128,128,128)\"],\n\n    [\"HUL\",\"Nico HULKENBERG\",\"rgb(255,193,37)\"],\n    [\"BOR\",\"Gabriel BORTOLETO\",\"rgb(192,0,0)\"],\n\n    [\"GAS\",\"Pierre GASLY\",\"rgb(0,128,255)\"],\n    [\"COL\",\"Franco COLAPINTO\",\"rgb(255,0,255)\"],\n\n    [\"PER\",\"Sergio PEREZ\",\"rgb(255,140,0)\"],\n    [\"BOT\",\"Valtteri BOTTAS\",\"rgb(0,150,136)\"]\n  ];\n\n  const WHITE_TEXT = new Set([\n    \"VER\",\"LIN\",\"STR\",\"OCO\",\"BEA\",\"SAI\",\"GAS\",\"BOR\",\"BOT\"\n  ]);\n\n  const $ = selector => root.querySelector(selector);\n  const form = name => $(`[data-form=\"${name}\"]`);\n  const field = (name, key) => form(name).elements.namedItem(key);\n\n  const error = (name, key = \"\", params = {}) => {\n    errors[name] = {key, params};\n    $(`[data-error=\"${name}\"]`).textContent = key ? t(key, params) : \"\";\n  };\n\n  const timeChart = $(\".race-time-chart\");\n  const gapChart = $(\".race-gap-chart\");\n  const status = $(\".race-status\");\n\n  const messages = {\n    ja: {\n      driversNote: \"\u30c9\u30e9\u30a4\u30d0\u30fc\u3092\u9078\u3076\u3068\u4e21\u30b0\u30e9\u30d5\u306b\u8868\u793a\u3057\u307e\u3059\u3002\u51e1\u4f8b\u306f\u9078\u629e\u3057\u305f\u9806\u306b\u4e26\u3073\u307e\u3059\u3002\",\n      laps: \"\u8868\u793a\u5468\u56de\uff08\u4e21\u30b0\u30e9\u30d5\u5171\u901a\uff09:\",\n      start: \"\u958b\u59cb\",\n      end: \"\u7d42\u4e86\",\n      apply: \"\u9069\u7528\",\n      allLaps: \"\u5168\u5468\u56de\u306b\u623b\u3059\",\n      reset: \"\u521d\u671f\u7bc4\u56f2\u306b\u623b\u3059\",\n      format: \"\u30bf\u30a4\u30e0\u306f\u300c1:20.000\u300d\u307e\u305f\u306f\u300c80.000\u300d\u3067\u5165\u529b\u3067\u304d\u307e\u3059\u3002\u901f\u3044\u30bf\u30a4\u30e0\u3092\u4e0a\u306b\u8868\u793a\u3057\u307e\u3059\u3002\",\n      white: \"\u767d\u4e38\uff1a\u524d\u306e\u30c9\u30e9\u30a4\u30d0\u30fc\u3068\u306e\u5dee\u304c2\u79d2\u4ee5\u5185\u3002\",\n      reference: \"\u6bd4\u8f03\u57fa\u6e96\",\n      leader: \"Leader\uff08\u5404\u5468\u306e\u9996\u4f4d\uff09\",\n      min: \"\u6700\u5c0f\u5024\uff08\u79d2\uff09\",\n      max: \"\u6700\u5927\u5024\uff08\u79d2\uff09\",\n      gapNote: \"\u30d7\u30e9\u30b9\uff1d\u57fa\u6e96\u3088\u308a\u5f8c\u65b9\u3001\u30de\u30a4\u30ca\u30b9\uff1d\u524d\u65b9\u3002\u57fa\u6e96\u3092\u5207\u308a\u66ff\u3048\u308b\u3068\u7e26\u8ef8\u306f\u521d\u671f\u7bc4\u56f2\u306b\u623b\u308a\u307e\u3059\u3002\",\n      loading: \"\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059\u2026\",\n      loadError: \"\u30b0\u30e9\u30d5\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30da\u30fc\u30b8\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n      updateError: \"\u30b0\u30e9\u30d5\u3092\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u30da\u30fc\u30b8\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n      invalid: \"\u6709\u52b9\u306a\u6700\u5c0f\u5024\u30fb\u6700\u5927\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n      invalidTime: \"Fastest\u30fbSlowest\u306b\u6709\u52b9\u306a\u30bf\u30a4\u30e0\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n      lapError: \"\u958b\u59cb\u30fb\u7d42\u4e86\u306f{min}\u301c{max}\u306e\u6574\u6570\u3067\u3001\u958b\u59cb\u2266\u7d42\u4e86\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n      timeError: \"Slowest\u306fFastest\u3088\u308a0.001\u79d2\u4ee5\u4e0a\u5927\u304d\u304f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n      gapError: \"\u6700\u5927\u5024\u306f\u6700\u5c0f\u5024\u3088\u308a\u5927\u304d\u304f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n      driversAria: \"\u8868\u793a\u3059\u308b\u30c9\u30e9\u30a4\u30d0\u30fc\",\n      timeAria: \"\u30e9\u30c3\u30d7\u30bf\u30a4\u30e0\u30b0\u30e9\u30d5\",\n      gapAria: \"\u30ae\u30e3\u30c3\u30d7\u30b0\u30e9\u30d5\"\n    },\n\n    en: {\n      driversNote: \"Select drivers to show them on both charts. The legend follows your selection order.\",\n      laps: \"Lap range (both charts):\",\n      start: \"From\",\n      end: \"To\",\n      apply: \"Apply\",\n      allLaps: \"All Laps\",\n      reset: \"Reset Range\",\n      format: \"Enter a time as 1:20.000 or 80.000 seconds. Faster times appear higher.\",\n      white: \"White circle: within 2 seconds of the driver ahead.\",\n      reference: \"Reference\",\n      leader: \"Leader (each lap)\",\n      min: \"Minimum (s)\",\n      max: \"Maximum (s)\",\n      gapNote: \"Positive = behind the reference driver; negative = ahead. Changing the reference resets the vertical range.\",\n      loading: \"Loading data\u2026\",\n      loadError: \"Unable to load the charts. Please reload the page.\",\n      updateError: \"Unable to update the charts. Please reload the page.\",\n      invalid: \"Enter valid minimum and maximum values.\",\n      invalidTime: \"Enter valid times for Fastest and Slowest.\",\n      lapError: \"Enter whole laps from {min} to {max}, with From no greater than To.\",\n      timeError: \"Slowest must be at least 0.001 seconds greater than Fastest.\",\n      gapError: \"Maximum must be greater than Minimum.\",\n      driversAria: \"Drivers to display\",\n      timeAria: \"Lap time chart\",\n      gapAria: \"Gap chart\"\n    }\n  };\n\n  let language = \"ja\";\n\n  const t = (key, params = {}) => {\n    let text = messages[language][key] || key;\n\n    Object.entries(params).forEach(([name,value]) => {\n      text = text.replace(\"{\" + name + \"}\", String(value));\n    });\n\n    return text;\n  };\n\n  let statusKey = \"loading\";\n  const errors = {};\n\n  function setLanguage(next) {\n    language = next === \"en\" ? \"en\" : \"ja\";\n\n    root.setAttribute(\"lang\", language);\n\n    root.querySelectorAll(\"[data-i18n]\").forEach(el => {\n      el.textContent = t(el.getAttribute(\"data-i18n\"));\n    });\n\n    root.querySelectorAll(\"[data-i18n-aria]\").forEach(el => {\n      el.setAttribute(\n        \"aria-label\",\n        t(el.getAttribute(\"data-i18n-aria\"))\n      );\n    });\n\n    root.querySelectorAll(\"[data-lang]\").forEach(el => {\n      el.setAttribute(\n        \"aria-pressed\",\n        String(el.getAttribute(\"data-lang\") === language)\n      );\n    });\n\n    status.textContent = t(statusKey);\n\n    Object.entries(errors).forEach(([name,entry]) => {\n      $(`[data-error=\"${name}\"]`).textContent =\n        entry.key ? t(entry.key,entry.params) : \"\";\n    });\n  }\n\n  root.querySelectorAll(\"[data-lang]\").forEach(el => {\n    el.onclick = () => setLanguage(el.getAttribute(\"data-lang\"));\n  });\n\n  setLanguage(\"ja\");\n\n  const parseTime = value => {\n    const s = String(value ?? \"\").trim();\n\n    if (\/^\\d+(?:\\.\\d+)?$\/.test(s)) {\n      const n = Number(s);\n      return Number.isFinite(n) ? n : null;\n    }\n\n    const match = \/^(\\d+):(\\d{1,2}(?:\\.\\d+)?)$\/.exec(s);\n\n    if (!match || Number(match[2]) >= 60) {\n      return null;\n    }\n\n    const n = Number(match[1]) * 60 + Number(match[2]);\n\n    return Number.isFinite(n) ? n : null;\n  };\n\n  const formatTime = seconds => {\n    const ms = Math.round(seconds * 1000);\n\n    return (\n      Math.floor(ms \/ 60000) +\n      \":\" +\n      (Math.floor(ms \/ 1000) % 60).toString().padStart(2,\"0\") +\n      \".\" +\n      (ms % 1000).toString().padStart(3,\"0\")\n    );\n  };\n\n  function timeAxis(min, max) {\n    const target = (max - min) \/ 8;\n    const power = 10 ** Math.floor(Math.log10(target));\n    const step = [1,2,5,10]\n      .map(n => n * power)\n      .find(n => n >= target);\n\n    const ticks = [];\n    const start = Math.ceil(min \/ step) * step;\n\n    for (let i = 0; i < 20; i++) {\n      const v = Number((start + i * step).toPrecision(12));\n\n      if (v > max + step * 1e-8) {\n        break;\n      }\n\n      ticks.push(v);\n    }\n\n    return {\n      \"yaxis.range\": [max,min],\n      \"yaxis.autorange\": false,\n      \"yaxis.tickmode\": \"array\",\n      \"yaxis.tickvals\": ticks,\n      \"yaxis.ticktext\": ticks.map(formatTime)\n    };\n  }\n\n  async function init() {\n    if (!root) {\n      throw new Error(\"\u30b0\u30e9\u30d5\u306e\u8868\u793a\u9818\u57df\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\");\n    }\n\n    if (!window.Plotly) {\n      throw new Error(\n        \"Plotly\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002WordPress\u304cscript\u30bf\u30b0\u3092\u524a\u9664\u3057\u3066\u3044\u306a\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\"\n      );\n    }\n\n    const Plotly = window.Plotly;\n\n    const tsv = await fetch(DATA_FILE).then(response => {\n      if (!response.ok) {\n        throw new Error(\n          `TSV\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff08HTTP ${response.status}\uff09\u3002DATA_FILE\u306eURL\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002`\n        );\n      }\n\n      return response.text();\n    });\n\n    const lines = tsv\n      .replace(\/^\\uFEFF\/, \"\")\n      .split(\/\\r?\\n\/)\n      .filter(line => line.trim() !== \"\");\n\n    if (lines.length < 2) {\n      throw new Error(\"TSV\u306b\u30e9\u30c3\u30d7\u30c7\u30fc\u30bf\u304c\u3042\u308a\u307e\u305b\u3093\u3002\");\n    }\n\n    const headers = lines[0]\n      .split(\"\\t\")\n      .map(s => s.trim());\n\n    const columns = driverConfig.map(([,full]) =>\n      headers.indexOf(full)\n    );\n\n    if (columns.every(index => index < 0)) {\n      throw new Error(\n        \"TSV\u306e\u30c9\u30e9\u30a4\u30d0\u30fc\u5217\u540d\u304c\u8a2d\u5b9a\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002\"\n      );\n    }\n\n    const rows = lines\n      .slice(1)\n      .map(line => line.split(\"\\t\"));\n\n    const laps = rows.map(row => Number(row[0]));\n\n    if (\n      laps.some(\n        (lap,i) =>\n          !Number.isInteger(lap) ||\n          lap < 1 ||\n          (i > 0 ? lap <= laps[i-1] : false)\n      )\n    ) {\n      throw new Error(\n        \"TSV\u306e\u5468\u56de\u756a\u53f7\u306f\u3001\u91cd\u8907\u306e\u306a\u3044\u6607\u9806\u306e\u6b63\u306e\u6574\u6570\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\"\n      );\n    }\n\n    const times = columns.map(column =>\n      rows.map(row => {\n        const raw =\n          column < 0\n            ? \"\"\n            : (row[column] ?? \"\").trim();\n\n        const value = parseTime(raw);\n\n        return value === null\n          ? null\n          : (value > 0 ? value : null);\n      })\n    );\n\n    let fastest = Infinity;\n\n    times.forEach(values => {\n      values.forEach(v => {\n        if (v !== null) {\n          fastest = Math.min(fastest,v);\n        }\n      });\n    });\n\n    if (!Number.isFinite(fastest)) {\n      throw new Error(\"\u6709\u52b9\u306a\u30e9\u30c3\u30d7\u30bf\u30a4\u30e0\u304c\u3042\u308a\u307e\u305b\u3093\u3002\");\n    }\n\n    const cum = times.map(values => {\n      let total = 0;\n      let known = true;\n\n      return values.map((value,i) => {\n        if (\n          value === null ||\n          laps[i] !== (i === 0 ? 1 : laps[i-1] + 1)\n        ) {\n          known = false;\n        }\n\n        if (!known) {\n          return null;\n        }\n\n        total += value;\n\n        return total;\n      });\n    });\n\n    const within = driverConfig.map(() =>\n      laps.map(() => false)\n    );\n\n    const leaderTimes = laps.map((_,i) => {\n      const running = driverConfig\n        .map((_,d) => d)\n        .filter(d => cum[d][i] !== null)\n        .sort((a,b) => cum[a][i] - cum[b][i]);\n\n      for (let j = 1; j < running.length; j++) {\n        if (\n          cum[running[j]][i] -\n          cum[running[j-1]][i] <= 2\n        ) {\n          within[running[j]][i] = true;\n        }\n      }\n\n      return running.length\n        ? cum[running[0]][i]\n        : null;\n    });\n\n    let reference = \"leader\";\n\n    const gapValues = () => {\n      const base =\n        reference === \"leader\"\n          ? leaderTimes\n          : cum[Number(reference)];\n\n      return cum.map(values =>\n        values.map((v,i) =>\n          v === null || base[i] === null\n            ? null\n            : v - base[i]\n        )\n      );\n    };\n\n    const gapDefault = () =>\n      reference === \"leader\"\n        ? [0,250]\n        : [-250,250];\n\n    const gapLabel = () =>\n      reference === \"leader\"\n        ? \"Leader\"\n        : driverConfig[Number(reference)][0];\n\n    const gapHover = () =>\n      `%{fullData.name}<br>` +\n      `Lap %{x}<br>` +\n      `Gap to ${gapLabel()}: %{y:+.3f} s` +\n      `<extra><\/extra>`;\n\n    const initialTime = [\n      Math.floor(fastest),\n      Math.floor(fastest) + 8\n    ];\n\n    const wholeLaps = [\n      laps[0],\n      laps[laps.length - 1]\n    ];\n\n    const xRange = (min,max) =>\n      min === max\n        ? [min - .5,max + .5]\n        : [min,max];\n\n    const lapTraces = [];\n    const gaps = gapValues();\n    const gapTraces = [];\n\n    driverConfig.forEach(([d,,color],idx) => {\n      lapTraces.push({\n        name: d,\n        x: laps,\n        y: times[idx],\n        customdata: times[idx].map(t =>\n          t === null ? \"\" : formatTime(t)\n        ),\n        mode: \"lines\",\n        connectgaps: false,\n        line: {\n          color,\n          width: 2\n        },\n        visible: false,\n        showlegend: false,\n        hovertemplate:\n          \"%{fullData.name}<br>\" +\n          \"Lap %{x}<br>\" +\n          \"Time: %{customdata}\" +\n          \"<extra><\/extra>\"\n      });\n\n      lapTraces.push({\n        name: d,\n        x: laps,\n        y: times[idx],\n        mode: \"markers\",\n        marker: {\n          size: 6,\n          color: within[idx].map(f =>\n            f ? \"#fff\" : color\n          ),\n          symbol: \"circle\",\n          line: {\n            color,\n            width: 2\n          }\n        },\n        hoverinfo: \"skip\",\n        visible: false,\n        showlegend: false\n      });\n\n      gapTraces.push({\n        name: d,\n        x: laps,\n        y: gaps[idx],\n        mode: \"lines\",\n        connectgaps: false,\n        line: {\n          color,\n          width: 2\n        },\n        visible: false,\n        showlegend: false,\n        hovertemplate: gapHover()\n      });\n    });\n\n    const font = {\n      family: \"Times New Roman, Times, serif\"\n    };\n\n    const layout = title => ({\n      font,\n      legend: {\n        itemclick: false,\n        itemdoubleclick: false,\n        orientation: \"h\",\n        y: -.2,\n        x: 0\n      },\n      xaxis: {\n        title: {\n          text: \"Lap\"\n        },\n        range: xRange(...wholeLaps),\n        autorange: false,\n        tickformat: \"d\"\n      },\n      yaxis: {\n        title: {\n          text: title\n        },\n        autorange: false,\n        automargin: true\n      },\n      margin: {\n        t: 25,\n        r: 15,\n        b: 85,\n        l: 75\n      },\n      hovermode: \"closest\",\n      paper_bgcolor: \"#fff\",\n      plot_bgcolor: \"#fff\"\n    });\n\n    const lapLayout = layout(\"Time (m:s)\");\n    const axis = timeAxis(...initialTime);\n\n    Object.entries(axis).forEach(([key,value]) => {\n      lapLayout.yaxis[key.slice(6)] = value;\n    });\n\n    const gapLayout = layout(\"Gap (s)\");\n    gapLayout.yaxis.range = gapDefault();\n\n    $(\".race-interactive\").hidden = false;\n\n    root\n      .querySelectorAll(\"button,input,select\")\n      .forEach(el => {\n        el.disabled = true;\n      });\n\n    const config = {\n      responsive: true,\n      displaylogo: false,\n      scrollZoom: false,\n      doubleClick: false\n    };\n\n    await Promise.all([\n      Plotly.newPlot(\n        timeChart,\n        lapTraces,\n        lapLayout,\n        config\n      ),\n      Plotly.newPlot(\n        gapChart,\n        gapTraces,\n        gapLayout,\n        config\n      )\n    ]);\n\n    let busy = false;\n\n    async function run(action) {\n      if (busy) {\n        return;\n      }\n\n      busy = true;\n\n      root\n        .querySelectorAll(\"button,input,select\")\n        .forEach(el => {\n          el.disabled = true;\n        });\n\n      try {\n        await action();\n      }\n      catch (e) {\n        console.error(e);\n\n        status.hidden = false;\n        statusKey = \"updateError\";\n        status.textContent = t(statusKey);\n      }\n      finally {\n        busy = false;\n\n        root\n          .querySelectorAll(\"button,input,select\")\n          .forEach(el => {\n            el.disabled = false;\n          });\n      }\n    }\n\n    let legendCounter = 0;\n\n    const ranks = driverConfig.map(() => 0);\n    const selected = driverConfig.map(() => false);\n\n    const buttons = driverConfig.map(\n      ([d,,color],idx) => {\n        const button =\n          document.createElement(\"button\");\n\n        button.type = \"button\";\n        button.className = \"race-driver\";\n        button.style.backgroundColor = color;\n        button.style.color =\n          WHITE_TEXT.has(d)\n            ? \"#fff\"\n            : \"#000\";\n\n        button.setAttribute(\n          \"aria-pressed\",\n          \"false\"\n        );\n\n        button.setAttribute(\n          \"aria-label\",\n          d\n        );\n\n        const check =\n          document.createElement(\"span\");\n\n        check.className = \"race-check\";\n        check.setAttribute(\n          \"aria-hidden\",\n          \"true\"\n        );\n\n        button.append(\n          check,\n          document.createTextNode(d)\n        );\n\n        button.onclick = () =>\n          run(async () => {\n            selected[idx] = !selected[idx];\n\n            if (selected[idx]) {\n              ranks[idx] = ++legendCounter;\n            }\n\n            await applySelection();\n          });\n\n        $(\".race-drivers\")\n          .appendChild(button);\n\n        const option =\n          document.createElement(\"option\");\n\n        option.value = String(idx);\n        option.textContent = d;\n\n        $(\".race-reference\")\n          .appendChild(option);\n\n        return button;\n      }\n    );\n\n    function applySelection() {\n      buttons.forEach((button,i) => {\n        button.setAttribute(\n          \"aria-pressed\",\n          String(selected[i])\n        );\n\n        button.firstChild.textContent =\n          selected[i] ? \"\u2713\" : \"\";\n      });\n\n      return Promise.all([\n        Plotly.restyle(\n          timeChart,\n          {\n            visible: selected.flatMap(v => [v,v]),\n            showlegend: selected.flatMap(v => [v,false]),\n            legendrank: ranks.flatMap(v => [v,v])\n          }\n        ),\n\n        Plotly.restyle(\n          gapChart,\n          {\n            visible: selected,\n            showlegend: selected,\n            legendrank: ranks\n          }\n        )\n      ]);\n    }\n\n    $('[data-action=\"select\"]').onclick =\n      () =>\n        run(async () => {\n          legendCounter =\n            driverConfig.length;\n\n          selected.fill(true);\n\n          ranks.forEach((_,i) => {\n            ranks[i] = i + 1;\n          });\n\n          await applySelection();\n        });\n\n    $('[data-action=\"clear\"]').onclick =\n      () =>\n        run(async () => {\n          legendCounter = 0;\n          selected.fill(false);\n          ranks.fill(0);\n\n          await applySelection();\n        });\n\n    function setFields(\n      name,\n      range,\n      format = String\n    ) {\n      field(name,\"min\").value =\n        format(range[0]);\n\n      field(name,\"max\").value =\n        format(range[1]);\n    }\n\n    setFields(\n      \"laps\",\n      wholeLaps\n    );\n\n    setFields(\n      \"time\",\n      initialTime,\n      formatTime\n    );\n\n    setFields(\n      \"gap\",\n      gapDefault()\n    );\n\n    async function applyLaps(min,max) {\n      await Promise.all(\n        [timeChart,gapChart].map(chart =>\n          Plotly.relayout(\n            chart,\n            {\n              \"xaxis.range\": xRange(min,max),\n              \"xaxis.autorange\": false\n            }\n          )\n        )\n      );\n\n      setFields(\n        \"laps\",\n        [min,max]\n      );\n\n      error(\"laps\");\n    }\n\n    async function applyTime(min,max) {\n      await Plotly.relayout(\n        timeChart,\n        timeAxis(min,max)\n      );\n\n      setFields(\n        \"time\",\n        [min,max],\n        formatTime\n      );\n\n      error(\"time\");\n    }\n\n    async function applyGap(min,max) {\n      await Plotly.relayout(\n        gapChart,\n        {\n          \"yaxis.range\": [min,max],\n          \"yaxis.autorange\": false\n        }\n      );\n\n      setFields(\n        \"gap\",\n        [min,max]\n      );\n\n      error(\"gap\");\n    }\n\n    [\"laps\",\"time\",\"gap\"].forEach(name => {\n      form(name).onsubmit = event => {\n        event.preventDefault();\n\n        const rawMin =\n          field(name,\"min\")\n            .value\n            .trim();\n\n        const rawMax =\n          field(name,\"max\")\n            .value\n            .trim();\n\n        const min =\n          name === \"time\"\n            ? parseTime(rawMin)\n            : Number(rawMin);\n\n        const max =\n          name === \"time\"\n            ? parseTime(rawMax)\n            : Number(rawMax);\n\n        if (\n          !rawMin ||\n          !rawMax ||\n          !Number.isFinite(min) ||\n          !Number.isFinite(max)\n        ) {\n          error(\n            name,\n            name === \"time\"\n              ? \"invalidTime\"\n              : \"invalid\"\n          );\n\n          return;\n        }\n\n        if (name === \"laps\") {\n          if (\n            !Number.isInteger(min) ||\n            !Number.isInteger(max) ||\n            min > max ||\n            min < wholeLaps[0] ||\n            max > wholeLaps[1]\n          ) {\n            error(\n              name,\n              \"lapError\",\n              {\n                min: wholeLaps[0],\n                max: wholeLaps[1]\n              }\n            );\n\n            return;\n          }\n\n          run(() =>\n            applyLaps(min,max)\n          );\n        }\n        else {\n          if (\n            min >= max ||\n            (\n              name === \"time\"\n                ? max - min < .001\n                : false\n            )\n          ) {\n            error(\n              name,\n              name === \"time\"\n                ? \"timeError\"\n                : \"gapError\"\n            );\n\n            return;\n          }\n\n          run(() =>\n            name === \"time\"\n              ? applyTime(min,max)\n              : applyGap(min,max)\n          );\n        }\n      };\n    });\n\n    $('[data-action=\"reset-laps\"]').onclick =\n      () =>\n        run(() =>\n          applyLaps(...wholeLaps)\n        );\n\n    $('[data-action=\"reset-time\"]').onclick =\n      () =>\n        run(() =>\n          applyTime(...initialTime)\n        );\n\n    $('[data-action=\"reset-gap\"]').onclick =\n      () =>\n        run(() =>\n          applyGap(...gapDefault())\n        );\n\n    $(\".race-reference\").onchange =\n      () =>\n        run(async () => {\n          reference =\n            $(\".race-reference\").value;\n\n          await Plotly.update(\n            gapChart,\n            {\n              y: gapValues(),\n              hovertemplate: gapHover()\n            },\n            {\n              \"yaxis.range\": gapDefault(),\n              \"yaxis.autorange\": false\n            }\n          );\n\n          $(\".race-gap-title\").textContent =\n            \"Gap to \" + gapLabel();\n\n          setFields(\n            \"gap\",\n            gapDefault()\n          );\n\n          error(\"gap\");\n        });\n\n    root\n      .querySelectorAll(\"button,input,select\")\n      .forEach(el => {\n        el.disabled = false;\n      });\n\n    status.hidden = true;\n  }\n\n  init().catch(e => {\n    console.error(e);\n\n    $(\".race-interactive\").hidden = true;\n\n    status.hidden = false;\n    statusKey = \"loadError\";\n    status.textContent = t(statusKey);\n\n    root\n      .querySelectorAll(\"[data-lang]\")\n      .forEach(el => {\n        el.disabled = false;\n      });\n  });\n})();\n<\/script>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\">Takumi, \u30d4\u30c8\u30a5\u30ca<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-1024x576.png\" alt=\"\" class=\"wp-image-17587\" srcset=\"https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-1024x576.png 1024w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-300x169.png 300w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-768x432.png 768w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/-1536x864.png 1536w, https:\/\/f1-lap-time.com\/wp-content\/uploads\/2026\/10\/\u30bb\u30d1\u30f3\u3092\u5236\u3059\u30ec\u30c3\u30c9\u30d6\u30eb\u3001\u6b53\u559c\u306e\u30c1\u30a7\u30c3\u30ab\u30fc.png 1672w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>F1\u304c\u30de\u30ec\u30fc\u30b7\u30a2\u306b\u5e30\u3063\u3066\u304d\u305f\u3002 \u4f4e\u4e2d\u9ad8\u901f\u30b3\u30fc\u30ca\u30fc\u304b\u3089\u30ed\u30f3\u30b0\u30b9\u30c8\u30ec\u30fc\u30c8\u307e\u3067\u3001\u3042\u3089\u3086\u308b\u8981\u7d20\u304c\u8a70\u307e\u3063\u305f\u975e\u5e38\u306b\u30c1\u30e3\u30ec\u30f3\u30b8\u30f3\u30b0\u306a\u30c8\u30e9\u30c3\u30af\u3067\u3042\u308a\u3001\u305d\u306e\u6691\u3055\u3068\u8def\u9762\u306e\u7c97\u3055\u304b\u3089\u30bf\u30a4\u30e4\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u306b\u304a\u3044\u3066\u3082\u975e\u5e38\u306b\u96e3\u3057\u3044\u3002\u305d\u3093\u306a\u4e45\u3005\u306e\u30bb\u30d1\u30f3\u3067 [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":17587,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17551","page","type-page","status-publish","has-post-thumbnail","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=\/wp\/v2\/pages\/17551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17551"}],"version-history":[{"count":13,"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=\/wp\/v2\/pages\/17551\/revisions"}],"predecessor-version":[{"id":17588,"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=\/wp\/v2\/pages\/17551\/revisions\/17588"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=\/wp\/v2\/media\/17587"}],"wp:attachment":[{"href":"https:\/\/f1-lap-time.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}