private void OnKoiRequested(object sender, RequestKoiEventArgs e) { var header = new HeaderChunk(this); foreach (var block in basicBlocks) { finalChunks.Add(block.Item2.CreateChunk(this, block.Item1)); } finalChunks.AddRange(extraChunks); finalChunks.Add(new BinaryChunk(Watermark.GenerateWatermark((uint)settings.Seed))); Descriptor.Random.Shuffle(finalChunks); finalChunks.Insert(0, header); ComputeOffsets(); FixupReferences(); header.WriteData(this); e.Heap = CreateHeap(); }