{
  "metadata": {
    "title": "Networking and Communication",
    "description": "An ABET CAC-aligned undergraduate intelligent textbook covering the foundations of networking and communication: layered architecture, physical and link layers, LANs and switching, IPv4/IPv6 and routing, reliable transport (TCP/UDP/QUIC), application protocols, network security, wireless and mobility, network programming, measurement and operations, and software-defined and programmable networks. Aligned to the ACM/IEEE-CS/AAAI CS2023 Networking and Communication knowledge area.",
    "creator": "Dan McCreary",
    "date": "2026-04-27",
    "version": "1.0",
    "format": "Learning Graph JSON v1.0",
    "schema": "https://raw.githubusercontent.com/dmccreary/learning-graphs/refs/heads/main/src/schema/learning-graph-schema.json",
    "license": "CC BY-NC-SA 4.0 DEED"
  },
  "groups": {
    "FOUND": {
      "classifierName": "Foundation Concepts",
      "color": "Gainsboro",
      "font": {
        "color": "black"
      }
    },
    "ARCH": {
      "classifierName": "Architecture and Layering",
      "color": "PaleTurquoise",
      "font": {
        "color": "black"
      }
    },
    "PERF": {
      "classifierName": "Performance and Quality of Service",
      "color": "Lavender",
      "font": {
        "color": "black"
      }
    },
    "PHYS": {
      "classifierName": "Physical Layer",
      "color": "LightYellow",
      "font": {
        "color": "black"
      }
    },
    "LINK": {
      "classifierName": "Link Layer and LAN Switching",
      "color": "LightCoral",
      "font": {
        "color": "black"
      }
    },
    "WIRE": {
      "classifierName": "Wireless and Mobility",
      "color": "Plum",
      "font": {
        "color": "black"
      }
    },
    "NET": {
      "classifierName": "Network Layer and Addressing",
      "color": "SteelBlue",
      "font": {
        "color": "black"
      }
    },
    "ROUT": {
      "classifierName": "Routing and Forwarding",
      "color": "PeachPuff",
      "font": {
        "color": "black"
      }
    },
    "TRANS": {
      "classifierName": "Transport Layer",
      "color": "PaleGreen",
      "font": {
        "color": "black"
      }
    },
    "APP": {
      "classifierName": "Application Layer Protocols",
      "color": "LavenderBlush",
      "font": {
        "color": "black"
      }
    },
    "SEC": {
      "classifierName": "Network Security",
      "color": "MistyRose",
      "font": {
        "color": "black"
      }
    },
    "PROG": {
      "classifierName": "Network Programming",
      "color": "Thistle",
      "font": {
        "color": "black"
      }
    },
    "OPS": {
      "classifierName": "Network Operations and Measurement",
      "color": "MintCream",
      "font": {
        "color": "black"
      }
    },
    "SDN": {
      "classifierName": "SDN, NFV, and Emerging Topics",
      "color": "PowderBlue",
      "font": {
        "color": "black"
      }
    },
    "CAP": {
      "classifierName": "Capstone Projects",
      "color": "Honeydew",
      "font": {
        "color": "black"
      }
    }
  },
  "nodes": [
    {
      "id": 1,
      "label": "Computer Network",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 2,
      "label": "Host",
      "group": "FOUND"
    },
    {
      "id": 3,
      "label": "End System",
      "group": "FOUND"
    },
    {
      "id": 4,
      "label": "Server",
      "group": "FOUND"
    },
    {
      "id": 5,
      "label": "Client",
      "group": "FOUND"
    },
    {
      "id": 6,
      "label": "Network Node",
      "group": "FOUND"
    },
    {
      "id": 7,
      "label": "Network Edge",
      "group": "FOUND"
    },
    {
      "id": 8,
      "label": "Network Core",
      "group": "FOUND"
    },
    {
      "id": 9,
      "label": "Communication Link",
      "group": "FOUND"
    },
    {
      "id": 10,
      "label": "Network Interface",
      "group": "FOUND"
    },
    {
      "id": 11,
      "label": "MAC Address",
      "group": "FOUND"
    },
    {
      "id": 12,
      "label": "IP Address",
      "group": "FOUND"
    },
    {
      "id": 13,
      "label": "Port Number",
      "group": "FOUND"
    },
    {
      "id": 14,
      "label": "Protocol",
      "group": "FOUND"
    },
    {
      "id": 15,
      "label": "Standard",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 16,
      "label": "RFC Document",
      "group": "FOUND"
    },
    {
      "id": 17,
      "label": "IEEE Standard",
      "group": "FOUND"
    },
    {
      "id": 18,
      "label": "IETF",
      "group": "FOUND"
    },
    {
      "id": 19,
      "label": "ISO",
      "group": "FOUND"
    },
    {
      "id": 20,
      "label": "ICANN",
      "group": "FOUND"
    },
    {
      "id": 21,
      "label": "Bit",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 22,
      "label": "Byte",
      "group": "FOUND"
    },
    {
      "id": 23,
      "label": "Frame",
      "group": "FOUND"
    },
    {
      "id": 24,
      "label": "Packet",
      "group": "FOUND"
    },
    {
      "id": 25,
      "label": "Segment",
      "group": "FOUND"
    },
    {
      "id": 26,
      "label": "Datagram",
      "group": "FOUND"
    },
    {
      "id": 27,
      "label": "Message",
      "group": "FOUND"
    },
    {
      "id": 28,
      "label": "Header",
      "group": "FOUND"
    },
    {
      "id": 29,
      "label": "Payload",
      "group": "FOUND"
    },
    {
      "id": 30,
      "label": "Trailer",
      "group": "FOUND"
    },
    {
      "id": 31,
      "label": "Encapsulation",
      "group": "FOUND"
    },
    {
      "id": 32,
      "label": "Decapsulation",
      "group": "FOUND"
    },
    {
      "id": 33,
      "label": "Layered Architecture",
      "group": "ARCH"
    },
    {
      "id": 34,
      "label": "OSI Reference Model",
      "group": "ARCH"
    },
    {
      "id": 35,
      "label": "TCP IP Model",
      "group": "ARCH"
    },
    {
      "id": 36,
      "label": "Physical Layer",
      "group": "ARCH"
    },
    {
      "id": 37,
      "label": "Data Link Layer",
      "group": "ARCH"
    },
    {
      "id": 38,
      "label": "Network Layer",
      "group": "ARCH"
    },
    {
      "id": 39,
      "label": "Transport Layer",
      "group": "ARCH"
    },
    {
      "id": 40,
      "label": "Session Layer",
      "group": "ARCH"
    },
    {
      "id": 41,
      "label": "Presentation Layer",
      "group": "ARCH"
    },
    {
      "id": 42,
      "label": "Application Layer",
      "group": "ARCH"
    },
    {
      "id": 43,
      "label": "End To End Principle",
      "group": "ARCH"
    },
    {
      "id": 44,
      "label": "Separation Of Concerns",
      "group": "ARCH"
    },
    {
      "id": 45,
      "label": "Service Model",
      "group": "ARCH"
    },
    {
      "id": 46,
      "label": "Connection Oriented",
      "group": "ARCH"
    },
    {
      "id": 47,
      "label": "Connectionless",
      "group": "ARCH"
    },
    {
      "id": 48,
      "label": "Best Effort Delivery",
      "group": "ARCH"
    },
    {
      "id": 49,
      "label": "Reliable Delivery",
      "group": "ARCH"
    },
    {
      "id": 50,
      "label": "Stateful Protocol",
      "group": "ARCH"
    },
    {
      "id": 51,
      "label": "Stateless Protocol",
      "group": "ARCH"
    },
    {
      "id": 52,
      "label": "In Band Signaling",
      "group": "ARCH"
    },
    {
      "id": 53,
      "label": "Out Of Band Signaling",
      "group": "ARCH"
    },
    {
      "id": 54,
      "label": "Unicast",
      "group": "ARCH"
    },
    {
      "id": 55,
      "label": "Multicast",
      "group": "ARCH"
    },
    {
      "id": 56,
      "label": "Broadcast",
      "group": "ARCH"
    },
    {
      "id": 57,
      "label": "Anycast",
      "group": "ARCH"
    },
    {
      "id": 58,
      "label": "Bandwidth",
      "group": "PERF"
    },
    {
      "id": 59,
      "label": "Throughput",
      "group": "PERF"
    },
    {
      "id": 60,
      "label": "Goodput",
      "group": "PERF"
    },
    {
      "id": 61,
      "label": "Latency",
      "group": "PERF"
    },
    {
      "id": 62,
      "label": "Propagation Delay",
      "group": "PERF"
    },
    {
      "id": 63,
      "label": "Transmission Delay",
      "group": "PERF"
    },
    {
      "id": 64,
      "label": "Queuing Delay",
      "group": "PERF"
    },
    {
      "id": 65,
      "label": "Processing Delay",
      "group": "PERF"
    },
    {
      "id": 66,
      "label": "Round Trip Time",
      "group": "PERF"
    },
    {
      "id": 67,
      "label": "Jitter",
      "group": "PERF"
    },
    {
      "id": 68,
      "label": "Packet Loss",
      "group": "PERF"
    },
    {
      "id": 69,
      "label": "MTU",
      "group": "PERF"
    },
    {
      "id": 70,
      "label": "Bandwidth Delay Product",
      "group": "PERF"
    },
    {
      "id": 71,
      "label": "Signal",
      "group": "PHYS",
      "shape": "box"
    },
    {
      "id": 72,
      "label": "Analog Signal",
      "group": "PHYS"
    },
    {
      "id": 73,
      "label": "Digital Signal",
      "group": "PHYS"
    },
    {
      "id": 74,
      "label": "Modulation",
      "group": "PHYS"
    },
    {
      "id": 75,
      "label": "Demodulation",
      "group": "PHYS"
    },
    {
      "id": 76,
      "label": "Encoding",
      "group": "PHYS"
    },
    {
      "id": 77,
      "label": "Decoding",
      "group": "PHYS"
    },
    {
      "id": 78,
      "label": "Manchester Encoding",
      "group": "PHYS"
    },
    {
      "id": 79,
      "label": "NRZ Encoding",
      "group": "PHYS"
    },
    {
      "id": 80,
      "label": "Symbol Rate",
      "group": "PHYS"
    },
    {
      "id": 81,
      "label": "Baud Rate",
      "group": "PHYS"
    },
    {
      "id": 82,
      "label": "Channel Capacity",
      "group": "PHYS"
    },
    {
      "id": 83,
      "label": "Shannon Theorem",
      "group": "PHYS"
    },
    {
      "id": 84,
      "label": "Twisted Pair Cable",
      "group": "PHYS"
    },
    {
      "id": 85,
      "label": "Coaxial Cable",
      "group": "PHYS"
    },
    {
      "id": 86,
      "label": "Fiber Optic Cable",
      "group": "PHYS"
    },
    {
      "id": 87,
      "label": "Wireless Medium",
      "group": "PHYS"
    },
    {
      "id": 88,
      "label": "Attenuation",
      "group": "PHYS"
    },
    {
      "id": 89,
      "label": "Noise",
      "group": "PHYS"
    },
    {
      "id": 90,
      "label": "Interference",
      "group": "PHYS"
    },
    {
      "id": 91,
      "label": "Bit Error Rate",
      "group": "PHYS"
    },
    {
      "id": 92,
      "label": "Framing",
      "group": "LINK"
    },
    {
      "id": 93,
      "label": "Bit Stuffing",
      "group": "LINK"
    },
    {
      "id": 94,
      "label": "Byte Stuffing",
      "group": "LINK"
    },
    {
      "id": 95,
      "label": "Parity Check",
      "group": "LINK"
    },
    {
      "id": 96,
      "label": "Checksum",
      "group": "LINK"
    },
    {
      "id": 97,
      "label": "CRC",
      "group": "LINK"
    },
    {
      "id": 98,
      "label": "Forward Error Correction",
      "group": "LINK"
    },
    {
      "id": 99,
      "label": "Automatic Repeat Request",
      "group": "LINK"
    },
    {
      "id": 100,
      "label": "Stop And Wait Protocol",
      "group": "LINK"
    },
    {
      "id": 101,
      "label": "Sliding Window",
      "group": "LINK"
    },
    {
      "id": 102,
      "label": "Go Back N",
      "group": "LINK"
    },
    {
      "id": 103,
      "label": "Selective Repeat",
      "group": "LINK"
    },
    {
      "id": 104,
      "label": "Media Access Control",
      "group": "LINK"
    },
    {
      "id": 105,
      "label": "ALOHA Protocol",
      "group": "LINK"
    },
    {
      "id": 106,
      "label": "CSMA",
      "group": "LINK"
    },
    {
      "id": 107,
      "label": "CSMA CD",
      "group": "LINK"
    },
    {
      "id": 108,
      "label": "CSMA CA",
      "group": "LINK"
    },
    {
      "id": 109,
      "label": "Token Passing",
      "group": "LINK"
    },
    {
      "id": 110,
      "label": "Ethernet",
      "group": "LINK"
    },
    {
      "id": 111,
      "label": "Ethernet Frame",
      "group": "LINK"
    },
    {
      "id": 112,
      "label": "Ethernet Switch",
      "group": "LINK"
    },
    {
      "id": 113,
      "label": "Hub",
      "group": "LINK"
    },
    {
      "id": 114,
      "label": "Bridge",
      "group": "LINK"
    },
    {
      "id": 115,
      "label": "Learning Switch",
      "group": "LINK"
    },
    {
      "id": 116,
      "label": "Spanning Tree Protocol",
      "group": "LINK"
    },
    {
      "id": 117,
      "label": "Broadcast Domain",
      "group": "LINK"
    },
    {
      "id": 118,
      "label": "Collision Domain",
      "group": "LINK"
    },
    {
      "id": 119,
      "label": "VLAN",
      "group": "LINK"
    },
    {
      "id": 120,
      "label": "VLAN Tagging",
      "group": "LINK"
    },
    {
      "id": 121,
      "label": "Trunk Port",
      "group": "LINK"
    },
    {
      "id": 122,
      "label": "Access Port",
      "group": "LINK"
    },
    {
      "id": 123,
      "label": "Link Aggregation",
      "group": "LINK"
    },
    {
      "id": 124,
      "label": "Wireless LAN",
      "group": "WIRE"
    },
    {
      "id": 125,
      "label": "Wi Fi",
      "group": "WIRE"
    },
    {
      "id": 126,
      "label": "Access Point",
      "group": "WIRE"
    },
    {
      "id": 127,
      "label": "SSID",
      "group": "WIRE"
    },
    {
      "id": 128,
      "label": "BSS",
      "group": "WIRE"
    },
    {
      "id": 129,
      "label": "ESS",
      "group": "WIRE"
    },
    {
      "id": 130,
      "label": "Wi Fi Channel",
      "group": "WIRE"
    },
    {
      "id": 131,
      "label": "RTS CTS",
      "group": "WIRE"
    },
    {
      "id": 132,
      "label": "Wi Fi Roaming",
      "group": "WIRE"
    },
    {
      "id": 133,
      "label": "Bluetooth",
      "group": "WIRE"
    },
    {
      "id": 134,
      "label": "Cellular Network",
      "group": "WIRE"
    },
    {
      "id": 135,
      "label": "4G LTE",
      "group": "WIRE"
    },
    {
      "id": 136,
      "label": "5G NR",
      "group": "WIRE"
    },
    {
      "id": 137,
      "label": "Mobile IP",
      "group": "WIRE"
    },
    {
      "id": 138,
      "label": "Handoff",
      "group": "WIRE"
    },
    {
      "id": 139,
      "label": "Link Adaptation",
      "group": "WIRE"
    },
    {
      "id": 140,
      "label": "IPv4",
      "group": "NET"
    },
    {
      "id": 141,
      "label": "IPv4 Header",
      "group": "NET"
    },
    {
      "id": 142,
      "label": "IPv4 Address Format",
      "group": "NET"
    },
    {
      "id": 143,
      "label": "IPv4 Address Class",
      "group": "NET"
    },
    {
      "id": 144,
      "label": "Private IPv4 Range",
      "group": "NET"
    },
    {
      "id": 145,
      "label": "Loopback Address",
      "group": "NET"
    },
    {
      "id": 146,
      "label": "CIDR Notation",
      "group": "NET"
    },
    {
      "id": 147,
      "label": "Subnet",
      "group": "NET"
    },
    {
      "id": 148,
      "label": "Subnet Mask",
      "group": "NET"
    },
    {
      "id": 149,
      "label": "Subnetting",
      "group": "NET"
    },
    {
      "id": 150,
      "label": "Supernetting",
      "group": "NET"
    },
    {
      "id": 151,
      "label": "Longest Prefix Match",
      "group": "NET"
    },
    {
      "id": 152,
      "label": "IPv6",
      "group": "NET"
    },
    {
      "id": 153,
      "label": "IPv6 Header",
      "group": "NET"
    },
    {
      "id": 154,
      "label": "IPv6 Address Format",
      "group": "NET"
    },
    {
      "id": 155,
      "label": "IPv6 Address Type",
      "group": "NET"
    },
    {
      "id": 156,
      "label": "IPv6 Autoconfiguration",
      "group": "NET"
    },
    {
      "id": 157,
      "label": "IPv4 IPv6 Transition",
      "group": "NET"
    },
    {
      "id": 158,
      "label": "Dual Stack",
      "group": "NET"
    },
    {
      "id": 159,
      "label": "Tunneling",
      "group": "NET"
    },
    {
      "id": 160,
      "label": "NAT64",
      "group": "NET"
    },
    {
      "id": 161,
      "label": "ICMP",
      "group": "NET"
    },
    {
      "id": 162,
      "label": "Ping",
      "group": "NET"
    },
    {
      "id": 163,
      "label": "Traceroute",
      "group": "NET"
    },
    {
      "id": 164,
      "label": "ARP",
      "group": "NET"
    },
    {
      "id": 165,
      "label": "NDP",
      "group": "NET"
    },
    {
      "id": 166,
      "label": "NAT",
      "group": "NET"
    },
    {
      "id": 167,
      "label": "Port Address Translation",
      "group": "NET"
    },
    {
      "id": 168,
      "label": "Fragmentation",
      "group": "NET"
    },
    {
      "id": 169,
      "label": "Reassembly",
      "group": "NET"
    },
    {
      "id": 170,
      "label": "Forwarding",
      "group": "ROUT"
    },
    {
      "id": 171,
      "label": "Routing",
      "group": "ROUT"
    },
    {
      "id": 172,
      "label": "Forwarding Table",
      "group": "ROUT"
    },
    {
      "id": 173,
      "label": "Routing Table",
      "group": "ROUT"
    },
    {
      "id": 174,
      "label": "Static Route",
      "group": "ROUT"
    },
    {
      "id": 175,
      "label": "Default Route",
      "group": "ROUT"
    },
    {
      "id": 176,
      "label": "Routing Algorithm",
      "group": "ROUT"
    },
    {
      "id": 177,
      "label": "Distance Vector Routing",
      "group": "ROUT"
    },
    {
      "id": 178,
      "label": "Bellman Ford Algorithm",
      "group": "ROUT"
    },
    {
      "id": 179,
      "label": "RIP Protocol",
      "group": "ROUT"
    },
    {
      "id": 180,
      "label": "Count To Infinity",
      "group": "ROUT"
    },
    {
      "id": 181,
      "label": "Split Horizon",
      "group": "ROUT"
    },
    {
      "id": 182,
      "label": "Poison Reverse",
      "group": "ROUT"
    },
    {
      "id": 183,
      "label": "Link State Routing",
      "group": "ROUT"
    },
    {
      "id": 184,
      "label": "Dijkstra Algorithm",
      "group": "ROUT"
    },
    {
      "id": 185,
      "label": "OSPF Protocol",
      "group": "ROUT"
    },
    {
      "id": 186,
      "label": "Path Vector Routing",
      "group": "ROUT"
    },
    {
      "id": 187,
      "label": "BGP Protocol",
      "group": "ROUT"
    },
    {
      "id": 188,
      "label": "Autonomous System",
      "group": "ROUT"
    },
    {
      "id": 189,
      "label": "Intradomain Routing",
      "group": "ROUT"
    },
    {
      "id": 190,
      "label": "Interdomain Routing",
      "group": "ROUT"
    },
    {
      "id": 191,
      "label": "Internet Topology",
      "group": "ROUT"
    },
    {
      "id": 192,
      "label": "Tier 1 ISP",
      "group": "ROUT"
    },
    {
      "id": 193,
      "label": "Peering",
      "group": "ROUT"
    },
    {
      "id": 194,
      "label": "Transit Provider",
      "group": "ROUT"
    },
    {
      "id": 195,
      "label": "Multicast Routing",
      "group": "ROUT"
    },
    {
      "id": 196,
      "label": "Anycast Routing",
      "group": "ROUT"
    },
    {
      "id": 197,
      "label": "UDP",
      "group": "TRANS"
    },
    {
      "id": 198,
      "label": "UDP Datagram",
      "group": "TRANS"
    },
    {
      "id": 199,
      "label": "TCP",
      "group": "TRANS"
    },
    {
      "id": 200,
      "label": "TCP Segment",
      "group": "TRANS"
    },
    {
      "id": 201,
      "label": "TCP Three Way Handshake",
      "group": "TRANS"
    },
    {
      "id": 202,
      "label": "TCP Termination",
      "group": "TRANS"
    },
    {
      "id": 203,
      "label": "Sequence Number",
      "group": "TRANS"
    },
    {
      "id": 204,
      "label": "Acknowledgment",
      "group": "TRANS"
    },
    {
      "id": 205,
      "label": "TCP Window",
      "group": "TRANS"
    },
    {
      "id": 206,
      "label": "Flow Control",
      "group": "TRANS"
    },
    {
      "id": 207,
      "label": "Congestion Control",
      "group": "TRANS"
    },
    {
      "id": 208,
      "label": "Slow Start",
      "group": "TRANS"
    },
    {
      "id": 209,
      "label": "Congestion Avoidance",
      "group": "TRANS"
    },
    {
      "id": 210,
      "label": "Fast Retransmit",
      "group": "TRANS"
    },
    {
      "id": 211,
      "label": "Fast Recovery",
      "group": "TRANS"
    },
    {
      "id": 212,
      "label": "TCP Reno",
      "group": "TRANS"
    },
    {
      "id": 213,
      "label": "TCP CUBIC",
      "group": "TRANS"
    },
    {
      "id": 214,
      "label": "TCP BBR",
      "group": "TRANS"
    },
    {
      "id": 215,
      "label": "Retransmission Timer",
      "group": "TRANS"
    },
    {
      "id": 216,
      "label": "Karn Algorithm",
      "group": "TRANS"
    },
    {
      "id": 217,
      "label": "Nagle Algorithm",
      "group": "TRANS"
    },
    {
      "id": 218,
      "label": "SACK Option",
      "group": "TRANS"
    },
    {
      "id": 219,
      "label": "QUIC Protocol",
      "group": "TRANS"
    },
    {
      "id": 220,
      "label": "Multipath TCP",
      "group": "TRANS"
    },
    {
      "id": 221,
      "label": "Quality Of Service",
      "group": "PERF"
    },
    {
      "id": 222,
      "label": "Traffic Shaping",
      "group": "PERF"
    },
    {
      "id": 223,
      "label": "Token Bucket",
      "group": "PERF"
    },
    {
      "id": 224,
      "label": "Leaky Bucket",
      "group": "PERF"
    },
    {
      "id": 225,
      "label": "Fair Queuing",
      "group": "PERF"
    },
    {
      "id": 226,
      "label": "Scheduling Discipline",
      "group": "PERF"
    },
    {
      "id": 227,
      "label": "Admission Control",
      "group": "PERF"
    },
    {
      "id": 228,
      "label": "Differentiated Services",
      "group": "PERF"
    },
    {
      "id": 229,
      "label": "Integrated Services",
      "group": "PERF"
    },
    {
      "id": 230,
      "label": "Net Neutrality",
      "group": "PERF"
    },
    {
      "id": 231,
      "label": "DNS",
      "group": "APP"
    },
    {
      "id": 232,
      "label": "DNS Hierarchy",
      "group": "APP"
    },
    {
      "id": 233,
      "label": "DNS Record Type",
      "group": "APP"
    },
    {
      "id": 234,
      "label": "Recursive Resolver",
      "group": "APP"
    },
    {
      "id": 235,
      "label": "Authoritative Server",
      "group": "APP"
    },
    {
      "id": 236,
      "label": "Root Name Server",
      "group": "APP"
    },
    {
      "id": 237,
      "label": "DNS Caching",
      "group": "APP"
    },
    {
      "id": 238,
      "label": "DNSSEC",
      "group": "APP"
    },
    {
      "id": 239,
      "label": "HTTP Protocol",
      "group": "APP"
    },
    {
      "id": 240,
      "label": "HTTP Methods",
      "group": "APP"
    },
    {
      "id": 241,
      "label": "HTTP Status Code",
      "group": "APP"
    },
    {
      "id": 242,
      "label": "HTTP Headers",
      "group": "APP"
    },
    {
      "id": 243,
      "label": "Cookie",
      "group": "APP"
    },
    {
      "id": 244,
      "label": "HTTP One One",
      "group": "APP"
    },
    {
      "id": 245,
      "label": "HTTP Two",
      "group": "APP"
    },
    {
      "id": 246,
      "label": "HTTP Three",
      "group": "APP"
    },
    {
      "id": 247,
      "label": "HTTPS",
      "group": "APP"
    },
    {
      "id": 248,
      "label": "REST Architecture",
      "group": "APP"
    },
    {
      "id": 249,
      "label": "WebSocket",
      "group": "APP"
    },
    {
      "id": 250,
      "label": "GRPC",
      "group": "APP"
    },
    {
      "id": 251,
      "label": "SMTP",
      "group": "APP"
    },
    {
      "id": 252,
      "label": "IMAP",
      "group": "APP"
    },
    {
      "id": 253,
      "label": "POP3",
      "group": "APP"
    },
    {
      "id": 254,
      "label": "FTP",
      "group": "APP"
    },
    {
      "id": 255,
      "label": "SSH Protocol",
      "group": "APP"
    },
    {
      "id": 256,
      "label": "Telnet",
      "group": "APP"
    },
    {
      "id": 257,
      "label": "DHCP",
      "group": "APP"
    },
    {
      "id": 258,
      "label": "SNMP",
      "group": "APP"
    },
    {
      "id": 259,
      "label": "NTP",
      "group": "APP"
    },
    {
      "id": 260,
      "label": "Cryptography Basics",
      "group": "SEC"
    },
    {
      "id": 261,
      "label": "Symmetric Encryption",
      "group": "SEC"
    },
    {
      "id": 262,
      "label": "Public Key Cryptography",
      "group": "SEC"
    },
    {
      "id": 263,
      "label": "Hash Function",
      "group": "SEC"
    },
    {
      "id": 264,
      "label": "Digital Signature",
      "group": "SEC"
    },
    {
      "id": 265,
      "label": "Certificate Authority",
      "group": "SEC"
    },
    {
      "id": 266,
      "label": "X509 Certificate",
      "group": "SEC"
    },
    {
      "id": 267,
      "label": "TLS Protocol",
      "group": "SEC"
    },
    {
      "id": 268,
      "label": "TLS Handshake",
      "group": "SEC"
    },
    {
      "id": 269,
      "label": "Cipher Suite",
      "group": "SEC"
    },
    {
      "id": 270,
      "label": "IPsec",
      "group": "SEC"
    },
    {
      "id": 271,
      "label": "VPN",
      "group": "SEC"
    },
    {
      "id": 272,
      "label": "Firewall",
      "group": "SEC"
    },
    {
      "id": 273,
      "label": "Stateful Firewall",
      "group": "SEC"
    },
    {
      "id": 274,
      "label": "Intrusion Detection",
      "group": "SEC"
    },
    {
      "id": 275,
      "label": "Intrusion Prevention",
      "group": "SEC"
    },
    {
      "id": 276,
      "label": "Spoofing Attack",
      "group": "SEC"
    },
    {
      "id": 277,
      "label": "Man In The Middle",
      "group": "SEC"
    },
    {
      "id": 278,
      "label": "DDoS Attack",
      "group": "SEC"
    },
    {
      "id": 279,
      "label": "Replay Attack",
      "group": "SEC"
    },
    {
      "id": 280,
      "label": "SYN Flood",
      "group": "SEC"
    },
    {
      "id": 281,
      "label": "ARP Spoofing",
      "group": "SEC"
    },
    {
      "id": 282,
      "label": "DNS Cache Poisoning",
      "group": "SEC"
    },
    {
      "id": 283,
      "label": "Defense In Depth",
      "group": "SEC"
    },
    {
      "id": 284,
      "label": "Zero Trust Network",
      "group": "SEC"
    },
    {
      "id": 285,
      "label": "Berkeley Sockets API",
      "group": "PROG"
    },
    {
      "id": 286,
      "label": "TCP Socket",
      "group": "PROG"
    },
    {
      "id": 287,
      "label": "UDP Socket",
      "group": "PROG"
    },
    {
      "id": 288,
      "label": "Socket Address",
      "group": "PROG"
    },
    {
      "id": 289,
      "label": "Bind Operation",
      "group": "PROG"
    },
    {
      "id": 290,
      "label": "Listen Operation",
      "group": "PROG"
    },
    {
      "id": 291,
      "label": "Accept Operation",
      "group": "PROG"
    },
    {
      "id": 292,
      "label": "Connect Operation",
      "group": "PROG"
    },
    {
      "id": 293,
      "label": "Send Receive Operation",
      "group": "PROG"
    },
    {
      "id": 294,
      "label": "Blocking IO",
      "group": "PROG"
    },
    {
      "id": 295,
      "label": "Non Blocking IO",
      "group": "PROG"
    },
    {
      "id": 296,
      "label": "Asynchronous IO",
      "group": "PROG"
    },
    {
      "id": 297,
      "label": "Select And Poll",
      "group": "PROG"
    },
    {
      "id": 298,
      "label": "Epoll And Kqueue",
      "group": "PROG"
    },
    {
      "id": 299,
      "label": "Client Server Model",
      "group": "PROG"
    },
    {
      "id": 300,
      "label": "Peer To Peer Model",
      "group": "PROG"
    },
    {
      "id": 301,
      "label": "NAT Traversal",
      "group": "PROG"
    },
    {
      "id": 302,
      "label": "STUN And TURN",
      "group": "PROG"
    },
    {
      "id": 303,
      "label": "Wire Protocol Design",
      "group": "OPS"
    },
    {
      "id": 304,
      "label": "Protocol Versioning",
      "group": "OPS"
    },
    {
      "id": 305,
      "label": "Wireshark",
      "group": "OPS"
    },
    {
      "id": 306,
      "label": "Tcpdump",
      "group": "OPS"
    },
    {
      "id": 307,
      "label": "Packet Capture",
      "group": "OPS"
    },
    {
      "id": 308,
      "label": "Iperf",
      "group": "OPS"
    },
    {
      "id": 309,
      "label": "Network Namespace",
      "group": "OPS"
    },
    {
      "id": 310,
      "label": "Linux Bridge",
      "group": "OPS"
    },
    {
      "id": 311,
      "label": "Tc Netem",
      "group": "OPS"
    },
    {
      "id": 312,
      "label": "Network Logging",
      "group": "OPS"
    },
    {
      "id": 313,
      "label": "Change Control",
      "group": "OPS"
    },
    {
      "id": 314,
      "label": "Configuration Management",
      "group": "OPS"
    },
    {
      "id": 315,
      "label": "SDN",
      "group": "SDN"
    },
    {
      "id": 316,
      "label": "Control Plane",
      "group": "SDN"
    },
    {
      "id": 317,
      "label": "Data Plane",
      "group": "SDN"
    },
    {
      "id": 318,
      "label": "OpenFlow",
      "group": "SDN"
    },
    {
      "id": 319,
      "label": "SDN Controller",
      "group": "SDN"
    },
    {
      "id": 320,
      "label": "Network Function Virtualization",
      "group": "SDN"
    },
    {
      "id": 321,
      "label": "Service Mesh",
      "group": "SDN"
    },
    {
      "id": 322,
      "label": "Overlay Network",
      "group": "SDN"
    },
    {
      "id": 323,
      "label": "VXLAN",
      "group": "SDN"
    },
    {
      "id": 324,
      "label": "Content Delivery Network",
      "group": "SDN"
    },
    {
      "id": 325,
      "label": "Edge Computing",
      "group": "SDN"
    },
    {
      "id": 326,
      "label": "Fog Computing",
      "group": "SDN"
    },
    {
      "id": 327,
      "label": "Post Quantum Cryptography",
      "group": "SDN"
    },
    {
      "id": 328,
      "label": "Low Latency Networking",
      "group": "SDN"
    },
    {
      "id": 329,
      "label": "AI Workload Networking",
      "group": "SDN"
    },
    {
      "id": 330,
      "label": "Cloud VPC",
      "group": "SDN"
    },
    {
      "id": 331,
      "label": "Hybrid Cloud Network",
      "group": "SDN"
    },
    {
      "id": 332,
      "label": "Capstone Chat Server",
      "group": "CAP"
    },
    {
      "id": 333,
      "label": "Capstone Mini DNS",
      "group": "CAP"
    },
    {
      "id": 334,
      "label": "Capstone SDN Testbed",
      "group": "CAP"
    },
    {
      "id": 335,
      "label": "Capstone Network Design",
      "group": "CAP"
    },
    {
      "id": 336,
      "label": "Capstone P2P File Share",
      "group": "CAP"
    },
    {
      "id": 337,
      "label": "Incident Postmortem",
      "group": "CAP"
    },
    {
      "id": 338,
      "label": "Network Benchmarking",
      "group": "CAP"
    }
  ],
  "edges": [
    {
      "from": 2,
      "to": 1
    },
    {
      "from": 3,
      "to": 2
    },
    {
      "from": 4,
      "to": 3
    },
    {
      "from": 5,
      "to": 3
    },
    {
      "from": 6,
      "to": 1
    },
    {
      "from": 7,
      "to": 2
    },
    {
      "from": 7,
      "to": 6
    },
    {
      "from": 8,
      "to": 6
    },
    {
      "from": 9,
      "to": 1
    },
    {
      "from": 9,
      "to": 6
    },
    {
      "from": 10,
      "to": 2
    },
    {
      "from": 10,
      "to": 9
    },
    {
      "from": 11,
      "to": 10
    },
    {
      "from": 12,
      "to": 10
    },
    {
      "from": 13,
      "to": 2
    },
    {
      "from": 13,
      "to": 10
    },
    {
      "from": 14,
      "to": 1
    },
    {
      "from": 16,
      "to": 14
    },
    {
      "from": 16,
      "to": 15
    },
    {
      "from": 17,
      "to": 15
    },
    {
      "from": 18,
      "to": 14
    },
    {
      "from": 18,
      "to": 16
    },
    {
      "from": 19,
      "to": 15
    },
    {
      "from": 20,
      "to": 12
    },
    {
      "from": 20,
      "to": 15
    },
    {
      "from": 22,
      "to": 21
    },
    {
      "from": 23,
      "to": 22
    },
    {
      "from": 24,
      "to": 22
    },
    {
      "from": 25,
      "to": 22
    },
    {
      "from": 26,
      "to": 22
    },
    {
      "from": 27,
      "to": 22
    },
    {
      "from": 28,
      "to": 22
    },
    {
      "from": 29,
      "to": 22
    },
    {
      "from": 30,
      "to": 22
    },
    {
      "from": 31,
      "to": 28
    },
    {
      "from": 31,
      "to": 29
    },
    {
      "from": 32,
      "to": 31
    },
    {
      "from": 33,
      "to": 14
    },
    {
      "from": 33,
      "to": 31
    },
    {
      "from": 34,
      "to": 33
    },
    {
      "from": 35,
      "to": 33
    },
    {
      "from": 36,
      "to": 34
    },
    {
      "from": 36,
      "to": 35
    },
    {
      "from": 37,
      "to": 34
    },
    {
      "from": 37,
      "to": 35
    },
    {
      "from": 38,
      "to": 34
    },
    {
      "from": 38,
      "to": 35
    },
    {
      "from": 39,
      "to": 34
    },
    {
      "from": 39,
      "to": 35
    },
    {
      "from": 40,
      "to": 34
    },
    {
      "from": 41,
      "to": 34
    },
    {
      "from": 42,
      "to": 34
    },
    {
      "from": 42,
      "to": 35
    },
    {
      "from": 43,
      "to": 33
    },
    {
      "from": 43,
      "to": 35
    },
    {
      "from": 44,
      "to": 33
    },
    {
      "from": 45,
      "to": 14
    },
    {
      "from": 46,
      "to": 39
    },
    {
      "from": 46,
      "to": 45
    },
    {
      "from": 47,
      "to": 39
    },
    {
      "from": 47,
      "to": 45
    },
    {
      "from": 48,
      "to": 47
    },
    {
      "from": 49,
      "to": 46
    },
    {
      "from": 50,
      "to": 14
    },
    {
      "from": 50,
      "to": 46
    },
    {
      "from": 51,
      "to": 14
    },
    {
      "from": 51,
      "to": 47
    },
    {
      "from": 52,
      "to": 14
    },
    {
      "from": 53,
      "to": 14
    },
    {
      "from": 54,
      "to": 12
    },
    {
      "from": 54,
      "to": 38
    },
    {
      "from": 55,
      "to": 12
    },
    {
      "from": 55,
      "to": 38
    },
    {
      "from": 56,
      "to": 12
    },
    {
      "from": 56,
      "to": 38
    },
    {
      "from": 57,
      "to": 12
    },
    {
      "from": 57,
      "to": 38
    },
    {
      "from": 58,
      "to": 9
    },
    {
      "from": 59,
      "to": 58
    },
    {
      "from": 60,
      "to": 59
    },
    {
      "from": 61,
      "to": 9
    },
    {
      "from": 62,
      "to": 9
    },
    {
      "from": 62,
      "to": 61
    },
    {
      "from": 63,
      "to": 58
    },
    {
      "from": 63,
      "to": 61
    },
    {
      "from": 64,
      "to": 61
    },
    {
      "from": 65,
      "to": 61
    },
    {
      "from": 66,
      "to": 61
    },
    {
      "from": 67,
      "to": 61
    },
    {
      "from": 68,
      "to": 24
    },
    {
      "from": 69,
      "to": 9
    },
    {
      "from": 69,
      "to": 24
    },
    {
      "from": 70,
      "to": 58
    },
    {
      "from": 70,
      "to": 66
    },
    {
      "from": 72,
      "to": 71
    },
    {
      "from": 73,
      "to": 21
    },
    {
      "from": 73,
      "to": 71
    },
    {
      "from": 74,
      "to": 72
    },
    {
      "from": 74,
      "to": 73
    },
    {
      "from": 75,
      "to": 74
    },
    {
      "from": 76,
      "to": 73
    },
    {
      "from": 77,
      "to": 76
    },
    {
      "from": 78,
      "to": 76
    },
    {
      "from": 79,
      "to": 76
    },
    {
      "from": 80,
      "to": 74
    },
    {
      "from": 81,
      "to": 80
    },
    {
      "from": 82,
      "to": 58
    },
    {
      "from": 82,
      "to": 71
    },
    {
      "from": 83,
      "to": 82
    },
    {
      "from": 84,
      "to": 36
    },
    {
      "from": 85,
      "to": 36
    },
    {
      "from": 86,
      "to": 36
    },
    {
      "from": 87,
      "to": 36
    },
    {
      "from": 87,
      "to": 71
    },
    {
      "from": 88,
      "to": 9
    },
    {
      "from": 88,
      "to": 71
    },
    {
      "from": 89,
      "to": 71
    },
    {
      "from": 90,
      "to": 71
    },
    {
      "from": 90,
      "to": 89
    },
    {
      "from": 91,
      "to": 21
    },
    {
      "from": 91,
      "to": 68
    },
    {
      "from": 92,
      "to": 23
    },
    {
      "from": 92,
      "to": 37
    },
    {
      "from": 93,
      "to": 92
    },
    {
      "from": 94,
      "to": 92
    },
    {
      "from": 95,
      "to": 21
    },
    {
      "from": 96,
      "to": 22
    },
    {
      "from": 96,
      "to": 28
    },
    {
      "from": 97,
      "to": 96
    },
    {
      "from": 98,
      "to": 91
    },
    {
      "from": 98,
      "to": 97
    },
    {
      "from": 99,
      "to": 49
    },
    {
      "from": 99,
      "to": 91
    },
    {
      "from": 100,
      "to": 99
    },
    {
      "from": 101,
      "to": 99
    },
    {
      "from": 102,
      "to": 101
    },
    {
      "from": 103,
      "to": 101
    },
    {
      "from": 104,
      "to": 11
    },
    {
      "from": 104,
      "to": 37
    },
    {
      "from": 105,
      "to": 104
    },
    {
      "from": 106,
      "to": 104
    },
    {
      "from": 107,
      "to": 106
    },
    {
      "from": 108,
      "to": 106
    },
    {
      "from": 109,
      "to": 104
    },
    {
      "from": 110,
      "to": 17
    },
    {
      "from": 110,
      "to": 107
    },
    {
      "from": 111,
      "to": 23
    },
    {
      "from": 111,
      "to": 110
    },
    {
      "from": 112,
      "to": 110
    },
    {
      "from": 113,
      "to": 110
    },
    {
      "from": 114,
      "to": 110
    },
    {
      "from": 115,
      "to": 11
    },
    {
      "from": 115,
      "to": 112
    },
    {
      "from": 116,
      "to": 17
    },
    {
      "from": 116,
      "to": 114
    },
    {
      "from": 117,
      "to": 56
    },
    {
      "from": 117,
      "to": 112
    },
    {
      "from": 118,
      "to": 107
    },
    {
      "from": 118,
      "to": 113
    },
    {
      "from": 119,
      "to": 17
    },
    {
      "from": 119,
      "to": 112
    },
    {
      "from": 120,
      "to": 111
    },
    {
      "from": 120,
      "to": 119
    },
    {
      "from": 121,
      "to": 119
    },
    {
      "from": 122,
      "to": 119
    },
    {
      "from": 123,
      "to": 9
    },
    {
      "from": 123,
      "to": 110
    },
    {
      "from": 124,
      "to": 37
    },
    {
      "from": 124,
      "to": 87
    },
    {
      "from": 125,
      "to": 17
    },
    {
      "from": 125,
      "to": 124
    },
    {
      "from": 126,
      "to": 125
    },
    {
      "from": 127,
      "to": 125
    },
    {
      "from": 128,
      "to": 126
    },
    {
      "from": 128,
      "to": 127
    },
    {
      "from": 129,
      "to": 128
    },
    {
      "from": 130,
      "to": 87
    },
    {
      "from": 130,
      "to": 125
    },
    {
      "from": 131,
      "to": 108
    },
    {
      "from": 131,
      "to": 125
    },
    {
      "from": 132,
      "to": 126
    },
    {
      "from": 132,
      "to": 138
    },
    {
      "from": 133,
      "to": 87
    },
    {
      "from": 134,
      "to": 87
    },
    {
      "from": 135,
      "to": 134
    },
    {
      "from": 136,
      "to": 134
    },
    {
      "from": 136,
      "to": 135
    },
    {
      "from": 137,
      "to": 12
    },
    {
      "from": 137,
      "to": 134
    },
    {
      "from": 138,
      "to": 134
    },
    {
      "from": 139,
      "to": 87
    },
    {
      "from": 139,
      "to": 134
    },
    {
      "from": 140,
      "to": 12
    },
    {
      "from": 140,
      "to": 38
    },
    {
      "from": 141,
      "to": 28
    },
    {
      "from": 141,
      "to": 140
    },
    {
      "from": 142,
      "to": 140
    },
    {
      "from": 143,
      "to": 142
    },
    {
      "from": 144,
      "to": 16
    },
    {
      "from": 144,
      "to": 142
    },
    {
      "from": 145,
      "to": 142
    },
    {
      "from": 146,
      "to": 142
    },
    {
      "from": 146,
      "to": 148
    },
    {
      "from": 147,
      "to": 142
    },
    {
      "from": 148,
      "to": 147
    },
    {
      "from": 149,
      "to": 147
    },
    {
      "from": 149,
      "to": 148
    },
    {
      "from": 150,
      "to": 146
    },
    {
      "from": 151,
      "to": 146
    },
    {
      "from": 151,
      "to": 170
    },
    {
      "from": 152,
      "to": 12
    },
    {
      "from": 152,
      "to": 38
    },
    {
      "from": 153,
      "to": 28
    },
    {
      "from": 153,
      "to": 152
    },
    {
      "from": 154,
      "to": 152
    },
    {
      "from": 155,
      "to": 154
    },
    {
      "from": 156,
      "to": 154
    },
    {
      "from": 157,
      "to": 140
    },
    {
      "from": 157,
      "to": 152
    },
    {
      "from": 158,
      "to": 157
    },
    {
      "from": 159,
      "to": 157
    },
    {
      "from": 160,
      "to": 157
    },
    {
      "from": 160,
      "to": 166
    },
    {
      "from": 161,
      "to": 16
    },
    {
      "from": 161,
      "to": 38
    },
    {
      "from": 162,
      "to": 161
    },
    {
      "from": 163,
      "to": 161
    },
    {
      "from": 164,
      "to": 11
    },
    {
      "from": 164,
      "to": 12
    },
    {
      "from": 165,
      "to": 152
    },
    {
      "from": 165,
      "to": 164
    },
    {
      "from": 166,
      "to": 140
    },
    {
      "from": 166,
      "to": 144
    },
    {
      "from": 167,
      "to": 13
    },
    {
      "from": 167,
      "to": 166
    },
    {
      "from": 168,
      "to": 24
    },
    {
      "from": 168,
      "to": 69
    },
    {
      "from": 169,
      "to": 168
    },
    {
      "from": 170,
      "to": 24
    },
    {
      "from": 170,
      "to": 38
    },
    {
      "from": 171,
      "to": 38
    },
    {
      "from": 172,
      "to": 170
    },
    {
      "from": 173,
      "to": 171
    },
    {
      "from": 174,
      "to": 173
    },
    {
      "from": 175,
      "to": 173
    },
    {
      "from": 176,
      "to": 171
    },
    {
      "from": 177,
      "to": 176
    },
    {
      "from": 178,
      "to": 177
    },
    {
      "from": 179,
      "to": 16
    },
    {
      "from": 179,
      "to": 177
    },
    {
      "from": 180,
      "to": 177
    },
    {
      "from": 181,
      "to": 180
    },
    {
      "from": 182,
      "to": 180
    },
    {
      "from": 183,
      "to": 176
    },
    {
      "from": 184,
      "to": 183
    },
    {
      "from": 185,
      "to": 16
    },
    {
      "from": 185,
      "to": 183
    },
    {
      "from": 186,
      "to": 176
    },
    {
      "from": 187,
      "to": 16
    },
    {
      "from": 187,
      "to": 186
    },
    {
      "from": 188,
      "to": 187
    },
    {
      "from": 189,
      "to": 179
    },
    {
      "from": 189,
      "to": 185
    },
    {
      "from": 190,
      "to": 187
    },
    {
      "from": 190,
      "to": 188
    },
    {
      "from": 191,
      "to": 1
    },
    {
      "from": 191,
      "to": 188
    },
    {
      "from": 192,
      "to": 191
    },
    {
      "from": 193,
      "to": 188
    },
    {
      "from": 193,
      "to": 190
    },
    {
      "from": 194,
      "to": 188
    },
    {
      "from": 194,
      "to": 190
    },
    {
      "from": 195,
      "to": 55
    },
    {
      "from": 195,
      "to": 176
    },
    {
      "from": 196,
      "to": 57
    },
    {
      "from": 196,
      "to": 176
    },
    {
      "from": 197,
      "to": 16
    },
    {
      "from": 197,
      "to": 39
    },
    {
      "from": 197,
      "to": 47
    },
    {
      "from": 198,
      "to": 26
    },
    {
      "from": 198,
      "to": 197
    },
    {
      "from": 199,
      "to": 16
    },
    {
      "from": 199,
      "to": 39
    },
    {
      "from": 199,
      "to": 46
    },
    {
      "from": 200,
      "to": 25
    },
    {
      "from": 200,
      "to": 199
    },
    {
      "from": 201,
      "to": 199
    },
    {
      "from": 202,
      "to": 199
    },
    {
      "from": 203,
      "to": 200
    },
    {
      "from": 204,
      "to": 49
    },
    {
      "from": 204,
      "to": 199
    },
    {
      "from": 205,
      "to": 101
    },
    {
      "from": 205,
      "to": 199
    },
    {
      "from": 206,
      "to": 205
    },
    {
      "from": 207,
      "to": 68
    },
    {
      "from": 207,
      "to": 199
    },
    {
      "from": 208,
      "to": 207
    },
    {
      "from": 209,
      "to": 207
    },
    {
      "from": 210,
      "to": 204
    },
    {
      "from": 210,
      "to": 207
    },
    {
      "from": 211,
      "to": 210
    },
    {
      "from": 212,
      "to": 208
    },
    {
      "from": 212,
      "to": 209
    },
    {
      "from": 212,
      "to": 210
    },
    {
      "from": 212,
      "to": 211
    },
    {
      "from": 213,
      "to": 212
    },
    {
      "from": 214,
      "to": 207
    },
    {
      "from": 215,
      "to": 66
    },
    {
      "from": 215,
      "to": 199
    },
    {
      "from": 216,
      "to": 215
    },
    {
      "from": 217,
      "to": 67
    },
    {
      "from": 217,
      "to": 199
    },
    {
      "from": 218,
      "to": 103
    },
    {
      "from": 218,
      "to": 204
    },
    {
      "from": 219,
      "to": 16
    },
    {
      "from": 219,
      "to": 197
    },
    {
      "from": 220,
      "to": 199
    },
    {
      "from": 221,
      "to": 39
    },
    {
      "from": 222,
      "to": 221
    },
    {
      "from": 223,
      "to": 222
    },
    {
      "from": 224,
      "to": 222
    },
    {
      "from": 225,
      "to": 64
    },
    {
      "from": 225,
      "to": 221
    },
    {
      "from": 226,
      "to": 225
    },
    {
      "from": 227,
      "to": 221
    },
    {
      "from": 228,
      "to": 221
    },
    {
      "from": 229,
      "to": 221
    },
    {
      "from": 230,
      "to": 221
    },
    {
      "from": 231,
      "to": 16
    },
    {
      "from": 231,
      "to": 42
    },
    {
      "from": 232,
      "to": 231
    },
    {
      "from": 233,
      "to": 231
    },
    {
      "from": 234,
      "to": 232
    },
    {
      "from": 235,
      "to": 232
    },
    {
      "from": 236,
      "to": 232
    },
    {
      "from": 237,
      "to": 231
    },
    {
      "from": 238,
      "to": 231
    },
    {
      "from": 238,
      "to": 264
    },
    {
      "from": 239,
      "to": 16
    },
    {
      "from": 239,
      "to": 42
    },
    {
      "from": 239,
      "to": 199
    },
    {
      "from": 240,
      "to": 239
    },
    {
      "from": 241,
      "to": 239
    },
    {
      "from": 242,
      "to": 28
    },
    {
      "from": 242,
      "to": 239
    },
    {
      "from": 243,
      "to": 239
    },
    {
      "from": 243,
      "to": 242
    },
    {
      "from": 244,
      "to": 239
    },
    {
      "from": 245,
      "to": 244
    },
    {
      "from": 246,
      "to": 219
    },
    {
      "from": 246,
      "to": 245
    },
    {
      "from": 247,
      "to": 239
    },
    {
      "from": 247,
      "to": 267
    },
    {
      "from": 248,
      "to": 239
    },
    {
      "from": 248,
      "to": 240
    },
    {
      "from": 249,
      "to": 239
    },
    {
      "from": 250,
      "to": 245
    },
    {
      "from": 251,
      "to": 16
    },
    {
      "from": 251,
      "to": 42
    },
    {
      "from": 251,
      "to": 199
    },
    {
      "from": 252,
      "to": 42
    },
    {
      "from": 252,
      "to": 251
    },
    {
      "from": 253,
      "to": 42
    },
    {
      "from": 253,
      "to": 251
    },
    {
      "from": 254,
      "to": 16
    },
    {
      "from": 254,
      "to": 42
    },
    {
      "from": 254,
      "to": 199
    },
    {
      "from": 255,
      "to": 16
    },
    {
      "from": 255,
      "to": 42
    },
    {
      "from": 255,
      "to": 199
    },
    {
      "from": 255,
      "to": 260
    },
    {
      "from": 256,
      "to": 42
    },
    {
      "from": 256,
      "to": 199
    },
    {
      "from": 257,
      "to": 42
    },
    {
      "from": 257,
      "to": 148
    },
    {
      "from": 257,
      "to": 166
    },
    {
      "from": 258,
      "to": 16
    },
    {
      "from": 258,
      "to": 42
    },
    {
      "from": 259,
      "to": 16
    },
    {
      "from": 259,
      "to": 42
    },
    {
      "from": 260,
      "to": 21
    },
    {
      "from": 261,
      "to": 260
    },
    {
      "from": 262,
      "to": 260
    },
    {
      "from": 263,
      "to": 260
    },
    {
      "from": 264,
      "to": 262
    },
    {
      "from": 264,
      "to": 263
    },
    {
      "from": 265,
      "to": 264
    },
    {
      "from": 266,
      "to": 15
    },
    {
      "from": 266,
      "to": 265
    },
    {
      "from": 267,
      "to": 16
    },
    {
      "from": 267,
      "to": 199
    },
    {
      "from": 267,
      "to": 261
    },
    {
      "from": 267,
      "to": 262
    },
    {
      "from": 267,
      "to": 266
    },
    {
      "from": 268,
      "to": 267
    },
    {
      "from": 269,
      "to": 261
    },
    {
      "from": 269,
      "to": 267
    },
    {
      "from": 270,
      "to": 16
    },
    {
      "from": 270,
      "to": 38
    },
    {
      "from": 270,
      "to": 261
    },
    {
      "from": 270,
      "to": 262
    },
    {
      "from": 271,
      "to": 270
    },
    {
      "from": 272,
      "to": 13
    },
    {
      "from": 272,
      "to": 38
    },
    {
      "from": 273,
      "to": 50
    },
    {
      "from": 273,
      "to": 272
    },
    {
      "from": 274,
      "to": 272
    },
    {
      "from": 275,
      "to": 274
    },
    {
      "from": 276,
      "to": 11
    },
    {
      "from": 276,
      "to": 12
    },
    {
      "from": 277,
      "to": 14
    },
    {
      "from": 277,
      "to": 267
    },
    {
      "from": 278,
      "to": 1
    },
    {
      "from": 278,
      "to": 68
    },
    {
      "from": 279,
      "to": 14
    },
    {
      "from": 280,
      "to": 201
    },
    {
      "from": 280,
      "to": 278
    },
    {
      "from": 281,
      "to": 164
    },
    {
      "from": 281,
      "to": 276
    },
    {
      "from": 282,
      "to": 237
    },
    {
      "from": 282,
      "to": 276
    },
    {
      "from": 283,
      "to": 272
    },
    {
      "from": 284,
      "to": 267
    },
    {
      "from": 284,
      "to": 283
    },
    {
      "from": 285,
      "to": 42
    },
    {
      "from": 285,
      "to": 197
    },
    {
      "from": 285,
      "to": 199
    },
    {
      "from": 286,
      "to": 199
    },
    {
      "from": 286,
      "to": 285
    },
    {
      "from": 287,
      "to": 197
    },
    {
      "from": 287,
      "to": 285
    },
    {
      "from": 288,
      "to": 12
    },
    {
      "from": 288,
      "to": 13
    },
    {
      "from": 288,
      "to": 285
    },
    {
      "from": 289,
      "to": 286
    },
    {
      "from": 289,
      "to": 288
    },
    {
      "from": 290,
      "to": 286
    },
    {
      "from": 291,
      "to": 290
    },
    {
      "from": 292,
      "to": 286
    },
    {
      "from": 292,
      "to": 288
    },
    {
      "from": 293,
      "to": 286
    },
    {
      "from": 293,
      "to": 287
    },
    {
      "from": 294,
      "to": 285
    },
    {
      "from": 295,
      "to": 285
    },
    {
      "from": 296,
      "to": 295
    },
    {
      "from": 297,
      "to": 295
    },
    {
      "from": 298,
      "to": 297
    },
    {
      "from": 299,
      "to": 4
    },
    {
      "from": 299,
      "to": 5
    },
    {
      "from": 300,
      "to": 2
    },
    {
      "from": 301,
      "to": 166
    },
    {
      "from": 301,
      "to": 300
    },
    {
      "from": 302,
      "to": 301
    },
    {
      "from": 303,
      "to": 14
    },
    {
      "from": 303,
      "to": 33
    },
    {
      "from": 304,
      "to": 303
    },
    {
      "from": 305,
      "to": 24
    },
    {
      "from": 305,
      "to": 42
    },
    {
      "from": 306,
      "to": 24
    },
    {
      "from": 306,
      "to": 42
    },
    {
      "from": 307,
      "to": 305
    },
    {
      "from": 307,
      "to": 306
    },
    {
      "from": 308,
      "to": 59
    },
    {
      "from": 309,
      "to": 1
    },
    {
      "from": 310,
      "to": 114
    },
    {
      "from": 310,
      "to": 309
    },
    {
      "from": 311,
      "to": 61
    },
    {
      "from": 311,
      "to": 68
    },
    {
      "from": 311,
      "to": 309
    },
    {
      "from": 312,
      "to": 1
    },
    {
      "from": 313,
      "to": 312
    },
    {
      "from": 314,
      "to": 313
    },
    {
      "from": 315,
      "to": 38
    },
    {
      "from": 316,
      "to": 171
    },
    {
      "from": 317,
      "to": 170
    },
    {
      "from": 318,
      "to": 315
    },
    {
      "from": 318,
      "to": 316
    },
    {
      "from": 319,
      "to": 318
    },
    {
      "from": 320,
      "to": 315
    },
    {
      "from": 321,
      "to": 42
    },
    {
      "from": 321,
      "to": 320
    },
    {
      "from": 322,
      "to": 38
    },
    {
      "from": 323,
      "to": 322
    },
    {
      "from": 324,
      "to": 42
    },
    {
      "from": 324,
      "to": 191
    },
    {
      "from": 325,
      "to": 8
    },
    {
      "from": 325,
      "to": 324
    },
    {
      "from": 326,
      "to": 325
    },
    {
      "from": 327,
      "to": 260
    },
    {
      "from": 327,
      "to": 267
    },
    {
      "from": 328,
      "to": 61
    },
    {
      "from": 328,
      "to": 67
    },
    {
      "from": 329,
      "to": 8
    },
    {
      "from": 329,
      "to": 328
    },
    {
      "from": 330,
      "to": 38
    },
    {
      "from": 330,
      "to": 322
    },
    {
      "from": 331,
      "to": 271
    },
    {
      "from": 331,
      "to": 330
    },
    {
      "from": 332,
      "to": 286
    },
    {
      "from": 332,
      "to": 289
    },
    {
      "from": 332,
      "to": 290
    },
    {
      "from": 332,
      "to": 291
    },
    {
      "from": 332,
      "to": 303
    },
    {
      "from": 333,
      "to": 231
    },
    {
      "from": 333,
      "to": 234
    },
    {
      "from": 333,
      "to": 237
    },
    {
      "from": 333,
      "to": 238
    },
    {
      "from": 334,
      "to": 309
    },
    {
      "from": 334,
      "to": 318
    },
    {
      "from": 334,
      "to": 319
    },
    {
      "from": 335,
      "to": 119
    },
    {
      "from": 335,
      "to": 148
    },
    {
      "from": 335,
      "to": 272
    },
    {
      "from": 335,
      "to": 283
    },
    {
      "from": 336,
      "to": 263
    },
    {
      "from": 336,
      "to": 300
    },
    {
      "from": 336,
      "to": 301
    },
    {
      "from": 336,
      "to": 302
    },
    {
      "from": 337,
      "to": 307
    },
    {
      "from": 337,
      "to": 312
    },
    {
      "from": 338,
      "to": 59
    },
    {
      "from": 338,
      "to": 67
    },
    {
      "from": 338,
      "to": 308
    }
  ]
}