Decentralized coded caching attains order-optimal memory-rate tradeoff | Synapse