SlideShare a Scribd company logo
1 of 21
Open Source
BPM in Java
David Noble
dnoble.org




Pasadena Java Users Group   June 28, 2010
About You
✤   Who has used... ?
    ✤   BPM / workflow engines
    ✤   Business rules engines
    ✤   SOA / WS-*
About Me
✤   JPL
    ✤   telemetry processing
    ✤   mission operations

✤   Startups
    ✤   BPM, mobile search, consulting, etc

✤   JPL again
    ✤   mission operations
About this Presentation
✤   Open Source BPM
    ✤   What is it?
    ✤   Why should I care?
    ✤   How can I use it?
Terms
✤   Activity
✤   Business Process
✤   Workflow vs BPM
✤   Orchestration vs Choreography
What is BPM?
 Analysis      Orchestration
 BPA           BPMS


 Rules         Monitoring
 BRE           BAM


 Integration   Reporting
 EAI           BI
Foundations of BPM
✤   Flowcharts
✤   State diagrams
✤   Activity diagrams
✤   Petri nets
BPM Standards
✤   BPMN
✤   WS-BPEL
    ✤   BPEL4People, WS-HumanTask

✤   XPDL
Why Should I Care?
Why Should I Care?

It depends.
When Should I Care?
✤
    Orchestrating   web services
✤
    Coordinating    manual activities
✤
    Combining those    together
✤
    Integrating   rules and services
✤
    When processes might    change
Benefits of BPM (biz)
✤   Efficiency, effectiveness, agility
✤   Analysis and articulation
✤   Measurement
✤   Improvement
✤   Automation
Benefits of BPM (tech)
✤   Separation of concerns
✤   Middleware
✤   Manual task events
✤   Audit trail
Open Source
✤   Intalio|BPMS
✤   JBoss jBPM
✤   Activiti
Intalio | BPMS
✤   For SOA
    ✤   WSDL and XML Schemas
Intalio | BPMS
✤   Apache ODE
✤   Eclipse BPMN
✤   Tempo
jBPM
✤   For developers
    ✤   Java and XML
Activiti
✤   Keep an eye on this
    ✤   Led by jBPM founder
    ✤   Funded by Alfresco
    ✤   Developer-friendly
    ✤   Business-friendly
    ✤   User-friendly
Tips & Techniques
✤   Modeling
✤   Style guide
✤   Lifecycles
✤   Escalations
✤   Monitoring and reporting
Resources
✤   BPMN Method and Style
    ✤   by Bruce Silver: www.brsilver.com

✤   jbpm.org
✤   intalio.org
✤   activiti.org
Open Source
BPM in Java
David Noble
dnoble.org




Pasadena Java Users Group   June 28, 2010

More Related Content

Similar to Open Source BPM in Java

Сергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOpsСергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOpsScrumTrek
 
AppDynamics User Group
AppDynamics User GroupAppDynamics User Group
AppDynamics User GroupMike Ruangutai
 
London web performance WPO Lessons from the field June 2013
London web performance   WPO Lessons from the field June 2013London web performance   WPO Lessons from the field June 2013
London web performance WPO Lessons from the field June 2013Stephen Thair
 
RPA-2020 to 2021.pptx
RPA-2020 to 2021.pptxRPA-2020 to 2021.pptx
RPA-2020 to 2021.pptxksrce2
 
Robotic Process Automation - Introduction
Robotic Process Automation - IntroductionRobotic Process Automation - Introduction
Robotic Process Automation - IntroductionJothikaS18
 
Presentation BPM Methodology and Pitfalls
Presentation BPM Methodology and PitfallsPresentation BPM Methodology and Pitfalls
Presentation BPM Methodology and PitfallsJon Petter Hjulstad
 
jBPM 4 BeJUG Event March 20 2009
jBPM 4 BeJUG Event March 20 2009jBPM 4 BeJUG Event March 20 2009
jBPM 4 BeJUG Event March 20 2009Tom Baeyens
 
SOA - BPM
SOA - BPMSOA - BPM
SOA - BPMibankuk
 
jBPM At Riviera JUG
jBPM At Riviera JUGjBPM At Riviera JUG
jBPM At Riviera JUGTom Baeyens
 
Future of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality AnalystFuture of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality AnalystAnand Bagmar
 
Business Process Management and its evolution An ACOG example - steve hasle...
Business Process Management and its evolution   An ACOG example - steve hasle...Business Process Management and its evolution   An ACOG example - steve hasle...
Business Process Management and its evolution An ACOG example - steve hasle...Denis Gagné
 
