Hi Jean-Marc and all others,

I downloaded Lyx on Saturday and started the biggest beta test program
that the Institute for Telematics has ever witnessed (there will be at
least three persons doing thourough testing of a purify'd version of
Lyx).

Well, after about a few hours I decided to stop the beta testing
abruptly because the current developer code is far away from being
stable. Enclosed I send you several purify warnings (I already filtered
out a lot of minor warnings). I think these free memory reads should not
happen at all. Moreover, there is a problem with loading Lyx files.
Well, look yourself at the attached messages.

In addition to the Purify warnings, I send you a file generated by Lyx
1.1.4 that cannot be re-loaded (but with Lyx-1.0.4)

Any feedback is welcome.

Michael

PS: I think there is a problem with the lyx server at the moment. Let's
hope it did not crash...


-- 
======================================================================
Michael Schmitt                            phone:     +49 451 500 3725
Institute for Telematics                   secretary: +49 451 500 3721
Medical University of Luebeck              fax:       +49 451 500 3722
Ratzeburger Allee 160              eMail: [EMAIL PROTECTED]
D-23538 Luebeck, Germany           WWW:   http://www.itm.mu-luebeck.de
======================================================================
      FMR: Free memory read
      This is occurring while in:
            LyXParagraph*LyXParagraph::Previous() [paragraph.C:1604]
            Row*LyXText::GetRow(LyXParagraph*,int,long&)const [text.C:4084]
            void LyXText::SetCursorIntern(LyXParagraph*,int)const [text2.C:2864]
            bool LyXText::TextHandleUndo(Undo*) [text2.C:3398]
            bool LyXText::TextUndo() [text2.C:3301]
            void BufferView::menuUndo() [lyx_cb.C:2127]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:820]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x114dd04 in the heap.
      Address 0x114dd04 is 188 bytes into a freed  block at 0x114dc48 of 260 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXParagraph::BreakParagraph(int,int) [paragraph.C:1655]
            void LyXText::BreakParagraph(char) [text.C:1403]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1749]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 0 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            bool LyXText::TextHandleUndo(Undo*) [text2.C:3373]
            bool LyXText::TextUndo() [text2.C:3301]
            void BufferView::menuUndo() [lyx_cb.C:2127]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:820]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]



Cut a few words and tried to insert them on the same line:

      FMR: Free memory read
      This is occurring while in:
            void LyXScreen::ToggleSelection(bool) [screen.C:605]
            void BufferView::paste() [lyx_cb.C:2464]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:832]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 2 bytes from 0xec9680 in the heap.
      Address 0xec9680 is 8 bytes into a freed  block at 0xec9678 of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:313]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::PasteSelection() [text2.C:2345]
            void BufferView::paste() [lyx_cb.C:2460]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:832]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 6 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:866]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::PasteSelection() [text2.C:2351]
            void BufferView::paste() [lyx_cb.C:2460]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:832]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]

Just removed a few single characters, resulting in a bunch of error messages:

       FMR: Free memory read
      This is occurring while in:
            int LyXText::NextBreakPoint(const Row*,int)const [text.C:628]
            void LyXText::BreakAgain(Row*)const [text.C:1279]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x1587f50 in the heap.
      Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]




      FMR: Free memory read
      This is occurring while in:
            int LyXText::LabelEnd(const Row*)const [text.C:558]
            int LyXText::NextBreakPoint(const Row*,int)const [text.C:649]
            void LyXText::BreakAgain(Row*)const [text.C:1279]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x1587f50 in the heap.
      Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]


      FMR: Free memory read
      This is occurring while in:
            int LyXText::RightMargin(const Row*)const [text.C:496]
            int LyXText::NextBreakPoint(const Row*,int)const [text.C:650]
            void LyXText::BreakAgain(Row*)const [text.C:1279]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x1587f50 in the heap.
      Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]


      FMR: Free memory read
      This is occurring while in:
            int LyXText::LeftMargin(const Row*)const [text.C:287]
            int LyXText::NextBreakPoint(const Row*,int)const [text.C:675]
            void LyXText::BreakAgain(Row*)const [text.C:1279]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x1587f50 in the heap.
      Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]


      FMR: Free memory read
      This is occurring while in:
            void LyXText::BreakAgain(Row*)const [text.C:1283]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x1587f50 in the heap.
      Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]


      FMR: Free memory read
      This is occurring while in:
            int LyXText::RowLast(const Row*)const [text.C:124]
            int LyXText::Fill(const Row*,int)const [text.C:743]
            void LyXText::BreakAgain(Row*)const [text.C:1314]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x1587f64 in the heap.
      Address 0x1587f64 is 20 bytes into a freed  block at 0x1587f50 of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]



      FMR: Free memory read
      This is occurring while in:
            int LyXText::Fill(const Row*,int)const [text.C:745]
            void LyXText::BreakAgain(Row*)const [text.C:1314]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Reading 4 bytes from 0x1587f50 in the heap.
      Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]


      FMW: Free memory write
      This is occurring while in:
            void LyXText::SetHeightOfRow(Row*)const [text.C:1053]
            void LyXText::BreakAgain(Row*)const [text.C:1315]
            int LyXText::FullRebreak() [text2.C:899]
            void BufferView::update(signed char) [BufferView.C:1707]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      Writing 2 bytes to 0x1587f62 in the heap.
      Address 0x1587f62 is 18 bytes into a freed  block at 0x1587f50 of 28 bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            c2n6Fi_Pv_     [libCrun.so.1]
            void*operator new(unsigned) [rtlib.o]
            void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
            void LyXText::AppendParagraph(Row*)const [text.C:1258]
            void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:872]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorRightIntern()const [text2.C:3019]
            void LyXText::Delete() [text.C:2937]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]
      There have been 13 frees since this block was freed from:
            free           [rtlib.o]
            c2k6FPv_v_     [libCrun.so.1]
            void operator delete(void*) [rtlib.o]
            void LyXText::RemoveRow(Row*)const [text2.C:290]
            void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const 
[text2.C:855]
            void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const 
[text2.C:3128]
            void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
            void LyXText::CursorLeftIntern()const [text2.C:2995]
            void LyXText::Backspace() [text.C:3070]
            std::basic_string<char,std::char_traits<char>,std::allocator<char> 
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
            int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
            int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
            C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
            do_interaction_step [libforms.a]
            fl_treat_interaction_events [libforms.a]
            fl_check_forms [libforms.a]
            void LyXGUI::runTime() [lyx_gui.C:635]
            LyX::LyX(int*,char**) [lyx_main.C:129]
            main           [main.C:43]
            _start         [crt1.o]


  Ok, there were about hundred additional error reports but I think the free
  memory write is among the worst. The other bugs a sorted chronologically.
  
  When I saved the document I lost the work of about 3 hours because lyx
  wasn't able to read the file anymore :-) 
   
   
   
  No, I didn't. I started lyx-1.0.4 which accepted it without any complaint.
  Phew!!!!!!!
#LyX 1.1 created this file. For more info see http://www.lyx.org/
\lyxformat 2.15
\textclass article
\language default
\inputencoding default
\fontscheme default
\graphics default
\paperfontsize 10
\spacing single 
\papersize Default
\paperpackage widemarginsa4
\use_geometry 0
\use_amsmath 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default

\layout Standard

Institut für Telematik
\hfill 
10
\series medium 
\size normal 
.
 
\series default 
\size default 
Janua
\series medium 
\size normal 
r 
\series default 
\size default 
2000
\layout Standard


\series bold 
\size largest 
Informatik III - Übungsblatt 7
\layout Standard
\line_bottom 
Musterl
\color black
ösungen
\layout Enumerate

AUfgabe X
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""


\newline 
2
\newline 
4
\newline 
1
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
4
\newline 
5
\newline 
2
\newline 
4
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
3
\newline 
5
\newline 
2
\newline 
3
\newline 
4
\newline 

\begin_inset Formula \( \sum  \)
\end_inset 


\newline 
F
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
2
\newline 
2
\newline 
2
\newline 

\newline 
I
\newline 
-
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
4
\newline 

\newline 
F
\newline 
-
\newline 
-
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 

\newline 
O
\newline 
-
\newline 
-
\newline 
-
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 

\newline 

\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 

\newline 
*
\newline 

\newline 
*
\newline 

\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 

\newline 

\newline 
*
\newline 

\newline 
*
\newline 
14
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""


\newline 
2
\newline 
4
\newline 
1
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
4
\newline 
5
\newline 
2
\newline 
4
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
3
\newline 
5
\newline 
2
\newline 
3
\newline 
4
\newline 

\begin_inset Formula \( \sum  \)
\end_inset 


\newline 
L
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 

\newline 
R
\newline 
-
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 

\newline 
U
\newline 
-
\newline 
-
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
2
\newline 
2
\newline 
2
\newline 

\newline 

\newline 
-
\newline 
-
\newline 
-
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
4
\newline 

\newline 

\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 

\newline 
*
\newline 
*
\newline 
*
\newline 

\newline 

\newline 
*
\newline 
*
\newline 
*
\newline 

\newline 

