package Ġcom . tang . h wp lib . copy to . doc info Ċ Ċ import Ġcom . tang . h wp lib . objects . doc info . HW P Number ing Ċ import Ġcom . tang . h wp lib . objects . doc info . number ing . HW P Extend Number ing Ċ import Ġcom . tang . h wp lib . objects . doc info . number ing . HW P Level Number ing Ċ import Ġcom . tang . h wp lib . objects . doc info . number ing . HW P Paragraph Head Info Ċ Ċ class ĠH WP Number ing Cop ier ( private Ġval Ġdoc Info : ĠH WP Doc Info Cop ier ) Ġ{ ĊĠĠĠ Ġfun Ġproceed ( id : ĠInt ) Ġ: ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtemp : ĠInt Ġ= Ġid ĊĠĠĠĠĠĠĠ Ġif Ġ( temp Ġ> Ġ 0 ) Ġtemp Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġtarget Index : ĠInt Ġ= Ġfind ByID ( temp ) ĊĠĠĠĠĠĠĠ Ġif Ġ( target Index Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal : ĠH WP Number ing Ġ= Ġdoc Info . original Doc Info . number ing List [ temp ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget : ĠH WP Number ing Ġ= Ġoriginal . copy (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( level Ġin Ġ 0 Ġuntil Ġlevel Number ing List . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . level Number ing List [ level ]. paragraph Head Info Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoc Info . paragraph Header Info Cop ier . copy ( original . level Number ing List [ level ]. paragraph Head Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc Info . target Doc Info . number ing List . add ( target ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc Info . update ID Mappings ( ID Mapping Types . NUMBER ING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdoc Info . target Doc Info . number ing List . size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtarget Number ing : ĠH WP Number ing Ġ= Ġdoc Info . target Doc Info . number ing List [ target Index ] ĊĠĠĠĠĠĠĠ Ġfor Ġ( level Ġin Ġ 0 Ġuntil Ġtarget Number ing . level Number ing List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparagraph Head Info : ĠH WP Paragraph Head Info Ġ= Ġdoc Info . paragraph Header Info Cop ier . copy ( doc Info . original Doc Info . number ing List [ temp ]. level Number ing List [ level ]. paragraph Head Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Number ing . level Number ing List [ level ]. paragraph Head Info Ġ= Ġparagraph Head Info ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtarget Index Ġ+ Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind ByID ( id : ĠInt ) Ġ: ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoriginal : ĠH WP Number ing Ġ= Ġdoc Info . original Doc Info . number ing List [ id ] ĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġtarget ) Ġin Ġdoc Info . target Doc Info . number ing List . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has ( target , Ġoriginal )) Ġreturn Ġindex ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas ( target : ĠH WP Number ing , Ġoriginal : ĠH WP Number ing ) Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġhas Level Number ing ( target : ĠH WP Level Number ing , Ġoriginal : ĠH WP Level Number ing ) Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target . number Format Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original . number Format Ġ!= Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original . number Format Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target . number Format !! Ġ!= Ġoriginal . number Format !! ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! doc Info . paragraph Header Info Cop ier . has ( target . paragraph Head Info , Ġoriginal . paragraph Head Info )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġhas Extend Number ing ( target : ĠH WP Extend Number ing , Ġoriginal : ĠH WP Extend Number ing ) Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target . number Format Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original . number Format Ġ!= Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original . number Format Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target . number Format !! Ġ!= Ġoriginal . number Format !! ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtarget . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Number Ġ!= Ġit . start Number ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( level Ġin Ġ 1 .. 7 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Level Number ing ( this . get Level Number ing ( level ), Ġit . get Level Number ing ( level ))) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( getStart Number For Level ( level ) Ġ!= Ġit . getStart Number For Level ( level )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( level Ġin Ġ 8 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Extend Number ing ( get Extend Start Level Number ing ( level ), Ġit . get Extend Start Level Number ing ( level ))) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( get Extend Start Number For Level ( level ) Ġ!= Ġit . get Extend Start Number For Level ( level )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }