"""本主题专属离线算法，仅读取同目录合成JSON，不联网、不控制设备。"""
import csv, json, math, re, struct
from pathlib import Path
from fractions import Fraction
BASE=Path(__file__).resolve().parent
data=json.loads((BASE/'input.json').read_text(encoding='utf-8'))['data']
import ipaddress
rows=[]
for u in data['universes']:
 valid=isinstance(u,int) and not isinstance(u,bool) and 1<=u<=63999
 if valid:
  hi,lo=divmod(u,256);address=f'239.255.{hi}.{lo}';ipaddress.IPv4Address(address);assert hi*256+lo==u
  rows.append({'universe':u,'valid':True,'high_byte':hi,'low_byte':lo,'ipv4_group':address})
 else:rows.append({'universe':u,'valid':False,'reason':'超出1到63999范围'})
assert rows[3]['ipv4_group']=='239.255.1.0' and rows[4]['ipv4_group']=='239.255.249.255'
result={'mapping':rows,'multicast_subscription_changed':False}
(BASE/'result.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
print(json.dumps(result,ensure_ascii=False))
