Media/WebRTC: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Update debugging link)
 
(331 intermediate revisions by 7 users not shown)
Line 1: Line 1:
WebRTC is a free, open project that will bring peer-to-peer real-time audio, video and data to the web without plugins, using open web [[standards]].
WebRTC is a free, open project that brings peer-to-peer real-time audio, video and data to the web without plugins, using open web [[standards]]. Checkout the [http://www.webrtc.org/ WebRTC project page] set up by Google for interesting links and details. 


Checkout the [http://www.webrtc.org/ WebRTC project page] set up by Google for more interesting links and details.
==Releases & Notes==
*[https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Schedule Calendar]
*[https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes Firefox WebRTC & Web Audio Release Notes]


==[https://wiki.mozilla.org/FirefoxOS/functionalteams#WebRTC WebRTC Team Info] & [https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AlKBl68pRmhsdENBZDRKclBSZlhiRC1tb1BGQS1JU2c&usp=drive_web#gid=0 Extended Team Members List]==
===Triage Guidelines===
The Product Backlog is continually maintained to ensure relative priorities are understood.


=='''Draft''' Project Planning View: [coming here]==
* Priorities follow the Firefox Desktop Standard:
This is not a commitment to dates. It's a planning visualization to see how various teams working on the project relate to each other. It helps to see how changes in one area can impact downstream.  This will be continually updated as teams come back with more solid estimates for when portions can be completed.
Go to [https://wiki.mozilla.org/Media/Bugs#WebRTC_Bugzilla_Queries WebRTC bugs] to search for all open WebRTC bugs (including untriaged and unconfirmed bugs).


== Project Documentation ==
** Priority 1 - Blocker, must-fix before shipping. Almost by definition of P1, the "affected" flags and "tracking" flags for the bug should be set when it's triaged. 
** Priority 2 - High priority backlog (bugs we are currently working on or will be working on next)
** Priority 3 - Lower priority backlog
** Priority 4 - Bugs we will accept patches for
** Priority 5 - Parking lot (Bugs we do not plan to spend any time on)


*[https://wiki.mozilla.org/Services/Loop Cloud Services team page for Loop work]
*RANK: The Rank field lets us prioritize bugs within a priority bucket (P2, P3, etc) in bugzilla.  To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - the triager will default to mid-range value.
*[[Media/WebRTC/Architecture | Overview of Mozilla's WebRTC Architecture ]]
** P1  Rank options=0-9, default 5
*[[Media/getUserMedia | Overview and status of navigator.getUserMedia()]]
** P2  Rank options=10-19, default 15
*[[Media/WebRTC/Testing | WebRTC Testing]]
** P3  Rank options=20-29, default 25
*[[Media/WebRTC/Logging | Instructions for enabling logging messages]]
** P4  Rank options=30-39, default 35
*[[Media/WebRTC/Peak | Notes on getting WebRTC working on a Peak]]
** P5  Rank options=40-49, default 45
*[[Media/WebRTC_Audio_Issues | WebRTC Audio Issues]]
*** Note: P5 and "parking-lot"-labelled bugs are treated identically.  We no longer use "parking-lot"; it is a legacy classification.
*[[Media/WebRTC/Updating Process | Updating from upstream webrtc.org]]


== Work Weeks ==
<p> </p>
Past work week Jun 10-14 2013: -- [[Media/WebRTC/WebRTC_workweek_20130610| WebRTC work week June 10 2013]]
*QE-Verify is a flag that developers should be setting. QE uses to filter which bugs they check.
**"+" means that QE should look at the bug and it can be verified with human eyes
**"-" means QE should not look at
***Typically QE-verify"-" goes with "in-testsuite" being set to "+", to show testing via another method.


== Upcoming Standards Meetings ==
===Filing a bug===
[http://ietf.org/ IETF Berlin]
* Open a bug under Product:"Core" || Component: "WebRTC, WebRTC:Audio, WebRTC:Network or WebRTC:Signaling"
** After triage, bugs will be marked "firefox-blocking", with a Priority, and a Rank
*If there is a bug that should be considered for taking ASAP - you can mark "firefox-backlog"+
**Before it can be given a Rank it should:
*** be in an actionable state
*** for defects, the problem is ready for Engineering or UX: diagnosis, measurement, design, or fixing
*** for feature requests or enhancements, it means that there's a clear problem statement or suggestion
*** has a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months
<p> </p>


==webRTC Platform Gantt: [http://people.mozilla.org/~sescalante/webRTC-mini/webRTC-miniGantt.html here] (updated Tuesday's before stand-up)==
'''Contributor Engagement'''
* Add Whiteboard tag of [well filed] to the well filed bugs to acknowledge that we appreciate the effort and thoroughness
* Add Whiteboard tag of [good first bug] for contributors to pick up
==libwebrtc Updates==
* One can find documentation on the current libwebrtc fast-forward update process [[Media/WebRTC/libwebrtc_Update_Process|here]].
* The research and history on developing the fast-forward update process is documented [[Media/WebRTC/libwebrtc_Update_Process/automation_plan|here]]
* The 2H2020 transition process is documented [[Media/WebRTC/libwebrtc_Update_Process_Transition_Plan|here]].
* The old libwebrtc update process is documented [[Media/WebRTC/Legacy_Updating_Process|here]].
==Up-streaming Changes==
* One can find instructions for up-streaming changes [[Media/WebRTC/Up_streaming_Changes|here]].


== Meeting Notes and Progress Reports  ==
==libsrtp Updates==
*[[Media/WebRTC/2014-04-15| Meeting Notes from Tue, Apr 15, 2014]]
Maintained by Cisco, libsrtp needs to be vendored periodically. A description of that process can be found [[Meida/WebRTC/libsrtp_Update_Process|here]].
*[[Media/WebRTC/2014-04-08| Meeting Notes from Tue, Apr  8, 2014]]
==Project Status ==
*[[Media/WebRTC/2014-04-01| Meeting Notes from Tue, Apr  1, 2014]]
*[https://mozilla.aha.io/published/b40393012432847d857ee68299a8a82f?page=2 Detailed Roadmap], noting that the further out the more lose the targets are]
*[[Media/WebRTC/2014-03-25| Meeting Notes from Tue, Mar 25, 2014]]
*[[Media/WebRTC/2014-03-18| Meeting Notes from Tue, Mar 18, 2014]]
*[[Media/WebRTC/2014-03-11| Meeting Notes from Tue, Mar 11, 2014]]
*[[Media/WebRTC/2014-03-04| Meeting Notes from Tue, Mar  4, 2014]]
*[[Media/WebRTC/2014-02-25| Meeting Notes from Tue, Feb 25, 2014]]
*[[Media/WebRTC/2014-02-18| Meeting Notes from Tue, Feb 18, 2014]]
*[[Media/WebRTC/2014-02-04| Meeting Notes from Tue, Feb  4, 2014]]
*[[Media/WebRTC/2014-01-28| Meeting Notes from Tue, Jan 28, 2014]]
*[[Media/WebRTC/2014-01-21| Meeting Notes from Tue, Jan 21, 2014]]
*[[Media/WebRTC/2014-01-14| Meeting Notes from Tue, Jan 14, 2014]]
*[[Media/WebRTC/2014-01-07| Meeting Notes from Tue, Jan  7, 2014]]
*[[Media/WebRTC/2013-12-17| Meeting Notes from Tue, Dec 17, 2013]]
*[[Media/WebRTC/2013-12-10| Meeting Notes from Tue, Dec 10, 2013]]
*[[Media/WebRTC/2013-12-03| Meeting Notes from Tue, Dec  3, 2013]]
*[[Media/WebRTC/2013-11-19| Meeting Notes from Tue, Nov 19, 2013]]
*[[Media/WebRTC/2013-11-14| Meeting Notes from Thu, Nov 14, 2013]]
*[[Media/WebRTC/2013-10-29| Meeting Notes from Tue, Oct 29, 2013]]
*[[Media/WebRTC/2013-10-22| Meeting Notes from Tue, Oct 22, 2013]]
*[[Media/WebRTC/2013-10-15| Meeting Notes from Tue, Oct 15, 2013]]
*[[Media/WebRTC/2013-10-01| Meeting Notes from Tue, Oct  1, 2013]]
*[[Media/WebRTC/2013-09-24| Meeting Notes from Tue, Sep 24, 2013]]
*[[Media/WebRTC/2013-09-17| Meeting Notes from Tue, Sep 17, 2013]]
*[[Media/WebRTC/2013-09-10| Meeting Notes from Tue, Sep 10, 2013]]
*[[Media/WebRTC/2013-09-03| Meeting Notes from Tue, Sep  3, 2013]]
*[[Media/WebRTC/2013-08-27| Meeting Notes from Tue, Aug 27, 2013]]
*[[Media/WebRTC/2013-08-20| Meeting Notes from Tue, Aug 20, 2013]]
*[[Media/WebRTC/2013-08-13| Meeting Notes from Tue, Aug 13, 2013]]
*[[Media/WebRTC/2013-08-06| Meeting Notes from Tue, Aug  6, 2013]]
*[[Media/WebRTC/2013-07-23| Meeting Notes from Tue, Jul 23, 2013]]
*[[Media/WebRTC/2013-07-09| Meeting Notes from Tue, Jul 09, 2013]]
*[[Media/WebRTC/2013-07-02| Meeting Notes from Tue, Jul 02, 2013]]
*[[Media/WebRTC/2013-06-25| Meeting Notes from Tue, Jun 25, 2013]]
*[[Media/WebRTC/2013-06-18| Meeting Notes from Tue, Jun 18, 2013]]
*[[Media/WebRTC/2013-06-04| Meeting Notes from Tue, Jun  4, 2013]]
*[[Media/WebRTC/2013-05-21| Meeting Notes from Tue, May 21, 2013]]
*[[Media/WebRTC/2013-05-14| Meeting Notes from Tue, May 14, 2013]]
*[[Media/WebRTC/2013-05-07| Meeting Notes from Tue, May  7, 2013]]
*[[Media/WebRTC/2013-04-30| Meeting Notes from Tue, Apr 30, 2013]]
*[[Media/WebRTC/2013-04-23| Meeting Notes from Tue, Apr 23, 2013]]
*[[Media/WebRTC/2013-04-16| Meeting Notes from Tue, Apr 16, 2013]]
*[[Media/WebRTC/2013-04-09| Meeting Notes from Tue, Apr  9, 2013]]
*[[Media/WebRTC/2013-04-02| Meeting Notes from Tue, Apr  2, 2013]]
*[[Media/WebRTC/2013-03-26| Meeting Notes from Thu, Mar 26, 2013]]
*[[Media/WebRTC/2013-03-21| Meeting Notes from Thu, Mar 21, 2013]]
*[[Media/WebRTC/2013-03-05| Meeting Notes from Tue, Mar 5, 2013]]
*[[Media/WebRTC/2013-02-26| Meeting Notes from Tue, Feb 26, 2013]]
*[[Media/WebRTC/2013-02-21| Meeting Notes from Thu, Feb 21 and Fri, Feb 22, 2013]]
*[[Media/WebRTC/2013-02-12| Meeting Notes from Tue, Feb 12, 2013]]
*[[Media/WebRTC/2013-01-29| Meeting Notes from Tue, Jan 29, 2013]]
*[[Media/WebRTC/2013-01-22| Meeting Notes from Tue, Jan 22, 2013]]
*[[Media/WebRTC/2013-01-15| Meeting Notes from Tue, Jan 15, 2013]]
*[[Media/WebRTC/2013-01-08| Meeting Notes from Tue, Jan  8, 2013]]
*[[Media/WebRTC/2013-01-03| Meeting Notes from Thu, Jan  3, 2013]]
*[[Media/WebRTC/2012-12-27| Meeting Notes from Thu, Dec 27, 2012]]
*[[Media/WebRTC/2012-12-18| Meeting Notes from Tue, Dec 18, 2012]]
*[[Media/WebRTC/2012-12-11| Meeting Notes from Tue, Dec 11, 2012]]
*[[Media/WebRTC/2012-12-04| Meeting Notes from Tue, Dec  4, 2012]]
*[[Media/WebRTC/2012-11-27| Meeting Notes from Tue, Nov 27, 2012]]
*[[Media/WebRTC/2012-11-20| Meeting Notes from Tue, Nov 20, 2012]]
*[[Media/WebRTC/2012-11-13| Meeting Notes from Tue, Nov 13, 2012]]
*[[Media/WebRTC/2012-10-31| Meeting Notes from Wed, Oct 31, 2012]]
*[[Media/WebRTC/2012-10-23| Meeting Notes from Tue, Oct 23, 2012]]
*[[Media/WebRTC/2012-10-16| Meeting Notes from Tue, Oct 16, 2012]]
*[[Media/WebRTC/2012-10-09| Meeting Notes from Tue, Oct  9, 2012]]
*[[Media/WebRTC/2012-10-02| Meeting Notes from Tue, Oct  2, 2012]]
*[[Media/WebRTC/2012-09-26| Meeting Notes from Wed, Sep  26, 2012]]
*[[Media/WebRTC/2012-09-18| Meeting Notes from Tue, Sep  18, 2012]]
*[[Media/WebRTC/2012-09-11| Meeting Notes from Tue, Sep  11, 2012]]
*[[Media/WebRTC/2012-09-04| Meeting Notes from Tue, Sept  4, 2012]]
*[[Media/WebRTC/2012-08-28| Meeting Notes from Tue,  Aug 28, 2012]]
*[[Media/WebRTC/2012-08-21| Meeting Notes from Tue,  Aug 21, 2012]]
*[[Media/WebRTC/2012-08-14| Meeting Notes from Tue,  Aug 14, 2012]]
*[[Media/WebRTC/2012-08-07| Meeting Notes from Tue,  Aug  7, 2012]]
*[[Media/WebRTC/2012-07-24| Meeting Notes from Tue, July 24, 2012]]
*[[Media/WebRTC/2012-07-17| Meeting Notes from Tue, July 17, 2012]]
*[[Media/WebRTC/2012-07-10| Meeting Notes from Tue, July 10, 2012]]
*[[Media/WebRTC/2012-07-03| Meeting Notes from Tue, July 3,  2012]]
*[[Media/WebRTC/2012-06-26| Meeting Notes from Tue, June 26, 2012]]
*[[Media/WebRTC/2012-06-19| Meeting Notes from Tue, June 19, 2012]]
*[[Media/WebRTC/2012-06-05| Meeting Notes from Tue, June 5,  2012]]
*[[Media/WebRTC/2012-05-31| Meeting Notes from Thu, May 31,  2012]]
*[[Media/WebRTC/2012-05-25| Meeting Notes from Tue, May 25,  2012]]
*[[Media/WebRTC/2012-05-15| Meeting Notes from Tue, May 15,  2012]]
*[[Media/WebRTC/2012-05-08| Meeting Notes from Tue, May  8,  2012]]
*[[Media/WebRTC/2012-05-01| Meeting Notes from Tue, May  1,  2012]]
*[[Media/WebRTC/2012-04-26| Meeting Notes from Thu, Apr 26,  2012]]
*[[Media/WebRTC/2012-04-19| Meeting Notes from Thu, Apr 19,  2012]]


==Bugzilla Flags (in review)==
==Contacts and Useful Links==
*[https://mozilla.github.io/webrtc-landing/gum_test.html Click here] to try WebRTC features in the Firefox browser
*[https://wiki.mozilla.org/Webrtc/contacts Contacts for WebRTC]
*[https://wiki.mozilla.org/Webrtc/links Useful Links for WebRTC]
*[https://wiki.mozilla.org/Media/WebRTC/Tests Running tests for WebRTC in Firefox]
*[https://wiki.mozilla.org/Media/WebRTC/Logging Getting WebRTC logs in Firefox]
*[https://wiki.mozilla.org/Media/WebRTC/WebRTC_Debugging Debugging WebRTC Calls]
*[https://tools.ietf.org/html/draft-ietf-rtcweb-mdns-ice-candidates-04 IETF Draft: "Using ''Multicast DNS'' to protect '''privacy''' when exposing ''ICE'' candidates"] (AKA mDNS; Interactive Connectivity Establishment (ICE) [RFC 5245] protocol)
*[[Media/WebRTC/Privacy]]
*[[Media/WebRTC/Architecture]]
*[https://wiki.mozilla.org/index.php?search=Media%2FWebRTC%2F&title=Special%3ASearch&fulltext=1 etc.]


By using the following whiteboard text and Bugzilla flags for tracking User Stories, Estimates, Target Milestones, and Blocked; we'll produce reports on how much work we have per sprint, how likely we'll land that work, and determine risks early.
==Meetings==
<p> </p>
{| class="wikitable"
|-
! Meeting !! Day of week !! Pacific Time !! Eastern Time !! Central European Time !! Vidyo Room !! Notes
|-
| "Weekly Stand-up" || Wednesday || 6:00AM - 6:30AM & 1:30 - 2:00 PM || 9:00AM - 9:30PM & 4:30 - 5:00 PM || 3:00PM - 3:30PM & - 10:30PM-11:00PM || webRTC-Apps || [https://etherpad.mozilla.org/webrtcweekly etherpad]
|-
|}
* Stand-up = 2 minutes on what have you been working on, planning to work on, and are you blocked.  Bring-up topics for longer Discussion at end if needed.
** Developers and active contributors only need to attend one of the two sessions each week.  We have 2 sessions due to the number of very different time zones throughout the team.
** please update the [https://etherpad.mozilla.org/webrtcweekly Stand-up Notes etherpad] if you cannot make the meeting (even if it's just to say you're on PTO)
* [http://ietf.org/ IETF Standards Meetings]


'''Task Bugs: Estimates'''
==Archived==
* Estimates go on the dependent bugs, not [meta] bugs
===Notes===
* Except: new meta bugs that don't have any dependent bugs yet
*[https://wiki.mozilla.org/Media/WebRTC/archived Archived notes]
* Grammar: [p={estimate}]
* The entire block is contained within square brackets, along with other tags
* Case-insensitive. p and P are both valid.  
* Key and value are separated by a equal sign (no spaces).
* Key/value pairs are separated by a space and comma.
* Example: [p=5, ft:systems-fe]


'''Task Bugs: Target Milestones'''
* Target milestone set for [meta] and dependent bugs landing milestone
* [meta] bugs are set for milestone when last dependent bug is fixed


'''Task Bugs: Blocking'''
* Blocking Bugs will set Project Flag: Blocking-Loop to the {release}+
* Blocking Bug Nominations will set Project Flag: Blocking-Loop to: {release}?
'''User Story or [meta] Data'''
* ONE bug per user story, starting with the word [meta]
* Implementation tasks and bugs should be marked as blocking the user story bug.
* The user story id, as found in the Product backlog spreadsheet, is written in the bug whiteboard as "ucid:{id}", eg: "ucid:Browser326".
* The user story priority for a release is either P1 (committed) or P2 (targeted). This is written in the bug whiteboard as "{release}:{priority}", eg: "1.3:P1".
* The functional team that is responsible for the implementation of the user story is written as "ft:{teamname}", eg: "ft:media".
'''User Story or [meta] Format'''
* Grammar: [ucid:{id}, {release}:p{1,2}, ft:{team-id}]
* The entire block is contained within square brackets
* Case-insensitive. UCID and ucid are both valid.
* Key and value are separated by a colon (no spaces).
* Key/value pairs are separated by a space and comma.
* Example: [ucid:System26, 1.3:P2, ft:systems-fe]
'''Priority Bucketing'''
* Use the "Importance" Buzilla field to bucket your bugs by priority
* In addition to the Prioritized Backlog - this provides a simple view of top work for each area.
==Getting platform webRTC ready==
* Summary: media quality and connectivity
* Metabug: ([https://bugzilla.mozilla.org/show_bug.cgi?id=970426 bug-970426])
<bugzilla>
    {
        "blocks":"970426",
        "include_fields": "id, summary, status, target_milestone, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
==Fixed MLP Blockers==
Working on figuring how to say resolution = "--" in JSON, for demo purposes pulled "fixed"
<bugzilla>
    {
        "product":["Loop"],
        "blocking-loop":"MLP+",
        "resolution":"fixed",
        "include_fields": "id, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
==Priority Bugs==
Option to pull query based on whiteboard tag.  Could seperate by group (Core:webrtc, Core:signalling, Loop:server, etc.)


----
----

Latest revision as of 19:04, 10 August 2023

WebRTC is a free, open project that brings peer-to-peer real-time audio, video and data to the web without plugins, using open web standards. Checkout the WebRTC project page set up by Google for interesting links and details.

Releases & Notes

Triage Guidelines

The Product Backlog is continually maintained to ensure relative priorities are understood.

  • Priorities follow the Firefox Desktop Standard:

Go to WebRTC bugs to search for all open WebRTC bugs (including untriaged and unconfirmed bugs).

    • Priority 1 - Blocker, must-fix before shipping. Almost by definition of P1, the "affected" flags and "tracking" flags for the bug should be set when it's triaged.
    • Priority 2 - High priority backlog (bugs we are currently working on or will be working on next)
    • Priority 3 - Lower priority backlog
    • Priority 4 - Bugs we will accept patches for
    • Priority 5 - Parking lot (Bugs we do not plan to spend any time on)
  • RANK: The Rank field lets us prioritize bugs within a priority bucket (P2, P3, etc) in bugzilla. To have some rhyme/reason to the order - Rank should relate to Priority. The "Ranking" number does not need to be unique. Unless there is a reason to for a bug to be considered before (or after) others in the Priority bucket - the triager will default to mid-range value.
    • P1 Rank options=0-9, default 5
    • P2 Rank options=10-19, default 15
    • P3 Rank options=20-29, default 25
    • P4 Rank options=30-39, default 35
    • P5 Rank options=40-49, default 45
      • Note: P5 and "parking-lot"-labelled bugs are treated identically. We no longer use "parking-lot"; it is a legacy classification.

  • QE-Verify is a flag that developers should be setting. QE uses to filter which bugs they check.
    • "+" means that QE should look at the bug and it can be verified with human eyes
    • "-" means QE should not look at
      • Typically QE-verify"-" goes with "in-testsuite" being set to "+", to show testing via another method.

Filing a bug

  • Open a bug under Product:"Core" || Component: "WebRTC, WebRTC:Audio, WebRTC:Network or WebRTC:Signaling"
    • After triage, bugs will be marked "firefox-blocking", with a Priority, and a Rank
  • If there is a bug that should be considered for taking ASAP - you can mark "firefox-backlog"+
    • Before it can be given a Rank it should:
      • be in an actionable state
      • for defects, the problem is ready for Engineering or UX: diagnosis, measurement, design, or fixing
      • for feature requests or enhancements, it means that there's a clear problem statement or suggestion
      • has a difficulty/user-impact ratio low enough that we can reasonably expect to spend time fixing the bug within the next 6 months

Contributor Engagement

  • Add Whiteboard tag of [well filed] to the well filed bugs to acknowledge that we appreciate the effort and thoroughness
  • Add Whiteboard tag of [good first bug] for contributors to pick up

libwebrtc Updates

  • One can find documentation on the current libwebrtc fast-forward update process here.
  • The research and history on developing the fast-forward update process is documented here
  • The 2H2020 transition process is documented here.
  • The old libwebrtc update process is documented here.

Up-streaming Changes

  • One can find instructions for up-streaming changes here.

libsrtp Updates

Maintained by Cisco, libsrtp needs to be vendored periodically. A description of that process can be found here.

Project Status

Contacts and Useful Links

Meetings

Meeting Day of week Pacific Time Eastern Time Central European Time Vidyo Room Notes
"Weekly Stand-up" Wednesday 6:00AM - 6:30AM & 1:30 - 2:00 PM 9:00AM - 9:30PM & 4:30 - 5:00 PM 3:00PM - 3:30PM & - 10:30PM-11:00PM webRTC-Apps etherpad
  • Stand-up = 2 minutes on what have you been working on, planning to work on, and are you blocked. Bring-up topics for longer Discussion at end if needed.
    • Developers and active contributors only need to attend one of the two sessions each week. We have 2 sessions due to the number of very different time zones throughout the team.
    • please update the Stand-up Notes etherpad if you cannot make the meeting (even if it's just to say you're on PTO)
  • IETF Standards Meetings

Archived

Notes