BPCAJCLTVK2GVWYURWJTPQ6XA34JUJZNZHG6ONX4ARM3QPJJ6UPQC 3FTEGCMRMELPIJRUKNKRTA5TDBXEOTOOVRUTZJ7DWD27ZTKKMV3QC F2S6XETO6DQ4447O4WPAHISGTBRVWW2WZYJ633KKYWWYKW5GXBPQC QL6K2ZM35B3NIXEMMCJWUSFXOBQHAGXRDMO7ID5DCKTJH4QJVY7QC 4H2XTVJ2BNXDNHQ3RQTMOG3I4NRGZT7JDLC2GRINS56TIYTYTO4QC NS36CJCO6E2FS65JRHHMOK4GTL7CLNOOLQZZAAAIZI2CQYNPAYRQC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC GUL4M5FIE7JYXJHR7MCTQS3543HIQXGPLBWZKASBAWWEA4SZ75CAC pub(crate) fn timestamp_validator(s: &str) -> Result<(), &'static str> {if let Ok(t) = s.parse() {if chrono::NaiveDateTime::from_timestamp_opt(t, 0).is_some() {return Ok(());}
pub(crate) fn parse_datetime_rfc2822(s: &str) -> Result<i64, &'static str> {if let Ok(ts) = chrono::DateTime::parse_from_rfc2822(s) {return Ok(ts.timestamp())