File: TestRepresentativePottsBasedOnLatticeSimulation Type: cpu Showing nodes accounting for 3852ms, 78.28% of 4921ms total Dropped 805 nodes (cum <= 24.61ms) flat flat% sum% cum cum% 0 0% 0% 4730ms 96.12% __libc_start_call_main 0 0% 0% 4730ms 96.12% __libc_start_main_impl 0 0% 0% 4730ms 96.12% _start 0 0% 0% 4713ms 95.77% CxxTest::ErrorFormatter::run (inline) 0 0% 0% 4713ms 95.77% CxxTest::TestRunner::runAllTests (inline) 0 0% 0% 4713ms 95.77% CxxTest::TestRunner::runWorld (inline) 0 0% 0% 4713ms 95.77% main 0 0% 0% 4670ms 94.90% CxxTest::TestRunner::runSuite (inline) 0 0% 0% 4670ms 94.90% CxxTest::TestRunner::runTest (inline) 0 0% 0% 4670ms 94.90% TestRepresentativePottsBasedOnLatticeSimulation::TestPottsMonolayerCellSorting 0 0% 0% 4658ms 94.66% AbstractCellBasedSimulation::Solve 0 0% 0% 4296ms 87.30% AbstractCellPopulation::WriteResultsToFiles 13ms 0.26% 0.26% 4075ms 82.81% PottsBasedCellPopulation::WriteVtkResultsToFile 0 0% 0.26% 1994ms 40.52% VertexMeshWriter::WriteVtkUsingMesh 0 0% 0.26% 1701ms 34.57% VertexMeshWriter::MakeVtkMesh 0 0% 0.26% 1221ms 24.81% vtkPolygon::New 0 0% 0.26% 1220ms 24.79% vtkPolygon::vtkPolygon 10ms 0.2% 0.47% 861ms 17.50% vtkCell::vtkCell 3ms 0.061% 0.53% 743ms 15.10% vtkPoints::New 9ms 0.18% 0.71% 705ms 14.33% vtkPoints::vtkPoints 2ms 0.041% 0.75% 701ms 14.25% VertexMeshWriter::WriteFiles 34ms 0.69% 1.44% 633ms 12.86% operator new 47ms 0.96% 2.40% 623ms 12.66% std::ostream::_M_insert 0 0% 2.40% 620ms 12.60% std::ostream::operator<< (inline) 202ms 4.10% 6.50% 613ms 12.46% __GI___libc_malloc 1ms 0.02% 6.52% 607ms 12.33% vtkXMLWriterBase::Write 1ms 0.02% 6.54% 606ms 12.31% vtkLine::New 0 0% 6.54% 606ms 12.31% vtkStreamingDemandDrivenPipeline::Update 1ms 0.02% 6.56% 603ms 12.25% vtkDemandDrivenPipeline::ProcessRequest 1ms 0.02% 6.58% 600ms 12.19% vtkStreamingDemandDrivenPipeline::ProcessRequest 1ms 0.02% 6.60% 597ms 12.13% vtkDemandDrivenPipeline::ExecuteData 0 0% 6.60% 595ms 12.09% vtkCompositeDataPipeline::ExecuteData 0 0% 6.60% 595ms 12.09% vtkExecutive::CallAlgorithm 0 0% 6.60% 592ms 12.03% vtkXMLUnstructuredDataWriter::ProcessRequest 0 0% 6.60% 590ms 11.99% vtkQuad::New 11ms 0.22% 6.83% 588ms 11.95% vtkLine::vtkLine 2ms 0.041% 6.87% 588ms 11.95% vtkQuad::vtkQuad 159ms 3.23% 10.10% 530ms 10.77% __GI___libc_free 0 0% 10.10% 529ms 10.75% vtkXMLUnstructuredDataWriter::WriteAPiece 0 0% 10.10% 529ms 10.75% vtkXMLUnstructuredGridWriter::WriteAppendedPieceData 0 0% 10.10% 523ms 10.63% vtkTriangle::New 7ms 0.14% 10.24% 511ms 10.38% vtkTriangle::vtkTriangle 27ms 0.55% 10.79% 510ms 10.36% std::num_put::_M_insert_float 1ms 0.02% 10.81% 472ms 9.59% vtkXMLWriter::WriteBinaryData 25ms 0.51% 11.32% 464ms 9.43% vtkPoints::SetDataType 0 0% 11.32% 462ms 9.39% vtkXMLWriter::WriteBinaryDataInternal 0 0% 11.32% 461ms 9.37% vtkXMLWriter::WriteBinaryDataBlock 0 0% 11.32% 460ms 9.35% vtkXMLUnstructuredDataWriter::WriteAppendedPieceData 11ms 0.22% 11.54% 421ms 8.56% std::__cxx11::collate::do_transform 1ms 0.02% 11.56% 420ms 8.53% vtkPolygon::~vtkPolygon 4ms 0.081% 11.64% 397ms 8.07% ___vsnprintf 1ms 0.02% 11.66% 393ms 7.99% __vsnprintf_internal (inline) 57ms 1.16% 12.82% 386ms 7.84% __printf_buffer 1ms 0.02% 12.84% 369ms 7.50% AbstractTetrahedralMeshWriter::WriteFilesUsingMesh 0 0% 12.84% 363ms 7.38% VtkMeshWriter::WriteFiles 236ms 4.80% 17.64% 359ms 7.30% _int_free 0 0% 17.64% 348ms 7.07% vtkXMLWriter::WritePointsAppendedData 0 0% 17.64% 347ms 7.05% OnLatticeSimulation::UpdateCellLocationsAndTopology 5ms 0.1% 17.74% 347ms 7.05% PottsBasedCellPopulation::UpdateCellLocations 219ms 4.45% 22.19% 339ms 6.89% _int_malloc 9ms 0.18% 22.37% 328ms 6.67% vtkCell::~vtkCell 10ms 0.2% 22.58% 302ms 6.14% __printf_fp_l_buffer 0 0% 22.58% 302ms 6.14% __printf_fp_spec (inline) 46ms 0.93% 23.51% 301ms 6.12% vtkAOSDataArrayTemplate::vtkAOSDataArrayTemplate 6ms 0.12% 23.63% 293ms 5.95% std::__new_allocator::deallocate (inline) 0 0% 23.63% 290ms 5.89% std::allocator_traits::deallocate (inline) 137ms 2.78% 26.42% 283ms 5.75% __printf_fp_buffer_1 46ms 0.93% 27.35% 269ms 5.47% std::__new_allocator::allocate (inline) 0 0% 27.35% 265ms 5.39% std::allocator_traits::allocate (inline) 0 0% 27.35% 238ms 4.84% vtkXMLWriter::WriteCompressionBlock 0 0% 27.35% 231ms 4.69% vtkDataCompressor::Compress 0 0% 27.35% 229ms 4.65% compress2 43ms 0.87% 28.23% 229ms 4.65% crc32 0 0% 28.23% 229ms 4.65% deflate 0 0% 28.23% 229ms 4.65% vtkZLibDataCompressor::CompressBuffer 0 0% 28.23% 228ms 4.63% VertexMesh::~VertexMesh 0 0% 28.23% 225ms 4.57% std::set::set (inline) 6ms 0.12% 28.35% 225ms 4.57% vtkBase64OutputStream::Write 20ms 0.41% 28.75% 224ms 4.55% std::_Rb_tree::_Rb_tree 7ms 0.14% 28.90% 216ms 4.39% vtkPoints::~vtkPoints 22ms 0.45% 29.34% 212ms 4.31% vtkBase64OutputStream::EncodeTriplet 63ms 1.28% 30.62% 201ms 4.08% std::_Rb_tree::_M_erase 0 0% 30.62% 197ms 4.00% vtkQuad::~vtkQuad 6ms 0.12% 30.75% 196ms 3.98% std::_Rb_tree::~_Rb_tree (inline) 0 0% 30.75% 182ms 3.70% std::vector::~vector (inline) 172ms 3.50% 34.24% 178ms 3.62% [libz.so.1.3] 5ms 0.1% 34.34% 177ms 3.60% vtkFloatArray::New 1ms 0.02% 34.36% 177ms 3.60% vtkLine::GetParametricCenter 3ms 0.061% 34.42% 177ms 3.60% vtkTriangle::~vtkTriangle 2ms 0.041% 34.46% 174ms 3.54% NodesOnlyMesh::ConstructNodesWithoutMesh 1ms 0.02% 34.48% 170ms 3.45% AdhesionPottsUpdateRule::EvaluateHamiltonianContribution 0 0% 34.48% 169ms 3.43% std::_Rb_tree::_M_create_node (inline) 54ms 1.10% 35.58% 169ms 3.43% std::ostream::write 96ms 1.95% 37.53% 168ms 3.41% malloc_consolidate 5ms 0.1% 37.63% 168ms 3.41% std::_Vector_base::_M_deallocate (inline) 1ms 0.02% 37.65% 167ms 3.39% vtkIdList::AllocateInternal 19ms 0.39% 38.04% 166ms 3.37% std::_Rb_tree::_M_copy (inline) 2ms 0.041% 38.08% 161ms 3.27% vtkTypeFloat64Array::~vtkTypeFloat64Array 0 0% 38.08% 160ms 3.25% tbb::detail::r1::parallel_pipeline 4ms 0.081% 38.16% 160ms 3.25% vtkDataArray::CreateDataArray 2ms 0.041% 38.20% 157ms 3.19% vtkFloatArray::vtkFloatArray 0 0% 38.20% 154ms 3.13% clone3 0 0% 38.20% 154ms 3.13% start_thread 6ms 0.12% 38.33% 151ms 3.07% vtkTypeFloat64Array::New 0 0% 38.33% 150ms 3.05% std::_Rb_tree::_Alloc_node::operator() (inline) 0 0% 38.33% 147ms 2.99% std::_Rb_tree::_M_get_node (inline) 2ms 0.041% 38.37% 147ms 2.99% tbb::detail::r1::reset 2ms 0.041% 38.41% 147ms 2.99% vtkDoubleArray::vtkDoubleArray 0 0% 38.41% 146ms 2.97% EdgeHelper::~EdgeHelper (inline) 16ms 0.33% 38.73% 143ms 2.91% std::_Rb_tree::_M_clone_node (inline) 0 0% 38.73% 142ms 2.89% VertexMesh::VertexMesh 1ms 0.02% 38.75% 140ms 2.84% NodeLocationWriter::VisitAnyPopulation 1ms 0.02% 38.77% 140ms 2.84% std::_Vector_base::~_Vector_base (inline) 10ms 0.2% 38.98% 140ms 2.84% std::vector::_M_default_append 0 0% 38.98% 138ms 2.80% std::set::~set (inline) 51ms 1.04% 40.01% 134ms 2.72% std::basic_filebuf::xsputn 0 0% 40.01% 132ms 2.68% VertexMesh::GenerateEdgesFromElements (inline) 2ms 0.041% 40.05% 131ms 2.66% MutableElement::BuildEdges 0 0% 40.05% 131ms 2.66% std::_Rb_tree::_M_drop_node (inline) 54ms 1.10% 41.15% 131ms 2.66% tbb::detail::r1::wait_bounded_queue_monitor 0 0% 41.15% 127ms 2.58% std::_Rb_tree::_M_put_node (inline) 30ms 0.61% 41.76% 124ms 2.52% vtkObject::vtkObject 4ms 0.081% 41.84% 124ms 2.52% vtkTypeFloat64Array::vtkTypeFloat64Array 0 0% 41.84% 123ms 2.50% CellPropertyCollection::GetPropertiesType (inline) 0 0% 41.84% 118ms 2.40% std::_Vector_base::_M_allocate (inline) 2ms 0.041% 41.88% 116ms 2.36% vtkFloatArray::~vtkFloatArray 2ms 0.041% 41.92% 114ms 2.32% EdgeHelper::GetEdgeFromNodes 1ms 0.02% 41.94% 111ms 2.26% AbstractCellProperty::IsSubType (inline) 0 0% 41.94% 111ms 2.26% vtkXMLWriter::WritePointDataAppendedData 37ms 0.75% 42.69% 109ms 2.21% __dynamic_cast 0 0% 42.69% 108ms 2.19% vtkIdList::Allocate 32ms 0.65% 43.34% 107ms 2.17% std::__ostream_insert 2ms 0.041% 43.39% 104ms 2.11% std::operator<< (inline) 3ms 0.061% 43.45% 102ms 2.07% std::map::operator[] (partial-inline) 48ms 0.98% 44.42% 99ms 2.01% hack_digit 48ms 0.98% 45.40% 99ms 2.01% vtkTypeFloat64Array::PrintSelf 0 0% 45.40% 98ms 1.99% Cell::HasCellProperty (inline) 2ms 0.041% 45.44% 98ms 1.99% CellPropertyCollection::HasProperty 1ms 0.02% 45.46% 96ms 1.95% LegacyCellProliferativeTypesWriter::GetCellDataForVtkOutput 95ms 1.93% 47.39% 95ms 1.93% __strcmp_avx2 94ms 1.91% 49.30% 94ms 1.91% unlink_chunk 48ms 0.98% 50.27% 92ms 1.87% vtkObjectBase::UnRegisterInternal 9ms 0.18% 50.46% 91ms 1.85% vtkAOSDataArrayTemplate::DataElementChanged 1ms 0.02% 50.48% 85ms 1.73% AbstractCellProperty::IsType (inline) 6ms 0.12% 50.60% 85ms 1.73% _int_free_maybe_consolidate 20ms 0.41% 51.01% 85ms 1.73% std::_Rb_tree::_M_lower_bound (inline) 54ms 1.10% 52.10% 84ms 1.71% std::basic_streambuf::xsputn 1ms 0.02% 52.12% 82ms 1.67% VertexMesh::Clear 6ms 0.12% 52.25% 82ms 1.67% vtkDoubleArray::~vtkDoubleArray 26ms 0.53% 52.77% 77ms 1.56% vtkObject::Modified 3ms 0.061% 52.83% 76ms 1.54% AbstractCellPopulation::GetCellUsingLocationIndex 76ms 1.54% 54.38% 76ms 1.54% __GI_sched_yield 2ms 0.041% 54.42% 73ms 1.48% std::vector::push_back (inline) 1ms 0.02% 54.44% 68ms 1.38% Cell::GetCellProliferativeType 1ms 0.02% 54.46% 68ms 1.38% NodesOnlyMesh::SetUpBoxCollection 0 0% 54.46% 67ms 1.36% vtkXMLUnstructuredDataWriter::WriteCellsAppendedDataWorker 0 0% 54.46% 66ms 1.34% DifferentialAdhesionPottsUpdateRule::GetCellCellAdhesionEnergy 0 0% 54.46% 66ms 1.34% std::_Rb_tree::lower_bound (inline) 0 0% 54.46% 66ms 1.34% std::map::lower_bound (inline) 0 0% 54.46% 66ms 1.34% tcache_get (inline) 66ms 1.34% 55.80% 66ms 1.34% tcache_get_n (inline) 6ms 0.12% 55.92% 61ms 1.24% boost::numeric::ublas::c_vector::c_vector (inline) 13ms 0.26% 56.19% 60ms 1.22% AbstractCellProperty::IsSame 4ms 0.081% 56.27% 60ms 1.22% vtkIdList::New 0 0% 56.27% 58ms 1.18% PottsMesh::GetMooreNeighbouringNodeIndices 58ms 1.18% 57.45% 58ms 1.18% [libvtkCommonCore-9.3.so.9.3] 0 0% 57.45% 58ms 1.18% std::map::~map (inline) 7ms 0.14% 57.59% 56ms 1.14% std::vector::_M_realloc_insert 0 0% 57.59% 55ms 1.12% NodesOnlyMesh::~NodesOnlyMesh 4ms 0.081% 57.67% 55ms 1.12% vtkDataArray::vtkDataArray 6ms 0.12% 57.79% 54ms 1.10% VertexMeshWriter::GetNextNode 36ms 0.73% 58.52% 54ms 1.10% __cxxabiv1::__si_class_type_info::__do_dyncast 24ms 0.49% 59.01% 54ms 1.10% std::_Hashtable::clear 0 0% 59.01% 52ms 1.06% boost::numeric::ublas::vector_assign (inline) 1ms 0.02% 59.03% 51ms 1.04% VertexElement::~VertexElement 10ms 0.2% 59.24% 50ms 1.02% vtkAbstractArray::vtkAbstractArray 49ms 1% 60.23% 49ms 1% __GI___writev 0 0% 60.23% 49ms 1% std::__basic_file::xsputn_2 48ms 0.98% 61.21% 48ms 0.98% vtkObject::~vtkObject 47ms 0.96% 62.16% 47ms 0.96% __memcpy_avx_unaligned_erms 10ms 0.2% 62.37% 47ms 0.96% std::type_info::operator== (inline) 47ms 0.96% 63.32% 47ms 0.96% vtkTimeStamp::Modified 2ms 0.041% 63.36% 45ms 0.91% std::_Rb_tree::_M_insert_unique 0 0% 63.36% 45ms 0.91% std::set::insert (inline) 0 0% 63.36% 45ms 0.91% vtkDataArray::ComputeRange 0 0% 63.36% 44ms 0.89% std::_Destroy (inline) 0 0% 63.36% 44ms 0.89% std::_Destroy_aux::__destroy (inline) 0 0% 63.36% 44ms 0.89% std::less::operator() (inline) 44ms 0.89% 64.26% 44ms 0.89% std::operator< (inline) 35ms 0.71% 64.97% 44ms 0.89% vtkObject::ObjectFinalize 8ms 0.16% 65.13% 43ms 0.87% std::num_put::_M_insert_int 43ms 0.87% 66.00% 43ms 0.87% vtkObjectBase::Delete 25ms 0.51% 66.51% 41ms 0.83% DistributedBoxCollection::CalculateContainingBox (inline) 0 0% 66.51% 41ms 0.83% DistributedBoxCollection::IsOwned 0 0% 66.51% 41ms 0.83% DistributedBoxCollection::SetupLocalBoxesHalfOnly 0 0% 66.51% 41ms 0.83% PottsMesh::GetVonNeumannNeighbouringNodeIndices 0 0% 66.51% 41ms 0.83% _dl_init 0 0% 66.51% 41ms 0.83% call_init (inline) 40ms 0.81% 67.32% 40ms 0.81% std::ostream::sentry::sentry 0 0% 67.32% 39ms 0.79% MutableElement::~MutableElement 0 0% 67.32% 38ms 0.77% CxxTest::RealWorldDescription::setUp 0 0% 67.32% 38ms 0.77% PetscInitialize 0 0% 67.32% 38ms 0.77% PetscSetup::setUpWorld 0 0% 67.32% 38ms 0.77% PetscSetupUtils::CommonSetup 0 0% 67.32% 38ms 0.77% PetscSetupUtils::InitialisePetsc 21ms 0.43% 67.75% 38ms 0.77% std::__new_allocator::construct (inline) 0 0% 67.75% 38ms 0.77% std::allocator_traits::construct (inline) 1ms 0.02% 67.77% 38ms 0.77% vtkDoubleArray::New 38ms 0.77% 68.54% 38ms 0.77% vtkObjectBase::vtkObjectBase 5ms 0.1% 68.64% 38ms 0.77% vtkSOADataArrayTemplate::FillTypedComponent 0 0% 68.64% 37ms 0.75% PMPI_Init_thread 37ms 0.75% 69.40% 37ms 0.75% __memset_avx2_unaligned_erms 0 0% 69.40% 37ms 0.75% _dl_start_user 13ms 0.26% 69.66% 37ms 0.75% boost::numeric::ublas::indexing_vector_assign 0 0% 69.66% 37ms 0.75% ompi_mpi_init 8ms 0.16% 69.82% 37ms 0.75% vtkDataArray::~vtkDataArray 4ms 0.081% 69.90% 37ms 0.75% vtkDataArrayPrivate::DoComputeVectorRange 7ms 0.14% 70.05% 37ms 0.75% vtkIdList::~vtkIdList 0 0% 70.05% 36ms 0.73% std::_Rb_tree::_Rb_tree_impl::_Rb_tree_impl (inline) 1ms 0.02% 70.07% 36ms 0.73% std::_Rb_tree_header::_Rb_tree_header (inline) 2ms 0.041% 70.11% 35ms 0.71% VertexMeshWriter::GetNextElement 0 0% 70.11% 35ms 0.71% std::make_unique (inline) 1ms 0.02% 70.13% 35ms 0.71% vtk::detail::smp::vtkSMPToolsImplForTBB 34ms 0.69% 70.82% 34ms 0.69% std::_Rb_tree_header::_M_reset (inline) 34ms 0.69% 71.51% 34ms 0.69% std::codecvt::do_always_noconv 33ms 0.67% 72.18% 33ms 0.67% [libstdc++.so.6.0.33] 33ms 0.67% 72.85% 33ms 0.67% std::_Rb_tree_increment 0 0% 72.85% 33ms 0.67% std::basic_filebuf::open 4ms 0.081% 72.93% 33ms 0.67% tbb::detail::r1::cancel_group_execution 0 0% 72.93% 32ms 0.65% 0 0% 72.93% 32ms 0.65% Cell::GetMutationState 2ms 0.041% 72.97% 32ms 0.65% CellProliferativeTypesWriter::GetCellDataForVtkOutput 32ms 0.65% 73.62% 32ms 0.65% __mpn_divrem 32ms 0.65% 74.27% 32ms 0.65% boost::numeric::ublas::c_vector::operator() 3ms 0.061% 74.33% 32ms 0.65% boost::serialization::singleton::get_instance 0 0% 74.33% 32ms 0.65% std::_Rb_tree::_M_emplace_hint_unique 9ms 0.18% 74.52% 32ms 0.65% std::_Rb_tree_const_iterator::operator++ (inline) 0 0% 74.52% 31ms 0.63% AbstractCellPopulation::AcceptCellWritersAcrossPopulation 0 0% 74.52% 31ms 0.63% Cell::GetCellId 31ms 0.63% 75.15% 31ms 0.63% Node::GetIndex 0 0% 75.15% 31ms 0.63% VtkMeshWriter::MakeVtkMesh 0 0% 75.15% 31ms 0.63% _IO_new_file_fopen 0 0% 75.15% 31ms 0.63% _IO_new_fopen 0 0% 75.15% 31ms 0.63% __GI__IO_file_open 0 0% 75.15% 31ms 0.63% __fopen_internal (inline) 0 0% 75.15% 31ms 0.63% boost::serialization::detail::singleton_wrapper::singleton_wrapper (inline) 6ms 0.12% 75.27% 31ms 0.63% vtk::detail::smp::vtkSMPToolsImpl::For 0 0% 75.27% 30ms 0.61% DistributedBoxCollection::~DistributedBoxCollection 0 0% 75.27% 30ms 0.61% NodesOnlyMesh::ClearBoxCollection (inline) 0 0% 75.27% 30ms 0.61% PottsBasedCellPopulation::AcceptCellWriter 30ms 0.61% 75.88% 30ms 0.61% __libc_open64 30ms 0.61% 76.49% 30ms 0.61% std::_Rb_tree::_S_right (inline) 0 0% 76.49% 30ms 0.61% std::__basic_file::open 0 0% 76.49% 29ms 0.59% OutputFileHandler::OpenOutputFile 4ms 0.081% 76.57% 29ms 0.59% vtkAOSDataArrayTemplate::InsertTuple 29ms 0.59% 77.16% 29ms 0.59% vtkObjectBase::~vtkObjectBase 16ms 0.33% 77.48% 28ms 0.57% AbstractMesh::GetNode 4ms 0.081% 77.57% 28ms 0.57% Node::GetPoint 28ms 0.57% 78.13% 28ms 0.57% __GI___libc_write 0 0% 78.13% 28ms 0.57% std::__basic_file::xsputn 0 0% 78.13% 28ms 0.57% std::basic_filebuf::_M_convert_to_external 0 0% 78.13% 28ms 0.57% std::basic_filebuf::close 0 0% 78.13% 28ms 0.57% std::basic_filebuf::overflow 0 0% 78.13% 27ms 0.55% CellIdWriter::GetCellDataForVtkOutput 0 0% 78.13% 27ms 0.55% Edge::Edge 2ms 0.041% 78.18% 27ms 0.55% std::_Rb_tree::_M_insert_ (inline) 5ms 0.1% 78.28% 27ms 0.55% vtkAOSDataArrayTemplate::AllocateTuples 0 0% 78.28% 26ms 0.53% Edge::SetNodes (inline) 0 0% 78.28% 26ms 0.53% std::basic_ofstream::close (inline) 0 0% 78.28% 26ms 0.53% vtkDataArrayPrivate::DoComputeScalarRange 0 0% 78.28% 25ms 0.51% NodesOnlyMesh::Clear (inline) 0 0% 78.28% 25ms 0.51% std::default_delete::operator() (inline) 0 0% 78.28% 25ms 0.51% std::unique_ptr::~unique_ptr (inline) 0 0% 78.28% 25ms 0.51% vtkXMLUnstructuredDataWriter::WriteHeader