Center of Excellence Part 2 - First Steps in Building Scalable RPA
Center of Excellence Part 2 - First Steps in Building Scalable RPACenter of Excellence Part 2 - First Steps in Building Scalable RPA
Center of Excellence Part 2 - First Steps in Building Scalable RPAHelpSystems
 
Advanced Process Optimization - Services
Advanced Process Optimization - ServicesAdvanced Process Optimization - Services
Advanced Process Optimization - Servicesjmerschat
 
jBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processesjBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processesKris Verlaenen
 
Keynote Gartner Business Process Management Summit, February 2009, London
Keynote Gartner Business Process Management Summit, February 2009, London Keynote Gartner Business Process Management Summit, February 2009, London
Keynote Gartner Business Process Management Summit, February 2009, London Wil van der Aalst
 
Empowering Full Scale STP with BPM
Empowering Full Scale STP with BPMEmpowering Full Scale STP with BPM
Empowering Full Scale STP with BPMEric D. Schabell
 

Similar to Open Source BPM in Java (20)

Сергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOpsСергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOps
 
AppDynamics User Group
AppDynamics User GroupAppDynamics User Group
AppDynamics User Group
 
BPM and Scrum
BPM and ScrumBPM and Scrum
BPM and Scrum
 
Bpm & activiti
Bpm & activitiBpm & activiti
Bpm & activiti
 
London web performance WPO Lessons from the field June 2013
London web performance   WPO Lessons from the field June 2013London web performance   WPO Lessons from the field June 2013
London web performance WPO Lessons from the field June 2013
 
RPA-2020 to 2021.pptx
RPA-2020 to 2021.pptxRPA-2020 to 2021.pptx
RPA-2020 to 2021.pptx
 
Robotic Process Automation - Introduction
Robotic Process Automation - IntroductionRobotic Process Automation - Introduction
Robotic Process Automation - Introduction
 
Presentation BPM Methodology and Pitfalls
Presentation BPM Methodology and PitfallsPresentation BPM Methodology and Pitfalls
Presentation BPM Methodology and Pitfalls
 
jBPM 4 BeJUG Event March 20 2009
jBPM 4 BeJUG Event March 20 2009jBPM 4 BeJUG Event March 20 2009
jBPM 4 BeJUG Event March 20 2009
 
SOA - BPM
SOA - BPMSOA - BPM
SOA - BPM
 
jBPM At Riviera JUG
jBPM At Riviera JUGjBPM At Riviera JUG
jBPM At Riviera JUG
 
Future of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality AnalystFuture of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality Analyst
 
RPA
RPARPA
RPA
 
Carasik BPM ECM
Carasik BPM ECMCarasik BPM ECM
Carasik BPM ECM
 
Business Process Management and its evolution An ACOG example - steve hasle...
Business Process Management and its evolution   An ACOG example - steve hasle...Business Process Management and its evolution   An ACOG example - steve hasle...
Business Process Management and its evolution An ACOG example - steve hasle...
 
Center of Excellence Part 2 - First Steps in Building Scalable RPA
Center of Excellence Part 2 - First Steps in Building Scalable RPACenter of Excellence Part 2 - First Steps in Building Scalable RPA
Center of Excellence Part 2 - First Steps in Building Scalable RPA
 
Advanced Process Optimization - Services
Advanced Process Optimization - ServicesAdvanced Process Optimization - Services
Advanced Process Optimization - Services
 
jBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processesjBPM5 - Bringing more power to your business processes
jBPM5 - Bringing more power to your business processes
 
Keynote Gartner Business Process Management Summit, February 2009, London
Keynote Gartner Business Process Management Summit, February 2009, London Keynote Gartner Business Process Management Summit, February 2009, London
Keynote Gartner Business Process Management Summit, February 2009, London
 
Empowering Full Scale STP with BPM
Empowering Full Scale STP with BPMEmpowering Full Scale STP with BPM
Empowering Full Scale STP with BPM
 

More from David Noble

Scratch project ideas
Scratch project ideasScratch project ideas
Scratch project ideasDavid Noble
 
Mobile Devices: Superpowers and Science Fiction
Mobile Devices: Superpowers and Science FictionMobile Devices: Superpowers and Science Fiction
Mobile Devices: Superpowers and Science FictionDavid Noble
 
Cloud Computing - a conversation
Cloud Computing - a conversationCloud Computing - a conversation
Cloud Computing - a conversationDavid Noble
 
Return of the Command Line: New Text Interfaces
Return of the Command Line: New Text InterfacesReturn of the Command Line: New Text Interfaces
Return of the Command Line: New Text InterfacesDavid Noble
 