\newline 
*
\newline 

\newline 
*
\newline 
14
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""


\newline 
2
\newline 
4
\newline 
1
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
4
\newline 
5
\newline 
2
\newline 
4
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
3
\newline 
5
\newline 
2
\newline 
3
\newline 
4
\newline 

\begin_inset Formula \( \sum  \)
\end_inset 


\newline 
O
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
6
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
3
\newline 
4
\newline 

\newline 
P
\newline 
-
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
6
\newline 
6
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 

\newline 
T
\newline 
-
\newline 
-
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
1
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 

\newline 

\newline 
-
\newline 
-
\newline 
-
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 
5
\newline 

\newline 

\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 

\newline 

\newline 

\newline 
*
\newline 

\newline 

\newline 
*
\newline 

\newline 
*
\newline 

\newline 

\newline 

\newline 

\newline 
*
\newline 
9
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""


\newline 
2
\newline 
4
\newline 
1
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
4
\newline 
5
\newline 
2
\newline 
4
\newline 
5
\newline 
6
\newline 
3
\newline 
1
\newline 
3
\newline 
5
\newline 
2
\newline 
3
\newline 
4
\newline 

\begin_inset Formula \( \sum  \)
\end_inset 


\newline 
W
\newline 
2
\newline 
2
\newline 
2
\newline 
2
\newline 

\series bold 
\shape italic 
6
\series default 
\shape default 

\newline 

\series bold 
\shape italic 
6
\series default 
\shape default 

\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 

\series bold 
\emph on 
6
\series default 
\emph default 

\newline 

\series bold 
\emph on 
6
\series default 
\emph default 

\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 
6
\newline 

\newline 
S
\newline 
-
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 
4
\newline 

\series bold 
\emph on 
1
\series default 
\emph default 

\newline 

\series bold 
\emph on 
1
\series default 
\emph default 

\newline 
1
\newline 

\series bold 
\emph on 
2
\series default 
\emph default 

\newline 

\series bold 
\emph on 
2
\series default 
\emph default 

\newline 
2
\newline 
2
\newline 

\series bold 
\emph on 
3
\series default 
\emph default 

\newline 

\series bold 
\emph on 
3
\series default 
\emph default 

\newline 

\series bold 
\emph on 
3
\series default 
\emph default 

\newline 

\series bold 
\emph on 
3
\series default 
\emph default 

\newline 
3
\newline 

\series bold 
\emph on 
3
\series default 
\emph default 

\newline 

\series bold 
\emph on 
3
\series default 
\emph default 

\newline 

\newline 
E
\newline 
-
\newline 
-
\newline 
1
\newline 

\series bold 
\emph on 
1
\series default 
\emph default 

\newline 
1
\newline 

\series bold 
\shape italic 
3
\series default 
\shape default 

\newline 

\series bold 
\emph on 
3
\series default 
\emph default 

\newline 
3
\newline 

\series bold 
\emph on 
5
\series default 
\emph default 

\newline 

\series bold 
\emph on 
5
\series default 
\emph default 

\newline 
5
\newline 

\series bold 
\emph on 
5
\series default 
\emph default 

\newline 

\series bold 
\emph on 
5
\series default 
\emph default 

\newline 
5
\newline 
5
\newline 
5
\newline 

\series bold 
\emph on 
5
\series default 
\emph default 

\newline 

\series bold 
\emph on 
5
\series default 
\emph default 

\newline 
5
\newline 

\series bold 
\emph on 
4
\series default 
\emph default 

\newline 

\newline 
T
\newline 
-
\newline 
-
\newline 
-
\newline 

\series bold 
\emph on 
5
\series default 
\emph default 

\newline 

\series bold 
\shape italic 
5
\series default 
\shape default 

\newline 
5
\newline 
5
\newline 

\series bold 
\emph on 
4
\series default 
\emph default 

\newline 

\series bold 
\emph on 
4
\series default 
\emph default 

\newline 
4
\newline 

\series bold 
\emph on 
4
\series default 
\emph default 

\newline 

\series bold 
\emph on 
4
\series default 
\emph default 

\newline 
4
\newline 
4
\newline 

\series bold 
\emph on 
1
\series default 
\emph default 

\newline 

\series bold 
\emph on 
1
\series default 
\emph default 

\newline 
1
\newline 

\series bold 
\emph on 
2
\series default 
\emph default 

\newline 

\series bold 
\emph on 
2
\series default 
\emph default 

\newline 
3
\newline 

\newline 

\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 
*
\newline 

\newline 

\newline 

\newline 
*
\newline 
*
\newline 

\newline 

\newline 
*
\newline 

