cloudflare
tcp/443 tcp/80 tcp/8443
Open service 172.67.161.76:8443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=cBpaG%2B4Yx%2Fa6mt0nislO5FvlBq3fpmLoiyDcdfF2sN7d3%2FfUTRX2AvAoGQp1rvQ1SIWL6u28N3FtE2%2FyI9XT%2BfAAkOaQSD0tsw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be403288ff54f-YYZ
alt-svc: h3=":8443"; ma=86400
Redirecting to /sp26/
Open service 2606:4700:3032::6815:f23:80 · cs61c.org
2026-01-26 00:28
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=hvmfie3g4AYma3szhrbQc7kbCu%2BSkFaKys4eNSZqqtR%2BfaEqpRD3rsOmoygmrYS66ohxDf8FpH%2FL0xB%2BT5XRP2qHOZWJOakktnGcMpavljT2EliO2w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be4030a9adbea-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:8443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pigMK0f4VPgnPu1N122KSHgnqqbFue5kjgr9w6YW7iqmOLXqOngu4QPVqh%2BA1u0lhutmO6KJWwlGi0Kny%2FLQYku3utUu%2BXrkIRlcAHaASApyJTZqtA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be402fd1a0bac-LHR
alt-svc: h3=":8443"; ma=86400
Redirecting to /sp26/
Open service 2606:4700:3030::ac43:a14c:443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=HkfW%2FDvyx2Bm%2FjkJmV5MC0ajR%2BxHoG0Fah5T5pZaHFhfDwnYEpn3VW4mLIcvTlREAIfRj73msAW3e%2FmYztcNnDKKZ%2FZQTeJ7YKOO5y3jgH9alnFNfw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be402dc689f62-AMS
alt-svc: h3=":443"; ma=86400
Redirecting to /sp26/
Open service 2606:4700:3030::ac43:a14c:80 · cs61c.org
2026-01-26 00:28
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=tCLyZM4akOOB8BEmUgxshOKU3SukMg%2B6dR3%2FDNOhPvKlQuhrjnAsnIqMFN4FGd%2Bo%2FPrudly1J3Tk%2FNB%2BSlJP4CIZ1lNFZw%2Fiu0xgMErDxHhlsh1Igg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be402cecde010-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:80 · cs61c.org
2026-01-26 00:28
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=MHjfNeo9w6pt2bUFqMELMs1e6K2QnHPVDxy2Un3AW965yu8VLSyMKnYf%2BhmyuYiCogWSQUBinKPDQz4cJ2u%2FGLyBYB8p7Vg%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be402d9e3fb89-AMS
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=lMkjOQF7Py81%2Be7fwxzw1LhPqzUpPk341S1W2KARFSmKeKtCvvyc%2FuRLHL9xJ6WlFCU4DXUC0I%2BgNnyDVKWAoeqKh5z6GZNH%2FA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be40259f89202-FRA
alt-svc: h3=":443"; ma=86400
Redirecting to /sp26/
Open service 172.67.161.76:443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=m57DriqI3UFK2Edoyf7Xyze1MNuWDdZBV%2BzA3vFBn%2BCVs7Pg746Mhi3gXwFFhZ9SKk%2B%2FX3wgplabVVzglyzoFZGcThZvxYj5%2Fg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be4023c045a40-AMS
alt-svc: h3=":443"; ma=86400
Redirecting to /sp26/
Open service 172.67.161.76:80 · cs61c.org
2026-01-26 00:28
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ie6aCdLY5lk4imj3RmBSwE0eia2FO8ifzaguTFzm2BwedrL6BH%2FJwyfQIrVvT04trl07zEYw94f1NN9%2FMMRN3g%2BRCgsaAnUJDQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be401cd97b151-AMS
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:f23:443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Mfy%2FVl7hMtoII03RoRFm7aKLworuO6AYIqlsEQqZfXD8pvv6Ho%2BN8xW82xNKIbwjcMgVQslKLObRtUgrkgSwp7r11bSuH6MpJIsEtMbrjCJttqXI2g%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be401d9e2f795-EWR
alt-svc: h3=":443"; ma=86400
Redirecting to /sp26/
Open service 2606:4700:3032::6815:f23:8443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=cJ2YnOVPfmCoZzDN8H9j5L%2Fx9YIngDbr7ZSVBJ89fkOGFkUYmqaGsgpE3tl4f%2FUNNLfH4Ut37ctQv0hS5t7wDalfLVCPNAnHBAgwuNmkWyyy3yph4w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be40219c652c0-EWR
alt-svc: h3=":8443"; ma=86400
Redirecting to /sp26/
Open service 104.21.15.35:8443 · cs61c.org
2026-01-26 00:28
HTTP/1.1 302 Found
Date: Mon, 26 Jan 2026 00:28:30 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /sp26/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kQhFpO%2FUMLjb%2BkTaKGbq0E5xcggvkayW0fZn%2BsBwxM%2FQx1iyzi%2Buna%2FT8kiJianLClYD6u7ZjsF0U5d7vJvoGLM6BXA8pqxv4A%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c3be40199979f57-FRA
alt-svc: h3=":8443"; ma=86400
Redirecting to /sp26/
Open service 104.21.15.35:443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=qv1YIos%2BglvR0osacTLTlgxDFHSfa4TAmJzPcv6QvaABS9AlMN0TRjyJohwf4w2M2sitpti1SWX2i94yP8L5VYZLWkYJjUODBo3lwhnOrZXuZwE%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff242c3afd6b-SIN
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:f23:8443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=xmCwP6B1TMNdZprlJcgDx904EXy%2FG3Sn9IMJBrImTP2Jh3QJBxUxN122grGWfyqS%2FVSlVt4CiTe2p%2FgAOnp71vBvikAuqv%2BzwPEeX%2Fz%2Bm1jNyRtEL0ARUF%2BoxZNYdtc%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff247aed8959-SIN
alt-svc: h3=":8443"; ma=86400
Open service 172.67.161.76:443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Et4Q5%2B%2FgPFyPM43yHJPevW%2FceAX3nkuf4mylPScdqpOMnoH%2FLBsMtmFFa3ixqUW4MOyXyddsm2qg1sHtFQWhbYt4J3k6RRvVvXk7S5HTSQiFx9w%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff247accfd1f-SIN
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:f23:443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=BUpF9mWMuKNpjpHP9xbHAYiuWD75KAmh6LYjYdgOD4pY%2BVEYYtYefMZGp%2BJyMgRNnwNtErIQDRpxoaFH2Wo89wfp4MWKlaMWBqr%2F%2Bz4wLeVdECTHZKCY%2BR5ZE0WZDg8%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff247828fdff-SIN
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:8443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=GC2ZpGJTwz55Vzb7qy1PEY9NK1N9h5MPRfl2ql7ZCkzRwRVQBVnLc0t7K29iA%2BFsYW%2FrU6%2BJ4Xwe2Qz4QIg4Q7N4HlxeGZQPP%2BtzXrNVOkp2"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff2259fa5cb0-FRA
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ReUCbE05jL7cbrEPs7jvLz1P09Cq%2FtaSToVkYHbK6EiPskseQ%2BzzWHfyEImqCdHa7%2B3SkDai%2FXFhHiO7T0JUQO20Mkjaad2JWzdELX9CRaD7AD%2FTLhQmIzUWEsq2Xjs%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff2248702954-FRA
alt-svc: h3=":443"; ma=86400
Open service 172.67.161.76:80 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Length: 0
Connection: close
Location: https://notes-dev.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=OrPg6bbp6HigYsUCJFcWItD%2BAkzJyQw1aSZniu4MlMqF%2FxTKtsAdf68tcZkBZ1MHwiK5dodkkCFlhm68w6CTaZuQbqB6fgrNCMGQlpfEeXrqGE0%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff221f93aa9f-EWR
alt-svc: h3=":443"; ma=86400
Open service 172.67.161.76:8443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=t%2F96i0r4g4xcq%2FH%2FnhY5S7tyV%2BxalYX57DbHZhj%2F6xd5q%2BPWZVjfZXRTrj6XRxlS2gGPoxW1eMMc8ueQ9ztF807NVT0tpjxS4Ghp%2B%2Fq3OvxM"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff2208a9ef07-LHR
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3032::6815:f23:80 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Length: 0
Connection: close
Location: https://notes-dev.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=g93oPmsR4n%2F9nUH3ml7H9UQnBYvfhYEChKZcLTFViFKrwf21wDZOSgeAgjv%2FRUKTb4Y1foSt4m8bJP1e0MGvjm1i42LeddkjlaOBIeKa6ZLo%2F6vihzUrMH16WvA8Kz0%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff21cb624af5-LHR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:8443 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=sq1d7jkfUgY9ilmHU9N8l0Jiysp4F8WzDZiZNlhFReS55hvzwOhGlO2MiOZATMHYK7GwHgAum2s52iAQMT5p4QGPFOdL9wPiEB8IJx5d%2Fcaw%2FZIChx3KFH3d6gM0WDA%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff223e315d6d-FRA
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:80 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Length: 0
Connection: close
Location: https://notes-dev.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=oqHRD4HiL00k8%2FJmeIfvNbGGGXNQ045lKWYPZ4s95RxpPNsGPTzIKEZOpvg737GRq3PgeVpmje92VQeRgWkjMH2TTjY%2F8BUutotg5JdYCj29zUAx40X57G%2BtGRwer%2FQ%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff21aafcd368-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:80 · notes-dev.cs61c.org
2026-01-22 23:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:57:57 GMT
Content-Length: 0
Connection: close
Location: https://notes-dev.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=xSZDwSpg06EXVGl6AJ3xErXNPDI6yPtAPnUiJsJzCuR7OH%2B4l7nB010UowxOOgbYsLPzdEJH%2FpYkpU5clepcTRKO66Ar98btuOQGM3QM79BeLUk%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22ff218dbcd577-LHR
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:80 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Length: 0
Connection: close
Location: https://notes.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2Bm%2FgjjgxeyWq16Uc2kC9c%2Fvv%2FkIDbFl0XvPoEmHgw%2FX2TI2TMoPjyJv%2BTiNueRuPdO9klEhtuYqmoNMCkQG%2Bf5IBRX4jil6p8426wQNZqg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc17df7a2ad-BOM
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:8443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=DlakBOBZOOgO41algNgGue6pTofqnO0mZwawNL1ZJ2uL7jJWntDEynq4k7sPQHrDiccW8gaQO%2F5Y%2F0UeKVdpiPRds%2FliG0iJ914tS5c%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc3aecf8ee8-BOM
alt-svc: h3=":8443"; ma=86400
Open service 172.67.161.76:8443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=dLFzUJ%2FebzmXAe434shebkOInJFqBbVPzPlz1TdL36D%2BYFcS8iWud2bKXzMy11Z7eJvje346FxJ%2FqEWyyYbKQMTEvlbqwjSYE8NmK2wg%2Bg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc15ceb2bf8-FRA
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3032::6815:f23:80 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Length: 0
Connection: close
Location: https://notes.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9AVSRAQSYmhMhUjQpepWw%2FSC0D8QptRnX8DLKwaSCGUkAyQDq4TXF4HalCWrAyUDBgk3G%2FE12vxdFNBAC2nzLj8yHTCZhlPykwM8%2B4Et4T9XAphZUHyhqVCu6Q%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc119b11354-SJC
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=LzKiXximpidKFTDYRfwiPqp81dljcfJjYTmFXwrMDLYJpR659Pneag%2FVd5Kn33o0bbNRTQaJdbglbXSD%2F8eQ9XeotP2RevONrap%2FVpJGRg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc13d77dc04-SJC
alt-svc: h3=":443"; ma=86400
Open service 172.67.161.76:443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=cqtX7VzQKaLJporNQethtwYxwMamd485ZQxy5D%2FzQ3YqfjNYB98ThhuwzPu%2B68dC0EiH4l4N1mGiqnj30UhS6aAxEchzBJ0jZeMW78shBQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc1c8d5ab28-YYZ
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:80 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:56:19 GMT
Content-Length: 0
Connection: close
Location: https://notes.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=DnlACR7bXt0wrxJkPIYmHozs8b4oRei2NLFDOIb3bISv7dtl5mQ21lCJrXbXtJL6N0PqCNz5Toa%2FEviiTcedmQ%2B2qFlg%2FdHCeZIzk83ZRQG5cBYEPFWZuCc1%2Fw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc0cd73ebbc-YYZ
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:8443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=NenZzz8oW7RB12fcQVFBYFY4%2Frd7BRnCH6bZMJDzfV25mUmsfLV9dc7xh6%2BI43x1XZdgnrBJdQ3Jj1UYzChg6kjRjg0Lza5QQq6wseWelIEGNxgPBr%2F2m84b0Q%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc10a3bdcc5-FRA
alt-svc: h3=":8443"; ma=86400
Open service 172.67.161.76:80 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Length: 0
Connection: close
Location: https://notes.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=M3ZdLfn%2FK0hgVPY8FpPuFaRYa7Dm9wjmIaPsbFjmKjChk3Qvq%2B%2FGOdv40dJ4k3wyBXpDe%2FIkLbGYNUr8xvws%2Fx5ykzNWEq9PlTdmy0wWQw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc0f967d28c-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:f23:443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2FlUy1C%2BpBTkgNgPdu6fKkHp7xVPApMai9EJaccOAB9VY0aHJekvBv%2BSsFHK2QdGokeqWkSbR82MAKXEp3aJIliCHBYQpj5PkogAlSjLOl81VVe%2Bm7b%2BkGRem8w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc10d9ad351-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
cf-cache-status: DYNAMIC
Server: cloudflare
Vary: Accept-Encoding
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=9r%2BO2Rq4ERZYtjehc%2FQkVLUuQcDg%2Bt1jk4%2BjbAxS2i%2FTMCaBeczRjTxxfoDJDdf4ipMFXgjxlnTQGrReowJWxfUXQjhUfkcUpbo3ygrauTcV5wdJrfpR1lL5AWJ2m%2F6DGoEb6%2FhB%2BQB6rrkoCt4%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
CF-RAY: 9c22fcc0eff29f1d-FRA
Open service 2606:4700:3032::6815:f23:8443 · notes.cs61c.org
2026-01-22 23:56
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 23:56:20 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Link: </build/entry.client-PCJPW7TK.js>; rel="modulepreload", </build/_shared/chunk-AQ2CODAG.js>; rel="modulepreload", </build/_shared/chunk-JJXTQVMA.js>; rel="modulepreload", </build/_shared/chunk-OZE3FFNP.js>; rel="modulepreload", </build/_shared/chunk-7UUHRSK3.js>; rel="modulepreload", </build/_shared/chunk-C4DFGG5C.js>; rel="modulepreload", </build/_shared/chunk-J7TUH54J.js>; rel="modulepreload", </build/_shared/chunk-FZ2S7OYD.js>; rel="modulepreload", </build/_shared/chunk-JEM6JXYA.js>; rel="modulepreload", </build/_shared/chunk-34XIY2DH.js>; rel="modulepreload", </build/_shared/chunk-KQM5FBHR.js>; rel="modulepreload", </build/_shared/chunk-OCWQY3HK.js>; rel="modulepreload", </build/_shared/chunk-7HNKBP4B.js>; rel="modulepreload", </build/_shared/chunk-CUKUDK3R.js>; rel="modulepreload", </build/_shared/chunk-3EBOCCHJ.js>; rel="modulepreload", </build/_shared/chunk-O4VQNZ62.js>; rel="modulepreload", </build/_shared/chunk-4OEDG4JQ.js>; rel="modulepreload", </build/_shared/chunk-GUCIBHGO.js>; rel="modulepreload", </build/root-EDJFWIEV.js>; rel="modulepreload", </build/_shared/chunk-ECLX7DIY.js>; rel="modulepreload", </build/routes/_index-ZMAZD7U6.js>; rel="modulepreload"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=5KNHrsooTohj3Z3by6wB3ggOjJkdoDSIiAChP3v%2FbLvbvdHz4u2TAnEGhn8spzjb1cJ%2Ff4ZYlfVqRCrWyKZ36cINITVtGcDqqy1DCt6Fq%2FoE3M5mVBuyTDkvIQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9c22fcc0c8d79521-LHR
alt-svc: h3=":8443"; ma=86400
Open service 172.67.161.76:8443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:41 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=t6PPFpCPGTKvVFmlR%2FyUTKW9Y%2FfF71Wu%2BGKtLfAoA%2FLhhBMpV2xhRV4nF5ksJIP4tQIkDKz%2BntEsXEuguTrVlAuqNBS7VE9wAXK%2BgwRikPhqfA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e8ad103dd6-EWR
alt-svc: h3=":8443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 104.21.15.35:443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:41 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2BE12kcvNIOF2nYO8hzgtnzj%2FlXM1K7OWvn%2F4cYErZRT2NmKKadW44pOFhOHAmYonaddkkp0GAqia0mqWXngliF8V8LRU2soxA%2Fi15GIBHGgdWA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e82db8c466-EWR
alt-svc: h3=":443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 2606:4700:3030::ac43:a14c:8443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=YUYpdxW7MjthC3DA5TFjfkJxrpLDSE4iupxlbi9gcsM%2BJQ%2F4MmpwCXt1PniPMtyqcjrBxBsYFGs9uxfoly%2FB5nS0W0IqUHv0R4yAk4u5sBjgRRHm%2BMdWm4QT7SRG8A%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e759ee312a-AMS
alt-svc: h3=":8443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 2606:4700:3032::6815:f23:8443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9JLvMEouuXfCyDEETmroSyc5YSis4VqLsYqgiCyZJzF1Ib68rVapLQbqQFPEfbt2%2BoHH%2FctR5gm%2FciqCMZaaSIZ6RTZ5ThMjcqY0vMJ5ahd1T0fhNBVHG2USSqkadw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e75b37c65d-YYZ
alt-svc: h3=":8443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 172.67.161.76:443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ZTEXk6dK6DI7HqiMfnMX%2FTHVzDsQDrH7pnF36wzk0Z68K68JONR8Ifrl36CO8p1h%2BN%2Fm41ZOiIlRsk20iatiq2UGO8FcokBX%2F4STJDq%2FVBZUuQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e7cb4925c5-LHR
alt-svc: h3=":443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 104.21.15.35:80 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 301 Moved Permanently
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Length: 0
Connection: close
Location: https://textbook.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=8QlThbs91PpZ9JBrpJW23oA%2BuyIrogyC1E8Yi9l7cWMLgFRpBmS0uHXWFhPkHnB3brzTPKxLNHDK9wLW2joPFsW1P1njmcMFSIMvq65SCO48Gw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e738acf41c-LHR
alt-svc: h3=":443"; ma=86400
Open service 172.67.161.76:80 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 301 Moved Permanently
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Length: 0
Connection: close
Location: https://textbook.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=w44OAficm9ARdKKKH%2BHObyfAsfIW%2BysGkFQz%2BL%2BvPncmEcBPinxNbFMKG37DWj9IHCx0lDUjHlO%2FXQnULWKDOEHFbsvG5Rf7Cb3Ll4raHy2vjQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e6ef46cb3f-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:80 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 301 Moved Permanently
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Length: 0
Connection: close
Location: https://textbook.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=HXmek6zyIaBXsepUi73us4u9BJOuQf1ND1EwLLwur5P6uA3jUfY%2BuOHoPeCBY4gF2JlsFn%2BQp8L%2F5jK4cx4UnPHAfsBYZ65KbUEzVWbRYr%2FpfIQIIWFlf0SsBInCaQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e71b0565ca-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:8443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Tn%2FYZTzsnfKEYSJFvT7RmAer00YWTfXXcvbW8MHVVuJLZwmmkSOHZ%2Fs5meBKD%2FHgJpwOJse7nV5guWgeA0enmYjWM8JkrYsMmPw49wwvpDGzFA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e748d6d35a-FRA
alt-svc: h3=":8443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 2606:4700:3032::6815:f23:80 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 301 Moved Permanently
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Length: 0
Connection: close
Location: https://textbook.cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=LZi%2BA0zW3FJAWlSoctRuxGmD3iwMHEouWni%2BItOaSWUS8EgYeI%2Bm9Ne9PYuKtG0udc7VEJZernyAH2yadvD3HsE7XYCK1cG6Pcy6tuaxtpsgVMgaI2SAqPc1zQ%2B%2FZg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e6dbdc78c3-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::6815:f23:443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=p6959ewtXZHS%2F5yYYufGQqJVbEN3CfTeN6j6bHCMQb1Iwf5c0Z7bH3sPhdLvjP2zTTEQ5abSSoYPngNFPvqWI8BVKiK9gbyu5r30kTdBPve1wXNLqzPRM81DjDHy1A%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e70c931d99-SJC
alt-svc: h3=":443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 2606:4700:3030::ac43:a14c:443 · textbook.cs61c.org
2026-01-11 22:23
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 22:23:40 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=mo1G6PQIBrXXYdwma39TFVabRTitj6U4COT2sE7iNlsgtrJfB5zf5qV0N5uRLt%2BZE4CiHO3S3mkWXeAlE8FgYTmIPZnlNLixkIBaWntmoLMWUvb8eZBiZW96j3S%2FqQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9bc7d1e6bb64aee9-AMS
alt-svc: h3=":443"; ma=86400
Page title: About these Course Notes
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.8.26">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>About these Course Notes</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./content/number_rep/index.html" rel="next">
<link href="./assets/favicon.png" rel="icon" type="image/png">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-0229372d3681f9145429f15426e7efd2.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "sidebar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "start",
"type": "textbox",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "No results",
"search-matching-documents-text": "matching documents",
"search-copy-link-title": "Copy link to search",
"search-hide-matches-text": "Hide additional matches",
"search-more-match-text": "more match in this document",
"search-more-matches-text": "more matches in this document",
"search-clear-button-title": "Clear",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Cancel",
"search-submit-button-title": "Submit",
"search-label": "Search"
}
}</script>
<!--<script async src=”https://siteimproveanalytics.com/js/siteanalyze_6294756.js”></script>-->
<link rel="stylesheet" href="assets/styles.css">
</head>
<body class="nav-sidebar docked quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="quarto-secondary-nav">
<div class="container-fluid d-flex">
<button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<i class="bi bi-layout-text-sidebar-reverse"></i>
</button>
<nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./index.html">Home / About</a></li></ol></nav>
<a class="flex-grow-1" role="navigation" data-bs-toggle="co
Open service 2606:4700:3032::6815:f23:8443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 521 <none>
Date: Mon, 05 Jan 2026 06:26:07 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 05 Jan 2026 06:26:37 GMT
set-cookie: cf_ob_info=521:9b90e6fc5cb8a1af:SIN; Expires=Mon, 05 Jan 2026 06:26:37 GMT
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kcS7PG%2BOSgldBI%2Bj2ioHuZWGrRiiXUlaVSS0RG%2FpfAO8zQK9MoSZkypa5lDF0z1r3rnXHWIGxrSVfHpF1aNROnDk0w%2F4VxZR1sNwcP9Gt%2FClWmgVv5xdOw%3D%3D"}]}
CF-RAY: 9b90e6fc5cb8a1af-SIN
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:8443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 521 <none>
Date: Mon, 05 Jan 2026 06:26:06 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 05 Jan 2026 06:26:36 GMT
set-cookie: cf_ob_info=521:9b90e6f33ab7cdf6:SIN; Expires=Mon, 05 Jan 2026 06:26:36 GMT
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=nVm6se1GWyY8PZoVu2qdUHHV1YA4ggyAHN3ItgTvR4NLyttd8dIEy3wHYZqO8p1WiDwctrGQOMrHTI8Dyxw8%2BkWxlPZtftvj2yVW30TAG13WTaH%2Fe08B2Q%3D%3D"}]}
CF-RAY: 9b90e6f33ab7cdf6-SIN
alt-svc: h3=":8443"; ma=86400
Open service 104.21.15.35:80 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 301 Moved Permanently
Date: Mon, 05 Jan 2026 06:26:05 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://ai.cs61c.org:443/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=6K6Q5HUpb7qUCu%2FTfx3joeZ42vXoJgLIEicgGXR60Wz4epUdYpcUJDBx%2FZ0G%2B5awMCKbtHSAo5YypLaEUmNyoMO9mo7vOndDqYW4wQ%3D%3D"}]}
CF-RAY: 9b90e6f08ba743f4-EWR
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
Open service 104.21.15.35:8443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 521 <none>
Date: Mon, 05 Jan 2026 06:26:05 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 05 Jan 2026 06:26:35 GMT
set-cookie: cf_ob_info=521:9b90e6ef88f82393:SJC; Expires=Mon, 05 Jan 2026 06:26:35 GMT
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=eE9lvn34rbTsaG211fkJ9g8%2FRFL0hU0PGEe25z2RDXmsWRL%2BaPlH9ygSEBSsHiwTpf1WIK2yJ96i6aqSTZrMJzcaDQG2kF%2FaWTi36g%3D%3D"}]}
CF-RAY: 9b90e6ef88f82393-SJC
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3032::6815:f23:80 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 301 Moved Permanently
Date: Mon, 05 Jan 2026 06:26:05 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://ai.cs61c.org:443/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=XdTYxA4PiJh8zJzh9DGUChK2N40tVfPJgudwOy6mwg6BuNhnJwAW6UV49oWtpVcd0TsjuEZVWlx4tr%2FIXvyqTYXL%2BlV5RZlp8FS7QJAGS1OnqJt0Z4s%3D"}]}
CF-RAY: 9b90e6f0cdd5ed02-LHR
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
Open service 172.67.161.76:80 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 301 Moved Permanently
Date: Mon, 05 Jan 2026 06:26:05 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://ai.cs61c.org:443/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fn%2FLdb8KeGCIfuHSBb19r5CF5snMYoueHhdhq3kyrA655GFU53bfYNjvHEK8U0ZhykTANbb43%2Fkq%2B47uYOUtdP2rsX8HeP9YlbBODA%3D%3D"}]}
CF-RAY: 9b90e6f04e6333a6-EWR
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
Open service 2606:4700:3032::6815:f23:443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 302 Found
Date: Mon, 05 Jan 2026 06:26:07 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
x-powered-by: PHP/5.6.40
Cache-Control: no-cache
location: https://ai.cs61c.org/information
Set-Cookie: XSRF-TOKEN=eyJpdiI6IkNrSEswUXV3MFwvMDV5TWlrcm5cL2ROQT09IiwidmFsdWUiOiJrczNOSUJsR1pxWnFVbWRYd21sRGFudEZQSzVOUW5RV2o2TlowM1dSNEN6ZGtxNmlQbWd2XC9UZ0RoMFBRQ0lpWThKNEU5eGlKcCtwUlNYZkhTOUxwUXc9PSIsIm1hYyI6IjA5NDI3NjdmOWI4NmM5NTkwNTlkOWRmN2E0YjNmNTU5N2Q5N2JlMTI5NmI5ZWJmMmY2YjgzMDIyNDEyYTQ2MTEifQ%3D%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/
Set-Cookie: laravel_session=eyJpdiI6IkxoQU5ycEQ4M0pUckpweENrUUM5ZVE9PSIsInZhbHVlIjoiTlQ2VkJsYnRxTzh2eXRKTFl4b1wvS3FjaDhrY0g0WmFKV01pNk9iWTNWcmczYzRSS3pBOUhjeHZWTVU5eThRSUtsbG9IdHh2cmxZajlYS3c4eUVCa3JRPT0iLCJtYWMiOiIyYzcyYmRmMzgwZGU4YTI3ODQyYTdiN2VkNjMxMzI3NDVjOWVmZjk2YTJiNGJkMDA0YWIyZjBkYzdmOTZmNTU5In0%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/; httponly
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=VCzlWD8IoehqI3bYdbUWsijXXbF4x6iW3WeqdcxI8F89QrmoNZ8nZVLqvk34CiKfDRtDlONdz5pefCJgZlnXjxfQugpUQdO%2BRQcCVtC%2FmT4RlOWV3UPkgQ%3D%3D"}]}
CF-RAY: 9b90e6f47844a061-FRA
alt-svc: h3=":443"; ma=86400
Page title: Redirecting to https://ai.cs61c.org/information
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="0;url=https://ai.cs61c.org/information" />
<title>Redirecting to https://ai.cs61c.org/information</title>
</head>
<body>
Redirecting to <a href="https://ai.cs61c.org/information">https://ai.cs61c.org/information</a>.
</body>
</html>
Open service 172.67.161.76:8443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 521 <none>
Date: Mon, 05 Jan 2026 06:26:05 GMT
Content-Length: 0
Connection: close
Server: cloudflare
Cache-Control: private, no-store
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
set-cookie: cf_use_ob=8443; Expires=Mon, 05 Jan 2026 06:26:35 GMT
set-cookie: cf_ob_info=521:9b90e6ef3a6c42d2:EWR; Expires=Mon, 05 Jan 2026 06:26:35 GMT
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=YLU5GzGhnrN6FBOM4QL24i%2Ba1VupmU6TNzP4momVD%2BGrQYLmD0oT7%2B7%2FsrsVjdrilLWE2rYPOcI06rVuXOVT3PaUKvVykTJ4%2B79lNA%3D%3D"}]}
CF-RAY: 9b90e6ef3a6c42d2-EWR
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 302 Found
Date: Mon, 05 Jan 2026 06:26:07 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
x-powered-by: PHP/5.6.40
Cache-Control: no-cache
location: https://ai.cs61c.org/information
Set-Cookie: XSRF-TOKEN=eyJpdiI6IjJ3elBZdERnTVZOc2hLTmVuZTJcL2FnPT0iLCJ2YWx1ZSI6ImhlSWRxN0dzcDZpSUNxeFwvK0VOTkFqN1NFU21LNUwxd2NNaUlrWGhlT2I4YUNvVFwvUkpLM2g2MVVGUTFrZ0VGNFBrOUtuSUVjNHMwVlhCa0NHb2l1b3c9PSIsIm1hYyI6IjczMDk1ZjAxMGUyMTc3NzllNTUyZTI3NDlkY2RkOGU2NDVlYWU4NTQwMWFiZjk5YzhhYzRlNzA4ZGIyMGVmOWMifQ%3D%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/
Set-Cookie: laravel_session=eyJpdiI6IlIrMFhuRGYzTUpGMlRKQ1wva1lPbkRRPT0iLCJ2YWx1ZSI6IkpFXC9wdTczU2drbGtORW5pK0dIOGoxNFVudkZHdGtLQm9CK1RcL3k5MjFYdDdiRWtGYW02b2ZvRmtQWm1DazgzZXRsSW9Ta2RoRWRhbUhoZytPTEtlZ3c9PSIsIm1hYyI6IjVhN2E3OGQ1ZjU0OTBhNGIyMGM3OTE1ZGYyMGViOGQ4YThiOTY3M2U5Y2FjZTEzNzcyMzJhODkwZDQ1NzMxOTQifQ%3D%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/; httponly
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=q7KW2PJlq3QI0xTtnLt4%2BE2%2Btg1k7fMHmSME0EUFDn4F3kmwFNEOPwnhI8iTDQLzmpZpFS1KztREcwDfddQnIQ29dUKdNKdU3jJbTdJjs4uUBWWYccefDw%3D%3D"}]}
CF-RAY: 9b90e6f459b80ae1-AMS
alt-svc: h3=":443"; ma=86400
Page title: Redirecting to https://ai.cs61c.org/information
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="0;url=https://ai.cs61c.org/information" />
<title>Redirecting to https://ai.cs61c.org/information</title>
</head>
<body>
Redirecting to <a href="https://ai.cs61c.org/information">https://ai.cs61c.org/information</a>.
</body>
</html>
Open service 104.21.15.35:443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 302 Found
Date: Mon, 05 Jan 2026 06:26:07 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
x-powered-by: PHP/5.6.40
Cache-Control: no-cache
location: https://ai.cs61c.org/information
Set-Cookie: XSRF-TOKEN=eyJpdiI6InhPeHpRaTNFMFlUcFlJdzdIY0dITHc9PSIsInZhbHVlIjoiVklqM1pOY1VjbXlSNW04SUN1Z1RTSEJJWXNoYjFSb1FyWDRDaHA0c3VGT0ZIMEpqZG9IajVZMEN2dmd0ZEw4VUpjZklBWTh3KzNoeHR5ZjJicjBCSFE9PSIsIm1hYyI6IjZlZWFhNjFiYTQyNjBiZWJmNDYzNjVjMTY1NjUxMjUwZjUzZWMyM2E2NTUxNWYyZmEzNWUzNTFiMmFlYTk4MDUifQ%3D%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/
Set-Cookie: laravel_session=eyJpdiI6ImJLeWpPRnAzY0NsTSsxVWVRQ203UFE9PSIsInZhbHVlIjoiNnRrZksrRmJUTk9Mclk5Q2ZOejNLc1Z3K3c3UjFJdEZleFBoSjkrb05jK2cxWWdXWWFsSXJDMjJGN1dmbzFBRDY0NVQwQ3lzV28xY3RMbzlIUVMzaXc9PSIsIm1hYyI6IjljMTAzMTFiNTBhOTA5YzgzYjQyYTljMTRmZjI3ZTVhYTAxMjgyOWJiYWIyYzNmZjQxODIxYjExZjhmMDAzOGIifQ%3D%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/; httponly
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=R3Q0szqBZIlR7BhYAxnIHNtrGLKw9EK83LqN5IA2dUHv0gMZzgkKUTi4%2F88pSoVc%2F45Pz9%2BMzTAeZ4DALH%2BdjNyZNgiZiq4Z7CY4ig%3D%3D"}]}
CF-RAY: 9b90e6f448ca8fe2-FRA
alt-svc: h3=":443"; ma=86400
Page title: Redirecting to https://ai.cs61c.org/information
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="0;url=https://ai.cs61c.org/information" />
<title>Redirecting to https://ai.cs61c.org/information</title>
</head>
<body>
Redirecting to <a href="https://ai.cs61c.org/information">https://ai.cs61c.org/information</a>.
</body>
</html>
Open service 2606:4700:3030::ac43:a14c:80 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 301 Moved Permanently
Date: Mon, 05 Jan 2026 06:26:05 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://ai.cs61c.org:443/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=7N8iG0Frc3rIJJelTG80JE%2Bv5tFekg3XMD6RESlveRuuapgXmK%2FVEN%2FwwAmo0j%2F6WJWI7pA0GpkWCmryDS80DA%2Fx3jfG4NRuKGtO%2Bi4lIIc%2BzG%2BCB2SfiQ%3D%3D"}]}
CF-RAY: 9b90e6f00ebcfc96-AMS
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
Open service 172.67.161.76:443 · ai.cs61c.org
2026-01-05 06:26
HTTP/1.1 302 Found
Date: Mon, 05 Jan 2026 06:26:07 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
x-powered-by: PHP/5.6.40
Cache-Control: no-cache
location: https://ai.cs61c.org/information
Set-Cookie: XSRF-TOKEN=eyJpdiI6Ilh2bGJFNXVIaVwvb2I0dFRKWG9VMjZRPT0iLCJ2YWx1ZSI6IjdBaXBiVmwyQ21sXC8yaXRIc05FbFBWcURaRXhsc09yZncxWGNHa0cxUlZkbHdSSEZ4d1lnOFFHaVVYXC9lS1JLRFwvcWMzaVhiSlpNRW5VMk9PeDhuUmd3PT0iLCJtYWMiOiJhMjJiODhkYjVhNzc2ZGNhN2IwMzhlN2U2M2NkNzE3M2Y4YWRmZTE0ODE0OTQ2NmJhMDk2ODZhNzg4MTYyNDhiIn0%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/
Set-Cookie: laravel_session=eyJpdiI6Ikl4STNlVWNMb2g1QlwvdWI1U3NIZ2xnPT0iLCJ2YWx1ZSI6InZRNW14d2gyU1g1VnpJUEZ3NWdISDVBRnluTWVIeUNnNVE0MTYzdm13NktLc1RFelRsUVM5Z0JDRnVIaVpOXC96NFIyd2JUR1RlWDNjTGpYVkRcL3ZJdGc9PSIsIm1hYyI6ImJjMTNmY2I4NzBlZjkwZTU2ZTRmYzE5ZWY1OThlMzM4ZWZhZjliMGViMTJlNzBhY2E4M2Q3ZTVjMWE0OThjOGMifQ%3D%3D; expires=Mon, 05-Jan-2026 08:26:07 GMT; Max-Age=7200; path=/; httponly
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pZscawZeYcgvfxH10qcoqKtlepO7IjJe%2F0Y7aDa8AXsEfWLiPB1T2a7hQZtuHXZNCtLwJHV9k1RoP%2Bi1OAbVYKAJzFU7EqEXwRv3yA%3D%3D"}]}
CF-RAY: 9b90e6f4090d4dc0-FRA
alt-svc: h3=":443"; ma=86400
Page title: Redirecting to https://ai.cs61c.org/information
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="0;url=https://ai.cs61c.org/information" />
<title>Redirecting to https://ai.cs61c.org/information</title>
</head>
<body>
Redirecting to <a href="https://ai.cs61c.org/information">https://ai.cs61c.org/information</a>.
</body>
</html>
Open service 172.67.161.76:8443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:56 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=QmiRjUGHvXTUwivactKzskiASQqkD%2BfM0NVMQVx3xRv9wHdPkk3Qi8spo3M7WcpKeXtyi8RfXwxpBqcswQitSFExZEUsykU%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcceb6a36a5-YYZ
alt-svc: h3=":8443"; ma=86400
Redirecting to /fa25/
Open service 172.67.161.76:443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
cf-cache-status: DYNAMIC
Vary: Accept-Encoding
Server: cloudflare
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=dxlL63cVcoqOJjZp8RVpNUWvCvkR%2BqThbPim3lyuh8gVZUtGn6Ip4h31Ba1kv1U8Ba89BxER%2F5Umsee9ujP159CGiyGclizmZk128RqhDAxItUhUUGpVAJDt4vM%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
CF-RAY: 9b26edcc7d211598-SJC
Redirecting to /fa25/
Open service 2606:4700:3032::6815:f23:80 · cs61c.org
2025-12-23 09:45
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Ge6ifngH9eIJlnBU8aMNDhTNhHdNBUTWOtgN3tNNFk5FSoy%2F%2Fb4SfReuPBYpMLwcKEDg0xemm0QNx5hlZiwG2TUXik1z9Sr1B%2FHVSN3JmhgxL5%2B4uQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcc4907c8c9-AMS
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:80 · cs61c.org
2025-12-23 09:45
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=DuajqPHo4iXf7jlQ2vLY9FlD4r2w0VWQXj0nTSbzmDv99WKJEFiq6hwFmpWr7yNZD6K55YSZjRLCKMTMRt5pjNRviOEr5SmQMiPIXnxbn9Y6BUptcQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcc4de08ddc-AMS
alt-svc: h3=":443"; ma=86400
Open service 104.21.15.35:443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=8dtYacUeBygnRxq0ICjJyzy6kMd443M6Fu%2B6flCqlXM7xG%2BqycD4OyvkjhG%2FWz8IxChwVyeZZfAs4xDyPOh%2Btav1gDQcmc5wOA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcc39887869-AMS
alt-svc: h3=":443"; ma=86400
Redirecting to /fa25/
Open service 172.67.161.76:80 · cs61c.org
2025-12-23 09:45
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=vZaK5tlml2L09U2fLCAwmEgk9NNmtqrJdPXoGaaqxZSWtBRXKw5dwO9GtZ4DyX4UoS9zesakvrei2PQdpQn%2FSp07CqbbVxqsrA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcc3c84d29c-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:8443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=W7CseWa6jhLQ2QBlOs4lFx967EwXYLqm4nDMm%2FwYLl0igs6fOk59fk3UqjDxSaVfpITHQgyeQY7j883MTkvbdJ%2BOxvEovb6SSFlRM6WOqVi6FhUV1w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcc0b66ade0-YYZ
alt-svc: h3=":8443"; ma=86400
Redirecting to /fa25/
Open service 2606:4700:3032::6815:f23:443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3MUIkou%2FuQZlIFW89wT0GogvMQVWgqjbKYdjzcAxULKcNJLvEN%2BYGUtHJ2sEq0Dct9PTq%2Fo%2FWVY8u%2BubsGsmXTncrt4ZhzhLMeiNpw05xk4m4O%2B2Og%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcc0974ebb5-YYZ
alt-svc: h3=":443"; ma=86400
Redirecting to /fa25/
Open service 2606:4700:3032::6815:f23:8443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=GTOJGJqswKNRj%2FFapTIhLz%2BJlkVWQ3z1bxQZwhwXfzwN8gOb5r195BFyIea5IQqhpfLAeUh7bT87VjftYrasehUqFgOF%2FIdimMcauq6CJ5YFW1%2BOcw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcc09156367-LHR
alt-svc: h3=":8443"; ma=86400
Redirecting to /fa25/
Open service 104.21.15.35:8443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=8s5DHeT1Kfxe%2BwR5BOY9NDjqUamIbyReWUROnkTrYV5JpD4uJeAYEXnPXsoXyv4s7ipb8XTemMIY93PV%2FhfAvR%2BoeiOEG3oV%2FA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcbea5abd74-LHR
alt-svc: h3=":8443"; ma=86400
Redirecting to /fa25/
Open service 104.21.15.35:80 · cs61c.org
2025-12-23 09:45
HTTP/1.1 301 Moved Permanently
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Length: 0
Connection: close
Location: https://cs61c.org/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=gKzXrcib%2F8ogBUa%2F%2FvF38X5bcMFqxAhDD08TWrgMeCtsgOZAml2P7SWOAWkoCU229mpXe%2BFjLh0ZqSoFa0QLdqAzabHQD7kAwg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcbdb27539f-LHR
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:a14c:443 · cs61c.org
2025-12-23 09:45
HTTP/1.1 302 Found
Date: Tue, 23 Dec 2025 09:45:55 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
Connection: close
Location: /fa25/
Access-Control-Allow-Origin: *
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=VcgfliIazm722FiMMD9YSadD2v47plEujCSGwLhiLXLmgJgPJOYQa%2BW0yvGpD8h%2BSn4E%2Bkpor7Cf7bsn1r1emASD6U%2BiP7kNv2QIhZJ92MCFysI%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9b26edcbdd81f668-LHR
alt-svc: h3=":443"; ma=86400
Redirecting to /fa25/