Java Builds with Maven and Ant
Java Builds with Maven and AntJava Builds with Maven and Ant
Java Builds with Maven and AntDavid Noble
 
Java Code Generation for Productivity
Java Code Generation for ProductivityJava Code Generation for Productivity
Java Code Generation for ProductivityDavid Noble
 
Salesforce and Skype
Salesforce and SkypeSalesforce and Skype
Salesforce and SkypeDavid Noble
 
Salesforce and Google Calendar
Salesforce and Google CalendarSalesforce and Google Calendar
Salesforce and Google CalendarDavid Noble
 

More from David Noble (10)

Scratch project ideas
Scratch project ideasScratch project ideas
Scratch project ideas
 
Mobile Devices: Superpowers and Science Fiction
Mobile Devices: Superpowers and Science FictionMobile Devices: Superpowers and Science Fiction
Mobile Devices: Superpowers and Science Fiction
 
Cloud Computing - a conversation
Cloud Computing - a conversationCloud Computing - a conversation
Cloud Computing - a conversation
 
Return of the Command Line: New Text Interfaces
Return of the Command Line: New Text InterfacesReturn of the Command Line: New Text Interfaces
Return of the Command Line: New Text Interfaces
 
Java Builds with Maven and Ant
Java Builds with Maven and AntJava Builds with Maven and Ant
Java Builds with Maven and Ant
 
Java Code Generation for Productivity
Java Code Generation for ProductivityJava Code Generation for Productivity
Java Code Generation for Productivity
 
Salesforce and Skype
Salesforce and SkypeSalesforce and Skype
Salesforce and Skype
 
Salesforce and Google Calendar
Salesforce and Google CalendarSalesforce and Google Calendar
Salesforce and Google Calendar
 
Files From Mars
Files From MarsFiles From Mars
Files From Mars
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 

Recently uploaded

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Open Source BPM in Java

  • 1. Open Source BPM in Java David Noble dnoble.org Pasadena Java Users Group June 28, 2010
  • 2. About You ✤ Who has used... ? ✤ BPM / workflow engines ✤ Business rules engines ✤ SOA / WS-*
  • 3. About Me ✤ JPL ✤ telemetry processing ✤ mission operations ✤ Startups ✤ BPM, mobile search, consulting, etc ✤ JPL again ✤ mission operations
  • 4. About this Presentation ✤ Open Source BPM ✤ What is it? ✤ Why should I care? ✤ How can I use it?
  • 5. Terms ✤ Activity ✤ Business Process ✤ Workflow vs BPM ✤ Orchestration vs Choreography
  • 6. What is BPM? Analysis Orchestration BPA BPMS Rules Monitoring BRE BAM Integration Reporting EAI BI
  • 7. Foundations of BPM ✤ Flowcharts ✤ State diagrams ✤ Activity diagrams ✤ Petri nets
  • 8. BPM Standards ✤ BPMN ✤ WS-BPEL ✤ BPEL4People, WS-HumanTask ✤ XPDL
  • 9. Why Should I Care?
  • 10. Why Should I Care? It depends.
  • 11. When Should I Care? ✤ Orchestrating web services ✤ Coordinating manual activities ✤ Combining those together ✤ Integrating rules and services ✤ When processes might change
  • 12. Benefits of BPM (biz) ✤ Efficiency, effectiveness, agility ✤ Analysis and articulation ✤ Measurement ✤ Improvement ✤ Automation
  • 13. Benefits of BPM (tech) ✤ Separation of concerns ✤ Middleware ✤ Manual task events ✤ Audit trail
  • 14. Open Source ✤ Intalio|BPMS ✤ JBoss jBPM ✤ Activiti
  • 15. Intalio | BPMS ✤ For SOA ✤ WSDL and XML Schemas
  • 16. Intalio | BPMS ✤ Apache ODE ✤ Eclipse BPMN ✤ Tempo
  • 17. jBPM ✤ For developers ✤ Java and XML
  • 18. Activiti ✤ Keep an eye on this ✤ Led by jBPM founder ✤ Funded by Alfresco ✤ Developer-friendly ✤ Business-friendly ✤ User-friendly
  • 19. Tips & Techniques ✤ Modeling ✤ Style guide ✤ Lifecycles ✤ Escalations ✤ Monitoring and reporting
  • 20. Resources ✤ BPMN Method and Style ✤ by Bruce Silver: www.brsilver.com ✤ jbpm.org ✤ intalio.org ✤ activiti.org
  • 21. Open Source BPM in Java David Noble dnoble.org Pasadena Java Users Group June 28, 2010

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n