\newline 
*
\newline 
14
\layout Enumerate

Seitengroesse = 
\begin_inset Formula \( 8KB\rightarrow 2^{13}Bytes \)
\end_inset 


\layout Enumerate

Sei 
\begin_inset Formula \( p_{cpu}^{i} \)
\end_inset 

 der Wert von 
\begin_inset Formula \( p_{cpu} \)
\end_inset 

 nach 
\begin_inset Formula \( i \)
\end_inset 

 Sekunden und 
\begin_inset Formula \( t_{i} \)
\end_inset 

 die Anzahl der time ticks, die in der 
\begin_inset Formula \( i \)
\end_inset 

-ten Sekunden auf den untersuchten Prozess entfallen.
 Dann gilt:
\begin_deeper 
\layout Standard


\begin_inset Formula 
\[
p_{cpu}^{i}:=\alpha \cdot t_{1}+0=\alpha \cdot t_{1}\]

\end_inset 


\end_deeper 
\layout Enumerate

mit
\begin_deeper 
\layout Standard


\begin_inset Formula 
\[
\alpha =\frac{2load}{2load+1}\]

\end_inset 


\end_deeper 
\layout Standard

und 
\layout Enumerate

Es gibt (mindestens) drei Probleme, unter denen die Philosophen leiden können:
\begin_deeper 
\begin_deeper 
\layout Standard

Stichwort: Kritischer Abschnitt - Zwei Philosophen versuchen gleichzeitig,
 auf eine Gabel zuzugreifen.
 Wer bekommt sie? 
\layout Standard

Stichwort: Deadlock - Die Philosophen können sich gegenseitig von der 
Ressourcen\SpecialChar \-

nutzung aus\SpecialChar \-
schliessen, indem z.B.
 jeder von ihnen sofort die linke Gabel ergreift.
 Keiner der Philosophen kann dann noch an die rechte Gabel gelangen.
\layout Standard

Stichwort: Starvation - Einzelne Philosophen können im wahrsten Sinne des
 Wortes verhungern, weil andere Philosophen sich ihnen gegenüber unfair
 verhalten und sie nicht zum Zuge kommen lassen (die bösen Nachbarn essen
 immer abwechselnd).
\end_deeper 
\layout Enumerate

Idee: Einführung einer zentralen Instanz, die die Vergabe der Gabeln regelt.
\begin_deeper 
\layout Verse


\latex latex 

\backslash 
begin{verbatim} 
\layout Verse


\latex latex 
void philosopher(
\protected_separator 
int n
\protected_separator 
)
\newline 
{
\newline 

\protected_separator 

\protected_separator 
while
\protected_separator 
(
\protected_separator 
true
\protected_separator 
)
\newline 

\protected_separator 

\protected_separator 
{
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
think();
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
send(
\protected_separator 
manager,
\protected_separator 

\latex default 

\begin_inset Quotes eld
\end_inset 


\latex latex 
#n
\protected_separator 
is
\protected_separator 
hungry
\latex default 

\begin_inset Quotes erd
\end_inset 


\latex latex 

\protected_separator 
);
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
receive(
\protected_separator 
manager,
\protected_separator 

\latex default 

\begin_inset Quotes eld
\end_inset 


\latex latex 
proceed
\latex default 

\begin_inset Quotes erd
\end_inset 


\latex latex 

\protected_separator 
);
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
eat();
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
send( manager, 
\latex default 

\begin_inset Quotes eld
\end_inset 


\latex latex 
#n
\protected_separator 
is
\protected_separator 
full
\latex default 

\begin_inset Quotes erd
\end_inset 


\latex latex 

\protected_separator 
);
\newline 

\protected_separator 

\protected_separator 
}
\newline 
}
\newline 

\newline 
void
\protected_separator 
manager(
\protected_separator 
void
\protected_separator 
)
\newline 
{
\newline 

\protected_separator 

\protected_separator 
bool
\protected_separator 

\protected_separator 

\protected_separator 
hungry[ 5 ], fork[ 5 ]; 
\newline 

\newline 

\protected_separator 

\protected_separator 
while( true )
\newline 

\protected_separator 

\protected_separator 
{
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
receive( msg );
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
if ( msg == 
\latex default 

\begin_inset Quotes eld
\end_inset 


\latex latex 
#n is hungry
\latex default 

\begin_inset Quotes erd
\end_inset 


\latex latex 
 )
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
{
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
hungry[ n ] = true;
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
test( n );
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
}
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
else 
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
if ( msg == 
\latex default 

\begin_inset Quotes eld
\end_inset 


\latex latex 
#n is full
\latex default 

\begin_inset Quotes erd
\end_inset 


\latex latex 
 );
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
{
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
fork[ n ] = true;
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
fork[ ( n + 4 ) % 5 ] = true;
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
test(
\protected_separator 
( n + 4 ) % 5 );
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
test(
\protected_separator 
( n + 1 ) % 5 );
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
}
\newline 

\protected_separator 

\protected_separator 
}
\newline 
}
\newline 

\newline 
void test( int n )
\newline 
{
\newline 

\protected_separator 

\protected_separator 
if
\protected_separator 
(
\protected_separator 
hungry[ n ] && fork[
\protected_separator 
n ] && fork[ ( n + 4 ) % 5 ] )
\newline 

\protected_separator 

\protected_separator 
{
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
hungry[ n ] = false; 
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
fork[ n ] = false;
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
fork[ ( n + 4 ) % 5 ] = false;
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
send( n, 
\latex default 

\begin_inset Quotes eld
\end_inset 


\latex latex 
proceed
\latex default 

\begin_inset Quotes erd
\end_inset 


\latex latex 
 );
\newline 

\protected_separator 

\protected_separator 
}
\newline 
}
\latex default 
 
\layout Verse


\latex latex 

\backslash 
end{verbatim}
\end_deeper 
\layout Enumerate

Wenn die Philosophen automatisch eine aufgenommene Gabel wieder zurücklegen,
 falls ihre zweite Gabel auf der anderen Seite des Tellers bereits vergeben
 ist, so kann es zu einem sogenannten Livelock kommen, d.h.
 alle Philosophen sind ständig mit dem Aufnehmen und Ablegen der Gabeln
 beschäftigt, ohne jemals zum Essen zu kommen.
\end_deeper 
\layout Enumerate
\pagebreak_top 
Lösung des Readers-Writers-Problems mit Hilfe eines Monitors
\begin_deeper 
\layout Verse


\latex latex 

\backslash 
begin{verbatim}
\layout Verse


\latex latex 
MONITOR ReadersWriters; 
\newline 

\newline 
VAR
\newline 

\protected_separator 

\protected_separator 
count_readers, count_writers : CARDINAL; 
\newline 

\protected_separator 

\protected_separator 
no_readers, no_writers : CONDITION; 
\newline 

\newline 
PROCEDURE start_reading; 
\newline 
BEGIN 
\newline 

\protected_separator 

\protected_separator 
IF count_writers > 0 THEN 
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
WAIT( no_writers ) 
\newline 

\protected_separator 

\protected_separator 
END;
\newline 

\protected_separator 

\protected_separator 
count_readers := count_readers + 1;
\newline 

\protected_separator 

\protected_separator 
SIGNAL( no_writers );
\newline 
END start_reading;
\newline 

\newline 
PROCEDURE stop_reading;
\newline 
BEGIN
\newline 

\protected_separator 

\protected_separator 
count_readers := count_readers - 1;
\newline 

\protected_separator 

\protected_separator 
IF count_readers = 0 AND count_writers > 0 THEN
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
SIGNAL( no_readers )
\newline 

\protected_separator 

\protected_separator 
END;
\newline 
END stop_reading; 
\newline 

\newline 
PROCEDURE start_writing; 
\newline 
BEGIN 
\newline 

\protected_separator 

\protected_separator 
count_writers := count_writers + 1; 
\newline 

\protected_separator 

\protected_separator 
IF count_readers > 0 OR count_writers > 1 THEN 
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
WAIT( no_readers ) 
\newline 

\protected_separator 

\protected_separator 
END;
\newline 
END start_writing; 
\newline 

\newline 
PROCEDURE stop_writing; 
\newline 
BEGIN 
\newline 

\protected_separator 

\protected_separator 
count_writers := count_writers - 1; 
\newline 

\protected_separator 

\protected_separator 
IF count_writers = 0 THEN 
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
SIGNAL( no_writers ); 
\newline 

\protected_separator 

\protected_separator 
ELSE 
\newline 

\protected_separator 

\protected_separator 

\protected_separator 

\protected_separator 
SIGNAL( no_readers ) 
\newline 

\protected_separator 

\protected_separator 
END 
\newline 
END stop_writing; 
\newline 

\newline 
BEGIN 
\newline 

\protected_separator 

\protected_separator 
count_readers := 0; 
\newline 

\protected_separator 

\protected_separator 
count_writers := 0; 
\newline 
END ReadersWriters.
 
\layout Verse


\latex latex 

\backslash 
end{verbatim}
\the_end

S/MIME Cryptographic Signature

Reply via email to